计划管理相关功能实现
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
package com.zt.plat.module.erp.controller.admin.erp;
|
||||
|
||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
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.controller.admin.erp.vo.*;
|
||||
import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialDO;
|
||||
@@ -31,7 +33,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
@RestController
|
||||
@RequestMapping("/base/erp-material")
|
||||
@Validated
|
||||
public class ErpMaterialController {
|
||||
public class ErpMaterialController implements BusinessControllerMarker {
|
||||
|
||||
|
||||
@Resource
|
||||
@@ -147,7 +149,7 @@ public class ErpMaterialController {
|
||||
@Operation(summary = "通过主物料查询子物料信息")
|
||||
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
|
||||
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByMainMaterial(@RequestParam("id") Long mainMaterialId) {
|
||||
List<ErpMaterialDO> erpMaterial = erpMaterialService.getErpMaterialByMainMaterial(mainMaterialId);
|
||||
List<ErpMaterialRespVO> erpMaterial = erpMaterialService.getErpMaterialByMainMaterial(mainMaterialId);
|
||||
return success(BeanUtils.toBean(erpMaterial, ErpMaterialRespVO.class));
|
||||
}
|
||||
|
||||
@@ -156,11 +158,12 @@ public class ErpMaterialController {
|
||||
@Operation(summary = "通过接口查询物料")
|
||||
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
|
||||
public CommonResult<PageResult<ErpMaterialRespVO>> getErpMaterialByApi(@RequestBody MaterialInfomationApiVO vo) {
|
||||
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO();
|
||||
material.setCode(vo.getMaterialNumber());
|
||||
material.setName(vo.getMaterialName());
|
||||
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<ErpMaterialDO> erpMaterialByApi = erpMaterialService.getErpMaterialByApi(material);
|
||||
return success(BeanUtils.toBean(erpMaterialByApi, ErpMaterialRespVO.class));
|
||||
}
|
||||
@@ -168,16 +171,15 @@ public class ErpMaterialController {
|
||||
@GetMapping("/erpMaterial-mainMaterial-code")
|
||||
@Operation(summary = "通过主物料编号查询子物料信息")
|
||||
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
|
||||
public CommonResult<ErpMaterialRespVO> getErpMaterialByMainMaterialByCode(@RequestParam("materialNumber") String code) {
|
||||
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByMainMaterialByCode(code), ErpMaterialRespVO.class));
|
||||
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByMainMaterialByCode(@RequestParam("materialNumber") String code,@RequestParam(value = "deptId",required = false) String deptId) {
|
||||
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByMainMaterialByCode(code,deptId), ErpMaterialRespVO.class));
|
||||
}
|
||||
|
||||
//查询物料
|
||||
@GetMapping("/api-erp-material-code")
|
||||
@Operation(summary = "通过编号接口查询物料")
|
||||
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
|
||||
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByApiByCode(@RequestParam("materialNumber")String code) {
|
||||
|
||||
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByApiByCode(code), ErpMaterialRespVO.class));
|
||||
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByApiByCode(@RequestParam("materialNumber")String code,@RequestParam(value = "deptId",required = false) String deptId) {
|
||||
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByApiByCode(code,deptId), ErpMaterialRespVO.class));
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,8 @@ import java.util.List;
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ErpMaterialRespVO {
|
||||
@Schema(description = "关联表主键,删除需要使用这个", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038")
|
||||
private Long corrId;
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038")
|
||||
@ExcelProperty("主键")
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zt.plat.module.erp.controller.admin.erp.vo;
|
||||
|
||||
import com.zt.plat.module.base.api.departmentmaterial.dto.DepartmentMaterialRespDTO;
|
||||
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -78,7 +79,7 @@ public class MaterialAttributeUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* 物料属性封装Record(Java 16+)
|
||||
* 物料属性封装Record
|
||||
* 包含所有属性的安全取值
|
||||
*/
|
||||
public record MaterialAttribute(
|
||||
@@ -117,7 +118,7 @@ public class MaterialAttributeUtils {
|
||||
* @param dto 物料信息DTO
|
||||
* @return 封装后的物料属性Record
|
||||
*/
|
||||
public static MaterialAttribute safeExtractAllAttributes(MaterialInfomationRespDTO dto) {
|
||||
public static MaterialAttribute safeExtractAllAttributes(DepartmentMaterialRespDTO dto) {
|
||||
// 1. 空值校验
|
||||
if (dto == null || dto.getFlatAttributes() == null) {
|
||||
return MaterialAttribute.empty();
|
||||
|
||||
@@ -16,5 +16,7 @@ public interface ErpErpMaterialCorrService {
|
||||
List<ErpMaterialCorrRspVO> create(@Valid ErpMaterialCorrSaveReqVO reqVO);
|
||||
void deleteBatch(BatchDeleteReqVO reqVO);
|
||||
|
||||
List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(Long mainMaterialId);
|
||||
List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(List<Long> mainMaterialIds);
|
||||
|
||||
List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterialByCode(String code);
|
||||
}
|
||||
|
||||
@@ -40,7 +40,12 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(Long mainMaterialId) {
|
||||
return BeanUtils.toBean( erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentId, mainMaterialId), ErpMaterialCorrRspVO.class);
|
||||
public List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(List<Long> mainMaterialIds) {
|
||||
return BeanUtils.toBean( erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentId, mainMaterialIds), ErpMaterialCorrRspVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterialByCode(String code) {
|
||||
return BeanUtils.toBean(erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentCode, code), ErpMaterialCorrRspVO.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.zt.plat.module.erp.service.erp;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
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;
|
||||
@@ -77,11 +78,11 @@ public interface ErpMaterialService {
|
||||
|
||||
ErpMaterialDO getErpMaterialById(Long id);
|
||||
|
||||
List<ErpMaterialDO> getErpMaterialByMainMaterial(Long mainMaterialId);
|
||||
List<ErpMaterialRespVO> getErpMaterialByMainMaterial(Long mainMaterialId);
|
||||
|
||||
PageResult<ErpMaterialDO> getErpMaterialByApi( MaterialInfomationPageReqDTO material);
|
||||
PageResult<ErpMaterialDO> getErpMaterialByApi( DepartmentMaterialPageReqDTO material);
|
||||
|
||||
ErpMaterialDO getErpMaterialByMainMaterialByCode(String code);
|
||||
List<ErpMaterialDO> getErpMaterialByMainMaterialByCode(String code,String deptId);
|
||||
|
||||
List <ErpMaterialDO>getErpMaterialByApiByCode(String code);
|
||||
List <ErpMaterialDO>getErpMaterialByApiByCode(String code,String deptId);
|
||||
}
|
||||
@@ -11,6 +11,9 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.zt.plat.module.api.BaseApi;
|
||||
import com.zt.plat.module.api.dto.MaterialOtherDTO;
|
||||
import com.zt.plat.module.base.api.departmentmaterial.DepartmentMaterialApi;
|
||||
import com.zt.plat.module.base.api.departmentmaterial.dto.DepartmentMaterialPageReqDTO;
|
||||
import com.zt.plat.module.base.api.departmentmaterial.dto.DepartmentMaterialRespDTO;
|
||||
import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi;
|
||||
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
|
||||
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO;
|
||||
@@ -59,6 +62,8 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
|
||||
private ErpErpMaterialCorrService erpMaterialCorrService;
|
||||
@Resource
|
||||
private MaterialInfomationApi materialInfomationApi;
|
||||
@Resource
|
||||
private DepartmentMaterialApi departmentMaterialApi;
|
||||
|
||||
@Override
|
||||
public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) {
|
||||
@@ -120,16 +125,12 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
|
||||
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||
throw exception(ERP_MATERIAL_NOT_EXISTS);
|
||||
}
|
||||
List<ErpMaterialDO> erpMaterialDOList = list.stream()
|
||||
.filter(erpMaterialDO -> erpMaterialDO.getType().equals("ERP"))
|
||||
.collect(Collectors.toList());
|
||||
List<ErpMaterialDO> erpMaterialDOList = list.stream().filter(erpMaterialDO -> erpMaterialDO.getType().equals("ERP")).collect(Collectors.toList());
|
||||
if (CollUtil.isEmpty(erpMaterialDOList)) {
|
||||
throw exception(ERP_MATERIAL_NOT_ALLOW_DELETE);
|
||||
}
|
||||
// 优化成批量查询,使用IN语句
|
||||
List<String> downCenterNumbers = list.stream()
|
||||
.map(ErpMaterialDO::getDownCenterNumber)
|
||||
.collect(Collectors.toList());
|
||||
List<String> downCenterNumbers = list.stream().map(ErpMaterialDO::getDownCenterNumber).collect(Collectors.toList());
|
||||
|
||||
// 使用IN语句批量查询所有物料编码的数量
|
||||
Integer countMap = erpMaterialMapper.countByErpMNumbers(downCenterNumbers);
|
||||
@@ -145,9 +146,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
|
||||
}
|
||||
|
||||
private void validateErpFactoryExistsNumber(String number) {
|
||||
List<ErpMaterialDO> list = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()).stream()
|
||||
.filter(erpWarehouseDO -> erpWarehouseDO.getDownCenterNumber().equals(number))
|
||||
.toList();
|
||||
List<ErpMaterialDO> list = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()).stream().filter(erpWarehouseDO -> erpWarehouseDO.getDownCenterNumber().equals(number)).toList();
|
||||
if (!list.isEmpty()) {
|
||||
throw exception(ERP_MATERIAL_EXISTS);
|
||||
}
|
||||
@@ -209,21 +208,27 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
|
||||
}
|
||||
|
||||
private ErpMaterialRespVO buildErpMaterialRespDataById(Long id) {
|
||||
CommonResult<MaterialInfomationRespDTO> materialInfomation = materialInfomationApi.getMaterialInfomation(id);
|
||||
return BeanUtils.toBean(buildErpMaterialDOData(materialInfomation), ErpMaterialRespVO.class);
|
||||
DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
|
||||
departmentMaterialPageReqDTO.setInfomationId(id);
|
||||
departmentMaterialPageReqDTO.setPageSize(PAGE_SIZE_NONE);
|
||||
PageResult<DepartmentMaterialRespDTO> data = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData();
|
||||
if (data == null || data.getList().isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return BeanUtils.toBean(buildErpMaterialDOData(CommonResult.success(data.getList().get(0))), ErpMaterialRespVO.class);
|
||||
}
|
||||
|
||||
public ErpMaterialDO buildErpMaterialDOData(CommonResult<MaterialInfomationRespDTO> materialInfomation) {
|
||||
public ErpMaterialDO buildErpMaterialDOData(CommonResult<DepartmentMaterialRespDTO> materialInfomation) {
|
||||
if (materialInfomation.getData() == null) {
|
||||
return new ErpMaterialDO();
|
||||
}
|
||||
ErpMaterialDO erpMaterialDO = new ErpMaterialDO();
|
||||
MaterialInfomationRespDTO data = materialInfomation.getData();
|
||||
DepartmentMaterialRespDTO data = materialInfomation.getData();
|
||||
MaterialAttributeUtils.MaterialAttribute materialAttribute = MaterialAttributeUtils.safeExtractAllAttributes(data);
|
||||
// 有对应关系的字段赋值
|
||||
erpMaterialDO.setMaterialNumber(data.getCode());//物料编码
|
||||
erpMaterialDO.setId(data.getId()); // 主键
|
||||
erpMaterialDO.setMaterialName(data.getName()); // 物料名称
|
||||
erpMaterialDO.setMaterialNumber(data.getMaterialNumber());//物料编码
|
||||
erpMaterialDO.setId(data.getInfomationId()); // 主键
|
||||
erpMaterialDO.setMaterialName(data.getMaterialName()); // 物料名称
|
||||
erpMaterialDO.setDownCenterNumber(materialAttribute.mtrlZhongtongCode()); // 中铜物料编码
|
||||
erpMaterialDO.setCenterNumber(materialAttribute.mtrlChalcoCode()); // 中铝物料编码
|
||||
erpMaterialDO.setUnit(materialAttribute.mtrlBaseUnitCode()); // 计量单位编码
|
||||
@@ -256,75 +261,104 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
|
||||
|
||||
@Override
|
||||
public ErpMaterialDO getErpMaterialById(Long id) {
|
||||
CommonResult<MaterialInfomationRespDTO> materialInfomation = materialInfomationApi.getMaterialInfomation(id);
|
||||
return buildErpMaterialDOData(materialInfomation);
|
||||
DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
|
||||
departmentMaterialPageReqDTO.setInfomationId(id);
|
||||
departmentMaterialPageReqDTO.setPageSize(10000);
|
||||
PageResult<DepartmentMaterialRespDTO> data = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData();
|
||||
if (data == null || data.getList() == null || data.getList().isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return buildErpMaterialDOData(CommonResult.success(data.getList().get(0)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ErpMaterialDO> getErpMaterialByMainMaterial(Long mainMaterial) {
|
||||
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(mainMaterial);
|
||||
public List<ErpMaterialRespVO> getErpMaterialByMainMaterial(Long mainMaterial) {
|
||||
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(List.of(mainMaterial));
|
||||
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
|
||||
CommonResult<List<MaterialInfomationRespDTO>> materialInfomationListByIds = materialInfomationApi.getMaterialInfomationListByIds(erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList());
|
||||
if (materialInfomationListByIds.getData() == null || materialInfomationListByIds.getData().isEmpty()) {
|
||||
return erpMaterialDOList;
|
||||
List<ErpMaterialRespVO> erpMaterialRespVOS = new ArrayList<>();
|
||||
if (erpMaterialByMainMaterial.isEmpty()) {
|
||||
return erpMaterialRespVOS;
|
||||
}
|
||||
materialInfomationListByIds.getData().forEach(
|
||||
materialInfomation -> {
|
||||
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation));
|
||||
erpMaterialDOList.add(erpMaterialDO);
|
||||
List<Long> mIds = erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList();
|
||||
//构造查询条件
|
||||
DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
|
||||
departmentMaterialPageReqDTO.setInfomationIds(mIds);
|
||||
departmentMaterialPageReqDTO.setPageSize(10000);
|
||||
PageResult<DepartmentMaterialRespDTO> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData();
|
||||
if (departmentMaterialPage == null || departmentMaterialPage.getList() == null || departmentMaterialPage.getList().isEmpty()) {
|
||||
return erpMaterialRespVOS;
|
||||
}
|
||||
|
||||
departmentMaterialPage.getList().forEach(item -> {
|
||||
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item));
|
||||
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 erpMaterialDOList;
|
||||
return erpMaterialRespVOS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ErpMaterialDO> getErpMaterialByApi(MaterialInfomationPageReqDTO material) {
|
||||
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material);
|
||||
public PageResult<ErpMaterialDO> getErpMaterialByApi(DepartmentMaterialPageReqDTO material) {
|
||||
CommonResult<PageResult<DepartmentMaterialRespDTO>> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(material);
|
||||
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
|
||||
if (materialInfomationPage.getData() != null && materialInfomationPage.getData().getList() != null && !materialInfomationPage.getData().getList().isEmpty()) {
|
||||
materialInfomationPage.getData().getList().forEach(
|
||||
materialInfomation -> {
|
||||
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation));
|
||||
erpMaterialDOList.add(erpMaterialDO);
|
||||
}
|
||||
);
|
||||
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);
|
||||
});
|
||||
}
|
||||
return new PageResult<>(erpMaterialDOList, materialInfomationPage.getData().getTotal());
|
||||
return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErpMaterialDO getErpMaterialByMainMaterialByCode(String code) {
|
||||
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO();
|
||||
material.setCode(code);
|
||||
material.setPageSize(PAGE_SIZE_NONE);
|
||||
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material);
|
||||
if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) {
|
||||
return buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0)));
|
||||
public List<ErpMaterialDO> getErpMaterialByMainMaterialByCode(String code, String deptId) {
|
||||
DepartmentMaterialPageReqDTO material = new DepartmentMaterialPageReqDTO();
|
||||
material.setMaterialNumber(code);
|
||||
material.setPageSize(10000);
|
||||
material.setDeptId(Long.valueOf(deptId));
|
||||
CommonResult<PageResult<DepartmentMaterialRespDTO>> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(material);
|
||||
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
|
||||
if (departmentMaterialPage.isSuccess() && departmentMaterialPage.getData() != null && !departmentMaterialPage.getData().getList().isEmpty()) {
|
||||
departmentMaterialPage.getData().getList().forEach(materialInfomation -> {
|
||||
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation));
|
||||
erpMaterialDOList.add(erpMaterialDO);
|
||||
});
|
||||
return erpMaterialDOList;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ErpMaterialDO> getErpMaterialByApiByCode(String code) {
|
||||
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO();
|
||||
material.setCode(code);
|
||||
material.setPageSize(PAGE_SIZE_NONE);
|
||||
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material);
|
||||
public List<ErpMaterialDO> getErpMaterialByApiByCode(String code, String deptId) {
|
||||
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
|
||||
if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) {
|
||||
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0)));
|
||||
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(erpMaterialDO.getId());
|
||||
CommonResult<List<MaterialInfomationRespDTO>> materialInfomationListByIds = materialInfomationApi.getMaterialInfomationListByIds(erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList());
|
||||
if (materialInfomationListByIds.getData() == null || materialInfomationListByIds.getData().isEmpty()) {
|
||||
return erpMaterialDOList;
|
||||
}
|
||||
materialInfomationListByIds.getData().forEach(
|
||||
materialInfomation -> {
|
||||
erpMaterialDOList.add(buildErpMaterialDOData(CommonResult.success(materialInfomation)));
|
||||
}
|
||||
);
|
||||
//获取该物料编码下的所有物料id,并根据这个ID查询子物料
|
||||
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterialByCode = erpMaterialCorrService.getErpMaterialByMainMaterialByCode(code);
|
||||
if (erpMaterialByMainMaterialByCode.isEmpty()) {
|
||||
return erpMaterialDOList;
|
||||
}
|
||||
List<Long> mIds = erpMaterialByMainMaterialByCode.stream().map(ErpMaterialCorrRspVO::getId).toList();
|
||||
DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
|
||||
departmentMaterialPageReqDTO.setInfomationIds(mIds);
|
||||
departmentMaterialPageReqDTO.setPageSize(10000);
|
||||
PageResult<DepartmentMaterialRespDTO> 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);
|
||||
});
|
||||
return erpMaterialDOList;
|
||||
}
|
||||
|
||||
@@ -443,11 +477,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
|
||||
}
|
||||
|
||||
private void initialize(String key) {
|
||||
List<String> existingNumbers = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>())
|
||||
.stream()
|
||||
.filter(ErpMaterialDO -> ErpMaterialDO.getType().equals("ERP"))
|
||||
.map(ErpMaterialDO::getDownCenterNumber)
|
||||
.collect(Collectors.toList());
|
||||
List<String> existingNumbers = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()).stream().filter(ErpMaterialDO -> ErpMaterialDO.getType().equals("ERP")).map(ErpMaterialDO::getDownCenterNumber).collect(Collectors.toList());
|
||||
myRedisConfig.updateRedisCache(key, existingNumbers);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user