编码规则 增加 参数 dataMap

tags/yfai-pcn-ext-v1.0
王杰 11 months ago
parent ed51c028ee
commit 6ab4f0f323

@ -67,14 +67,15 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
if (CollectionUtils.isEmpty(productionPsInContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无主条码信息,无需进行前道工艺防错验证!");
//验证是否存在自制件
if (!isExistProductSn(productionPsInContextList))
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前主条码信息均为外协件,无需进行前道工艺防错验证!");
Optional<MesProductionPsInContext> optional = productionPsInContextList.stream().filter(o -> (null != o &&
o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 && o.getIsCheckCraft().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)).findFirst();
if (null == optional || !optional.isPresent())
//验证工位是否设置需要前道防错
if (!isNeedCheckCraft(productionPsInContextList))
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置前道工艺防错,无需进行前道工艺防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//验证是否存在工艺强过码
//验证是否存在工艺强过码, 存在则保存 并返回强过的主条码
List<String> productSnList2Jump = doHandleCraftJumpCode(reqBean, productionPsInContextList);
if (!CollectionUtils.isEmpty(productSnList2Jump))
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(productSnList2Jump.toString()), stepResult, String.format("主条码%s跳过前道工艺防错验证成功!", productSnList2Jump.toString()));
@ -104,20 +105,33 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
}
//验证是否存在自制件
private Boolean isExistProductSn(List<MesProductionPsInContext> productionPsInContextList) {
Optional<MesProductionPsInContext> optional = productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).findFirst();
return (null == optional || !optional.isPresent()) ? false : true;
}
//验证工位是否设置需要前道防错
private Boolean isNeedCheckCraft(List<MesProductionPsInContext> productionPsInContextList) {
Optional<MesProductionPsInContext> optional = productionPsInContextList.stream().filter(o -> (null != o &&
o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 && o.getIsCheckCraft().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)).findFirst();
return (null == optional || !optional.isPresent()) ? false : true;
}
//查询工艺路线数据
private void doHandleProdCraftData(StationRequestBean reqBean, MesWorkCenter workCenter, String o, Map<String, List<MesCraftRouteDetail>> craftRouteDataMap) {
List<MesCraftRouteDetail> craftRouteDetailList = fsmRouteDataService.doHandleProdCraftData(reqBean, workCenter.getCenterType(), o);
if (!CollectionUtils.isEmpty(craftRouteDetailList)) craftRouteDataMap.put(o, craftRouteDetailList);
}
//验证是否存在工艺强过码, 存在则保存 获取进料主条码数据信息,并返回强过的主条码
//验证是否存在工艺强过码, 存在则保存 并返回强过的主条码
private List<String> doHandleCraftJumpCode(StationRequestBean reqBean, List<MesProductionPsInContext> productionPsInContextList) {
List<String> productSnList2Jump = null;
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
if (null == productionPsInContext || productionPsInContext.getIsCheckCraft().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPsInContext.getCraftJumpCode())) continue;
if (null == productionPsInContext || productionPsInContext.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPsInContext.getCraftJumpCode())) continue;
if (CollectionUtils.isEmpty(productSnList2Jump)) productSnList2Jump = new ArrayList<>();
@ -142,7 +156,7 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
if (null == productionPsInContext || StringUtils.isEmpty(productionPsInContext.getPartNo()) || productionPsInContext.getIsCheckCraft().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
if (null == productionPsInContext || StringUtils.isEmpty(productionPsInContext.getPartNo()) || productionPsInContext.getCheckCraftResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
//前道工艺防错验证
Boolean result = doProdCraftRouteCheck(reqBean, stepResult, productionProcessContext, workCenter, productionPsInContext, craftRouteDataMap.get(productionPsInContext.getPartNo()));
@ -157,7 +171,7 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
//保存进料主条码数据
productionDispatchContextStepService.saveProductionPsInContext(reqBean, productionPsInContextList);
if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(productSnList.toString()), "主条码前道工艺防错验证成功!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(productSnList.toString()), String.format("主条码%s前道工艺防错验证成功!", productSnList), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
else this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(productSnList.toString()), stepResult.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
}

Loading…
Cancel
Save