From 1bb5c117d2636f588a79d5ae076789914af1c059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Wed, 21 Jan 2026 16:09:35 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/dto/contract/AmountSplitRespDTO.java | 34 ++++++++++++++ .../api/dto/contract/ContractRespDTO.java | 3 ++ .../service/contract/ContractServiceImpl.java | 31 +++++++----- .../module/erp/enums/ErrorCodeConstants.java | 2 +- .../admin/erp/ErpMaterialController.java | 9 +--- .../admin/erp/vo/ErpMaterialCorrRspVO.java | 22 +++++++++ .../erp/vo/ErpMaterialCorrSaveReqVO.java | 17 +++++++ .../dal/dataobject/erp/ErpMaterialCorrDO.java | 26 ++++++++++ .../erp/ErpErpMaterialCorrService.java | 2 + .../erp/ErpErpMaterialCorrServiceImpl.java | 9 ++++ .../erp/service/erp/ErpMaterialService.java | 7 +-- .../service/erp/ErpMaterialServiceImpl.java | 47 +++++++++++++------ 12 files changed, 170 insertions(+), 39 deletions(-) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/AmountSplitRespDTO.java diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/AmountSplitRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/AmountSplitRespDTO.java new file mode 100644 index 00000000..f695409b --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/AmountSplitRespDTO.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.contractorder.api.dto.contract; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "金额分配响应DTO") +@Data +public class AmountSplitRespDTO { + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "17357") + private Long id; + + @Schema(description = "物料名称", example = "赵六") + private String materialName; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "元素缩写") + private String elementAbbreviation; + + @Schema(description = "元素名称", example = "张三") + private String elementName; + + @Schema(description = "元素编码") + private String elementCode; + + @Schema(description = "占比") + private BigDecimal ratio; + + @Schema(description = "合同id", example = "3781") + private Long contractId; +} diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java index d51186dc..4ca0abfb 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java @@ -286,4 +286,7 @@ public class ContractRespDTO { @Schema(description = "收发货规则") private List contractReceiveSends; + + @Schema(description = "金额拆分") + private List amountSplits; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 408a7121..66fb695f 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -125,11 +125,13 @@ public class ContractServiceImpl implements ContractService { private ContractReceiveSendService contractReceiveSendService; @Resource private AmountDismantleService amountDismantleService; + @Override public PageResult getContractPage(ContractPageReqVO pageReqVO) { return contractMainMapper.selectContractPage(pageReqVO); } - boolean isContractReceiveSendValid(List contractReceiveSends){ + + boolean isContractReceiveSendValid(List contractReceiveSends) { if (CollectionUtils.isEmpty(contractReceiveSends)) { return true; } @@ -320,7 +322,7 @@ public class ContractServiceImpl implements ContractService { }); } //插入资金拆分表 - if(reqVO.getAmountSplit() != null && !reqVO.getAmountSplit().isEmpty()){ + if (reqVO.getAmountSplit() != null && !reqVO.getAmountSplit().isEmpty()) { reqVO.getAmountSplit().forEach(amountDismantle -> { amountDismantle.setContractId(contractId); amountDismantleService.createAmountDismantle(amountDismantle); @@ -961,22 +963,22 @@ public class ContractServiceImpl implements ContractService { submitErp(newContractMainDO.getId()); } //更新收发货规则 - if (reqVO.getContractReceiveSends() != null && !reqVO.getContractReceiveSends().isEmpty()){ + if (reqVO.getContractReceiveSends() != null && !reqVO.getContractReceiveSends().isEmpty()) { //通过合同id删除收发货规则 List contractReceiveSendListByContract = contractReceiveSendService.getContractReceiveSendListByContractId(id); contractReceiveSendService.deleteContractReceiveSendListByIds(contractReceiveSendListByContract.stream().map(ContractReceiveSendRespVO::getId).toList()); //重新插入收发货规则 - reqVO.getContractReceiveSends().forEach(item->{ + reqVO.getContractReceiveSends().forEach(item -> { item.setContractId(id); item.setId(null); contractReceiveSendService.createContractReceiveSend(item); }); } //更新资金拆分表(直接先删除后面再插入) - if (reqVO.getAmountSplit()!=null &&!reqVO.getAmountSplit().isEmpty()){ + if (reqVO.getAmountSplit() != null && !reqVO.getAmountSplit().isEmpty()) { List amountDismantleList = amountDismantleService.getAmountDismantleListByContractId(id); amountDismantleService.deleteAmountDismantleListByIds(amountDismantleList.stream().map(AmountDismantleDO::getId).toList()); - reqVO.getAmountSplit().forEach(item->{ + reqVO.getAmountSplit().forEach(item -> { item.setContractId(id); item.setId(null); amountDismantleService.createAmountDismantle(item); @@ -1420,10 +1422,14 @@ public class ContractServiceImpl implements ContractService { } //收发货 List contractReceiveSendListByContractId = contractReceiveSendService.getContractReceiveSendListByContractId(contractMainDO.getId()); - if (contractReceiveSendListByContractId!=null&&!contractReceiveSendListByContractId.isEmpty()){ + if (contractReceiveSendListByContractId != null && !contractReceiveSendListByContractId.isEmpty()) { respDTO.setContractReceiveSends(BeanUtils.toBean(contractReceiveSendListByContractId, ContractReceiveSendRespDTO.class)); } - + //金额拆分 + List amountDismantleListByContractId = amountDismantleService.getAmountDismantleListByContractId(contractMainDO.getId()); + if (amountDismantleListByContractId != null && !amountDismantleListByContractId.isEmpty()) { + respDTO.setAmountSplits(BeanUtils.toBean(amountDismantleListByContractId,AmountSplitRespDTO.class)); + } return respDTO; } @@ -1513,16 +1519,19 @@ public class ContractServiceImpl implements ContractService { } //收发货 List contractReceiveSendListByContractId = contractReceiveSendService.getContractReceiveSendListByContractId(contractMainDO.getId()); - if (contractReceiveSendListByContractId!=null&&!contractReceiveSendListByContractId.isEmpty()){ + if (contractReceiveSendListByContractId != null && !contractReceiveSendListByContractId.isEmpty()) { respDTO.setContractReceiveSends(BeanUtils.toBean(contractReceiveSendListByContractId, ContractReceiveSendRespDTO.class)); } + //金额拆分 + List amountDismantleListByContractId = amountDismantleService.getAmountDismantleListByContractId(contractMainDO.getId()); + if (amountDismantleListByContractId != null && !amountDismantleListByContractId.isEmpty()) { + respDTO.setAmountSplits(BeanUtils.toBean(amountDismantleListByContractId,AmountSplitRespDTO.class)); + } return respDTO; } - - @Override public JSONObject submitErp(Long id) { diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java index dd799267..cbff4f20 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java @@ -57,7 +57,7 @@ public interface ErrorCodeConstants { ErrorCode ERP_PRODUCTIVE_ORDER_NOT_EXISTS = new ErrorCode(1_017_000_001, "ERP生产订单数据不存在"); ErrorCode MATERIAL_ERROR = new ErrorCode( 1_017_000_009, "主物料信息错误"); - + ErrorCode CUSTOM_ERROR = new ErrorCode(1_017_000_010, "{}"); ErrorCode INTERNAL_WAREHOUSE_NOT_EXISTS= new ErrorCode(1_017_000_011,"内部仓库不存在"); ErrorCode INTERNAL_WAREHOUSE_EXISTS=new ErrorCode(1_017_000_012,"内部仓库已存在"); ErrorCode WAREHOUSE_FACTORY_NOT_EXISTS=new ErrorCode(1_017_000_010,"库位与工厂信息不存在"); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index a7d9c949..25a3eca3 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -158,13 +158,8 @@ public class ErpMaterialController implements BusinessControllerMarker { @Operation(summary = "通过接口查询物料") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})") public CommonResult> getErpMaterialByApi(@RequestBody MaterialInfomationApiVO vo) { - DepartmentMaterialPageReqDTO material = new DepartmentMaterialPageReqDTO(); - material.setMaterialNumber(vo.getMaterialNumber()); - material.setMaterialName(vo.getMaterialName()); - material.setPageSize(vo.getPageSize()); - material.setPageNo(vo.getPageNo()); - material.setDeptId(Long.valueOf(vo.getDeptId())); - PageResult erpMaterialByApi = erpMaterialService.getErpMaterialByApi(material); + PageResult erpMaterialByApi = erpMaterialService.getErpMaterialByApi(vo); + return success(BeanUtils.toBean(erpMaterialByApi, ErpMaterialRespVO.class)); } //通过主物料查询子物料信息 diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrRspVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrRspVO.java index b83f9896..d8011ec7 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrRspVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrRspVO.java @@ -35,4 +35,26 @@ public class ErpMaterialCorrRspVO { */ @Schema(description = "拓展关系物料编号") private String materialCode; + /** + * 公司编码 + */ + @Schema(description = "公司编码") + @NotNull(message = "公司编码不能为空") + private String companyId; + /** + * 公司编码 + */ + @Schema(description = "公司编码") + private String companyCode; + + /** + * 部门ID + */ + @Schema(description = "部门ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long deptId; + /** + * 部门编码 + */ + @Schema(description = "部门编码", requiredMode = Schema.RequiredMode.REQUIRED) + private String deptCode; } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrSaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrSaveReqVO.java index f325a67b..ba7e036b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrSaveReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpMaterialCorrSaveReqVO.java @@ -1,6 +1,7 @@ package com.zt.plat.module.erp.controller.admin.erp.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -28,6 +29,22 @@ public class ErpMaterialCorrSaveReqVO { */ @Schema(description = "拓展关系主物料编号") private String materialParentCode; + /** + * 公司编码 + */ + @Schema(description = "公司编码") + private String companyCode; + + /** + * 部门ID + */ + @Schema(description = "部门ID") + private Long deptId; + /** + * 部门编码 + */ + @Schema(description = "部门编码") + private String deptCode; /** * 拓展关系物料 */ diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialCorrDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialCorrDO.java index 2b95f390..30eca7d9 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialCorrDO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpMaterialCorrDO.java @@ -50,4 +50,30 @@ public class ErpMaterialCorrDO extends BaseDO { */ @TableField("MTRL_CODE") private String materialCode; + + /** + * 公司ID + */ + + @TableField("COMPANY_ID") + private Long companyId; + + + /** + * 公司编码 + */ + + @TableField("COMPANY_CODE") + private String companyCode; + + /** + * 部门ID + */ + @TableField("DEPT_ID") + private Long deptId; + /** + * 部门编码 + */ + @TableField("DEPT_CODE") + private String deptCode; } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java index 13174c5b..0bdd808b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java @@ -19,4 +19,6 @@ public interface ErpErpMaterialCorrService { List getErpMaterialByMainMaterial(List mainMaterialIds); List getErpMaterialByMainMaterialByCode(String code); + + List getErpMaterialByCompanyCode(String CompanyCode); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java index 5f98277b..40caf2c1 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java @@ -23,6 +23,10 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{ public List create(ErpMaterialCorrSaveReqVO reqVO) { List erpMaterialCorrDOS=new ArrayList<>(); reqVO.getMaterials().forEach(materials -> { + //判断是否存在 + if (erpErpMaterialCorrMapper.selectOne(ErpMaterialCorrDO::getMaterialParentId,reqVO.getMaterialParentId(), ErpMaterialCorrDO::getMaterialId,materials.getMaterialId()) != null) { + return; + } erpMaterialCorrDOS.add(ErpMaterialCorrDO.builder() .materialParentId(reqVO.getMaterialParentId()) .materialParentCode(reqVO.getMaterialParentCode()) @@ -48,4 +52,9 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{ public List getErpMaterialByMainMaterialByCode(String code) { return BeanUtils.toBean(erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentCode, code), ErpMaterialCorrRspVO.class); } + + @Override + public List getErpMaterialByCompanyCode(String CompanyCode) { + return BeanUtils.toBean(erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getCompanyCode, CompanyCode), ErpMaterialCorrRspVO.class); + } } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java index 04ad643a..a64da689 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java @@ -5,10 +5,7 @@ import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.module.base.api.departmentmaterial.dto.DepartmentMaterialPageReqDTO; import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO; import com.zt.plat.module.erp.api.dto.ErpMaterialDTO; -import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialCorrSaveReqVO; -import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialPageReqVO; -import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialRespVO; -import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialSaveReqVO; +import com.zt.plat.module.erp.controller.admin.erp.vo.*; import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialDO; import jakarta.validation.Valid; @@ -80,7 +77,7 @@ public interface ErpMaterialService { List getErpMaterialByMainMaterial(Long mainMaterialId); - PageResult getErpMaterialByApi( DepartmentMaterialPageReqDTO material); + PageResult getErpMaterialByApi( MaterialInfomationApiVO vo); List getErpMaterialByMainMaterialByCode(String code,String deptId); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index 9d7a5211..e0d9598f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java @@ -210,7 +210,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { private ErpMaterialRespVO buildErpMaterialRespDataById(Long id) { DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO(); departmentMaterialPageReqDTO.setInfomationId(id); - departmentMaterialPageReqDTO.setPageSize(PAGE_SIZE_NONE); + departmentMaterialPageReqDTO.setPageSize(10000); PageResult data = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData(); if (data == null || data.getList().isEmpty()) { return null; @@ -294,30 +294,38 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { erpMaterialDOList.add(erpMaterialDO); }); erpMaterialRespVOS = BeanUtils.toBean(erpMaterialDOList, ErpMaterialRespVO.class); - erpMaterialRespVOS.forEach( - m -> { - erpMaterialByMainMaterial.forEach( - i -> { - if (Objects.equals(m.getId(), i.getMaterialId())) { - m.setCorrId(i.getId()); - } - } - ); - } - ); return erpMaterialRespVOS; } @Override - public PageResult getErpMaterialByApi(DepartmentMaterialPageReqDTO material) { + public PageResult getErpMaterialByApi(MaterialInfomationApiVO vo) { + //通过部门编码查询数据库,获取到部门ID + List erpMaterialByCompanyCode = erpMaterialCorrService.getErpMaterialByCompanyCode(vo.getDeptId()); + if (erpMaterialByCompanyCode.isEmpty()) { + return new PageResult<>(); + } + Set collect = erpMaterialByCompanyCode.stream().map(ErpMaterialCorrRspVO::getDeptId).collect(Collectors.toSet()); + if (collect.size() != 1) { + throw exception(CUSTOM_ERROR, "部门编码不唯一或部门编码不存在"); + } + + DepartmentMaterialPageReqDTO material = new DepartmentMaterialPageReqDTO(); + material.setMaterialNumber(vo.getMaterialNumber()); + material.setMaterialName(vo.getMaterialName()); + material.setPageSize(vo.getPageSize()); + material.setPageNo(vo.getPageNo()); + material.setDeptId(collect.iterator().next()); CommonResult> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(material); List erpMaterialDOList = new ArrayList<>(); + //开始时间 + long startTime = System.currentTimeMillis(); if (departmentMaterialPage.getData() != null && departmentMaterialPage.getData().getList() != null && !departmentMaterialPage.getData().getList().isEmpty()) { departmentMaterialPage.getData().getList().forEach(materialInfomation -> { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation)); erpMaterialDOList.add(erpMaterialDO); }); } + System.out.println("==============查询物料数据耗时:============"+String.valueOf(System.currentTimeMillis() - startTime)); return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal()); } @@ -340,17 +348,26 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { } @Override - public List getErpMaterialByApiByCode(String code, String deptId) { + public List getErpMaterialByApiByCode(String code, String companyCode) { List erpMaterialDOList = new ArrayList<>(); //获取该物料编码下的所有物料id,并根据这个ID查询子物料 List erpMaterialByMainMaterialByCode = erpMaterialCorrService.getErpMaterialByMainMaterialByCode(code); if (erpMaterialByMainMaterialByCode.isEmpty()) { return erpMaterialDOList; } - List mIds = erpMaterialByMainMaterialByCode.stream().map(ErpMaterialCorrRspVO::getId).toList(); + List erpMaterialByCompanyCode = erpMaterialCorrService.getErpMaterialByCompanyCode(companyCode); + if (erpMaterialByCompanyCode.isEmpty()){ + return erpMaterialDOList; + } + Set collect = erpMaterialByCompanyCode.stream().map(ErpMaterialCorrRspVO::getDeptId).collect(Collectors.toSet()); + if (collect.size() != 1) { + throw exception(CUSTOM_ERROR, "部门编码不唯一或部门编码不存在"); + } + List mIds = erpMaterialByMainMaterialByCode.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList(); DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO(); departmentMaterialPageReqDTO.setInfomationIds(mIds); departmentMaterialPageReqDTO.setPageSize(10000); + departmentMaterialPageReqDTO.setDeptId(collect.iterator().next()); PageResult departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData(); if (departmentMaterialPage == null || departmentMaterialPage.getList() == null || departmentMaterialPage.getList().isEmpty()) { return erpMaterialDOList; From 8bb76b85abf611d7048cf69b7ba2fbc5ce8fc29f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Wed, 21 Jan 2026 17:22:59 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/erp/ErpMaterialController.java | 2 +- .../admin/erp/vo/DeleteErpMaterialCorrVO.java | 15 +++++++++++++++ .../admin/erp/vo/WarehouseFactoryPageReqVO.java | 2 +- .../admin/erp/vo/WarehouseFactoryRespVO.java | 2 +- .../admin/erp/vo/WarehouseFactorySaveReqVO.java | 2 +- .../dal/dataobject/erp/WarehouseFactoryDO.java | 2 +- .../erp/dal/mysql/erp/WarehouseFactoryMapper.java | 2 +- .../service/erp/ErpErpMaterialCorrService.java | 3 ++- .../erp/ErpErpMaterialCorrServiceImpl.java | 8 ++++++-- .../erp/service/erp/ErpMaterialService.java | 2 +- .../erp/service/erp/ErpMaterialServiceImpl.java | 3 +-- 11 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index 25a3eca3..cb690b41 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -130,7 +130,7 @@ public class ErpMaterialController implements BusinessControllerMarker { @DeleteMapping("/deleteErpMaterialCorr") @Operation(summary = "删除ERP物料关系") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:delete','basic:material-config:delete'})") - public CommonResult deleteErpMaterialCorr(@RequestBody BatchDeleteReqVO req) { + public CommonResult deleteErpMaterialCorr(@RequestBody DeleteErpMaterialCorrVO req) { erpMaterialService.deleteErpMaterialCorr(req); return success(true); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java new file mode 100644 index 00000000..89efe79d --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java @@ -0,0 +1,15 @@ +package com.zt.plat.module.erp.controller.admin.erp.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "删除ErpMaterialCorr请求参数") +public class DeleteErpMaterialCorrVO { + @Schema(description = "ids") + private List materialIds; + @Schema(description = "主物料Id") + private Long materialParentId; +} diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryPageReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryPageReqVO.java index c190a173..6583bc29 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryPageReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryPageReqVO.java @@ -23,7 +23,7 @@ public class WarehouseFactoryPageReqVO extends PageParam { private String operationType; @Schema(description = "业务类型", example = "2") - private String mMSIType; + private String mmsiType; @Schema(description = "erp源工厂名称", example = "赵六") private String erpSourceFactoryName; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryRespVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryRespVO.java index 711e8f9a..2585e803 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryRespVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactoryRespVO.java @@ -30,7 +30,7 @@ public class WarehouseFactoryRespVO { @Schema(description = "业务类型", example = "2") @ExcelProperty("业务类型") - private String mMSIType; + private String mmsiType; @Schema(description = "erp源工厂名称", example = "赵六") @ExcelProperty("erp源工厂名称") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactorySaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactorySaveReqVO.java index ccb3edb0..16b4da3c 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactorySaveReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/WarehouseFactorySaveReqVO.java @@ -24,7 +24,7 @@ public class WarehouseFactorySaveReqVO { private String operationType; @Schema(description = "业务类型", example = "2") - private String mMSIType; + private String mmsiType; @Schema(description = "erp源工厂名称", example = "赵六") private String erpSourceFactoryName; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/WarehouseFactoryDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/WarehouseFactoryDO.java index 0800d14e..877a2e83 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/WarehouseFactoryDO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/WarehouseFactoryDO.java @@ -48,7 +48,7 @@ public class WarehouseFactoryDO extends BusinessBaseDO { * 业务类型 */ @TableField("MMSI_TP") - private String mMSIType; + private String mmsiType; /** * erp源工厂名称 */ diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/WarehouseFactoryMapper.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/WarehouseFactoryMapper.java index 66e6397e..dc37ee5f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/WarehouseFactoryMapper.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/WarehouseFactoryMapper.java @@ -21,7 +21,7 @@ public interface WarehouseFactoryMapper extends BaseMapperX .eqIfPresent(WarehouseFactoryDO::getCompanyNameCustom, reqVO.getCompanyNameCustom()) .eqIfPresent(WarehouseFactoryDO::getCompanyIdCustom, reqVO.getCompanyIdCustom()) .eqIfPresent(WarehouseFactoryDO::getOperationType, reqVO.getOperationType()) - .eqIfPresent(WarehouseFactoryDO::getMMSIType, reqVO.getMMSIType()) + .eqIfPresent(WarehouseFactoryDO::getMmsiType, reqVO.getMmsiType()) .likeIfPresent(WarehouseFactoryDO::getErpSourceFactoryName, reqVO.getErpSourceFactoryName()) .eqIfPresent(WarehouseFactoryDO::getErpSourceFactoryNumber, reqVO.getErpSourceFactoryNumber()) .likeIfPresent(WarehouseFactoryDO::getErpSourceWarehouseName, reqVO.getErpSourceWarehouseName()) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java index 0bdd808b..b7676ed8 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java @@ -1,6 +1,7 @@ package com.zt.plat.module.erp.service.erp; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.module.erp.controller.admin.erp.vo.DeleteErpMaterialCorrVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialCorrRspVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialCorrSaveReqVO; import jakarta.validation.Valid; @@ -14,7 +15,7 @@ import java.util.List; */ public interface ErpErpMaterialCorrService { List create(@Valid ErpMaterialCorrSaveReqVO reqVO); - void deleteBatch(BatchDeleteReqVO reqVO); + void deleteBatch(DeleteErpMaterialCorrVO reqVO); List getErpMaterialByMainMaterial(List mainMaterialIds); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java index 40caf2c1..023317a2 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java @@ -2,6 +2,8 @@ package com.zt.plat.module.erp.service.erp; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.erp.controller.admin.erp.vo.DeleteErpMaterialCorrVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialCorrRspVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpMaterialCorrSaveReqVO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialCorrDO; @@ -39,8 +41,10 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{ } @Override - public void deleteBatch(BatchDeleteReqVO reqVO) { - erpErpMaterialCorrMapper.deleteByIds(reqVO.getIds()); + public void deleteBatch(DeleteErpMaterialCorrVO reqVO) { + erpErpMaterialCorrMapper.delete(new LambdaQueryWrapperX() + .eq(ErpMaterialCorrDO::getMaterialParentId, reqVO.getMaterialParentId()) + .in(ErpMaterialCorrDO::getMaterialId, reqVO.getMaterialIds())); } @Override diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java index a64da689..c734965a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java @@ -71,7 +71,7 @@ public interface ErpMaterialService { List createErpMaterialCorr(ErpMaterialCorrSaveReqVO erpMaterialCorrSaveReqVO); - void deleteErpMaterialCorr(BatchDeleteReqVO reqVO); + void deleteErpMaterialCorr(DeleteErpMaterialCorrVO reqVO); ErpMaterialDO getErpMaterialById(Long id); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index e0d9598f..0bef9cc9 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java @@ -255,7 +255,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { @Override - public void deleteErpMaterialCorr(BatchDeleteReqVO reqVO) { + public void deleteErpMaterialCorr(DeleteErpMaterialCorrVO reqVO) { erpMaterialCorrService.deleteBatch(reqVO); } @@ -325,7 +325,6 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { erpMaterialDOList.add(erpMaterialDO); }); } - System.out.println("==============查询物料数据耗时:============"+String.valueOf(System.currentTimeMillis() - startTime)); return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal()); } From d71300ee7fce4eed7f58656ae90a8ec07c727c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Wed, 21 Jan 2026 18:20:32 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/erp/ErpMaterialController.java | 4 +- .../erp/ErpErpMaterialCorrService.java | 4 +- .../erp/ErpErpMaterialCorrServiceImpl.java | 14 ++-- .../erp/service/erp/ErpMaterialService.java | 2 +- .../service/erp/ErpMaterialServiceImpl.java | 65 +++++++++++-------- 5 files changed, 54 insertions(+), 35 deletions(-) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index cb690b41..d88a5778 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -148,8 +148,8 @@ public class ErpMaterialController implements BusinessControllerMarker { @GetMapping("/getErpMaterialByMainMaterialById") @Operation(summary = "通过主物料查询子物料信息") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})") - public CommonResult> getErpMaterialByMainMaterial(@RequestParam("id") Long mainMaterialId) { - List erpMaterial = erpMaterialService.getErpMaterialByMainMaterial(mainMaterialId); + public CommonResult> getErpMaterialByMainMaterial(@RequestParam("id") Long mainMaterialId, @RequestParam(value = "deptId",required = false) String companyCode) { + List erpMaterial = erpMaterialService.getErpMaterialByMainMaterial(mainMaterialId, companyCode); return success(BeanUtils.toBean(erpMaterial, ErpMaterialRespVO.class)); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java index b7676ed8..12d16828 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrService.java @@ -17,9 +17,9 @@ public interface ErpErpMaterialCorrService { List create(@Valid ErpMaterialCorrSaveReqVO reqVO); void deleteBatch(DeleteErpMaterialCorrVO reqVO); - List getErpMaterialByMainMaterial(List mainMaterialIds); + List getErpMaterialByMainMaterial(List mainMaterialIds, String companyCode); - List getErpMaterialByMainMaterialByCode(String code); + List getErpMaterialByMainMaterialByCode(String code,String companyCode); List getErpMaterialByCompanyCode(String CompanyCode); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java index 023317a2..cb9c9045 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java @@ -48,13 +48,19 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{ } @Override - public List getErpMaterialByMainMaterial(List mainMaterialIds) { - return BeanUtils.toBean( erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentId, mainMaterialIds), ErpMaterialCorrRspVO.class); + public List getErpMaterialByMainMaterial(List mainMaterialIds, String companyCode) { + LambdaQueryWrapperX erpMaterialCorrDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + erpMaterialCorrDOLambdaQueryWrapperX.eq(ErpMaterialCorrDO::getMaterialParentId, mainMaterialIds); + erpMaterialCorrDOLambdaQueryWrapperX.eqIfPresent(ErpMaterialCorrDO::getCompanyCode, companyCode); + return BeanUtils.toBean( erpErpMaterialCorrMapper.selectList(erpMaterialCorrDOLambdaQueryWrapperX), ErpMaterialCorrRspVO.class); } @Override - public List getErpMaterialByMainMaterialByCode(String code) { - return BeanUtils.toBean(erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentCode, code), ErpMaterialCorrRspVO.class); + public List getErpMaterialByMainMaterialByCode(String code, String companyCode) { + LambdaQueryWrapperX erpMaterialCorrDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + erpMaterialCorrDOLambdaQueryWrapperX.eq(ErpMaterialCorrDO::getMaterialParentCode, code); + erpMaterialCorrDOLambdaQueryWrapperX.eqIfPresent(ErpMaterialCorrDO::getCompanyCode, companyCode); + return BeanUtils.toBean(erpErpMaterialCorrMapper.selectList(erpMaterialCorrDOLambdaQueryWrapperX), ErpMaterialCorrRspVO.class); } @Override diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java index c734965a..3c9c117f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java @@ -75,7 +75,7 @@ public interface ErpMaterialService { ErpMaterialDO getErpMaterialById(Long id); - List getErpMaterialByMainMaterial(Long mainMaterialId); + List getErpMaterialByMainMaterial(Long mainMaterialId, String companyCode); PageResult getErpMaterialByApi( MaterialInfomationApiVO vo); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index 0bef9cc9..16c8324b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java @@ -272,8 +272,8 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { } @Override - public List getErpMaterialByMainMaterial(Long mainMaterial) { - List erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(List.of(mainMaterial)); + public List getErpMaterialByMainMaterial(Long mainMaterial, String companyCode) { + List erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(List.of(mainMaterial), companyCode); List erpMaterialDOList = new ArrayList<>(); List erpMaterialRespVOS = new ArrayList<>(); if (erpMaterialByMainMaterial.isEmpty()) { @@ -300,15 +300,11 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { @Override public PageResult getErpMaterialByApi(MaterialInfomationApiVO vo) { //通过部门编码查询数据库,获取到部门ID - List erpMaterialByCompanyCode = erpMaterialCorrService.getErpMaterialByCompanyCode(vo.getDeptId()); + List erpMaterialByCompanyCode = erpMaterialCorrService.getErpMaterialByMainMaterialByCode(vo.getDeptId(), vo.getDeptId()); if (erpMaterialByCompanyCode.isEmpty()) { return new PageResult<>(); } Set collect = erpMaterialByCompanyCode.stream().map(ErpMaterialCorrRspVO::getDeptId).collect(Collectors.toSet()); - if (collect.size() != 1) { - throw exception(CUSTOM_ERROR, "部门编码不唯一或部门编码不存在"); - } - DepartmentMaterialPageReqDTO material = new DepartmentMaterialPageReqDTO(); material.setMaterialNumber(vo.getMaterialNumber()); material.setMaterialName(vo.getMaterialName()); @@ -318,7 +314,6 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { CommonResult> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(material); List erpMaterialDOList = new ArrayList<>(); //开始时间 - long startTime = System.currentTimeMillis(); if (departmentMaterialPage.getData() != null && departmentMaterialPage.getData().getList() != null && !departmentMaterialPage.getData().getList().isEmpty()) { departmentMaterialPage.getData().getList().forEach(materialInfomation -> { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation)); @@ -329,13 +324,22 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { } @Override - public List getErpMaterialByMainMaterialByCode(String code, String deptId) { + public List getErpMaterialByMainMaterialByCode(String code, String companyCode) { + List erpMaterialDOList = new ArrayList<>(); DepartmentMaterialPageReqDTO material = new DepartmentMaterialPageReqDTO(); material.setMaterialNumber(code); material.setPageSize(10000); - material.setDeptId(Long.valueOf(deptId)); + List erpMaterialByCompanyCode = erpMaterialCorrService.getErpMaterialByCompanyCode(companyCode); + if (erpMaterialByCompanyCode.isEmpty()) { + return erpMaterialDOList; + } + Set collect = erpMaterialByCompanyCode.stream().map(ErpMaterialCorrRspVO::getDeptId).collect(Collectors.toSet()); + if (collect.size() != 1) { + throw exception(CUSTOM_ERROR, "部门编码不唯一或部门编码不存在"); + } + material.setDeptId(collect.iterator().next()); CommonResult> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(material); - List erpMaterialDOList = new ArrayList<>(); + if (departmentMaterialPage.isSuccess() && departmentMaterialPage.getData() != null && !departmentMaterialPage.getData().getList().isEmpty()) { departmentMaterialPage.getData().getList().forEach(materialInfomation -> { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation)); @@ -350,27 +354,36 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { public List getErpMaterialByApiByCode(String code, String companyCode) { List erpMaterialDOList = new ArrayList<>(); //获取该物料编码下的所有物料id,并根据这个ID查询子物料 - List erpMaterialByMainMaterialByCode = erpMaterialCorrService.getErpMaterialByMainMaterialByCode(code); + List erpMaterialByMainMaterialByCode = erpMaterialCorrService.getErpMaterialByMainMaterialByCode(code, companyCode); if (erpMaterialByMainMaterialByCode.isEmpty()) { return erpMaterialDOList; } - List erpMaterialByCompanyCode = erpMaterialCorrService.getErpMaterialByCompanyCode(companyCode); - if (erpMaterialByCompanyCode.isEmpty()){ - return erpMaterialDOList; - } - Set collect = erpMaterialByCompanyCode.stream().map(ErpMaterialCorrRspVO::getDeptId).collect(Collectors.toSet()); - if (collect.size() != 1) { - throw exception(CUSTOM_ERROR, "部门编码不唯一或部门编码不存在"); - } List mIds = erpMaterialByMainMaterialByCode.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList(); - DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO(); - departmentMaterialPageReqDTO.setInfomationIds(mIds); - departmentMaterialPageReqDTO.setPageSize(10000); - departmentMaterialPageReqDTO.setDeptId(collect.iterator().next()); - PageResult departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData(); - if (departmentMaterialPage == null || departmentMaterialPage.getList() == null || departmentMaterialPage.getList().isEmpty()) { + CommonResult> materialInfomationListByIds = materialInfomationApi.getMaterialInfomationListByIds(mIds); + if (materialInfomationListByIds == null || materialInfomationListByIds.getData() == null || materialInfomationListByIds.getData().isEmpty()) { return erpMaterialDOList; } + List data = materialInfomationListByIds.getData(); + PageResult departmentMaterialPage =new PageResult<>(); + List dtos=new ArrayList<>(); + data.forEach(item->{ + DepartmentMaterialRespDTO departmentMaterialRespDTO = new DepartmentMaterialRespDTO(); + departmentMaterialRespDTO.setId(item.getId()); + departmentMaterialRespDTO.setMaterialNumber(item.getCode()); + departmentMaterialRespDTO.setMaterialName(item.getName()); + departmentMaterialRespDTO.setClassesId(item.getClassesId()); + departmentMaterialRespDTO.setRemark(item.getRemark()); + departmentMaterialRespDTO.setCreateTime(item.getCreateTime()); + departmentMaterialRespDTO.setFlatAttributes(item.getFlatAttributes()); + dtos.add(departmentMaterialRespDTO); + }); + departmentMaterialPage.setList(dtos); + departmentMaterialPage.setTotal((long) data.size()); +//// departmentMaterialPageReqDTO.setDeptId(collect.iterator().next()); +// PageResult departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData(); +// if (departmentMaterialPage == null || departmentMaterialPage.getList() == null || departmentMaterialPage.getList().isEmpty()) { +// return erpMaterialDOList; +// } departmentMaterialPage.getList().forEach(item -> { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item)); erpMaterialDOList.add(erpMaterialDO); From 0b83979dfc6f2c4f9b1d790bed7633652ee189a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Wed, 21 Jan 2026 18:31:11 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java index cb9c9045..37a2c23a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java @@ -50,7 +50,7 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{ @Override public List getErpMaterialByMainMaterial(List mainMaterialIds, String companyCode) { LambdaQueryWrapperX erpMaterialCorrDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); - erpMaterialCorrDOLambdaQueryWrapperX.eq(ErpMaterialCorrDO::getMaterialParentId, mainMaterialIds); + erpMaterialCorrDOLambdaQueryWrapperX.in(ErpMaterialCorrDO::getMaterialParentId, mainMaterialIds); erpMaterialCorrDOLambdaQueryWrapperX.eqIfPresent(ErpMaterialCorrDO::getCompanyCode, companyCode); return BeanUtils.toBean( erpErpMaterialCorrMapper.selectList(erpMaterialCorrDOLambdaQueryWrapperX), ErpMaterialCorrRspVO.class); } From 51638fa6238288234439abadd7a2c6a40c11dce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Thu, 22 Jan 2026 09:27:09 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java | 2 +- .../zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java index 89efe79d..ca317ff1 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/DeleteErpMaterialCorrVO.java @@ -8,7 +8,7 @@ import java.util.List; @Data @Schema(description = "删除ErpMaterialCorr请求参数") public class DeleteErpMaterialCorrVO { - @Schema(description = "ids") + @Schema(description = "materialIds") private List materialIds; @Schema(description = "主物料Id") private Long materialParentId; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index 16c8324b..5798ca43 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java @@ -284,6 +284,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO(); departmentMaterialPageReqDTO.setInfomationIds(mIds); departmentMaterialPageReqDTO.setPageSize(10000); + departmentMaterialPageReqDTO.setDeptId(erpMaterialByMainMaterial.get(0).getDeptId()); PageResult departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData(); if (departmentMaterialPage == null || departmentMaterialPage.getList() == null || departmentMaterialPage.getList().isEmpty()) { return erpMaterialRespVOS;