diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index 29f8d73..8890000 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -257,7 +257,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue(), org); if (model.getOptType() != null && model.getOptType() == 2) { - partInspection .setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + partInspection.setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); } partInspectionRepository.save(partInspection); @@ -360,6 +360,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (StringUtils.isEmpty(model.getPartInspection())) { partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), org); + + if (model.getOptType() != null && model.getOptType() == 2) { + partInspection.setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } + model.setPartInspection(partInspectionRepository.save(partInspection)); List defectTypeNoExitList = new ArrayList<>(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java index fad1d30..a283d0a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java @@ -201,6 +201,8 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { resultModel.getMesProduceSnList().forEach(mesProduceSn -> { mesProduceSn.setWorkCenterCode(workCenterCode); + mesProduceSn.setPrintCount(MesPcnExtConstWords.ONE); + mesProduceSn.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); mesProduceSn.setFid(UUID.randomUUID().toString()); //保存条码 mesProduceSnRDao.insert(mesProduceSn); 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..bf2384e 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; }