diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java index 321ae83..8e06df8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java @@ -10,6 +10,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -32,7 +33,8 @@ public class MesCutRawErrorProofingController { @ApiOperation(value = "扫描裁片工单/原材料条码") public ResultBean doScanSn(MesCutRawErrorProofingModel model) { try { - return ResultBean.success("扫描成功").setResultObject(cutRawErrorProofingService.doScanSn(model)); + MesCutRawErrorProofingModel result = cutRawErrorProofingService.doScanSn(model); + return ResultBean.success(StringUtils.isEmpty(result.getShowInfo()) ? "扫描成功" : result.getShowInfo()).setResultObject(result); } catch (ImppBusiException imppException) { return ResultBean.fail(imppException); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java index ea0862a..0b17b9b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesCutRawErrorProofingModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesCutUpdateRawLengthModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -70,9 +71,10 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN); result.setCutWorkOrderNo(workOrderCutDb.getCutWorkOrderNo()); result.setIsRedirect(CommonEnumUtil.FALSE); + result.setIsReset(CommonEnumUtil.FALSE); } else { - + result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN); // 校验条码有效性 String[] valueArray = model.getSn().split("\\|"); @@ -94,7 +96,7 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer Double length; - if (!workOrderCutMaterialMap.containsKey(partNo)) MesPcnException.throwMesBusiException("扫描条码【%s】物料【%s】不在裁片方案原材料中", model.getSn(), partNo); + if (!workOrderCutMaterialMap.containsKey(partNo)) MesPcnException.throwMesBusiException("扫描条码【%s】零件号【%s】不在裁片方案原材料中", model.getSn(), partNo); // 为 2 则为条码 DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); @@ -118,25 +120,36 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer materialSnDb.setSurplusLength(length); } - // 已扫描长度 + // 剩余需要扫描的长度 Double surplusLength = workOrderCutMaterial.getMaterialDosage() - workOrderCutMaterial.getScanLength(); if (surplusLength.compareTo(length) > 0) { materialSnDb.setSurplusLength(0.0); workOrderCutMaterial.setScanLength(workOrderCutMaterial.getScanLength() + length); result.setIsRedirect(CommonEnumUtil.FALSE); result.setShowInfo("长度不足,请继续扫描条码"); + result.setIsReset(CommonEnumUtil.FALSE); } else { materialSnDb.setSurplusLength(length - surplusLength); - // 已满足扫描总长度 修改工单状态为已校验原材料 - DdlPackBean packBean1 = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(model.getCutWorkOrderNo(), MesPcnExtConstWords.CUT_WORK_ORDER_NO, packBean); - MesWorkOrderCut workOrderCut = workOrderCutRepository.getByProperty(packBean1); - workOrderCut.setWorkOrderStatus(MesExtEnumUtil.CUT_ORDER_STATUS.CHECKED_RAW.getValue()); - ConvertBean.serviceModelUpdate(workOrderCut, model.getUserName()); - workOrderCutRepository.save(workOrderCut); - workOrderCutMaterial.setScanLength(workOrderCutMaterial.getMaterialDosage()); + boolean isUpdateWorkOrderCut = true; + + for (Map.Entry entry : workOrderCutMaterialMap.entrySet()) { + if (entry.getValue().getScanLength().compareTo(entry.getValue().getMaterialDosage()) != 0) isUpdateWorkOrderCut = false; + } + + // 所有原材料已满足扫描总长度 则修改工单状态为已校验原材料并告知前端可重置页面 + if (isUpdateWorkOrderCut) { + + workOrderCutRepository.updateByProperties( + new String[]{MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.CUT_WORK_ORDER_NO}, + new Object[]{CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), + CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), model.getOrganizeCode(), model.getCutWorkOrderNo()}, + new String[]{MesPcnExtConstWords.WORK_ORDER_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS}, + new Object[]{MesExtEnumUtil.CUT_ORDER_STATUS.CHECKED_RAW.getValue(), model.getUserName(), TimeTool.getNowTime(true)}); + + result.setIsReset(CommonEnumUtil.VALID); + } else result.setIsReset(CommonEnumUtil.FALSE); result.setIsRedirect(CommonEnumUtil.VALID); } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesCutRawErrorProofingModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesCutRawErrorProofingModel.java index 0a53790..3e8ee35 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesCutRawErrorProofingModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesCutRawErrorProofingModel.java @@ -18,6 +18,9 @@ public class MesCutRawErrorProofingModel { @ApiParam("是否跳转页面") private Integer isRedirect; + @ApiParam("是否重置") + private Integer isReset; + @ApiParam("工厂代码") private String organizeCode; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 30de409..3bfb46b 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -422,4 +422,6 @@ public class MesPcnExtConstWords { public static final String CUT_WORK_ORDER_NO = "cutWorkOrderNo"; // 条码 public static final String SN = "sn"; + //工单状态 + public static final String WORK_ORDER_STATUS = "workOrderStatus"; }