倒计时

tags/yfai-pcn-ext-v1.0
王杰 11 months ago
parent e1f5ed5610
commit b431a1cf03

@ -27,7 +27,10 @@ public interface IMesProductionProcessContextStepService {
@ApiOperation(value = "存储生产过程上下文对象【工步根据业务实际情况执行,配置错误等情况无需执行】") @ApiOperation(value = "存储生产过程上下文对象【工步根据业务实际情况执行,配置错误等情况无需执行】")
Boolean saveProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext); Boolean saveProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext);
@ApiOperation(value = "获取生产过程上下文对象") @ApiOperation(value = "获取生产过程上下文对象", notes = "非工步调用传false")
MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean, Boolean isCheckProcess);
@ApiOperation(value = "获取生产过程上下文对象", notes = "工步专用")
MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean); MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean);
@ApiOperation(value = "获取工序工艺信息") @ApiOperation(value = "获取工序工艺信息")
@ -40,7 +43,7 @@ public interface IMesProductionProcessContextStepService {
MesProductionProcessContext productionPwdContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext); MesProductionProcessContext productionPwdContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext);
@ApiOperation(value = "验证组织模型有效性") @ApiOperation(value = "验证组织模型有效性")
MesProductionProcessContext checkBaseData(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext); MesProductionProcessContext checkBaseData(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Boolean isCheckProcess);
@ApiOperation(value = "获取工位设备集合信息") @ApiOperation(value = "获取工位设备集合信息")
MesProductionProcessContext getCellEquipmentList(StationRequestBean reqBean); MesProductionProcessContext getCellEquipmentList(StationRequestBean reqBean);

@ -52,14 +52,11 @@ public class MesCountDownShowStepService extends BaseStepService {
if (reqBean.getDataMap().containsKey(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode())) reqBean.getDataMap().remove(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode()); if (reqBean.getDataMap().containsKey(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode())) reqBean.getDataMap().remove(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode());
//获取上下文信息 //获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getProductionProcessContext(reqBean); MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getProductionProcessContext(reqBean, false);
//获取生产过程上下文对象有异常信息 抛出异常 //获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) return stepResult.msg(productionProcessContext.getMessage()); if (!productionProcessContext.getSuccess()) return stepResult.msg(productionProcessContext.getMessage());
//存储生产过程上下文对象
productionProcessContextStepService.saveProductionProcessContext(reqBean, productionProcessContext);
//获取工位信息 //获取工位信息
MesWorkCell workCell = productionProcessContext.getWorkCell(); MesWorkCell workCell = productionProcessContext.getWorkCell();

@ -90,7 +90,7 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
if (CollectionUtils.isEmpty(craftRouteDataMap) || craftRouteDataMap.size() != partNoList.size()) { if (CollectionUtils.isEmpty(craftRouteDataMap) || craftRouteDataMap.size() != partNoList.size()) {
//剔除未验证的进料主条码后保存数据 //剔除未验证的进料主条码后保存数据
productionDispatchContextStepService.saveProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()) && o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0)).collect(Collectors.toList())); productionDispatchContextStepService.saveProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList()));
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("零件编码%s未匹配到产品工艺路线!", return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("零件编码%s未匹配到产品工艺路线!",
CollectionUtils.isEmpty(craftRouteDataMap) ? partNoList.toString() : partNoList.stream().filter(o -> (!StringUtils.isEmpty(o) && !craftRouteDataMap.containsKey(o))).collect(Collectors.toList()).toString())); CollectionUtils.isEmpty(craftRouteDataMap) ? partNoList.toString() : partNoList.stream().filter(o -> (!StringUtils.isEmpty(o) && !craftRouteDataMap.containsKey(o))).collect(Collectors.toList()).toString()));
} }

@ -11,7 +11,6 @@ import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
import cn.estsh.i3plus.platform.common.tool.MathOperation;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
@ -145,19 +144,6 @@ public class MesWorkOrderCheckStepService extends BaseStepService {
if (!workOrderDbList.get(0).getWorkCenterCode().equals(reqBean.getWorkCenterCode())) if (!workOrderDbList.get(0).getWorkCenterCode().equals(reqBean.getWorkCenterCode()))
return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息所属生产线[%s]与当前生产线[%s]不一致!", workOrderNo, workOrderDbList.get(0).getWorkCenterCode(), reqBean.getWorkCenterCode())); return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息所属生产线[%s]与当前生产线[%s]不一致!", workOrderNo, workOrderDbList.get(0).getWorkCenterCode(), reqBean.getWorkCenterCode()));
if ((StringUtils.isEmpty(workCenter.getIsCheckOrderQty()) || workCenter.getIsCheckOrderQty().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 ||
workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue()) == 0) &&
MathOperation.compareTo(MathOperation.add(workOrderDbList.get(0).getCompleteQty(), new Double(workOrderMap.get(workOrderDbList.get(0).getWorkOrderNo()).size())), workOrderList.get(0).getQty()) > 0)
return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息完成数量[%s]累加当前腔数量[%s]已超过计划数量[%s]!",
workOrderNo, workOrderDbList.get(0).getCompleteQty(), workOrderMap.get(workOrderDbList.get(0).getWorkOrderNo()).size(), workOrderList.get(0).getQty()));
if (!StringUtils.isEmpty(workCenter.getIsCheckOrderQty()) && workCenter.getIsCheckOrderQty().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 &&
workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue()) == 0 &&
MathOperation.compareTo(MathOperation.add(workOrderDbList.get(0).getReportedQty(), new Double(workOrderMap.get(workOrderDbList.get(0).getWorkOrderNo()).size())),
(MathOperation.mul(workOrderDbList.get(0).getQty(), MathOperation.div(MathOperation.add(workCenter.getOrderRate(), new Double(100)), new Double(100))))) >= 0)
return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息汇报数量[%s]累加当前腔数量[%s]已超过计划数量[%s]超工单比例[%s]!",
workOrderNo, workOrderDbList.get(0).getReportedQty(), workOrderMap.get(workOrderDbList.get(0).getWorkOrderNo()).size(), workOrderList.get(0).getQty(), workCenter.getOrderRate() + MesPcnExtConstWords.PERCENT));
} }
} }

