|
|
|
@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepServ
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesQueueOrderPushService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
@ -67,31 +68,37 @@ public class MesWorkOrderQueueSavePushStepService extends BaseStepService {
|
|
|
|
|
//获取上下文产出零件信息
|
|
|
|
|
List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
|
|
|
|
|
if (CollectionUtils.isEmpty(productionPartContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在产出零件信息,请重置工序解决!");
|
|
|
|
|
//获取上下文条码数据信息集合
|
|
|
|
|
List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean);
|
|
|
|
|
if (CollectionUtils.isEmpty(productionPsInContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在零件条码信息,请重置工序解决!");
|
|
|
|
|
|
|
|
|
|
//获取上下文推单队列信息
|
|
|
|
|
List<MesQueueOrderPush> queueOrderPushList = productionDispatchContextStepService.getSortQueuePushContext(reqBean);
|
|
|
|
|
if (CollectionUtils.isEmpty(productionPartContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在推单队列信息,请重置工序解决!");
|
|
|
|
|
if (!CollectionUtils.isEmpty(queueOrderPushList)) saveQueueOrderPush(reqBean, queueOrderPushList);
|
|
|
|
|
|
|
|
|
|
//修改推送队列信息状态为已完成
|
|
|
|
|
//写入队列信息,默认状态为已完成
|
|
|
|
|
productionPsInContextList.stream().filter(o -> null != o).forEach(o -> insertQueueOrder(reqBean, o, productionPartContextList));
|
|
|
|
|
|
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "保存工位队列成功!");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//修改推送队列信息状态为已完成
|
|
|
|
|
private void saveQueueOrderPush(StationRequestBean reqBean, List<MesQueueOrderPush> queueOrderPushList) {
|
|
|
|
|
List<Long> idList = queueOrderPushList.stream().filter(o -> null != o).map(MesQueueOrderPush::getId).collect(Collectors.toList());
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
|
|
|
|
|
if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.ID, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean);
|
|
|
|
|
queueOrderPushService.saveQueueOrderPushStatusByDdlPackBean(packBean, reqBean.getUserInfo(), MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue());
|
|
|
|
|
//写入队列信息,默认状态为已完成
|
|
|
|
|
queueOrderPushList.stream().filter(o -> null != o).forEach(o -> insertQueueOrder(reqBean, o, productionPartContextList));
|
|
|
|
|
|
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "保存工位队列成功!");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insertQueueOrder(StationRequestBean reqBean, MesQueueOrderPush queueOrderPush, List<MesProductionPartContext> productionPartContextList) {
|
|
|
|
|
Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o && o.getWorkOrderNo().equals(queueOrderPush.getWorkOrderNo()))).findFirst();
|
|
|
|
|
//写入队列信息,默认状态为已完成
|
|
|
|
|
private void insertQueueOrder(StationRequestBean reqBean, MesProductionPsInContext productionPsInContext, List<MesProductionPartContext> productionPartContextList) {
|
|
|
|
|
Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o && o.getWorkOrderNo().equals(productionPsInContext.getWorkOrderNo()))).findFirst();
|
|
|
|
|
MesQueueOrder queueOrder = new MesQueueOrder();
|
|
|
|
|
if (null != optional && optional.isPresent()) BeanUtils.copyProperties(optional.get(), queueOrder, MesPcnExtConstWords.BASE_BEAN_FIELDS);
|
|
|
|
|
BeanUtils.copyProperties(queueOrderPush, queueOrder, MesPcnExtConstWords.BASE_BEAN_FIELDS);
|
|
|
|
|
BeanUtils.copyProperties(productionPsInContext, queueOrder, MesPcnExtConstWords.BASE_BEAN_FIELDS);
|
|
|
|
|
queueOrder.setWorkCellCode(reqBean.getWorkCellCode());
|
|
|
|
|
queueOrder.setSerialNumber(queueOrderPush.getProductSn());
|
|
|
|
|
queueOrder.setStatus(MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue());
|
|
|
|
|
ConvertBean.serviceModelInitialize(queueOrder, reqBean.getUserInfo());
|
|
|
|
|
queueOrderRepository.insert(queueOrder);
|
|
|
|
|