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<String> {
|
|
private List<InoutData> curList;
|
private List<InoutData> completeList;
|
|
private String deptId;
|
|
public List<InoutData> getCurList() {
|
return curList;
|
}
|
|
public void setCurList(List<InoutData> curList) {
|
this.curList = curList;
|
}
|
|
public List<InoutData> getCompleteList() {
|
return completeList;
|
}
|
|
public void setCompleteList(List<InoutData> completeList) {
|
this.completeList = completeList;
|
}
|
|
public void setDeptId(String deptId) {
|
this.deptId = deptId;
|
}
|
|
public String getDeptId() {
|
return deptId;
|
}
|
|
public NotifyScreenTask() {
|
super();
|
}
|
|
|
public NotifyScreenTask(List<InoutData> curList,
|
List<InoutData> 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 "出入库大屏数据推送完成!!";
|
}
|
}
|