diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesReworkTaskService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesReworkTaskService.java index 8a78ff0..090521f 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesReworkTaskService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesReworkTaskService.java @@ -39,7 +39,7 @@ public interface IMesReworkTaskService { void doAssemblySnRepeat(MesReworkTaskRequestModel requestModel); - void reworkSuccess(MesReworkTaskRequestModel requestModel); + void doReworkSuccess(MesReworkTaskRequestModel requestModel); MesProduceSnPrintModel doPrint(MesReworkTaskRequestModel requestModel); diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesJisShippingService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesJisShippingService.java index 3aebb98..cfc5ab7 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesJisShippingService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesJisShippingService.java @@ -17,5 +17,5 @@ import java.util.List; public interface IMesJisShippingService { @ApiOperation(value = "构筑发运报工数据") - List getJisShipping(MesShippingOrderManagement orderManagement, List orderManagementDetailList, String org); + List getJisShipping(MesShippingOrderManagement orderManagement, List orderManagementDetailList,String userName); } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnPrintService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnPrintService.java index 1ce8025..c0967f4 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnPrintService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnPrintService.java @@ -2,8 +2,11 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly; import io.swagger.annotations.ApiOperation; +import java.util.List; + public interface IMesProduceSnPrintService { @ApiOperation(value = "查询包装信息") @@ -14,4 +17,7 @@ public interface IMesProduceSnPrintService { @ApiOperation(value = "打印") MesProduceSnPrintModel doPrint(MesProduceSnPrintModel mesProduceSnPrintModel); + + @ApiOperation(value = "装配件查询") + List findMesProductionAssembly(MesProductionAssembly mesProductionAssembly); } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java index 1626c33..04fcafd 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java @@ -1,11 +1,14 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel; +import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; import io.swagger.annotations.ApiOperation; +import java.util.List; + /** * @Description : * @Reference : @@ -27,6 +30,9 @@ public interface IMesSortShippingCheckService { @ApiOperation(value = "查询发运单-自动推单") MesShippingOrderManagement queryShippingOrderNoByAutoPushOrder(String shippingGroupNo, String org); + @ApiOperation("保存发运数据") + List getMesJisShippings(MesShippingOrderManagement mesShippingOrderManagement,String userName); + void update(MesShippingOrderManagement item); void updateDetail(MesShippingOrderManagementDetail item); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java index 3b6e679..ed0ac1f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnPrintService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; +import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -97,4 +98,20 @@ public class MesProduceSnPrintController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + @GetMapping("/mes-production-assembly/find") + @ApiOperation(value = "装配件查询") + public ResultBean findMesProductionAssembly(MesProductionAssembly mesProductionAssembly) { + try { + ValidatorBean.checkNotNull(mesProductionAssembly.getAssemblySn(), "装配件条码条码不能为空"); + ValidatorBean.checkNotNull(mesProductionAssembly.getOrganizeCode(), "工厂代码不能为空"); + return ResultBean.success("查询成功") + .setMsg(String.format("装配件【%s】条码查询成功!!!", mesProductionAssembly.getAssemblySn())) + .setResultList(mesProduceSnPrintService.findMesProductionAssembly(mesProductionAssembly)); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesReworkTaskController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesReworkTaskController.java index 33e1321..97d3b31 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesReworkTaskController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesReworkTaskController.java @@ -148,11 +148,11 @@ public class MesReworkTaskController { @PostMapping("/reworkSuccess") @ApiOperation(value = "返工成功") - public ResultBean reworkSuccess(@RequestBody MesReworkTaskRequestModel requestModel) { + public ResultBean doReworkSuccess(@RequestBody MesReworkTaskRequestModel requestModel) { // 数据校验 //ValidatorBean.checkNotNull(requestModel.getSn(), "条码不能为空"); try { - mesReworkTaskService.reworkSuccess(requestModel); + mesReworkTaskService.doReworkSuccess(requestModel); return ResultBean.success("返工成功"); } catch (ImppBusiException imppException) { return ResultBean.fail(imppException); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java index cb15499..2104a06 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java @@ -62,7 +62,7 @@ public class MesSortShippingCheckController { // 数据校验 ValidatorBean.checkNotNull(shippingOrderManagement.getShippingCode(), "发运单不能为空"); shippingOrderManagement.setOrganizeCode(organizeCode); - ConvertBean.serviceModelUpdate(shippingOrderManagement,!StringUtils.isEmpty(shippingOrderManagement.getModifyUser()) ? shippingOrderManagement.getModifyUser() : AuthUtil.getSessionUser().getUserName()); + ConvertBean.serviceModelUpdate(shippingOrderManagement, userInfo); MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement); return ResultBean.success("查询成功").setResultObject(model); } catch (ImppBusiException imppException) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java index b571944..a82f7af 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java @@ -130,6 +130,9 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { @Autowired private IMesProductVersionService mesProductVersionService; + @Autowired + private MesQmsScrapRepository mesQmsScrapRepository; + @Override public ListPager queryReworkTask(MesReworkTask mesReworkTask, Pager pager) { String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode(); @@ -252,7 +255,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { } @Override - public void reworkSuccess(MesReworkTaskRequestModel requestModel) { + public void doReworkSuccess(MesReworkTaskRequestModel requestModel) { MesReworkTask mesReworkTask = getMesReworkTask(requestModel); /** @@ -262,13 +265,27 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { if (!CollectionUtils.isEmpty(reworkTaskDetails)) { MesPcnException.throwFlowException("还有位置未返工完成,请检查"); } + MesPartInspection mesPartInspection = null; + if (!StringUtils.isEmpty(mesReworkTask.getId())){ + DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean); + mesPartInspection = mesPartInspectionRepository.getByProperty(packBean); + if (!StringUtils.isEmpty(mesReworkTask.getId())){ + if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){ + mesPartInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.DISASSEMBLY.getValue()); + } + mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName()); + mesPartInspectionRepository.update(mesPartInspection); + } + } if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue() == mesReworkTask.getType()) { mesReworkTask.setReworkedQty(requestModel.getReworkedQty()); mesReworkTask.setScrapQty(requestModel.getScrapQty()); } else { //拆解 if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){ - doAssemblyDisassembly(requestModel, mesReworkTask.getSn()); + doAssemblyDisassembly(requestModel, mesReworkTask.getSn(),Objects.isNull(mesPartInspection)?"":mesPartInspection.getResponsibleParty()); } if (MesExtEnumUtil.NC_TYPE.REWORK.getValue() == requestModel.getType()) { @@ -284,16 +301,6 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { mesReworkTask.setStatus(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue()); ConvertBean.serviceModelUpdate(mesReworkTask,requestModel.getUserName()); mesReworkTaskRepository.save(mesReworkTask); - if (!StringUtils.isEmpty(mesReworkTask.getId())){ - DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean); - MesPartInspection mesPartInspection = mesPartInspectionRepository.getByProperty(packBean); - if (!StringUtils.isEmpty(mesReworkTask.getId())){ - mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName()); - mesPartInspectionRepository.update(mesPartInspection); - } - } } @Override @@ -333,7 +340,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { snList.add(sn); mesProduceSnPrintModel.getMesProduceSnList().addAll(snList); //发送新老条码关系给WMS - createMove(requestModel.getSn(),sn.getProductSn(),organizeCode,requestModel.getUserName()); + doCreateMove(requestModel.getSn(),sn.getProductSn(),organizeCode,requestModel.getUserName()); //更新条码 ConvertBean.serviceModelUpdate(sn,requestModel.getUserName()); mesProduceSnRepository.update(sn); @@ -556,15 +563,17 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { public void recursionAssemblySnTree(List assemblyTree, MesReworkTaskRequestModel requestModel,long pid) { for (MesProductionAssemblyModel assembly : assemblyTree) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(assembly.getAssemblySn(), "productSn", packBean); - DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean); - DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(), "assemblyStatus", packBean); - List mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean); assembly.setPid(pid); - if (!CollectionUtils.isEmpty(mesProductionAssemblies)) { - assembly.setChildren(parseArray(mesProductionAssemblies)); - recursionAssemblySnTree(assembly.getChildren(), requestModel, assembly.getId()); + if(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_10.getValue() == assembly.getMatchType() && !StringUtils.isEmpty(assembly.getAssemblySn())){ + DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(assembly.getAssemblySn(), "productSn", packBean); + DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(), "assemblyStatus", packBean); + List mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean); + if (!CollectionUtils.isEmpty(mesProductionAssemblies)) { + assembly.setChildren(parseArray(mesProductionAssemblies)); + recursionAssemblySnTree(assembly.getChildren(), requestModel, assembly.getId()); + } } } } @@ -603,14 +612,16 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { mesProduceSnRepository.update(oldProduceSn); } - private void doAssemblyDisassembly(MesReworkTaskRequestModel requestModel, String productSn) { + private void doAssemblyDisassembly(MesReworkTaskRequestModel requestModel, String productSn,String responsibleParty) { + //报废目标库位 + String destLocateNo = getDestLocateNo(requestModel.getOrganizeCode(), productSn); //总成拆解 - doProductReportReversal(requestModel,productSn); + doProductReportReversal(requestModel,productSn,destLocateNo); //装配件数据处理 - recursionCheck(requestModel.getAssemblyModelList(), requestModel.getOrganizeCode(), requestModel.getUserName(),mesConfigService.getCfgValue(requestModel.getOrganizeCode(), MesPcnExtConstWords.DISASSEMBLY_DEST_LOCATE)); + doRecursionCheck(requestModel.getAssemblyModelList(), requestModel.getOrganizeCode(), requestModel.getUserName(),destLocateNo,responsibleParty); } - private void doProductReportReversal(MesReworkTaskRequestModel requestModel, String productSn) { + private void doProductReportReversal(MesReworkTaskRequestModel requestModel, String productSn,String locateNo) { //更新条码状态为总成拆解 MesProduceSn produceSnDb = getMesProduceSn(requestModel.getOrganizeCode(), productSn); produceSnDb.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY_DISASSEMBLY.getValue()); @@ -632,7 +643,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { mesWorkOrderService.doProductReportReversal(mesWorkOrderDb,productVersion, requestModel.getUserName()); //移库 requestModel.setSn(produceSnDb.getProductSn()); - createMove(requestModel,getDestLocateNo(requestModel.getOrganizeCode(), produceSnDb.getProductSn()),productVersion.getReceiveInventoryPoint(),mesWorkOrderDb.getErpWorkCenter(),mesWorkOrderDb.getPartNo()); + doCreateMove(requestModel,locateNo,productVersion.getReceiveInventoryPoint(),mesWorkOrderDb.getErpWorkCenter(),mesWorkOrderDb.getPartNo()); } private MesProductVersion getProductVersion(MesWorkOrder mesWorkOrderDb) { @@ -643,7 +654,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { return mesProductVersion; } - public void recursionCheck(List assemblyModelList,String organizeCode,String userName,String destLocate){ + public void doRecursionCheck(List assemblyModelList,String organizeCode,String userName,String destLocate,String responsibleParty){ for (MesProductionAssemblyModel assemblyModel : assemblyModelList) { //勾选 if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) { @@ -652,10 +663,16 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { updateOldSn(organizeCode,assemblyModel.getAssemblySn(), userName, MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue()); } //对于已勾选报废的子件,对于有零件号的项,产生移库(产线的材料库位->报废库(系统参数配置))。移库数量为报废时的明细数量; - createMove(getMesWorkCenter(organizeCode, assemblyModel.getWorkCenterCode()),destLocate, assemblyModel,userName); + if(!StringUtils.isEmpty(assemblyModel.getAssemblyPartNo())){ + //移库 + doCreateMove(getMesWorkCenter(organizeCode, assemblyModel.getWorkCenterCode()),destLocate, assemblyModel,userName); + //报废 + doCreateScrap(assemblyModel,userName,responsibleParty,organizeCode); + } + //循环处理数据 if(!CollectionUtils.isEmpty(assemblyModel.getChildren())){ - recursionCheck(assemblyModel.getChildren(),organizeCode,userName,destLocate); + doRecursionCheck(assemblyModel.getChildren(),organizeCode,userName,destLocate,responsibleParty); } } else if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) { //装配解绑 @@ -754,7 +771,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { private MesWorkCenter getMesWorkCenter(String organizeCode, String workCenterCode) { MesWorkCenter workCenterDb = prodOrgExtService.getWorkCenterDb(organizeCode,workCenterCode); - if(Objects.isNull(workCenterDb)) MesPcnException.throwFlowException("产线【%s】信息不存在", workCenterCode); + if(Objects.isNull(workCenterDb)) MesPcnException.throwFlowException(String.format("产线【%s】信息不存在", workCenterCode)); return workCenterDb; } @@ -835,7 +852,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { mesProduceSnRepository.update(produceSn); } - private MesMove createMove(String oldSn, String sn, String organizeCode, String userName) { + private MesMove doCreateMove(String oldSn, String sn, String organizeCode, String userName) { MesMove move = new MesMove(); move.setOrganizeCode(organizeCode); move.setFactoryCode(organizeCode); @@ -848,7 +865,23 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { return moveRepository.insert(move); } - private void createMove(MesWorkCenter mesWorkCenter, String destLocate, MesProductionAssemblyModel assemblyModel,String userName) { + private void doCreateScrap(MesProductionAssemblyModel assemblyModel,String userName,String responsibleParty,String organizeCode) { + //新增一条数据到报废表中 + MesQmsScrap mesQmsScrap = new MesQmsScrap(); + mesQmsScrap.setOrganizeCode(organizeCode); + mesQmsScrap.setAsnNo(""); + mesQmsScrap.setSource("MES"); + mesQmsScrap.setRejectQty(assemblyModel.getScrapQty().intValue()); + mesQmsScrap.setPartNo(assemblyModel.getAssemblyPartNo()); + mesQmsScrap.setPartName(assemblyModel.getAssemblyPartName()); + mesQmsScrap.setDefectTypeName("拆解报废"); + mesQmsScrap.setReponsibilityId(responsibleParty); + mesQmsScrap.setNcJudger(userName); + ConvertBean.serviceModelInitialize(mesQmsScrap, userName); + mesQmsScrapRepository.insert(mesQmsScrap); + } + + private void doCreateMove(MesWorkCenter mesWorkCenter, String destLocate, MesProductionAssemblyModel assemblyModel,String userName) { MesMove move = new MesMove(); move.setMatnr(assemblyModel.getAssemblyPartNo()); move.setOrganizeCode(mesWorkCenter.getOrganizeCode()); @@ -865,7 +898,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { moveRepository.insert(move); } - private void createMove(MesReworkTaskRequestModel requestModel,String srcLocate, String destLocate,String workCenterCode,String partNo) { + private void doCreateMove(MesReworkTaskRequestModel requestModel,String srcLocate, String destLocate,String workCenterCode,String partNo) { MesPartSap mesPartSap = mesPartService.getMesPartSapByPartNo(partNo, requestModel.getOrganizeCode()); MesMove move = new MesMove(); move.setMatnr(mesPartSap.getPartNo()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.java similarity index 77% rename from modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java rename to modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.java index f14cd5d..94cc0b0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.java @@ -10,7 +10,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; -import cn.estsh.impp.framework.boot.auth.AuthUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -30,7 +29,7 @@ import java.util.UUID; **/ @Service @Slf4j -public class MesJisShippingService implements IMesJisShippingService { +public class MesJisShippingServiceImpl implements IMesJisShippingService { @Autowired private IMesPartShippingGroupService mesPartShippingGroupService; @@ -38,8 +37,10 @@ public class MesJisShippingService implements IMesJisShippingService { @Autowired private IMesConfigService configService; - public List getJisShipping(MesShippingOrderManagement orderManagement, List orderManagementDetailList, String org) { - MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(org, orderManagement.getShippingGroupCode()); + public List getJisShipping(MesShippingOrderManagement orderManagement, List orderManagementDetailList,String userName) { + MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode()); + String warerhouse = mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WARERHOUSE") : mesPartShippingGroup.getSrcWarerhouse(); + String erpWarehous = configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WAREHOUS"); List jisShippingList = new ArrayList<>(); orderManagementDetailList.forEach(k -> { MesJisShipping jisShipping = new MesJisShipping(); @@ -47,8 +48,8 @@ public class MesJisShippingService implements IMesJisShippingService { BeanUtils.copyProperties(k, jisShipping, "id"); jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode()); jisShipping.setShippingTime(TimeTool.getNowTime(true)); - jisShipping.setErpWarerhouse(mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(org, "ERP_WARERHOUSE"): mesPartShippingGroup.getSrcWarerhouse()); - jisShipping.setErpWarehous(configService.getCfgValue(org, "ERP_WAREHOUS")); + jisShipping.setErpWarerhouse(warerhouse); + jisShipping.setErpWarehous(erpWarehous); jisShipping.setDock(orderManagement.getSendDockCode()); jisShipping.setCusCode(orderManagement.getCustCode()); jisShipping.setCusDock(orderManagement.getCustDockCode()); @@ -59,7 +60,7 @@ public class MesJisShippingService implements IMesJisShippingService { jisShipping.setShippingOrderCode(orderManagement.getShippingCode()); jisShipping.setFid(UUID.randomUUID().toString()); jisShipping.setSystemSyncStatus(CommonEnumUtil.FALSE); - ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName()); + ConvertBean.serviceModelInitialize(jisShipping, userName); jisShippingList.add(jisShipping); }); 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 05764d7..bbf41be 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 @@ -68,6 +68,8 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { @Autowired private MesCustomerPartRepository mesCustomerPartRDao; + @Autowired + private MesProductionAssemblyRepository mesProductionAssemblyRepository; @Autowired private IConfigService configService; @@ -216,4 +218,21 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean); return mesCustomerPart; } + + @Override + public List findMesProductionAssembly(MesProductionAssembly requestModel) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(requestModel.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(requestModel.getAssemblySn(), "assemblySn", packBean); + if (!StringUtils.isEmpty(requestModel.getPartNo())) { + DdlPreparedPack.getStringEqualPack(requestModel.getPartNo(), "partNo", packBean); + } + if (!StringUtils.isEmpty(requestModel.getAssemblyPartNo())) { + DdlPreparedPack.getStringEqualPack(requestModel.getAssemblyPartNo(), "assemblyPartNo", packBean); + } + List mesProductionAssemblies = mesProductionAssemblyRepository.findByHqlWhere(packBean); + if (CollectionUtils.isEmpty(mesProductionAssemblies)) { + MesPcnException.throwMesBusiException("扫描的装配件条码【%s】条码不存在,请扫描其他的装配件!!!",requestModel.getAssemblySn()); + } + return mesProductionAssemblies; + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 5c2ddcd..36e9902 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java @@ -1,7 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesShippingLoadingCheckService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesSortShippingCheckService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.aspect.MonitorLog; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesShippingLoadingCheckModel; @@ -11,6 +11,7 @@ import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail; @@ -48,21 +49,23 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS @Autowired private MesShippingOrderManagementDetailRepository shippingOrderManagementDetailRepository; @Autowired - private MesProduceSnRepository produceSnRepository; - @Autowired - private IMesJisShippingService jisShippingService; - @Autowired private MesJisShippingRepository jisShippingRepository; @Autowired private MesPartShippingGroupService mesPartShippingGroupService; + @Autowired + private IMesSortShippingCheckService mesSortShippingCheckService; + + @Override public MesShippingLoadingCheckModel doLoadingOrderNoQuery(MesLoadingList loadingList) { //校验装车单 MesLoadingList loadingListResult = checkLoadingList(loadingList.getOrderCode(), loadingList.getOrganizeCode(),loadingList.getIsPass(),loadingList.getModifyUser()); - + if(Objects.isNull(loadingListResult)){ + return null; + } //若生成装车单,则一定有装车单明细 DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(loadingListResult.getId(), "pid", orderDetailPackBean); @@ -141,7 +144,8 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //MesLoadingList loadingList = checkLoadingList(model.getOrderCode(), organizeCode,model.getIsPass(),userInfo); //根据扫描的发运单以及前端传的发运单明细,进行匹配,若没有找到扫描的发运单,则提示扫描的发运单号不在此装车单中,请检查数据!。 - if(!Objects.isNull(model.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == model.getIsPass()){ + //1 跳过 + if(!Objects.isNull(model.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,model.getIsPass())){ Optional loadingListDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).findFirst(); if(loadingListDetailOptional.isPresent()){ MesLoadingListDetail loadingListDetail = loadingListDetailOptional.get(); @@ -222,12 +226,8 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS vehiclesOrderDetailList.forEach(k -> { if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == k.getStatus()){ k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.PUBLISHED.getValue()); // todo 不改变为发运状态 - }else if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue() == k.getStatus()){ - //关闭发运单明细 - closeOrder(loadingList, k, userInfo); } k.setSystemSyncStatus(CommonEnumUtil.FALSE); -// k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); todo 不改变为发运状态 ConvertBean.serviceModelUpdate(k, userInfo); }); @@ -259,10 +259,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS loadingListDetail.setStatus(status); //根据是否启动记忆判断 若启用记忆,则根据保存数据库 if (Objects.equals(loadingList.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)) { - //关闭跳过的单据 - if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue() == status){ - closeOrder(loadingList, loadingListDetail, userName); - } //若装车单状态为创建或发布已生成ASN 则写入开始扫描时间 if (loadingList.getStatus() == MesExtEnumUtil.MES_LOADING_STATUS.CREATE.getValue() || loadingList.getStatus() == MesExtEnumUtil.MES_LOADING_STATUS.PUBLISH.getValue() || @@ -279,18 +275,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS } } - private void closeOrder(MesLoadingList loadingList, MesLoadingListDetail loadingListDetail, String userName) { - //关闭发运单明细 -// List idList = new ArrayList<>(); -// idList.add(loadingList.getId()); -// List mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(),idList); -// if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){ -// closeShippingOrderDetails(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.SHIP_PASS, mesShippingOrderManagementList.stream().filter(t-> loadingListDetail.getShippingCode().equals(t.getShippingCode())).map(MesShippingOrderManagement::getId).collect(Collectors.toList())); -// } -// //关闭发运单 -// closeShippingOrder(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.SHIP_PASS, mesShippingOrderManagementList.stream().filter(t-> loadingListDetail.getShippingCode().equals(t.getShippingCode())).map(MesShippingOrderManagement::getId).collect(Collectors.toList())); - } - private MesPartShippingGroup getMesPartShippingGroup(String org, String partShippingGroupCode) { MesPartShippingGroup shippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(org, partShippingGroupCode); if(Objects.isNull(shippingGroup)){ @@ -326,6 +310,17 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS MesExtEnumUtil.MES_LOADING_STATUS.CREATE_ASN.getDescription(), MesExtEnumUtil.MES_LOADING_STATUS.LOADING.getDescription())); } + //跳过 + if (Objects.equals(MesPcnExtConstWords.THREE, isPass)) { + //跳过的单据和明细,系统默认是完成的 + loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue()); + loadingList.setRemark(MesPcnExtConstWords.SHIP_PASS); + ConvertBean.serviceModelUpdate(loadingList, userName); + vehiclesOrderRepository.update(loadingList); + //明细跳过 + updateLoadingList(loadingList, userName); + return null; + } //增加发运顺序卡控,查询是否存在小于当前装车单对应的seq,且发运状态在(“创建”,“已确认”,“已生成ASN”,“装车中”)的装车单数据 List loadingListStatusList = new ArrayList<>(); loadingListStatusList.add(MesExtEnumUtil.MES_LOADING_STATUS.CREATE.getValue()); @@ -333,7 +328,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS loadingListStatusList.add(MesExtEnumUtil.MES_LOADING_STATUS.CREATE_ASN.getValue()); loadingListStatusList.add(MesExtEnumUtil.MES_LOADING_STATUS.LOADING.getValue()); List statusList = new ArrayList<>(); - statusList.add(MesExtEnumUtil.MES_LOADING_STATUS.LOADING.getValue()); statusList.add(MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue()); statusList.add(MesExtEnumUtil.MES_LOADING_STATUS.ASN.getValue()); //最后一个扫描完成的装车单信息 @@ -352,14 +346,11 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS DdlPreparedPack.getInPackList(loadingListStatusList, "status", orderPackBean); boolean exit = vehiclesOrderRepository.isExitByHql(orderPackBean); if (exit) { - //强过 - if((!Objects.isNull(isPass) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == isPass)){ - //updateLoadingListClose(loadingListStatusList,loadingList,userName); - DdlPackBean packBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(loadingList.getId(), "id",packBean); - vehiclesOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","remark"}, - new Object[]{userName, TimeTool.getNowTime(true),MesPcnExtConstWords.STRONGER_PASS}, packBean); - + //1强过 + if((!Objects.isNull(isPass) && Objects.equals(MesPcnExtConstWords.ONE,isPass))) { + loadingList.setRemark(MesPcnExtConstWords.STRONGER_PASS); + ConvertBean.serviceModelUpdate(loadingList,userName); + vehiclesOrderRepository.update(loadingList); }else { throw new ImppBusiException(String.format("【%s】装车单对应排序【%s】前存在未扫描发运的装车单,请检查数据!", orderCode, loadingList.getSeq())); @@ -385,68 +376,61 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS vehiclesOrderDetailRepository.update(item); } - - private void updateLoadingListClose(List loadingListStatusList,MesLoadingList loadingList,String userName){ - List mesLoadingList = getMesLoadingListList(loadingListStatusList, loadingList); - if(CollectionUtils.isEmpty(mesLoadingList)) return; - List idList = mesLoadingList.stream().map(MesLoadingList::getId).distinct().collect(Collectors.toList()); + private void updateLoadingList(MesLoadingList loadingList, String userName) { + List mesLoadingListDetailList = getMesLoadingListList(loadingList.getId(), loadingList.getOrganizeCode()); + if (CollectionUtils.isEmpty(mesLoadingListDetailList)) return; + List shippingCodeList = mesLoadingListDetailList.stream().map(MesLoadingListDetail::getShippingCode).distinct().collect(Collectors.toList()); //关闭装发运单明细 - List mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), idList); - if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){ - closeShippingOrderDetails(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.STRONGER_PASS, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList())); + List mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), shippingCodeList); + if (!CollectionUtils.isEmpty(mesShippingOrderManagementList)) { + //发送数据给wms + for (MesShippingOrderManagement mesShippingOrderManagement : mesShippingOrderManagementList) { + jisShippingRepository.saveAll(mesSortShippingCheckService.getMesJisShippings(mesShippingOrderManagement, userName)); + } + //关闭发运单明细 + closeShippingOrderDetails(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList())); } //关闭发运单 - closeShippingOrder(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.STRONGER_PASS, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList())); - //关闭装车单明细 - closeLoadingDetails(loadingList.getOrganizeCode(), userName, idList); - //关闭装车单 - closeLoadingOrder(loadingList.getOrganizeCode(), userName, idList); + closeShippingOrder(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList())); + //明细跳过 + updateLoadingDetails(loadingList.getOrganizeCode(), userName, loadingList.getId()); } - private void closeShippingOrderDetails(String organizeCode, String userName,String remark, List idList) { - if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return; + private void closeShippingOrderDetails(String organizeCode, String userName, List idList) { + if (CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "pid",packBean); - shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),remark}, packBean); + DdlPreparedPack.getInPackList(idList, "pid", packBean); + shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean); } - private List getMesShippingOrderManagementList(String organizeCode, List idList) { + private List getMesShippingOrderManagementList(String organizeCode, List shippingCodeList) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList,"loadingListId",packBean); + DdlPreparedPack.getInPackList(shippingCodeList, "shippingCode", packBean); return shippingOrderManagementRepository.findByHqlWhere(packBean); } - private void closeShippingOrder(String organizeCode, String userName,String remark, List idList) { - if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return; + private void closeShippingOrder(String organizeCode, String userName, List idList) { + if (CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "id",packBean); - shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue(),remark}, packBean); + DdlPreparedPack.getInPackList(idList, "id", packBean); + shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean); } - private void closeLoadingDetails(String organizeCode, String userName, List idList) { - if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return; + private List getMesLoadingListList(long id, String organizeCode) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "pid",packBean); - vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean); + DdlPreparedPack.getNumEqualPack(id, "pid", packBean); + DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(), "status", packBean); + return vehiclesOrderDetailRepository.findByHqlWhere(packBean); } - private void closeLoadingOrder(String organizeCode, String userName, List idList) { - if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return; + private void updateLoadingDetails(String organizeCode, String userName, long id) { + if (StringUtil.isEmptyAndNull(id) || StringUtils.isEmpty(organizeCode)) return; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "id",packBean); - vehiclesOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.MES_LOADING_STATUS.CLOSED.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean); - } - - private List getMesLoadingListList(List loadingListStatusList, MesLoadingList loadingList) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode()); - DdlPreparedPack.getStringSmallerNotEqualPack(loadingList.getSeq(), "seq", packBean); - DdlPreparedPack.getStringEqualPack(loadingList.getPartShippingGroupCode(),"partShippingGroupCode",packBean); - DdlPreparedPack.getInPackList(loadingListStatusList, "status", packBean); - return vehiclesOrderRepository.findByHqlWhere(packBean); + DdlPreparedPack.getNumEqualPack(id, "pid", packBean); + vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 2a127ee..3b094c5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -98,6 +98,17 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService MesExtEnumUtil.SHIPPING_ORDER_STATUS.valueOfDescription(orderManagement.getStatus()), MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getDescription(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription())); } + //跳过 + if (Objects.equals(MesPcnExtConstWords.THREE, shippingOrderManagement.getIsPass())) { + //跳过的单据和明细,系统默认是完成的 + orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()); + orderManagement.setRemark(MesPcnExtConstWords.SHIP_PASS); + ConvertBean.serviceModelUpdate(orderManagement, shippingOrderManagement.getModifyUser()); + vehiclesOrderRepository.update(orderManagement); + //明细跳过 + updateShippingOrderDetails(orderManagement.getOrganizeCode(), shippingOrderManagement.getModifyUser(), orderManagement.getId()); + return null; + } //校验发运单扫描顺序 List statusForCheckList = new ArrayList<>(); @@ -106,8 +117,6 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService statusForCheckList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue()); statusForCheckList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.PRINTED.getValue()); List status = new ArrayList<>(); - status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue()); - status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.PRINTED.getValue()); status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()); status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.LOADING.getValue()); status.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.STATISTICSING.getValue()); @@ -129,12 +138,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService DdlPreparedPack.getInPackList(statusForCheckList, "status", orderManagementPackBean); boolean exists = shippingOrderManagementRepository.isExitByHql(orderManagementPackBean); if (exists) { - if((!Objects.isNull(shippingOrderManagement.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == shippingOrderManagement.getIsPass())){ - //updateLoadingListClose(statusForCheckList,orderManagement,shippingOrderManagement.getModifyUser()); - DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "id",packBean); - shippingOrderManagementRepository.updateByProperties(new String[]{"forceFlag","modifyUser", "modifyDatetime","remark"}, - new Object[]{MesPcnExtConstWords.STRONGER_PASS,shippingOrderManagement.getModifyUser(), TimeTool.getNowTime(true),MesPcnExtConstWords.STRONGER_PASS}, packBean); + //1强过 + if((!Objects.isNull(shippingOrderManagement.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,shippingOrderManagement.getIsPass()))){ + orderManagement.setRemark(MesPcnExtConstWords.STRONGER_PASS); + ConvertBean.serviceModelUpdate(orderManagement,shippingOrderManagement.getModifyUser()); + vehiclesOrderRepository.update(orderManagement); }else{ throw new ImppBusiException(String.format("【%s】发运单对应排序【%s】前存在未扫描发运的发运单,请检查数据!", orderManagement.getShippingCode(), orderManagement.getSeq())); @@ -143,20 +151,20 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据! if (Objects.equals(orderManagement.getIsLoading(), MesCommonConstant.TRUE_INTEGER)) { - - if (StringUtils.isEmpty(orderManagement.getOrderCode()) ) { + //查询装车单明细 + DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean); + MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean); + if(Objects.isNull(listDetail)){ throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没绑定装车单号,请检查数据!", shippingOrderManagement.getShippingCode())); } - - - DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderManagement.getOrderCode(), "orderCode", orderDetailPackBean); - MesLoadingList loadingList = listRepository.getByProperty(orderDetailPackBean); - if (StringUtils.isEmpty(loadingList)) { + packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean); + MesLoadingList loadingList = listRepository.getByProperty(packBean); + if(Objects.isNull(loadingList)){ throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode())); } - //判断是否先装车 if (Objects.equals(orderManagement.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { @@ -215,7 +223,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, orderManagement.getShippingGroupCode()); //根据条码找到对应的物料号,若物料号一致,则修改扫描flg,将flg改为true. //根据扫描的发运单以及前端传的发运单明细,进行匹配,若没有找到扫描的发运单,则提示扫描的发运单号不在此装车单中,请检查数据!。 - if(!Objects.isNull(model.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == model.getIsPass()){ + //1 跳过 + if(!Objects.isNull(model.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,model.getIsPass())){ Optional shippingOrderManagementDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).findFirst(); if(shippingOrderManagementDetailOptional.isPresent()){ MesShippingOrderManagementDetail mesShippingOrderManagementDetail = shippingOrderManagementDetailOptional.get(); @@ -551,7 +560,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } if(StringUtils.isEmpty(orderManagement.getOrderCode()) || StringUtils.isEmpty(orderManagement.getLoadingListId())){ //保存当前发运单明细报工 - jisShippingRepository.saveAll(getMesJisShippings(organizeCode, orderManagement)); + jisShippingRepository.saveAll(getMesJisShippings(orderManagement,userInfo)); }else{ //查询装车单明细 DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode); @@ -570,7 +579,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService List shippingOrderManagementList = shippingOrderManagementRepository.findByHqlWhere(jisBean); for (MesShippingOrderManagement mesShippingOrderManagement : shippingOrderManagementList) { //保存当前发运单明细报工 - jisShippingRepository.saveAll(getMesJisShippings(organizeCode, mesShippingOrderManagement)); + jisShippingRepository.saveAll(getMesJisShippings(mesShippingOrderManagement,userInfo)); } if(!StringUtil.isEmpty(vehiclesOrderDetail)){ @@ -587,12 +596,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } - private List getMesJisShippings(String organizeCode, MesShippingOrderManagement mesShippingOrderManagement) { - DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(organizeCode); + public List getMesJisShippings(MesShippingOrderManagement mesShippingOrderManagement,String userName) { + DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(mesShippingOrderManagement.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(mesShippingOrderManagement.getId(), "pid", detailPackBean); List shippingOrderManagementDetails = shippingOrderManagementDetailRepository.findByHqlWhere(detailPackBean); //当前装车单所有发运单明细 需要报工的数据 - return jisShippingService.getJisShipping(mesShippingOrderManagement, shippingOrderManagementDetails, organizeCode); + return jisShippingService.getJisShipping(mesShippingOrderManagement, shippingOrderManagementDetails,userName); } @Override @@ -607,48 +616,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService shippingOrderManagementDetailRepository.update(item); } - private void updateLoadingListClose(List loadingListStatusList,MesShippingOrderManagement orderManagement,String userName){ - List mesShippingOrderManagementList = getMesLoadingListList(loadingListStatusList, orderManagement); - if(CollectionUtils.isEmpty(mesShippingOrderManagementList)) return; - List idList = mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).distinct().collect(Collectors.toList()); - //关闭发运单明细 - closeShippingOrderDetails(orderManagement.getOrganizeCode(), userName, idList); - //关闭发运单 - closeShippingOrder(orderManagement.getOrganizeCode(), userName, idList); - //更新装车单明细 - updateLoadingDetails(orderManagement.getOrganizeCode(), userName, idList); - } - - private List getMesLoadingListList(List statusForCheckList, MesShippingOrderManagement orderManagement) { - if(StringUtils.isEmpty(orderManagement.getShippingGroupCode()) || StringUtils.isEmpty(orderManagement.getSeq())) return null; - DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); - DdlPreparedPack.getNumberSmallerPack(orderManagement.getSeq(), "seq", packBean); - DdlPreparedPack.getStringEqualPack(orderManagement.getShippingGroupCode(),"shippingGroupCode",packBean); - DdlPreparedPack.getInPackList(statusForCheckList, "status", packBean); - return shippingOrderManagementRepository.findByHqlWhere(packBean); - } - - private void closeShippingOrderDetails(String organizeCode, String userName, List idList) { - if(CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return; + private void updateShippingOrderDetails(String organizeCode, String userName, long id) { + if(StringUtils.isEmpty(id) || StringUtils.isEmpty(organizeCode)) return; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "pid",packBean); + DdlPreparedPack.getNumEqualPack(id, "pid",packBean); shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(), MesPcnExtConstWords.STRONGER_PASS}, packBean); - } - - private void closeShippingOrder(String organizeCode, String userName, List idList) { - if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return; - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "id",packBean); - shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean); - } - - private void updateLoadingDetails(String organizeCode, String userName, List idList) { - if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return; - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, "shippingId",packBean); - vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean); + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean); } } 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 f7aac35..c8f9f8b 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 @@ -296,6 +296,8 @@ public class MesPcnExtConstWords { public static final Integer ZERO = 0; // 1 public static final Integer ONE = 1; + // 3 + public static final Integer THREE = 3; // 中括号 public static final String SQUARE_BRACKETS = "[]"; // & diff --git a/pom.xml b/pom.xml index 300c220..8a4dcfd 100644 --- a/pom.xml +++ b/pom.xml @@ -29,12 +29,12 @@ INFO true UTF-8 - + 1.0.1-YZ 1.0.0-yfai 1.0.0.1-patch - 1.0.0-yfai + 1.0.1-yfai 2.17.1