From 25893a29b59dac257cac804c340b7e34d5e64e4c Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Mon, 30 Dec 2024 14:58:19 +0800 Subject: [PATCH 1/5] =?UTF-8?q?44643=20=E6=AD=A3=E5=BC=8F=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=91=E8=BF=90=E6=98=8E=E7=BB=86=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=EF=BC=8C=E6=9D=A1=E7=A0=81=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/daoimpl/report/ShipmentDetailReportDaoImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 0b4aec6..71f11f6 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 @@ -107,6 +107,10 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { commonQueryHql.append("AND momd.vin like :vin "); } + if (!StringUtils.isEmpty(model.getBarCode())) { + commonQueryHql.append("AND momd.barcode like :barcode "); + } + if (!StringUtils.isEmpty(model.getShippingCode())) { commonQueryHql.append("AND ms.shippingCode like :shippingCode "); } @@ -161,6 +165,10 @@ public class ShipmentDetailReportDaoImpl implements IShipmentDetailReportDao { dataQuery.setParameter("vin", model.getVin() + "%"); } + if (!StringUtils.isEmpty(model.getBarCode())) { + dataQuery.setParameter("barcode", model.getBarCode() + "%"); + } + if (!StringUtils.isEmpty(model.getShippingCode())) { dataQuery.setParameter("shippingCode", model.getShippingCode() + "%"); } From d8fcc8abfdc1ee4f439e9b955a0659e969d0872a Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Wed, 15 Jan 2025 12:08:20 +0800 Subject: [PATCH 2/5] =?UTF-8?q?44670=20PC:=20=E6=A8=A1=E6=9D=BF=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=97=B6=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesEquipmentProdParamCfgController.java | 50 ++++++++++++++++++++++ .../base/MesTimeEfficientCfgController.java | 48 +++++++++++++++++++++ 2 files changed, 98 insertions(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentProdParamCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentProdParamCfgController.java index ff7a0ed..4ae1cec 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentProdParamCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentProdParamCfgController.java @@ -1,9 +1,24 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentProdParamCfg; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.RedisCacheTool; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; /** * @Description : 设备加工参数维护 @@ -15,4 +30,39 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEquipmentProdParamCfg") public class MesEquipmentProdParamCfgController extends BaseMesController { + + + @PostMapping(value = "/import-data") + @ApiOperation(value = "导入数据") + public ResultBean importNew(@RequestParam("file") MultipartFile file, @RequestParam("sourceId")Long sourceId) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); + + // 校验导入数据 + baseService.validateImport(beanList); + + beanList.forEach(mesEquipmentProdParamCfg -> { + mesEquipmentProdParamCfg.setSourceId(sourceId); + }); + + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + for (MesEquipmentProdParamCfg bean : beanList) { + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + } + baseService.insertBatch(beanList); + + // 导入后 + afterImport(beanList); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesTimeEfficientCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesTimeEfficientCfgController.java index 6628d3c..4785072 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesTimeEfficientCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesTimeEfficientCfgController.java @@ -1,11 +1,27 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentProdParamCfg; import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesTimeEfficientCfg; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.RedisCacheTool; +import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; /** * 时效性维护 @@ -16,5 +32,37 @@ import org.springframework.web.bind.annotation.RestController; public class MesTimeEfficientCfgController extends BaseMesController{ + @PostMapping(value = "/import-data") + @ApiOperation(value = "导入数据") + public ResultBean importNew(@RequestParam("file") MultipartFile file, @RequestParam("sourceId")Long sourceId) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); + + // 校验导入数据 + baseService.validateImport(beanList); + + beanList.forEach(mesEquipmentProdParamCfg -> { + mesEquipmentProdParamCfg.setSourceId(sourceId); + }); + + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + for (MesTimeEfficientCfg bean : beanList) { + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + } + baseService.insertBatch(beanList); + // 导入后 + afterImport(beanList); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } From 6e756d00650ca78c97e507fc92e63be680fb86a3 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Wed, 15 Jan 2025 15:30:27 +0800 Subject: [PATCH 3/5] =?UTF-8?q?44813=20PC:=20=E7=BC=BA=E9=99=B7=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=B8=8E=E9=9B=B6=E4=BB=B6=E7=B1=BB=E5=9E=8B=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E5=AF=BC=E5=85=A5=E5=90=8E=EF=BC=8C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=98=BE=E7=A4=BA=E5=87=BA=E6=9D=A5=E7=BC=BA?= =?UTF-8?q?=E9=99=B7=E7=B1=BB=E5=9E=8B=E5=90=8D=E7=A7=B0=E5=92=8C=E9=9B=B6?= =?UTF-8?q?=E4=BB=B6=E7=B1=BB=E5=9E=8B=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/apiservice/serviceimpl/base/MesPartTypeDefectService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTypeDefectService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTypeDefectService.java index df4bd47..67cdff4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTypeDefectService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTypeDefectService.java @@ -133,13 +133,13 @@ public class MesPartTypeDefectService extends BaseMesService item.setPartTypeName(partType.getPartTypeName()); DdlPackBean defectTypePackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(item.getPartTypeCode(), "defectTypeCode", defectTypePackBean); + DdlPreparedPack.getStringEqualPack(item.getDefectTypeCode(), "defectTypeCode", defectTypePackBean); MesDefectType defectType = defectTypeRepository.getByProperty(defectTypePackBean); - if (defectTypeRepository == null) { + if (defectType == null) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("缺陷类型【%s】不存在,请检查数据", item.getPartTypeCode()) + .setErrorDetail("缺陷类型【%s】不存在,请检查数据", item.getDefectTypeCode()) .build(); } item.setDefectTypeName(defectType.getDefectTypeName()); 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 4/5] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90=E5=BC=82?= =?UTF-8?q?=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 5/5] =?UTF-8?q?44905=20=20MES-=E5=8F=91=E8=BF=90=E5=BC=82?= =?UTF-8?q?=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