物料优化

This commit is contained in:
潘荣晟
2026-02-06 17:59:33 +08:00
parent 0c6f349683
commit d580e2878b
9 changed files with 122 additions and 70 deletions

View File

@@ -216,6 +216,9 @@ public class ErpOrderSaveReqVO {
@Schema(description = "委托加工物料信息")
@Data
public static class Comp {
@Schema(description = "行号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "行号不能为空")
private Integer po_item;
@Schema(description = "计划行号(从1开始)", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "计划行号不能为空")
private Integer sched_line; // ETENR NUMC4

View File

@@ -10,6 +10,8 @@ public class MaterialInfomationApiVO extends PageParam {
private String materialNumber;
@Schema(description = "物料名称")
private String materialName;
@Schema(description = "部门编号")
@Schema(description = "部门ID")
private String deptId;
@Schema(description = "部门编号")
private String companyCode;
}

View File

@@ -31,17 +31,23 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{
@Override
public List<ErpMaterialCorrRspVO> create(ErpMaterialCorrSaveReqVO reqVO) {
CommonResult<DeptRespDTO> dept = deptApi.getDept(reqVO.getDeptId());
DeptRespDTO data = dept.getData();
if (data==null||data.getCode().isEmpty()) {
throw exception(new ErrorCode(1027004000, "部门或部门公司编码不存在,部门编号为:{}"), reqVO.getDeptId().toString());
}
List<ErpMaterialCorrDO> erpMaterialCorrDOS=new ArrayList<>();
reqVO.getMaterials().forEach(materials -> {
//判断是否存在
if (erpErpMaterialCorrMapper.selectOne(ErpMaterialCorrDO::getMaterialParentId,reqVO.getMaterialParentId(), ErpMaterialCorrDO::getMaterialId,materials.getMaterialId()) != null) {
if (erpErpMaterialCorrMapper.selectOne(
new LambdaQueryWrapperX<ErpMaterialCorrDO>()
.eq(ErpMaterialCorrDO::getMaterialParentId, reqVO.getMaterialParentId())
.eq(ErpMaterialCorrDO::getMaterialId, materials.getMaterialId())
.eqIfPresent(ErpMaterialCorrDO::getCompanyCode, data.getCode())
.eqIfPresent(ErpMaterialCorrDO::getDeptId, reqVO.getDeptId())
) != null) {
return;
}
CommonResult<DeptRespDTO> dept = deptApi.getDept(reqVO.getDeptId());
DeptRespDTO data = dept.getData();
if (data==null||data.getCode().isEmpty()) {
throw exception(new ErrorCode(1027004000, "部门或部门公司编码不存在,部门编号为:{}"), reqVO.getDeptId().toString());
}
erpMaterialCorrDOS.add(ErpMaterialCorrDO.builder()
.materialParentId(reqVO.getMaterialParentId())
.materialParentCode(reqVO.getMaterialParentCode())

View File

@@ -25,6 +25,7 @@ import com.zt.plat.module.erp.utils.MyRedisConfig;
import com.zt.plat.module.erp.enums.OftenEnum;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialDO;
import com.zt.plat.module.erp.dal.mysql.erp.ErpMaterialMapper;
import com.zt.plat.module.system.api.dept.DeptApi;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
import org.springframework.stereotype.Service;
@@ -65,6 +66,9 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
@Resource
private DepartmentMaterialApi departmentMaterialApi;
@Resource
private DeptApi deptApi;
@Override
public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) {
// 校验存在
@@ -389,35 +393,23 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
@Override
public PageResult<ErpMaterialDO> getErpProdMaterialByApi(MaterialInfomationApiVO vo) {
MaterialInfomationPageReqDTO materialInfomationPageReqDTO = new MaterialInfomationPageReqDTO();
materialInfomationPageReqDTO.setCode(vo.getMaterialNumber());
materialInfomationPageReqDTO.setName(vo.getMaterialName());
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(materialInfomationPageReqDTO);
PageResult<MaterialInfomationRespDTO> data = materialInfomationPage.getData();
DepartmentMaterialPageReqDTO pageReqDTO = new DepartmentMaterialPageReqDTO();
pageReqDTO.setMaterialNumber(vo.getMaterialNumber());
pageReqDTO.setMaterialName(vo.getMaterialName());
pageReqDTO.setDeptId(Long.valueOf(vo.getDeptId()));
pageReqDTO.setPageSize(vo.getPageSize());
pageReqDTO.setPageNo(vo.getPageNo());
CommonResult<PageResult<DepartmentMaterialRespDTO>> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(pageReqDTO);
PageResult<DepartmentMaterialRespDTO> data = departmentMaterialPage.getData();
if (data == null || data.getList() == null || data.getList().isEmpty()) {
return new PageResult<>();
}
PageResult<DepartmentMaterialRespDTO> departmentMaterialPage =new PageResult<>();
List<DepartmentMaterialRespDTO> dtos=new ArrayList<>();
data.getList().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( materialInfomationPage.getData().getTotal());
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
departmentMaterialPage.getList().forEach(item -> {
data.getList().forEach(item -> {
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item));
erpMaterialDOList.add(erpMaterialDO);
});
return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getTotal());
return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal());
}
@Override