@ -68,8 +68,29 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
//获取生产过程上下文对象 //获取生产过程上下文对象
@Override @Override
public MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean, Boolean isCheckProcess) {
MesProductionProcessContext productionProcessContext = getProductionProcessContextBaseData(reqBean, isCheckProcess);
//验证组织模型有效性
return checkBaseData(reqBean, productionProcessContext, isCheckProcess);
}
//获取生产过程上下文对象
@Override
public MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean) { public MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean) {
MesProductionProcessContext productionProcessContext = getProductionProcessContextBaseData(reqBean, true);
//验证组织模型有效性
return checkBaseData(reqBean, productionProcessContext, true);
}
//获取生产过程上下文对象
private MesProductionProcessContext getProductionProcessContextBaseData(StationRequestBean reqBean, Boolean isCheckProcess) {
//获取缓存的生产过程上下文对象 //获取缓存的生产过程上下文对象
MesProductionProcessContext productionProcessContext = (MesProductionProcessContext) getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.BASE_DATA_CONTEXT, MesProductionProcessContext.class); MesProductionProcessContext productionProcessContext = (MesProductionProcessContext) getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.BASE_DATA_CONTEXT, MesProductionProcessContext.class);
@ -85,15 +106,15 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
if (StringUtils.isEmpty(productionProcessContext.getWorkCellJson())) productionProcessContext.workCellJson(prodOrgExtService.getWorkCellDb(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); if (StringUtils.isEmpty(productionProcessContext.getWorkCellJson())) productionProcessContext.workCellJson(prodOrgExtService.getWorkCellDb(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//生产过程上下文对象赋值工序工艺信息 //生产过程上下文对象赋值工序工艺信息
if (StringUtils.isEmpty(productionProcessContext.getProcessCode()) || !productionProcessContext.getProcessCode().equals(reqBean.getProcessCode())) processContext(reqBean, productionProcessContext); if (isCheckProcess && (StringUtils.isEmpty(productionProcessContext.getProcessCode()) || !productionProcessContext.getProcessCode().equals(reqBean.getProcessCode()))) processContext(reqBean, productionProcessContext);
//生产过程上下文对象赋值生产过程控制全局密码 //生产过程上下文对象赋值生产过程控制全局密码
if (StringUtils.isEmpty(productionProcessContext.getFinishCode()) || StringUtils.isEmpty(productionProcessContext.getCraftJumpCode()) || StringUtils.isEmpty(productionProcessContext.getAssemblySkipCode())) productionPwdContext(reqBean, productionProcessContext); if (StringUtils.isEmpty(productionProcessContext.getFinishCode()) || StringUtils.isEmpty(productionProcessContext.getCraftJumpCode()) || StringUtils.isEmpty(productionProcessContext.getAssemblySkipCode())) productionPwdContext(reqBean, productionProcessContext);
//验证组织模型有效性 return productionProcessContext;
return checkBaseData(reqBean, productionProcessContext);
} }
//获取工序工艺信息 //获取工序工艺信息
@Override @Override
public MesProductionProcessContext processContext(StationRequestBean reqBean) { public MesProductionProcessContext processContext(StationRequestBean reqBean) {
@ -130,7 +151,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
//验证组织模型有效性 //验证组织模型有效性
@Override @Override
public MesProductionProcessContext checkBaseData(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) { public MesProductionProcessContext checkBaseData(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Boolean isCheckProcess) {
if (StringUtils.isEmpty(productionProcessContext.getWorkCenterJson())) return productionProcessContext.message(String.format("请检查组织模型生产线[%s]信息的有效性!", reqBean.getWorkCenterCode())); if (StringUtils.isEmpty(productionProcessContext.getWorkCenterJson())) return productionProcessContext.message(String.format("请检查组织模型生产线[%s]信息的有效性!", reqBean.getWorkCenterCode()));
@ -138,7 +159,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
if (StringUtils.isEmpty(productionProcessContext.getWorkCellJson())) return productionProcessContext.message(String.format("请检查组织模型生产线[%s]工位[%s]信息的有效性!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); if (StringUtils.isEmpty(productionProcessContext.getWorkCellJson())) return productionProcessContext.message(String.format("请检查组织模型生产线[%s]工位[%s]信息的有效性!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
if (StringUtils.isEmpty(productionProcessContext.getProcessCode())) return productionProcessContext.message(String.format("请检查工序信息,生产线[%s]工位[%s]对应工序代码[%s]的有效性!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode())); if (isCheckProcess && StringUtils.isEmpty(productionProcessContext.getProcessCode())) return productionProcessContext.message(String.format("请检查工序信息,生产线[%s]工位[%s]对应工序代码[%s]的有效性!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode()));
return productionProcessContext; return productionProcessContext;

Loading…
Cancel
Save