From de3cc8bac32d751da94b3078d205c1349362da3f Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Wed, 30 Oct 2024 11:52:37 +0800 Subject: [PATCH 1/4] =?UTF-8?q?BTO=E5=8D=95=E7=94=9F=E6=88=90bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesCustSoftInfoService.java | 3 ++ .../apiservice/controller/busi/TestController.java | 15 +++++++--- .../mes/apiservice/schedulejob/MesQmsScrapJob.java | 8 +++-- .../serviceimpl/base/MesBtoJobServiceImpl.java | 35 ++++++++++++++++++---- .../base/MesCustSoftInfoServiceImpl.java | 17 ++++++++++- .../serviceimpl/base/MesQmsScrapService.java | 9 ++++-- .../base/roundness/MesTimeRoundnessService.java | 22 +++++++++++++- 7 files changed, 94 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustSoftInfoService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustSoftInfoService.java index c3a2dbd..c79833c 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustSoftInfoService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustSoftInfoService.java @@ -24,9 +24,12 @@ public interface IMesCustSoftInfoService extends IBaseMesService queryCustSortInfoList(String custCode,String custOrganizeCode,String infoPointCode,String organizeCode,List custPartNoList); + List queryAllCustSortInfoList(String organizeCode); /** * 更新custSortInfo * @param custSortInfo */ void updateCustSortInfo(MesCustSortInfo custSortInfo); + + void updateMsgCustSortInfo(MesCustSortInfo custSortInfo); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java index 52024b2..3f074ff 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java @@ -1,9 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.busi; -import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesAccountJob; -import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesDowntimeRecordJob; -import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesGenerateAccountJob; -import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesWorkOrderUpdateQtyJob; +import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.*; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -27,6 +24,9 @@ public class TestController { @Autowired private MesDowntimeRecordJob mesDowntimeRecordJob; + @Autowired + private MesQmsScrapJob mesQmsScrapJob; + @GetMapping("/reportOrder") @ApiOperation(value = "报工") public void reportOrder() { @@ -51,4 +51,11 @@ public class TestController { public void mesDowntimeRecordJob() { mesDowntimeRecordJob.executeMesJob(null, null); } + + + @GetMapping("/mesQmsScrap") + @ApiOperation(value = "mesQmsScrap") + public void mesQmsScrap() { + mesQmsScrapJob.executeMesJob(null, null); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsScrapJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsScrapJob.java index f6d52bd..cf5764f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsScrapJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsScrapJob.java @@ -20,6 +20,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; @@ -35,6 +36,7 @@ import java.util.List; **/ @DisallowConcurrentExecution @ApiOperation("MES_QMS报废品汇总Job") +@Service public class MesQmsScrapJob extends BaseMesScheduleJob { public static final Logger LOGGER = LoggerFactory.getLogger(MesQmsScrapJob.class); @@ -74,17 +76,19 @@ public class MesQmsScrapJob extends BaseMesScheduleJob { DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), "inspectionStatus", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue(), "ncStatus", packBean); //查同步标识为3的数据,如果接口映射同步,则更新为1 - DdlPreparedPack.getNumEqualPack(3, "systemSyncStatus", packBean); + DdlPreparedPack.getNumNOEqualPack(1, "systemSyncStatus", packBean); DdlPreparedPack.timeBuilder( new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(), 1)) + " 00:00:00", TimeTool.getToday() + " 00:00:00", "createDatetime", packBean, true); List mesPartInspectionList = partInspectionRepository.findByHqlWhere(packBean); if (!CollectionUtils.isEmpty(mesPartInspectionList)) { + LOGGER.info("一共需要汇总{}条报废数据2", mesPartInspectionList.size()); + qmsScrapService.doQmsScrapByPartInspection(mesPartInspectionList, organizeCode); for (MesPartInspection mesPartInspection : mesPartInspectionList) { - mesPartInspection.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + mesPartInspection.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); // ConvertBean.serviceModelUpdate(mesPartInspection, MesExtConstWords.JOB); } partInspectionRepository.saveAll(mesPartInspectionList); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java index 34b01de..2eee721 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java @@ -2,17 +2,18 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesBtoJobService; import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy; +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; 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.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint; -import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup; -import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail; -import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupWindowTime; +import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesCustSortInfo; +import cn.estsh.i3plus.pojo.mes.repository.MesCustSoftInfoRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupWindowTimeRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -41,7 +42,8 @@ public class MesBtoJobServiceImpl implements IMesBtoJobService { @Autowired private MesCustSoftInfoServiceImpl mesCustSoftInfoService; - + @Autowired + private MesCustSoftInfoRepository mesCustSoftInfoRepository; @Autowired private MesPartProdGroupWindowTimeRepository windowTimeRao; @@ -49,6 +51,9 @@ public class MesBtoJobServiceImpl implements IMesBtoJobService { public void doCreateBto(String organizeCode, List groupCodeList) { //1. 根据 organizeCode 和 groupCodeList 查询零件生产组 List mesPartProdGroups = mesPartProdGroupService.findMesPartProdGroups(organizeCode, groupCodeList); + // 初始找原因 + updateCustsort(organizeCode, mesPartProdGroups); + for (MesPartProdGroup prodGroup : mesPartProdGroups) { //2. 根据生产组的infoPointCode 获取 过点信息MES_CUSTOMER_MESSAGE_POINT MesCustomerMessagePoint messagePoint = mesCustomerMessagePointService.getPointByCode(prodGroup.getCustInfoPoint(),organizeCode); @@ -61,6 +66,9 @@ public class MesBtoJobServiceImpl implements IMesBtoJobService { List custPartNoList = details.stream().map(MesPartProdGroupDetail::getCustPartNo).collect(Collectors.toList()); List sortInfoList = mesCustSoftInfoService.queryCustSortInfoList(prodGroup.getCustCode(), prodGroup.getCustOrganizeCode(), prodGroup.getCustInfoPoint(), organizeCode, custPartNoList); + // List allSortInfoList = mesCustSoftInfoService.queryAllCustSortInfoList(organizeCode); + + //6. 根据零件生产组的RoundnessType 去做策略,现在只做 窗口时间 策略; 入参 String roundnessService = MesExtEnumUtil.SHIPPING_GROUP_ROUND_METHOD.valueOfService(prodGroup.getRoundMethod()); if (sortInfoList.isEmpty()){ @@ -85,6 +93,23 @@ public class MesBtoJobServiceImpl implements IMesBtoJobService { } } + private void updateCustsort(String organizeCode, List mesPartProdGroups) { + List allDetails = new ArrayList<>(); + for (MesPartProdGroup prodGroup : mesPartProdGroups) { + List details = mesPartProdGroupService.findDetailByCode(prodGroup.getPartProdGroupCode(), organizeCode); + allDetails.addAll(details); + } + List allCustPartNoList = allDetails.stream().map(MesPartProdGroupDetail::getCustPartNo).distinct().collect(Collectors.toList()); + List allCustSortInfoList = mesCustSoftInfoService.queryAllCustSortInfoList(organizeCode); + for (MesCustSortInfo mesCustSortInfo : allCustSortInfoList) { + if (!allCustPartNoList.contains(mesCustSortInfo.getCustPartNo())) { + String msg = String.format("客户零件号:%s,零件号:%s,未配置零件生产组明细", mesCustSortInfo.getCustPartNo(), mesCustSortInfo.getErpPartNo()); + mesCustSortInfo.setDescription(msg); + } + } + mesCustSoftInfoRepository.saveAll(allCustSortInfoList); + } + /** * 排序信息不复用的时候 * @param infoPointCode diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustSoftInfoServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustSoftInfoServiceImpl.java index 710c9ce..0bd8fba 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustSoftInfoServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustSoftInfoServiceImpl.java @@ -33,10 +33,25 @@ public class MesCustSoftInfoServiceImpl extends BaseMesService } @Override + public List queryAllCustSortInfoList(String organizeCode) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"serviceFlag", ddlPackBean); + return baseRDao.findByHqlWhere(ddlPackBean); + } + + @Override public void updateCustSortInfo(MesCustSortInfo custSortInfo) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(custSortInfo.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(custSortInfo.getId(),"id",ddlPackBean); - baseRDao.updateByProperties(new String[]{"serviceFlag","modifyUser","modifyDatetime"},new Object[]{CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"edi", TimeTool.getNowTime(true)},ddlPackBean); + baseRDao.updateByPropertiesNoSync(new String[]{"serviceFlag","modifyUser","modifyDatetime"},new Object[]{CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"edi", TimeTool.getNowTime(true)},ddlPackBean); + + } + + @Override + public void updateMsgCustSortInfo(MesCustSortInfo custSortInfo) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(custSortInfo.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(custSortInfo.getId(),"id",ddlPackBean); + baseRDao.updateByProperties(new String[]{"description","modifyUser","modifyDatetime"},new Object[]{custSortInfo.getDescription(),"edi", TimeTool.getNowTime(true)},ddlPackBean); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsScrapService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsScrapService.java index 3cc719c..3561149 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsScrapService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsScrapService.java @@ -46,6 +46,9 @@ public class MesQmsScrapService extends BaseMesService implements I //43326 电子化检验,发送给QMS的数据,按照零件号+责任人类型分组发送 Map> workOrderPartMap = mesPartInspectionList.stream().collect(Collectors.groupingBy(p -> p.getPartNo() +"="+p.getResponsibleParty())); //根据物料对可疑品分组 + List qmsScrapList = new ArrayList<>(); + log.info("一共需要汇总{}条报废数据2", workOrderPartMap.size()); + for (Map.Entry> stringListEntry : workOrderPartMap.entrySet()) { String keyPartNo = stringListEntry.getKey().split("=")[0]; List mesPartInspections = stringListEntry.getValue(); @@ -69,8 +72,10 @@ public class MesQmsScrapService extends BaseMesService implements I mesQmsScrap.setReponsibilityId(next.getResponsibleParty()); mesQmsScrap.setNcJudger(next.getModifyUser()); ConvertBean.serviceModelInitialize(mesQmsScrap, "MesScrapJob"); - - baseRDao.insert(mesQmsScrap); + qmsScrapList.add(mesQmsScrap); } + log.info("一共需要汇总{}条报废数据3", qmsScrapList.size()); + baseRDao.saveAll(qmsScrapList); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesTimeRoundnessService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesTimeRoundnessService.java index 6cb8d85..c6277c1 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesTimeRoundnessService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesTimeRoundnessService.java @@ -9,6 +9,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.*; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesCustSortInfo; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; @@ -112,11 +113,28 @@ public class MesTimeRoundnessService implements IRoundnessStrategy { //看看多少倍,乘以圆整数量就是需求数,QTY就是多累积数 multiple = (int) Math.round(Math.ceil(Math.ceil(qty / roundQty))); } + if (StringUtil.isEmpty(detail.getProductPartNo())) { + String msg = String.format("零件生生产组:%s,客户零件号:%s没有配置生产零件号", detail.getPartProdGroupName(), detail.getCustPartNo()); + log.info("零件生生产组:{},客户零件号:{}s没有配置生产零件号", partProdGroup.getPartProdGroupName(), detail.getCustPartNo()); + //更新 custSortInfo 状态已解析 + for (MesCustSortInfo sortInfo : sortInfos) { + sortInfo.setDescription(msg); + custSoftInfoService.updateMsgCustSortInfo(sortInfo); + } + continue; + } //获取生产零件信息 MesPartSap mesPartSap = getMesPart(detail.getProductPartNo(), detail.getOrganizeCode()); if (mesPartSap.getId() == null) { + String msg = String.format("零件生生产组:%s,生产零件:%s找不到对应的零件信息", partProdGroup.getPartProdGroupName(), detail.getProductPartNo()); log.info("零件生生产组:{},生产零件:{}找不到对应的零件信息", partProdGroup.getPartProdGroupName(), detail.getProductPartNo()); + + //更新 custSortInfo 状态已解析 + for (MesCustSortInfo sortInfo : sortInfos) { + sortInfo.setDescription(msg); + custSoftInfoService.updateMsgCustSortInfo(sortInfo); + } continue; // throw ImppExceptionBuilder.newInstance().setErrorDetail("零件生成组零件:{}找不到对应的零件信息", detail.getProductPartNo()).build(); } @@ -152,7 +170,8 @@ public class MesTimeRoundnessService implements IRoundnessStrategy { DdlPreparedPack.getStringEqualPack(detail.getWorkCenterCode(), "workCenterCode", workCenterPackBean); List centerList = mesWorkCenterRao.findByHqlWhere(workCenterPackBean); if (!centerList.isEmpty()) { - mesWorkOrder.setErpWorkCenter(centerList.get(0).getErpWorkCenter()); + // 2024-10-30 BTO的工作中心需要用生产版本的工作中心,而不是取的产线 + //mesWorkOrder.setErpWorkCenter(centerList.get(0).getErpWorkCenter()); } //产线 mesWorkOrder.setWorkCenterCode(detail.getWorkCenterCode()); @@ -209,6 +228,7 @@ public class MesTimeRoundnessService implements IRoundnessStrategy { }else { String productVersion = prodVersion.getProductVersion(); mesWorkOrder.setProductVersion(productVersion); + mesWorkOrder.setErpWorkCenter(prodVersion.getWorkCenterCode()); } // 14.bomCode partNo + 生产版本+ organizeCode // 数量 From 6ca8142abb77f393e0656279dfddc8a32c55f091 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 5 Nov 2024 18:30:44 +0800 Subject: [PATCH 2/4] =?UTF-8?q?43661=20=E6=8E=92=E5=BA=8F=E5=8F=91?= =?UTF-8?q?=E8=BF=90=E6=89=AB=E6=8F=8F=E6=9D=A1=E7=A0=81=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E5=BA=8F=E5=8F=B7=E7=9A=84=E9=9B=B6=E4=BB=B6=E4=B9=9F?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=A0=A1=E9=AA=8C=E6=89=AB=E6=8F=8F=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesCustomerPartTypeService.java | 13 +++++ .../base/MesCustomerPartTypeController.java | 20 +++++++ .../controller/base/MesWorkOrderController.java | 1 - .../mes/apiservice/cus_suit/Pisces1Properties.java | 5 +- .../mes/apiservice/cus_suit/Pisces2Properties.java | 67 ++++++++++++++++++++++ .../mes/apiservice/cus_suit/PiscesProperties.java | 5 +- .../report/ShipmentDetailReportDaoImpl.java | 1 + .../apiservice/dbinterface/MesSAPDbAdapter.java | 32 +++++++++-- .../base/MesCustomerPartTypeServiceImpl.java | 60 +++++++++++++++++++ .../base/MesShippingOrderManagementService.java | 2 + 10 files changed, 193 insertions(+), 13 deletions(-) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartTypeService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCustomerPartTypeController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces2Properties.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartTypeService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartTypeService.java new file mode 100644 index 0000000..021dd14 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartTypeService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPartType; + +/** + * @Description : 客户零件类型 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/5 17:27 + * @Modify: + **/ +public interface IMesCustomerPartTypeService extends IBaseMesService { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCustomerPartTypeController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCustomerPartTypeController.java new file mode 100644 index 0000000..9687050 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCustomerPartTypeController.java @@ -0,0 +1,20 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPartType; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 客户零件类型 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/5 17:35 + * @Modify: + **/ +@Api(description = "客户零件类型") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCustomerPartType") +public class MesCustomerPartTypeController extends BaseMesController { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 7467b6a..13b1c01 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -224,7 +224,6 @@ public class MesWorkOrderController extends BaseMesController { ValidatorBean.checkNotNull(partNo, "零件号不能为空"); ValidatorBean.checkNotNull(workCenterCode, "产线不能为空"); ValidatorBean.checkNotNull(partProdGroupCode, "生产组代码不能为空"); - ValidatorBean.checkNotNull(carModelCode, "车型代码不能为空"); ValidatorBean.checkNotNull(organizeCode, "工厂代码不能为空"); ValidatorBean.checkNotNull(userName, "操作人不能为空"); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces1Properties.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces1Properties.java index 5286f1a..fa3c515 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces1Properties.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces1Properties.java @@ -60,9 +60,8 @@ public class Pisces1Properties { * 注册客户定制数据源 */ LOGGER.info("【客户定制化:pisces1数据源加载...】"); - DynamicDataSourceProxy piscesDataSource = DynamicDataSourceProxy.initDataSourceFactory(this.getPiscesDriverClassName(), - this.getPiscesDsJdbcUrl(),this.getPiscesDsUsername(),this.getPiscesDsPassword(),TimeUnit.MINUTES.toMillis(30)); - return piscesDataSource; + return DynamicDataSourceProxy.initDataSourceFactory(this.getPiscesDriverClassName(), + this.getPiscesDsJdbcUrl(), this.getPiscesDsUsername(), this.getPiscesDsPassword(),TimeUnit.MINUTES.toMillis(30)); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces2Properties.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces2Properties.java new file mode 100644 index 0000000..9c4de80 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/Pisces2Properties.java @@ -0,0 +1,67 @@ +package cn.estsh.i3plus.ext.mes.apiservice.cus_suit; + +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy; +import lombok.Getter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.TimeUnit; + +/** + * @Description : pisces2数据源配置 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/5 11:29 + * @Modify: + **/ +@Configuration +public class Pisces2Properties { + + public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG); + + /*********************** + * pisces2数据源配置 + */ + @Value("${impp.pisces2.datasource.isopen}") + @Getter + private boolean piscesIsOpen; + + @Value("${impp.pisces2.datasource.driver-class-name}") + @Getter + private String piscesDriverClassName; + + @Value("${impp.pisces2.datasource.alias}") + @Getter + private String piscesDsAlias; + + @Value("${impp.pisces2.datasource.jdbc-url}") + @Getter + private String piscesDsJdbcUrl; + + @Value("${impp.pisces2.datasource.username}") + @Getter + private String piscesDsUsername; + + @Value("${impp.pisces2.datasource.password}") + @Getter + private String piscesDsPassword; + + @Bean(name = "pisces2DataSource") + @ConditionalOnExpression("'${impp.pisces2.datasource.isopen:false}' == 'true'") + public DynamicDataSourceProxy initPiscesCustomerSet(){ + LOGGER.info("【初始化客户定制化...】"); + + /** + * 注册客户定制数据源 + */ + LOGGER.info("【客户定制化:pisces2数据源加载...】"); + + return DynamicDataSourceProxy.initDataSourceFactory(this.getPiscesDriverClassName(), + this.getPiscesDsJdbcUrl(), this.getPiscesDsUsername(), this.getPiscesDsPassword(),TimeUnit.MINUTES.toMillis(30)); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/PiscesProperties.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/PiscesProperties.java index 2677039..9a9f997 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/PiscesProperties.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/PiscesProperties.java @@ -60,9 +60,8 @@ public class PiscesProperties { * 注册客户定制数据源 */ LOGGER.info("【客户定制化:pisces数据源加载...】"); - DynamicDataSourceProxy piscesDataSource = DynamicDataSourceProxy.initDataSourceFactory(this.getPiscesDriverClassName(), - this.getPiscesDsJdbcUrl(),this.getPiscesDsUsername(),this.getPiscesDsPassword(),TimeUnit.MINUTES.toMillis(30)); - return piscesDataSource; + return DynamicDataSourceProxy.initDataSourceFactory(this.getPiscesDriverClassName(), + this.getPiscesDsJdbcUrl(), this.getPiscesDsUsername(), this.getPiscesDsPassword(),TimeUnit.MINUTES.toMillis(30)); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java index 47c0c2c..9278513 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java @@ -84,6 +84,7 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { dataQueryHql.append("ms.status AS status,"); dataQueryHql.append("ms.shippingGroupCode AS shippingGroupCode,"); dataQueryHql.append("ms.orderCode AS orderCode,"); + dataQueryHql.append("ms.planArriveEndTime AS planArriveEndTime,"); dataQueryHql.append("ms.scanSeqWay AS scanSeqWay"); dataQueryHql.append(")"); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java index bab7d30..a2ae996 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java @@ -53,6 +53,8 @@ public class MesSAPDbAdapter { @Resource(name = "pisces1DataSource") private DynamicDataSourceProxy pisces1DataSourceProxy; + @Resource(name = "pisces2DataSource") + private DynamicDataSourceProxy pisces2DataSourceProxy; @Value("${sync.redis.time:1800}") private Integer redisTime; @@ -82,7 +84,8 @@ public class MesSAPDbAdapter { DynamicDataSourceProxy sapDataSourceProxy, DynamicDataSourceProxy mesDataSourceProxy, DynamicDataSourceProxy piscesDataSourceProxy, - DynamicDataSourceProxy pisces1DataSourceProxy) throws Exception { + DynamicDataSourceProxy pisces1DataSourceProxy, + DynamicDataSourceProxy pisces2DataSourceProxy) throws Exception { WmsSAPDbWriter wmsSAPDbWriter = null; @@ -110,6 +113,14 @@ public class MesSAPDbAdapter { wmsSAPDbWriter = new WmsSAPDbWriter(mesDataSourceProxy, pisces1DataSourceProxy); } + if (groupName.equals(MesInterfaceEnumUtil.DIRECTION_TYPE.PISCES22MES.getCode())) { + wmsSAPDbWriter = new WmsSAPDbWriter(pisces2DataSourceProxy, mesDataSourceProxy); + } + + if (groupName.equals(MesInterfaceEnumUtil.DIRECTION_TYPE.MES2PISCES2.getCode())) { + wmsSAPDbWriter = new WmsSAPDbWriter(mesDataSourceProxy, pisces2DataSourceProxy); + } + // new 的对象需要手工注入 bean if (SpringContextsUtil.getApplicationContext() != null) { @@ -140,7 +151,8 @@ public class MesSAPDbAdapter { DynamicDataSourceProxy sapDataSourceProxy, DynamicDataSourceProxy mesDataSourceProxy, DynamicDataSourceProxy piscesDataSourceProxy, - DynamicDataSourceProxy pisces1DataSourceProxy) { + DynamicDataSourceProxy pisces1DataSourceProxy, + DynamicDataSourceProxy pisces2DataSourceProxy) { WmsSAPDbReader wmsSAPDbReader = null; @@ -168,6 +180,14 @@ public class MesSAPDbAdapter { wmsSAPDbReader = new WmsSAPDbReader(mesDataSourceProxy); } + if (groupName.equals(MesInterfaceEnumUtil.DIRECTION_TYPE.PISCES22MES.getCode())) { + wmsSAPDbReader = new WmsSAPDbReader(pisces2DataSourceProxy); + } + + if (groupName.equals(MesInterfaceEnumUtil.DIRECTION_TYPE.MES2PISCES2.getCode())) { + wmsSAPDbReader = new WmsSAPDbReader(mesDataSourceProxy); + } + // if (groupName.equals(MesInterfaceEnumUtil.DIRECTION_TYPE.WMS2MES.getName())) { // wmsSAPDbReader = new WmsSAPDbReader(mesDataSourceProxy); // } @@ -220,11 +240,11 @@ public class MesSAPDbAdapter { // 不需要在这里处理 //initConnection(); - writer = buildWriter(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy); + writer = buildWriter(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy,pisces2DataSourceProxy); writer.setSrcConn(this.srcConn); writer.setDestConn(this.destConn); - reader = buildReader(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy); + reader = buildReader(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy,pisces2DataSourceProxy); reader.setSrcConn(this.srcConn); @@ -381,11 +401,11 @@ public class MesSAPDbAdapter { // 不需要在这里处理 //initConnection(); - writer = buildWriter(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy); + writer = buildWriter(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy,pisces2DataSourceProxy); writer.setSrcConn(this.srcConn); writer.setDestConn(this.destConn); - reader = buildReader(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy); + reader = buildReader(groupName, sapDataSourceProxy, mesDataSourceProxy,piscesDataSourceProxy,pisces1DataSourceProxy,pisces2DataSourceProxy); reader.setSrcConn(this.srcConn); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java new file mode 100644 index 0000000..1c33488 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java @@ -0,0 +1,60 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartTypeService; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +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.mes.bean.MesCustomerPartType; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +/** + * @Description : 客户零件类型 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/5 17:25 + * @Modify: + **/ +@Service +@Slf4j +public class MesCustomerPartTypeServiceImpl extends BaseMesService implements IMesCustomerPartTypeService { + + @Override + protected void onInsertBean(MesCustomerPartType item) { + checkData(item); + } + + @Override + protected void onUpdateBean(MesCustomerPartType item) { + checkData(item); + } + + @Override + protected void setPackQueryBean(MesCustomerPartType bean, DdlPackBean packBean) { + DdlPreparedPack.getStringLikerPack(bean.getPartTypeCode(), "partTypeCode", packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartTypeName(), "partTypeName", packBean); + DdlPreparedPack.getStringLikerPack(bean.getCustPartNo(), "custPartNo", packBean); + DdlPreparedPack.getStringLikerPack(bean.getCustPartName(), "custPartName", packBean); + } + + private void checkData(MesCustomerPartType item) { + // 数据校验 + ValidatorBean.checkNotNull(item.getPartTypeCode(), "零件类型代码不能为空"); + ValidatorBean.checkNotNull(item.getCustPartNo(), "客户物料号不能为空"); + + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPartTypeCode(), "partTypeCode", seriesPackBean); + DdlPreparedPack.getStringEqualPack(item.getCustPartNo(), "custPartNo", seriesPackBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean); + boolean flg = baseRDao.isExitByHql(seriesPackBean); + if (flg) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("类型【%s】客户零件【%s】数据已存在,请检查数据", item.getPartTypeCode(), item.getCustPartNo()) + .build(); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java index 2382d12..524eb4c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java @@ -74,6 +74,8 @@ public class MesShippingOrderManagementService extends BaseMesService Date: Tue, 5 Nov 2024 19:37:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=9B=B6=E4=BB=B6?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=A2=9E=E5=8A=A0=E5=AE=A2=E6=88=B7=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java index 1c33488..db569e9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartTypeServiceImpl.java @@ -37,6 +37,7 @@ public class MesCustomerPartTypeServiceImpl extends BaseMesService Date: Tue, 5 Nov 2024 19:40:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=A3=85=E9=85=8D=E7=9B=AE=E8=A7=86?= =?UTF-8?q?=E5=8D=95=E9=A2=84=E8=A7=88=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/controller/base/MesWorkOrderController.java | 12 ++++-------- .../mes/apiservice/serviceimpl/base/MesWorkOrderService.java | 8 ++++---- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 13b1c01..6c68dea 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -7,17 +7,14 @@ import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; -import cn.estsh.i3plus.mes.apiservice.util.DateUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesConfig; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesProductVersion; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -30,15 +27,12 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @Api(description = "工单主页面") @RestController @@ -221,11 +215,13 @@ public class MesWorkOrderController extends BaseMesController { public ResultBean doShowWorkOrderPrint(String partNo, String workCenterCode, String partProdGroupCode, String carModelCode, String organizeCode, String userName ) { try { - ValidatorBean.checkNotNull(partNo, "零件号不能为空"); ValidatorBean.checkNotNull(workCenterCode, "产线不能为空"); ValidatorBean.checkNotNull(partProdGroupCode, "生产组代码不能为空"); ValidatorBean.checkNotNull(organizeCode, "工厂代码不能为空"); ValidatorBean.checkNotNull(userName, "操作人不能为空"); + if (StringUtil.isEmpty(partNo) && StringUtil.isEmpty(carModelCode)) { + MesException.throwMesBusiException("物料号和车型代码不能同时为空"); + } return ResultBean.success("装配目视单预览查询成功") .setResultList(mesWorkOrderService.doShowWorkOrderPrint(partNo, workCenterCode, partProdGroupCode, carModelCode, organizeCode, userName)) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 1d74cf8..27f1c22 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -1255,11 +1255,11 @@ public class MesWorkOrderService extends BaseMesService implements // 根据id 获取工单数据 List mesWorkOrderList = getMesWorkOrderList(ids, organizeCode); - return packPrintResultMap(organizeCode, mesWorkOrderList, userName); + return packPrintResultMap(organizeCode, mesWorkOrderList, userName,false); } - private List> packPrintResultMap(String organizeCode, List mesWorkOrderList, String userName) { + private List> packPrintResultMap(String organizeCode, List mesWorkOrderList, String userName,Boolean isShow) { // 根据工单号对工单分组 Map workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); @@ -1311,7 +1311,7 @@ public class MesWorkOrderService extends BaseMesService implements MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板为空", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode()); } - MesLabelTemplate labelTemplate = labelTemplateService.getLabelTemplate(printTemplate, organizeCode); + MesLabelTemplate labelTemplate = labelTemplateService.getLabelTemplate(isShow ? printTemplate + "_SHOW" : printTemplate, organizeCode); //模板信息丢失抛出异常 if (Objects.isNull(labelTemplate) || StringUtils.isEmpty(labelTemplate.getMethodCode())) { MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板【%s】为空", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode(), labelTemplate.getTemplateCode()); @@ -1379,7 +1379,7 @@ public class MesWorkOrderService extends BaseMesService implements List workOrderList = new ArrayList<>(); workOrderList.add(workOrder); - return packPrintResultMap(organizeCode, workOrderList, userName); + return packPrintResultMap(organizeCode, workOrderList, userName,true); } private Map getMesCustomerCarModelMap(String organizeCode, List workOrderList) {