|
|
@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesQueueOrderPushService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesQueueOrderPushService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService;
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService;
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService;
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService;
|
|
|
@ -11,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPushCellCfg;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPushCellCfg;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
|
|
@ -21,10 +23,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -40,6 +39,9 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements
|
|
|
|
private IMesQueueOrderPushService queueOrderPushService;
|
|
|
|
private IMesQueueOrderPushService queueOrderPushService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IMesWorkOrderExtService workOrderExtService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private IMesEnumExtService enumExtService;
|
|
|
|
private IMesEnumExtService enumExtService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -69,7 +71,8 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements
|
|
|
|
resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue());
|
|
|
|
resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue());
|
|
|
|
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue());
|
|
|
|
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
if (BUSI_TYPE.TWO.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap);
|
|
|
|
//新增
|
|
|
|
|
|
|
|
if (BUSI_TYPE.TWO.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) insertQueueOrderPush(reqBean, resultBean, buttonDynamicModel, resultMap, paramMap);
|
|
|
|
else if (BUSI_TYPE.THREE.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap);
|
|
|
|
else if (BUSI_TYPE.THREE.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap);
|
|
|
|
else queryQueueOrderPush(reqBean, resultMap, paramMap);
|
|
|
|
else queryQueueOrderPush(reqBean, resultMap, paramMap);
|
|
|
|
|
|
|
|
|
|
|
@ -82,7 +85,8 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Object queryQueueOrderPush(StationRequestBean reqBean, Map<String, Object> resultMap, Map<String, String> paramMap) {
|
|
|
|
//查询
|
|
|
|
|
|
|
|
private Map<String, Object> queryQueueOrderPush(StationRequestBean reqBean, Map<String, Object> resultMap, Map<String, String> paramMap) {
|
|
|
|
|
|
|
|
|
|
|
|
Pager pager = new Pager();
|
|
|
|
Pager pager = new Pager();
|
|
|
|
pager.setCurrentPage(paramMap.containsKey(MesPcnExtConstWords.CURRENT_PAGE) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.CURRENT_PAGE)) : MesPcnExtConstWords.ONE);
|
|
|
|
pager.setCurrentPage(paramMap.containsKey(MesPcnExtConstWords.CURRENT_PAGE) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.CURRENT_PAGE)) : MesPcnExtConstWords.ONE);
|
|
|
@ -90,7 +94,7 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements
|
|
|
|
|
|
|
|
|
|
|
|
resultMap.put(MesPcnExtConstWords.QUEUE_STATUS, enumExtService.doGetMesEnumByEnumName(reqBean.getOrganizeCode(), MesExtEnumUtil.QUEUE_ORDER_STATUS.class.getSimpleName()));
|
|
|
|
resultMap.put(MesPcnExtConstWords.QUEUE_STATUS, enumExtService.doGetMesEnumByEnumName(reqBean.getOrganizeCode(), MesExtEnumUtil.QUEUE_ORDER_STATUS.class.getSimpleName()));
|
|
|
|
|
|
|
|
|
|
|
|
//处理排序线推单上下文, 返回推送工位类型对应的配置信息 【来源工位】
|
|
|
|
//处理排序线推单上下文, 返回推送工位类型对应的配置信息 【目标工位】
|
|
|
|
List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList = productionProcessContextStepService.dispatchQueueOrderPushCellCfgContext(reqBean, MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getValue());
|
|
|
|
List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList = productionProcessContextStepService.dispatchQueueOrderPushCellCfgContext(reqBean, MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getValue());
|
|
|
|
List<String> pushSourceCodeList = (queueOrderPushCellCfgList.stream()
|
|
|
|
List<String> pushSourceCodeList = (queueOrderPushCellCfgList.stream()
|
|
|
|
.filter(o -> (null != o && !StringUtils.isEmpty(o.getPushSourceCode()))).map(MesQueueOrderPushCellCfg::getPushSourceCode).collect(Collectors.toList())
|
|
|
|
.filter(o -> (null != o && !StringUtils.isEmpty(o.getPushSourceCode()))).map(MesQueueOrderPushCellCfg::getPushSourceCode).collect(Collectors.toList())
|
|
|
@ -110,8 +114,40 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//新增
|
|
|
|
|
|
|
|
private Map<String, Object> insertQueueOrderPush(StationRequestBean reqBean, StationResultBean resultBean,
|
|
|
|
|
|
|
|
ButtonDynamicModel buttonDynamicModel, Map<String, Object> resultMap, Map<String, String> paramMap) {
|
|
|
|
|
|
|
|
if (!paramMap.containsKey(MesPcnExtConstWords.PUSH_SOURCE_CODE)) {
|
|
|
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请选择推送来源代码!", buttonDynamicModel.getButtonName()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!paramMap.containsKey(MesPcnExtConstWords.PROCESS_SEQ)) {
|
|
|
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请输入工艺顺序号!", buttonDynamicModel.getButtonName()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!paramMap.containsKey(MesPcnExtConstWords.WORK_ORDER_NO)) {
|
|
|
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请扫描加工单或客户条码!", buttonDynamicModel.getButtonName()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//处理排序线推单上下文, 返回推送工位类型对应的配置信息 【目标工位】
|
|
|
|
|
|
|
|
List<MesQueueOrderPushCellCfg> queueOrderPushCellCfg = productionProcessContextStepService.dispatchQueueOrderPushCellCfgContext(reqBean, MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getValue());
|
|
|
|
|
|
|
|
Optional<MesQueueOrderPushCellCfg> optional = CollectionUtils.isEmpty(queueOrderPushCellCfg) ? null :
|
|
|
|
|
|
|
|
queueOrderPushCellCfg.stream().filter(o -> (null != o && o.getPushSourceCode().equals(paramMap.get(MesPcnExtConstWords.PUSH_SOURCE_CODE)))).findFirst();
|
|
|
|
|
|
|
|
if (null == optional || !optional.isPresent()) {
|
|
|
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:当前工位未配置推送来源代码[%s]推送工位类型[%s]的配置信息!",
|
|
|
|
|
|
|
|
buttonDynamicModel.getButtonName(), paramMap.get(MesPcnExtConstWords.PUSH_SOURCE_CODE), MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getDescription()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//根据工单或者客户条码 查询生产工单信息(排序)
|
|
|
|
|
|
|
|
MesWorkOrder workOrder = (MesWorkOrder) workOrderExtService.getWorkOrderSort(reqBean.getOrganizeCode(), paramMap.get(MesPcnExtConstWords.WORK_ORDER_NO), true);
|
|
|
|
|
|
|
|
if (null == workOrder) {
|
|
|
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:根据扫描信息[%s]未匹配到有效的加工单!", buttonDynamicModel.getButtonName(), paramMap.get(MesPcnExtConstWords.WORK_ORDER_NO)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//返回提示信息
|
|
|
|
//返回提示信息
|
|
|
|
private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, Object> resultMap, String message) {
|
|
|
|
private Map<String, Object> packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, Object> resultMap, String message) {
|
|
|
|
this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
|
|
|
this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
|
|
|
resultMap.put(MesPcnExtConstWords.MESSAGE, message);
|
|
|
|
resultMap.put(MesPcnExtConstWords.MESSAGE, message);
|
|
|
|
return resultMap;
|
|
|
|
return resultMap;
|
|
|
|