From 08301bc9a2de880771767a42690eca60b3525baa Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 20 Jan 2025 13:47:11 +0800 Subject: [PATCH 01/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesShippingOrderManagementDetailService.java | 15 +++++ ...MesShippingOrderManagementDetailController.java | 49 ++++++++++++++++ .../MesShippingOrderManagementDetailDaoImpl.java | 2 + .../MesShippingOrderManagementDetailService.java | 67 +++++++++++++++++++++- 4 files changed, 130 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java index d035341..333ceb9 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -22,6 +23,20 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic @ApiOperation("查询发运单明细") ListPager queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager); + @ApiOperation("查询发运单明细") + ListPager queryMesShippingErrorDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager); + + + @ApiOperation("根据客户零件匹配零件号") + public ResultBean supplyBycustPartNo(Long[] ids); + + + @ApiOperation("根据CBR匹配零件号") + public ResultBean supplyByCBR(Long[] ids); + + @ApiOperation("手动发运改数量") + public ResultBean updateQty(Long[] ids, double qty); + @ApiOperation("发运退回") void doShippingBack(Long[] idList,String organizeCode,String userName); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index 62010e7..62db6ab 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -55,6 +55,55 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } + @ApiOperation(value = "发运单异常明细", notes = "发运单异常明细") + @GetMapping("/master/error/query") + public ResultBean queryMesShippingErrorDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + try { + return ResultBean.success("查询成功").setListPager(shippingOrderManagementDetailService.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel,pager)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "根据客户零件匹配零件号", notes = "根据客户零件匹配零件号") + @GetMapping("/master/part/supplyBycustPartNo") + public ResultBean supplyBycustPartNo(Long[] ids) { + try { + return shippingOrderManagementDetailService.supplyBycustPartNo(ids); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "根据CBR匹配零件号", notes = "根据CBR匹配零件号") + @GetMapping("/master/part/supplyByCBR") + public ResultBean supplyByCBR(Long[] ids) { + try { + return shippingOrderManagementDetailService.supplyByCBR(ids); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "根据CBR匹配零件号", notes = "根据CBR匹配零件号") + @GetMapping("/master/part/updateQty") + public ResultBean supplyByCBR(Long[] ids, double qty) { + try { + return shippingOrderManagementDetailService.updateQty(ids, qty); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "发运退回", notes = "发运退回") @PutMapping("/doShippingBack") public ResultBean doShippingBack(@RequestBody Long[] idList) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java index e196c50..3728278 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java @@ -188,6 +188,8 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde commonHql.append(" and m.publishTime >= :publishTimeStart "); if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPublishTimeEnd())) commonHql.append(" and m.publishTime <= :publishTimeEnd "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getDetailsStatus())) + commonHql.append(" and d.status = " + mesShippingOrderManagementDetailModel.getDetailsStatus() + ""); return commonHql.toString(); } @Override diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index f98a89c..65f21b0 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -12,13 +12,15 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; -import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart; +import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.i3plus.pojo.mes.repository.MesCimGmCbrRuleRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.util.ResultBean; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +48,11 @@ public class MesShippingOrderManagementDetailService extends BaseMesService queryMesShippingErrorDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + return shippingOrderManagementDetailDao.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel, pager); + } + + + @Override + public ResultBean supplyBycustPartNo(Long[] ids) { + + String organizeCode = AuthUtil.getOrganizeCode(); + String userName = AuthUtil.getSessionUser().getUserName(); + List detailList = getManagementDetails(ids, organizeCode, userName); + + for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getCustPartNo(), "custPartNo", ddlPackBean); + MesCustomerPart mesCustomerPart = mesCustomerPartRepository.getByProperty(ddlPackBean); + if (mesCustomerPart == null) { + log.info("客户零件号不存在:{}", mesShippingOrderManagementDetail.getCustPartNo()); + } + mesShippingOrderManagementDetail.setPartNo(mesCustomerPart.getErpPartNo()); + mesShippingOrderManagementDetail.setPartName(mesCustomerPart.getErpPartName()); + } + + return ResultBean.success().setResultList(detailList); + } + + @Override + public ResultBean supplyByCBR(Long[] ids) { + + String organizeCode = AuthUtil.getOrganizeCode(); + String userName = AuthUtil.getSessionUser().getUserName(); + List detailList = getManagementDetails(ids, organizeCode, userName); + + for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getCustPartNo(), "custPartNo", ddlPackBean); + MesCimGmCbrRule mesCimGmCbrRule = mesCimGmCbrRuleRepository.getByProperty(ddlPackBean); + if (mesCimGmCbrRule == null) { + log.info("CBR规则未配置:客户零件号:{}", mesShippingOrderManagementDetail.getCustPartNo()); + } + mesShippingOrderManagementDetail.setPartNo(mesCimGmCbrRule.getErpPartNo()); + mesShippingOrderManagementDetail.setPartName(mesCimGmCbrRule.getErpPartName()); + } + + return ResultBean.success().setResultList(detailList); + } + + + @Override + public ResultBean updateQty(Long[] ids, double qty) { + return null; + } + + @Override public void doShippingBack(Long[] idList, String organizeCode, String userName) { List detailList = getManagementDetails(idList, organizeCode, userName); if (CollectionUtils.isEmpty(detailList)) MesException.throwMesBusiException("选择数据无效,请检查"); From be1749fb92cd1b2f4aa7c67067b5ab17d38fbe22 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 20 Jan 2025 19:14:13 +0800 Subject: [PATCH 02/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesShippingOrderManagementDetailService.java | 2 +- ...MesShippingOrderManagementDetailController.java | 7 +- .../MesShippingOrderManagementDetailService.java | 103 +++++++++++++++++++-- 3 files changed, 97 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java index 333ceb9..61137fd 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java @@ -35,7 +35,7 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic public ResultBean supplyByCBR(Long[] ids); @ApiOperation("手动发运改数量") - public ResultBean updateQty(Long[] ids, double qty); + public ResultBean updateQty(Long[] ids); @ApiOperation("发运退回") void doShippingBack(Long[] idList,String organizeCode,String userName); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index 62db6ab..c3b3bcd 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -91,11 +91,11 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } - @ApiOperation(value = "根据CBR匹配零件号", notes = "根据CBR匹配零件号") + @ApiOperation(value = "手工发运", notes = "手工发运") @GetMapping("/master/part/updateQty") - public ResultBean supplyByCBR(Long[] ids, double qty) { + public ResultBean updateQty(Long[] ids) { try { - return shippingOrderManagementDetailService.updateQty(ids, qty); + return shippingOrderManagementDetailService.updateQty(ids); } catch (ImppBusiException e) { return ResultBean.fail(e); } catch (Exception e) { @@ -103,7 +103,6 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } - @ApiOperation(value = "发运退回", notes = "发运退回") @PutMapping("/doShippingBack") public ResultBean doShippingBack(@RequestBody Long[] idList) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 65f21b0..f3335a3 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesShippingOrderManagementDetailD import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -13,24 +14,21 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; -import cn.estsh.i3plus.pojo.mes.repository.MesCimGmCbrRuleRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.ResultBean; 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; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -44,6 +42,9 @@ public class MesShippingOrderManagementDetailService extends BaseMesService queryMesShippingErrorDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + mesShippingOrderManagementDetailModel.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue()); return shippingOrderManagementDetailDao.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel, pager); } @@ -127,8 +138,80 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); + List orderNoList = detailList.stream().map(MesShippingOrderManagementDetail::getShippingCode).distinct().collect(Collectors.toList()); + + DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(orderNoList, "shippingCode", orderPackBean); + List shippingOrderManagements = shippingOrderRepository.findByHqlWhere(orderPackBean); + + Map orderMap = shippingOrderManagements.stream().collect(Collectors.toMap(MesShippingOrderManagement::getShippingCode, Function.identity())); + + List mesJisShippings = new ArrayList<>(); + + + + for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { + MesShippingOrderManagement mesShippingOrderManagement = orderMap.get(mesShippingOrderManagementDetail.getShippingCode()); + if (StringUtils.isEmpty(mesShippingOrderManagementDetail.getPartNo())) { + log.info("客户零件号对应的零件号为空:{}", mesShippingOrderManagementDetail.getCustPartNo()); + return ResultBean.fail(String.format("客户零件号对应的零件号为空:%s", mesShippingOrderManagementDetail.getCustPartNo())); + } + mesShippingOrderManagementDetail.setActualQty((int)mesShippingOrderManagementDetail.getPlanQty()); + mesShippingOrderManagementDetail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + ConvertBean.serviceModelUpdate(mesShippingOrderManagementDetail, userName); + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_10.getValue(), "groupType", ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesShippingOrderManagement.getShippingGroupCode(), "code", ddlPackBean); + MesMoveRule moveRule = mesMoveRuleRepository.getByProperty(ddlPackBean); + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getVisualOrderNo(), "workOrderNo", packBean); + + MesWorkOrderPart workOrderPart = mesWorkOrderPartRepository.getByProperty(packBean); + + mesJisShippings.add(getMesJisShipping(mesShippingOrderManagement, mesShippingOrderManagementDetail,moveRule.getErpSrcLocateNo(), workOrderPart,userName)); + } + if (!CollectionUtils.isEmpty(detailList)) { + shippingOrderDetailRepository.saveAll(detailList); + } + // jis同步 + if(!CollectionUtils.isEmpty(mesJisShippings)){ + jisShippingRepository.saveAll(mesJisShippings); + } + return ResultBean.success("操作成功"); + } + + + public MesJisShipping getMesJisShipping(MesShippingOrderManagement orderManagement,MesShippingOrderManagementDetail detail, String srcLocateNo, MesWorkOrderPart orderPart, String userName) { + MesJisShipping jisShipping = new MesJisShipping(); + BeanUtils.copyProperties(orderManagement, jisShipping); + BeanUtils.copyProperties(detail, jisShipping); + jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode()); + jisShipping.setShippingTime(TimeTool.getNowTime(true)); + jisShipping.setErpWarerhouse(srcLocateNo); + jisShipping.setErpWarehous(srcLocateNo); + jisShipping.setDock(orderManagement.getSendDockCode()); + jisShipping.setCusCode(orderManagement.getCustCode()); + jisShipping.setCusDock(orderManagement.getCustDockCode()); + jisShipping.setCustOrderNo(detail.getCustOrderNo()); + // 子零件信息赋值 + jisShipping.setPartNo(orderPart.getPartNo()); + jisShipping.setUnit(orderPart.getItemUnit()); + // 20241115 没有给carNo赋值 + jisShipping.setCarNo(detail.getVin()); + jisShipping.setSerialNumber(orderPart.getWorkOrderNo()); + jisShipping.setQuantityPerCar(orderPart.getItemQty()); + jisShipping.setOffTime(TimeTool.getNowTime(true)); + jisShipping.setShippingOrderCode(orderManagement.getShippingCode()); + jisShipping.setFid(UUID.randomUUID().toString()); + jisShipping.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelInitialize(jisShipping, userName); + return jisShipping; } @Override From 463ec92cbf8959d976aa7a330f45c795006e049c Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 21 Jan 2025 19:46:23 +0800 Subject: [PATCH 03/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...MesShippingOrderManagementDetailController.java | 2 +- .../MesShippingOrderManagementDetailDaoImpl.java | 9 ++++- .../MesShippingOrderManagementDetailService.java | 38 ++++++++++++++++------ 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index c3b3bcd..4b00413 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -59,7 +59,7 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle @GetMapping("/master/error/query") public ResultBean queryMesShippingErrorDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { try { - return ResultBean.success("查询成功").setListPager(shippingOrderManagementDetailService.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel,pager)); + return ResultBean.success("查询成功").setListPager(shippingOrderManagementDetailService.queryMesShippingErrorDetailsByPager(mesShippingOrderManagementDetailModel,pager)); } catch (ImppBusiException e) { return ResultBean.fail(e); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java index 3728278..0e65b6b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java @@ -132,7 +132,11 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); query.setParameter("organizeCode", mesShippingOrderManagementDetailModel.getOrganizeCode()); - query.setParameter("status", MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + if (mesShippingOrderManagementDetailModel.getStatus() == null) { + query.setParameter("status", MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + } else { + query.setParameter("status", mesShippingOrderManagementDetailModel.getStatus()); + } if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getShippingType())) query.setParameter("shippingType", mesShippingOrderManagementDetailModel.getShippingType()); if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getStartScanTimeStart())) @@ -147,6 +151,7 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde query.setParameter("publishTimeStart", mesShippingOrderManagementDetailModel.getPublishTimeStart()); if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPublishTimeEnd())) query.setParameter("publishTimeEnd", mesShippingOrderManagementDetailModel.getPublishTimeEnd()); + } private String getOrderBy(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel) { @@ -166,6 +171,8 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde commonHql.append(" and d.status = :status "); if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getShippingCode())) commonHql.append(" and m.shippingCode like '%").append(mesShippingOrderManagementDetailModel.getShippingCode()).append("%' "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getShippingGroupCode())) + commonHql.append(" and m.shippingGroupCode like '%").append(mesShippingOrderManagementDetailModel.getShippingGroupCode()).append("%' "); if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getBarcode())) commonHql.append(" and d.barcode like '%").append(mesShippingOrderManagementDetailModel.getBarcode()).append("%' "); if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPartNo())) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index f3335a3..1cb90fc 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -97,8 +97,10 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { @@ -107,19 +109,23 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { @@ -128,10 +134,12 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); - List orderNoList = detailList.stream().map(MesShippingOrderManagementDetail::getShippingCode).distinct().collect(Collectors.toList()); + List idList = detailList.stream().map(MesShippingOrderManagementDetail::getPid).distinct().collect(Collectors.toList()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(orderNoList, "shippingCode", orderPackBean); + DdlPreparedPack.getInPackList(idList, "id", orderPackBean); List shippingOrderManagements = shippingOrderRepository.findByHqlWhere(orderPackBean); - Map orderMap = shippingOrderManagements.stream().collect(Collectors.toMap(MesShippingOrderManagement::getShippingCode, Function.identity())); + Map orderMap = shippingOrderManagements.stream().collect(Collectors.toMap(MesShippingOrderManagement::getId, Function.identity())); List mesJisShippings = new ArrayList<>(); - - for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { - MesShippingOrderManagement mesShippingOrderManagement = orderMap.get(mesShippingOrderManagementDetail.getShippingCode()); + MesShippingOrderManagement mesShippingOrderManagement = orderMap.get(mesShippingOrderManagementDetail.getPid()); if (StringUtils.isEmpty(mesShippingOrderManagementDetail.getPartNo())) { log.info("客户零件号对应的零件号为空:{}", mesShippingOrderManagementDetail.getCustPartNo()); return ResultBean.fail(String.format("客户零件号对应的零件号为空:%s", mesShippingOrderManagementDetail.getCustPartNo())); } mesShippingOrderManagementDetail.setActualQty((int)mesShippingOrderManagementDetail.getPlanQty()); mesShippingOrderManagementDetail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + mesShippingOrderManagementDetail.setRemark("手工发运"); ConvertBean.serviceModelUpdate(mesShippingOrderManagementDetail, userName); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_10.getValue(), "groupType", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesShippingOrderManagement.getShippingGroupCode(), "code", ddlPackBean); MesMoveRule moveRule = mesMoveRuleRepository.getByProperty(ddlPackBean); + if (moveRule == null) { + log.info("移库规则不存在:发运组代码:{}", mesShippingOrderManagement.getShippingGroupCode()); + return ResultBean.fail(String.format("移库规则不存在:发运单编号:%s,发运组代码:%s,", mesShippingOrderManagement.getShippingCode(),mesShippingOrderManagement.getShippingGroupCode())); + } + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getVisualOrderNo(), "workOrderNo", packBean); - MesWorkOrderPart workOrderPart = mesWorkOrderPartRepository.getByProperty(packBean); + if (workOrderPart == null) { + log.info("工单零件信息不存在:工单号:{}", mesShippingOrderManagementDetail.getVisualOrderNo()); + return ResultBean.fail(String.format("工单零件信息不存在:工单号:%s", mesShippingOrderManagementDetail.getVisualOrderNo())); + } + mesJisShippings.add(getMesJisShipping(mesShippingOrderManagement, mesShippingOrderManagementDetail,moveRule.getErpSrcLocateNo(), workOrderPart,userName)); } From 939c515fc29770e9e1321dda8bb5303efbdf09d5 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 21 Jan 2025 20:40:09 +0800 Subject: [PATCH 04/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesShippingOrderManagementDetailService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 1cb90fc..0976597 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -122,10 +122,10 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { From a4d6e8009a7c05812323b505713de9a14deb2675 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 21 Jan 2025 22:02:58 +0800 Subject: [PATCH 05/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesShippingOrderManagementDetailService.java | 3 +++ ...MesShippingOrderManagementDetailController.java | 15 +++++++++-- .../MesShippingOrderManagementDetailService.java | 31 +++++++++++++++++++--- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java index 61137fd..62002ab 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java @@ -37,6 +37,9 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic @ApiOperation("手动发运改数量") public ResultBean updateQty(Long[] ids); + @ApiOperation("同步") + public ResultBean syncShip(Long[] ids); + @ApiOperation("发运退回") void doShippingBack(Long[] idList,String organizeCode,String userName); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index 4b00413..bc5af0f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -90,8 +90,7 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } - - @ApiOperation(value = "手工发运", notes = "手工发运") + @ApiOperation(value = "修改数量", notes = "修改数量") @GetMapping("/master/part/updateQty") public ResultBean updateQty(Long[] ids) { try { @@ -103,6 +102,18 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } + @ApiOperation(value = "发运同步", notes = "发运同步") + @GetMapping("/master/part/syncShip") + public ResultBean syncShip(Long[] ids) { + try { + return shippingOrderManagementDetailService.syncShip(ids); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @ApiOperation(value = "发运退回", notes = "发运退回") @PutMapping("/doShippingBack") public ResultBean doShippingBack(@RequestBody Long[] idList) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 0976597..ba6db7b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -152,6 +152,27 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); + + for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { + if (StringUtils.isEmpty(mesShippingOrderManagementDetail.getPartNo())) { + log.info("发运单明细对应零件号为空"); + return ResultBean.fail(String.format("发运单明细对应零件号为空")); + } + mesShippingOrderManagementDetail.setActualQty((int)mesShippingOrderManagementDetail.getPlanQty()); + ConvertBean.serviceModelUpdate(mesShippingOrderManagementDetail, userName); } + if (!CollectionUtils.isEmpty(detailList)) { + shippingOrderDetailRepository.saveAll(detailList); + } + return ResultBean.success("操作成功"); + } + + @Override + public ResultBean syncShip(Long[] ids) { + String organizeCode = AuthUtil.getOrganizeCode(); + String userName = AuthUtil.getSessionUser().getUserName(); + /*String organizeCode = "CR01"; + String userName ="zxw";*/ + List detailList = getManagementDetails(ids, organizeCode, userName); List idList = detailList.stream().map(MesShippingOrderManagementDetail::getPid).distinct().collect(Collectors.toList()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); @@ -165,10 +186,13 @@ public class MesShippingOrderManagementDetailService extends BaseMesService Date: Tue, 21 Jan 2025 22:35:28 +0800 Subject: [PATCH 06/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesShippingOrderManagementDetailService.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index ba6db7b..9ab930f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -168,10 +168,10 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); List idList = detailList.stream().map(MesShippingOrderManagementDetail::getPid).distinct().collect(Collectors.toList()); @@ -189,7 +189,7 @@ public class MesShippingOrderManagementDetailService extends BaseMesService Date: Tue, 21 Jan 2025 22:49:32 +0800 Subject: [PATCH 07/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesShippingOrderManagementDetailService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 9ab930f..3242344 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -168,10 +168,10 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); List idList = detailList.stream().map(MesShippingOrderManagementDetail::getPid).distinct().collect(Collectors.toList()); From 078f86e8d3fe7ed22315bbc0e14025b2949f15fa Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 19 Feb 2025 17:12:55 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E6=96=B0=E5=A2=9Ecockpit=E5=8F=91?= =?UTF-8?q?=E8=BF=90=E5=A4=84=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesShippingOrderManagementDetailService.java | 3 + ...MesShippingOrderManagementDetailController.java | 14 ++++ .../MesShippingOrderManagementDetailService.java | 82 ++++++++++++++++++++++ 3 files changed, 99 insertions(+) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java index 62002ab..24c2104 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -45,4 +46,6 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic @ApiOperation("查询发运零件子零件明细") ListPager queryDetailMesWorkOrderPart(MesWorkOrderPart bean, Pager pager); + + void doHandleCockpitShippingError(MesShippingOrderManagementDetail detail, MesWorkOrder workOrder); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index bc5af0f..0a7d297 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -67,6 +68,19 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } + @ApiOperation(value = "cockpit发运处理", notes = "cockpit发运处理") + @PostMapping("/handle-cockpit-shipping-error") + public ResultBean handleCockpitShippingError(MesShippingOrderManagementDetail detail, MesWorkOrder workOrder) { + try { + shippingOrderManagementDetailService.doHandleCockpitShippingError(detail, workOrder); + return ResultBean.success("处理成功"); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @ApiOperation(value = "根据客户零件匹配零件号", notes = "根据客户零件匹配零件号") @GetMapping("/master/part/supplyBycustPartNo") public ResultBean supplyBycustPartNo(Long[] ids) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 3242344..d441446 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -13,6 +13,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; 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.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; @@ -59,10 +60,18 @@ public class MesShippingOrderManagementDetailService extends BaseMesService queryDetailMesWorkOrderPart(MesWorkOrderPart bean, Pager pager) { List modelList=new ArrayList<>(); List shippingDetails = shippingOrderManagementDetailDao.queryMesShippingOrderManagementDetail(bean); @@ -325,4 +335,76 @@ public class MesShippingOrderManagementDetailService extends BaseMesService(modelList, pager); } + @Override + public void doHandleCockpitShippingError(MesShippingOrderManagementDetail detail, MesWorkOrder workOrder) { + if (StringUtils.isEmpty(detail.getPartNo())) { + MesException.throwFlowException("发运单明细对应零件号为空"); + } + if (StringUtils.isEmpty(detail.getBarcode())) { + MesException.throwMesBusiException("发运单条码信息不存在"); + } + String organizeCode = AuthUtil.getOrganizeCode(); + String userName = AuthUtil.getSessionUser().getUserName(); + DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(detail.getPid(), "id", orderPackBean); + MesShippingOrderManagement orderManagement = shippingOrderRepository.getByProperty(orderPackBean); + if (orderManagement == null || StringUtils.isEmpty(orderManagement.getShippingGroupCode())) { + MesException.throwFlowException("发运单主表不存在"); + } + + DdlPackBean partShippingGroupPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringLikerPack(orderManagement.getShippingGroupCode(), "shippingGroupCode", partShippingGroupPackBean); + MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupRDao.getByProperty(partShippingGroupPackBean); + if (mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getConfirmPartType()) || Integer.parseInt(mesPartShippingGroup.getConfirmPartType()) != MesExtEnumUtil.SHIPPING_GROUP_CONFIRM_PART_TYPE.SHIPPING_GROUP_CONFIRM_PART_TYPE_30.getValue()) { + MesException.throwFlowException("零件发运组【%s】,扫描确认零件方式应为【装配目视单和客户零件条码】", orderManagement.getShippingGroupCode()); + } + + DdlPackBean workOrderPartPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workOrder.getWorkOrderNo(), "workOrderNo", workOrderPartPackBean); + List workOrderParts = mesWorkOrderPartRepository.findByHqlWhere(workOrderPartPackBean); + if (!CollectionUtils.isEmpty(workOrderParts)) { + List shippingList = new ArrayList<>(); + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_10.getValue(), "groupType", ddlPackBean); + DdlPreparedPack.getStringEqualPack(orderManagement.getShippingGroupCode(), "code", ddlPackBean); + List mesMoveRuleList = mesMoveRuleRepository.findByHqlWhere(ddlPackBean); + if (CollectionUtils.isEmpty(mesMoveRuleList)) { + MesException.throwFlowException(String.format("移库规则不存在:发运单编号:%s,发运组代码:%s,", orderManagement.getShippingCode(), orderManagement.getShippingGroupCode())); + } + Map mesMoveRuleMap = mesMoveRuleList.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.toMap(MesMoveRule::getSrcType, Function.identity(), (x, y) -> y)); + + for (MesWorkOrderPart orderPart : workOrderParts) { + MesPart itemPart = mesPartService.getPartByPartNo(orderPart.getPartNo(), organizeCode); + MesMoveRule moveRule = mesMoveRuleMap.get(itemPart.getEsd()); + if (Objects.equals(moveRule.getMoveNum(), MesExtEnumUtil.MOVE_RULE_MOVE_NUM.MOVE_RULE_MOVE_NUM_20.getValue()) && MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.SHIPPING.getValue() == moveRule.getReportType()) { + shippingList.add(getMesJisShipping(orderManagement, detail, moveRule.getErpSrcLocateNo(), orderPart, userName)); + } else { + log.info("客供品移库零件【{}】在零件发运组【{}】的移库规则中,汇报类型未维护或不为发运", orderPart.getPartNo(), workOrder.getPartProdGroupCode()); + } + } + + jisShippingRepository.saveAll(shippingList); + } + + List mesProduceSnList = mesProduceSnService.findMesProduceSn(organizeCode, detail.getBarcode()); + for (MesProduceSn mesProduceSn : mesProduceSnList) { + //更新条码状态为完成 + mesProduceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()); + mesProduceSn.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelUpdate(mesProduceSn, userName); + mesProduceSnRepository.update(mesProduceSn); + } + + workOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.SHIPPING.getValue()); + workOrder.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelUpdate(workOrder, userName); + mesWorkOrderRDao.update(workOrder); + + detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + detail.setSystemSyncStatus(CommonEnumUtil.FALSE); + detail.setRemark("cockpit发运处理"); + ConvertBean.serviceModelUpdate(detail, userName); + shippingOrderDetailRepository.update(detail); + } } From f29bef72a0d80fb716af3be83a9893915e8b6fed Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 20 Feb 2025 17:33:03 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E6=96=B0=E5=A2=9Ecockpit=E5=8F=91?= =?UTF-8?q?=E8=BF=90=E5=A4=84=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesShippingOrderManagementDetailController.java | 12 ++++++++++-- .../MesShippingOrderManagementDetailService.java | 21 ++++++++++++++------- .../mes/pojo/model/MesHandleShippingErrorModel.java | 11 +++++++++++ 3 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesHandleShippingErrorModel.java diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index 0a7d297..4ddc33e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementDetailService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.MesHandleShippingErrorModel; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; @@ -70,9 +71,16 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle @ApiOperation(value = "cockpit发运处理", notes = "cockpit发运处理") @PostMapping("/handle-cockpit-shipping-error") - public ResultBean handleCockpitShippingError(MesShippingOrderManagementDetail detail, MesWorkOrder workOrder) { + public ResultBean handleCockpitShippingError(@RequestBody MesHandleShippingErrorModel request) { try { - shippingOrderManagementDetailService.doHandleCockpitShippingError(detail, workOrder); + MesShippingOrderManagementDetail detail = shippingOrderManagementDetailService.get(request.getDetail().getId()); + if (detail == null) { + return ResultBean.fail("无效发运单明细"); + } + if (detail.getPid() == null) { + return ResultBean.fail("发运单明细未关联有效发运单"); + } + shippingOrderManagementDetailService.doHandleCockpitShippingError(detail, request.getWorkOrder()); return ResultBean.success("处理成功"); } catch (ImppBusiException e) { return ResultBean.fail(e); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index d441446..271e932 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementDetailService import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesShippingOrderManagementDetailDao; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -239,8 +240,8 @@ public class MesShippingOrderManagementDetailService extends BaseMesService mesProduceSnList = mesProduceSnService.findMesProduceSn(organizeCode, detail.getBarcode()); - for (MesProduceSn mesProduceSn : mesProduceSnList) { + MesProduceSn mesProduceSn = mesProduceSnService.getMesProduceSnByCustSn(organizeCode, workOrder.getCustSn()); + if (mesProduceSn != null) { //更新条码状态为完成 mesProduceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()); mesProduceSn.setSystemSyncStatus(CommonEnumUtil.FALSE); @@ -401,6 +407,7 @@ public class MesShippingOrderManagementDetailService extends BaseMesService Date: Thu, 20 Feb 2025 18:47:19 +0800 Subject: [PATCH 10/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesShippingOrderManagementDetailService.java | 69 ++++++++++++++-------- 1 file changed, 46 insertions(+), 23 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 271e932..53ff05f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -1,5 +1,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; +import cn.estsh.i3plus.ext.mes.api.base.IMesPartShippingGroupService; import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementDetailService; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesShippingOrderManagementDetailDao; @@ -73,6 +75,12 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { @@ -203,30 +211,15 @@ public class MesShippingOrderManagementDetailService extends BaseMesService Date: Thu, 20 Feb 2025 20:15:18 +0800 Subject: [PATCH 11/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesShippingOrderManagementDetailService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 53ff05f..d191970 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -219,7 +219,7 @@ public class MesShippingOrderManagementDetailService extends BaseMesService Date: Tue, 25 Feb 2025 09:24:59 +0800 Subject: [PATCH 12/12] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesShippingOrderManagementDetailService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index d191970..96a9735 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -122,6 +122,14 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { + DdlPackBean cbrPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getCustPartNo(), "custPartNo", cbrPackBean); + MesCimGmCbrRule mesCimGmCbrRule = mesCimGmCbrRuleRepository.getByProperty(cbrPackBean); + if (mesCimGmCbrRule != null) { + log.info("CBR规则已配置,不允许此操作,你通过CBR匹配零件号:客户零件号:{}", mesShippingOrderManagementDetail.getCustPartNo()); + return ResultBean.fail(String.format("CBR规则已配置,不允许此操作,你通过CBR匹配零件号:客户零件号:%s", mesShippingOrderManagementDetail.getCustPartNo())); + } + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getCustPartNo(), "custPartNo", ddlPackBean); MesCustomerPart mesCustomerPart = mesCustomerPartRepository.getByProperty(ddlPackBean); @@ -253,6 +261,7 @@ public class MesShippingOrderManagementDetailService extends BaseMesService