From e22af55524b359414a5fa7854681f955f25edb04 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 11 Sep 2024 18:23:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E8=BD=A6=E5=8D=95=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=EF=BC=8C=E6=98=AF=E5=90=A6=E8=A6=81=E5=B0=86=E8=A3=85=E8=BD=A6?= =?UTF-8?q?=E5=8D=95=E5=85=B3=E8=81=94=E7=9A=84=E5=8F=91=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E4=B9=9F=E4=B8=80=E5=B9=B6=E5=AE=8C=E6=88=90=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E4=B8=80=E5=B9=B6=E5=8F=91=E7=BB=99WMS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/api/busi/IMesJisShippingService.java | 2 +- .../pcn/api/busi/IMesSortShippingCheckService.java | 6 ++ ...Service.java => MesJisShippingServiceImpl.java} | 15 ++--- .../busi/MesShippingLoadingCheckService.java | 71 ++++++++++++++++++---- .../busi/MesSortShippingCheckService.java | 10 +-- 5 files changed, 80 insertions(+), 24 deletions(-) rename modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/{MesJisShippingService.java => MesJisShippingServiceImpl.java} (77%) 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/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/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/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 898121f..99f6321 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; @@ -49,15 +49,15 @@ 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) { @@ -341,12 +341,12 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS if((!Objects.isNull(isPass) && (Objects.equals(MesPcnExtConstWords.ONE,isPass) || Objects.equals(MesPcnExtConstWords.THREE,isPass)))){ if(Objects.equals(MesPcnExtConstWords.ONE,isPass)){ loadingList.setRemark(MesPcnExtConstWords.STRONGER_PASS); - }else{ + }else if(Objects.equals(MesPcnExtConstWords.THREE,isPass)){ //跳过的单据和明细,系统默认是完成的 loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue()); loadingList.setRemark(MesPcnExtConstWords.SHIP_PASS); //明细跳过 - updateLoadingDetails(loadingList.getOrganizeCode(),userName,loadingList.getId()); + updateLoadingList(loadingList,userName); } ConvertBean.serviceModelUpdate(loadingList,userName); vehiclesOrderRepository.update(loadingList); @@ -375,12 +375,61 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS vehiclesOrderDetailRepository.update(item); } + 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(), 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, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList())); + //明细跳过 + updateLoadingDetails(loadingList.getOrganizeCode(), userName, loadingList.getId()); + } + + 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.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean); + } + + private List getMesShippingOrderManagementList(String organizeCode, List shippingCodeList) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(shippingCodeList, "shippingCode", packBean); + return shippingOrderManagementRepository.findByHqlWhere(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.SHIPPED.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean); + } + + private List getMesLoadingListList(long id, String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(id, "pid", packBean); + DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(), "status", packBean); + return vehiclesOrderDetailRepository.findByHqlWhere(packBean); + } + private void updateLoadingDetails(String organizeCode, String userName, long id) { - if(StringUtil.isEmptyAndNull(id) || StringUtils.isEmpty(organizeCode)) return; + if (StringUtil.isEmptyAndNull(id) || StringUtils.isEmpty(organizeCode)) return; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - 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); + 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 edabb6d..04efc26 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 @@ -562,7 +562,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); @@ -581,7 +581,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)){ @@ -598,12 +598,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