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] =?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);