diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java index e5de1c4..6bccefa 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java @@ -114,8 +114,8 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus()))); } //校验条码是否匹配 - if (!Objects.equals(detail.getBarcode(), workOrder.getSn())) { - throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", model.getSn(), workOrder.getSn(), detail.getBarcode())); + if (!Objects.equals(detail.getBarcode(), workOrder.getCustSn())) { + throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", model.getSn(), workOrder.getCustSn(), detail.getBarcode())); } //校验零件是否匹配 if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java index e7f29ad..38866a5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java @@ -146,8 +146,8 @@ public class MesProductSnPrintNosortStepService extends BaseStepService { DdlPackBean packBean = DdlPackBean.getDdlPackBean(outSn.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(outSn.getId(), MesPcnExtConstWords.ID, packBean); mesProduceSnRao.updateByProperties( - new String[]{MesPcnExtConstWords.PRINT_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, - new Object[]{MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue(), reqBean.getUserInfo(), TimeTool.getNowTime(true)}, packBean); + new String[]{MesPcnExtConstWords.PRINT_STATUS, "printCount", MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, + new Object[]{MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue(), MesPcnExtConstWords.ONE, reqBean.getUserInfo(), TimeTool.getNowTime(true)}, packBean); } //保存打印条码记录 snLogRao.saveAll(snLogList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java index c80c4b0..b2b0f9b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java @@ -95,7 +95,7 @@ public class MesProductSnSaveStepService extends BaseStepService { MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); MesWorkCell workCell = productionProcessContext.getWorkCell(); - productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> o.copy(saveProduceSnData(reqBean, resultBean, productionProcessContext, o, partMap, prodShiftContext, productResult, workCenter, workCell))); + productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> saveProduceSnData(reqBean, resultBean, productionProcessContext, o, partMap, prodShiftContext, productResult, workCenter, workCell)); //保存上下文产出条码数据信息集合 productionDispatchContextStepService.dispatchProductionPsOutContext(reqBean, productionPsOutContextList); @@ -104,7 +104,7 @@ public class MesProductSnSaveStepService extends BaseStepService { } - private MesProduceSn saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, + private MesProductionPsOutContext saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, Map partMap, MesProdShiftContext prodShiftContext, String productResult, MesWorkCenter workCenter, MesWorkCell workCell) { //根据零件条码ID查询零件条码信息 @@ -112,46 +112,59 @@ public class MesProductSnSaveStepService extends BaseStepService { if (null == produceSn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件条码信息,产出零件条码[%s]ID[%s]信息不存在!", productionPsOutContext.getProductSn(), productionPsOutContext.getId())); + log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- PS:{} {} --- ID:{} --- QURERY:{}", + reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), + StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), produceSn.getProductSn(), produceSn.getPartNo(), produceSn.getId(), JSONObject.toJSONString(produceSn)); + //零件信息 MesPart part = partMap.get(produceSn.getPartNo()); - produceSn.setAreaCode(reqBean.getAreaCode()); - produceSn.setWorkCenterCode(reqBean.getWorkCenterCode()); - produceSn.setWorkCellCode(reqBean.getWorkCellCode()); + productionPsOutContext.setAreaCode(reqBean.getAreaCode()); + productionPsOutContext.setWorkCenterCode(reqBean.getWorkCenterCode()); + productionPsOutContext.setWorkCellCode(reqBean.getWorkCellCode()); - produceSn.setRouteCode(reqBean.getRouteCode()); - produceSn.setProcessCode(reqBean.getProcessCode()); - produceSn.setCraftCode(productionProcessContext.getCraftCode()); + productionPsOutContext.setRouteCode(reqBean.getRouteCode()); + productionPsOutContext.setProcessCode(reqBean.getProcessCode()); + productionPsOutContext.setCraftCode(productionProcessContext.getCraftCode()); - produceSn.setQcStatus(!StringUtils.isEmpty(productResult) ? Integer.valueOf(productResult) : MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); + productionPsOutContext.setQcStatus(!StringUtils.isEmpty(productResult) ? Integer.valueOf(productResult) : MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); - produceSn.setShiftCode(prodShiftContext.getShiftCode()); - produceSn.setShiftGroup(prodShiftContext.getShiftGroup()); + productionPsOutContext.setShiftCode(prodShiftContext.getShiftCode()); + productionPsOutContext.setShiftGroup(prodShiftContext.getShiftGroup()); - produceSn.setProcessLabelTemplate(part.getProcessLabelTemplate()); - produceSn.setProdLabelTemplate(part.getProductLabelTemplate()); - produceSn.setCustLabelTemplate(part.getCustLabelTemplate()); + productionPsOutContext.setProcessLabelTemplate(part.getProcessLabelTemplate()); + productionPsOutContext.setProdLabelTemplate(part.getProductLabelTemplate()); + productionPsOutContext.setCustLabelTemplate(part.getCustLabelTemplate()); - ConvertBean.serviceModelUpdate(produceSn, reqBean.getUserInfo()); - produceSn.setLotNo(produceSn.getModifyDatetime().substring(0, 10)); - if (StringUtils.isEmpty(produceSn.getInWorkCenterTime())) produceSn.setInWorkCenterTime(produceSn.getModifyDatetime()); + ConvertBean.serviceModelUpdate(productionPsOutContext, reqBean.getUserInfo()); + productionPsOutContext.setLotNo(productionPsOutContext.getModifyDatetime().substring(0, 10)); + + if (StringUtils.isEmpty(productionPsOutContext.getInWorkCenterTime())) productionPsOutContext.setInWorkCenterTime(productionPsOutContext.getModifyDatetime()); //非排序 或者 排序的末道工位 if (workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue()) == 0 || (!StringUtils.isEmpty(workCell.getIsEndWorkCell()) && workCell.getIsEndWorkCell().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)) { - produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); - produceSn.setOutWorkCenterTime(produceSn.getModifyDatetime()); + productionPsOutContext.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); + productionPsOutContext.setOutWorkCenterTime(productionPsOutContext.getModifyDatetime()); } else { - produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.PROCESSING.getValue()); + productionPsOutContext.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.PROCESSING.getValue()); } - produceSnExtService.update(produceSn); - - log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- MesProductionPsOutContext:{} --- MesProduceSn:{}", + produceSnRepository.updateByProperties( + new String[]{"id", "organizeCode"}, + new Object[]{produceSn.getId(), reqBean.getOrganizeCode()}, + new String[]{"areaCode", "workCenterCode", "workCellCode", "routeCode", "processCode", "craftCode", + "snStatus", "qcStatus", "shiftCode", "shiftGroup", "processLabelTemplate", "prodLabelTemplate", + "custLabelTemplate", "modifyDatetime", "modifyUser", "inWorkCenterTime", "outWorkCenterTime", "lotNo"}, + new Object[]{productionPsOutContext.getAreaCode(), productionPsOutContext.getWorkCenterCode(), productionPsOutContext.getWorkCellCode(), productionPsOutContext.getRouteCode(), productionPsOutContext.getProcessCode(), productionPsOutContext.getCraftCode(), + productionPsOutContext.getSnStatus(), productionPsOutContext.getQcStatus(), productionPsOutContext.getShiftCode(), productionPsOutContext.getShiftGroup(), productionPsOutContext.getProcessLabelTemplate(), productionPsOutContext.getProdLabelTemplate(), + productionPsOutContext.getCustLabelTemplate(), productionPsOutContext.getModifyDatetime(), productionPsOutContext.getModifyUser(), productionPsOutContext.getInWorkCenterTime(), productionPsOutContext.getOutWorkCenterTime(), productionPsOutContext.getLotNo()}); + + log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- PS:{} {} --- ID:{} --- UPDATE:{}", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), - StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), JSONObject.toJSONString(productionPsOutContext), JSONObject.toJSONString(produceSn)); + StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), productionPsOutContext.getProductSn(), productionPsOutContext.getPartNo(), productionPsOutContext.getId(), JSONObject.toJSONString(productionPsOutContext)); - return produceSn; + return productionPsOutContext; }