From 330f9aed0558baaeddf45bbc50ef3a456aae61f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LML=E4=B8=B6?= Date: Fri, 19 Apr 2024 17:04:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesShippingOrderManagementController.java | 2 +- .../base/MesShippingOrderManagementService.java | 137 +++++++++++++++++++++ 2 files changed, 138 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java index 1936e4c..2f16146 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java @@ -11,5 +11,5 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesShippingOrderManagement") -public class MesShippingOrderManagementController extends BaseMesController{ +public class MesShippingOrderManagementController extends BaseMesController { } 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 5f5565a..207ed0c 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 @@ -1,12 +1,149 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +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.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagementDetail; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; @Service @Slf4j public class MesShippingOrderManagementService extends BaseMesService implements IMesShippingOrderManagementService { + @Autowired + private MesShippingOrderManagementDetailService detailService; + + @Autowired + private MesPartShippingGroupService shippingGroupService; + + @Override + public MesShippingOrderManagement insert(MesShippingOrderManagement bean) { + //插入前构造数据 + onInsertBean(bean); + + //查询物料发运组数据 + DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", shipGroupPackBean); + List partShippingGroupList = shippingGroupService.findAll(shipGroupPackBean); + if (CollectionUtils.isEmpty(partShippingGroupList)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】发运组数据为空,请检查数据", bean.getShippingOrderNo()) + .build(); + } + + //发运单明细 + List detailInsertList = new ArrayList<>(); + + MesShippingOrderManagement finalBean = bean; + partShippingGroupList.forEach(k -> { + MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail(); + + detail.setShippingOrderNo(finalBean.getShippingOrderNo()); + detail.setOrganizeCode(k.getOrganizeCode()); + ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); + BeanUtils.copyProperties(k, detail, "id"); + detailInsertList.add(detail); + }); + + detailService.insertBatch(detailInsertList); + bean = baseRDao.insert(bean); + return bean; + } + + + @Override + public MesShippingOrderManagement update(MesShippingOrderManagement bean) { + //更新前构造数据 + onUpdateBean(bean); + MesShippingOrderManagement originBean = baseRDao.getById(bean.getId()); + if (StringUtils.isEmpty(originBean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请选择需要操作的资源。") + .build(); + } + + //判断是否修改发运组,如果不修改发运组,则不修改明细 + if (!bean.getShippingGroupNo().equals(originBean.getShippingGroupNo())) { + + DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", detailPackBean); + List detailDeleteList = detailService.findAll(detailPackBean); + detailDeleteList.forEach(k -> { + k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName()); + }); + //查询物料发运组数据 + DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", shipGroupPackBean); + List partShippingGroupList = shippingGroupService.findAll(shipGroupPackBean); + if (CollectionUtils.isEmpty(partShippingGroupList)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】发运组数据为空,请检查数据", bean.getShippingOrderNo()) + .build(); + } + //发运单明细 + List detailInsertList = new ArrayList<>(); + partShippingGroupList.forEach(k -> { + MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail(); + + detail.setOrganizeCode(k.getOrganizeCode()); + ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); + BeanUtils.copyProperties(k, detail, "id"); + detailInsertList.add(detail); + }); + //软删原明细数据 + detailService.updates(detailDeleteList); + //新增新明细数据 + detailService.insertBatch(detailInsertList); + } + + onModifyBean(); + ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName()); + baseRDao.update(bean); + return originBean; + } + + + @Override + public void deleteWeaklyByIds(Long[] ids, String userName) { + + for (Long id : ids) { + MesShippingOrderManagement bean = baseRDao.getById(id); + if (StringUtils.isEmpty(bean)) continue; + DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", detailPackBean); + List detailDeleteList = detailService.findAll(detailPackBean); + detailDeleteList.forEach(k -> { + k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName()); + }); + bean.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName()); + baseRDao.update(bean); + detailService.updates(detailDeleteList); + } + } + + }