package com.ld.igds.inout.service.impl; import java.util.List; import java.util.concurrent.Callable; import com.ld.igds.constant.BizType; import com.ld.igds.inout.InoutConstant; import com.ld.igds.inout.dto.InoutData; import com.ld.igds.inout.dto.InoutSumDto; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.NumberUtil; import com.ld.igds.websocket.WebSocketPacket; import com.ld.igds.websocket.WebSocketServer; /** * 创建子任务,当前任务用于通知大屏 * * @author: andy.jia * @description: * @version: * @data:2020年6月22日 * */ public class NotifyScreenTask implements Callable { private List curList; private List completeList; private String deptId; public List getCurList() { return curList; } public void setCurList(List curList) { this.curList = curList; } public List getCompleteList() { return completeList; } public void setCompleteList(List completeList) { this.completeList = completeList; } public void setDeptId(String deptId) { this.deptId = deptId; } public String getDeptId() { return deptId; } public NotifyScreenTask() { super(); } public NotifyScreenTask(List curList, List completeList,String deptId) { super(); this.curList = curList; this.completeList = completeList; this.deptId = deptId; } // IN_OUT_SUMMARY @Override public String call() throws Exception { InoutSumDto dto = new InoutSumDto(); if (null != curList) { for (InoutData data : curList) { if (InoutConstant.TYPE_IN.equals(data.getType())) { dto.setInSumNum(dto.getInSumNum() + 1); } if (InoutConstant.TYPE_OUT.equals(data.getType())) { dto.setOutSumNum(dto.getOutSumNum() + 1); } dto.setCompanyId(data.getCompanyId()); dto.setDeptId(data.getDeptId()); } } if (null != completeList) { for (InoutData data : completeList) { if (InoutConstant.TYPE_IN.equals(data.getType())) { dto.setInSumNum(dto.getInSumNum() + 1); dto.setInComplateNum(dto.getInComplateNum() + 1); } if (InoutConstant.TYPE_OUT.equals(data.getType())) { dto.setOutSumNum(dto.getOutSumNum() + 1); dto.setOutComplateNum(dto.getOutComplateNum() + 1); } dto.setCompanyId(data.getCompanyId()); dto.setDeptId(data.getDeptId()); } } // 调整封装 if (dto.getInSumNum() > 0) { dto.setPerInComplate(dto.getInComplateNum() / Double.valueOf(dto.getInSumNum())); dto.setPerInComplate(NumberUtil.keepPrecision( dto.getPerInComplate() * 100, 1)); } if (dto.getOutSumNum() > 0) { dto.setPerOutComplate(dto.getOutComplateNum() / Double.valueOf(dto.getOutSumNum())); dto.setPerOutComplate(NumberUtil.keepPrecision( dto.getPerOutComplate() * 100, 1)); } if (null == dto.getCompanyId()) { dto.setCompanyId(ContextUtil.getDefaultCompanyId()); } // 推送综合管理大屏 WebSocketPacket packet = new WebSocketPacket(); packet.setBizId("IN_OUT_SUMMARY"); packet.setCompanyId(dto.getCompanyId()); packet.setDeptId(dto.getDeptId()); packet.setBizType(BizType.SCREEN.getCode()); packet.setData(dto); WebSocketServer.sendByBizTag(packet); // 推送出入库大屏 dto.setCurList(curList); dto.setComplateList(completeList); packet.setBizType(BizType.SCREEN.getCode()); packet.setBizTag(WebSocketPacket.BIZ_TAG_SCREEN_INOUT); WebSocketServer.sendByBizTag(packet); // 推送化验大屏 packet.setBizType(BizType.SCREEN.getCode()); packet.setBizTag(WebSocketPacket.BIZ_TAG_SCREEN_CHECK); WebSocketServer.sendByBizTag(packet); return "出入库大屏数据推送完成!!"; } }