物料优化

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

@@ -212,7 +212,7 @@ public class SalesOrderController implements BusinessControllerMarker {
//feign测试 //feign测试
@GetMapping("/get-sales-order-details-by-order-id") @GetMapping("/get-sales-order-details-by-order-id")
public CommonResult<?> getSalesOrderDetailsByOrderId(@RequestParam("orderId") Long orderId) { public CommonResult<?> getSalesOrderDetailsByOrderId(@RequestParam("orderId") String orderId) {
return success(orderApi.getSalesOrderDetailsById(orderId)); return success(orderApi.getOrderByOrderNos(List.of(orderId.toString())));
} }
} }

View File

@@ -135,7 +135,7 @@ public class EntrustOrderDetailDO extends BusinessBaseDO {
* 是否启用 * 是否启用
*/ */
@TableField("IS_ENB") @TableField("IS_ENB")
private Boolean isEnable; private String isEnable;
/** /**
* 短文本 * 短文本
*/ */

View File

@@ -331,6 +331,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
// 成功更新为FIND状态 // 成功更新为FIND状态
upVo.setErpStatus(OrderStatusEnum.FIND.getCode()); upVo.setErpStatus(OrderStatusEnum.FIND.getCode());
upVo.setCause("ERP订单提交成功SAP单号" + salesdocument); upVo.setCause("ERP订单提交成功SAP单号" + salesdocument);
//价格条件flag变更为U
updateConditionFlag(salesOrderDetailByOrderId);
} else { } else {
// 失败:拼接详细原因 // 失败:拼接详细原因
StringBuilder failMsg = new StringBuilder("ERP订单提交失败"); StringBuilder failMsg = new StringBuilder("ERP订单提交失败");
@@ -364,6 +366,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
} }
private void updateConditionFlag(List<SalesOrderDetailRespVO> salesOrderDetailList){
log.info("更新明细的价格条件操作类型为UID【{}】", salesOrderDetailList.stream().map(SalesOrderDetailRespVO::getId).toList());
salesOrderDetailService.updateSalesOrderDetailList(BeanUtils.toBean(salesOrderDetailList,SalesOrderDetailSaveReqVO.class));
}
@Override @Override
@Transactional @Transactional

View File

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

View File

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

View File

@@ -31,17 +31,23 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{
@Override @Override
public List<ErpMaterialCorrRspVO> create(ErpMaterialCorrSaveReqVO reqVO) { public List<ErpMaterialCorrRspVO> create(ErpMaterialCorrSaveReqVO reqVO) {
List<ErpMaterialCorrDO> erpMaterialCorrDOS=new ArrayList<>();
reqVO.getMaterials().forEach(materials -> {
//判断是否存在
if (erpErpMaterialCorrMapper.selectOne(ErpMaterialCorrDO::getMaterialParentId,reqVO.getMaterialParentId(), ErpMaterialCorrDO::getMaterialId,materials.getMaterialId()) != null) {
return;
}
CommonResult<DeptRespDTO> dept = deptApi.getDept(reqVO.getDeptId()); CommonResult<DeptRespDTO> dept = deptApi.getDept(reqVO.getDeptId());
DeptRespDTO data = dept.getData(); DeptRespDTO data = dept.getData();
if (data==null||data.getCode().isEmpty()) { if (data==null||data.getCode().isEmpty()) {
throw exception(new ErrorCode(1027004000, "部门或部门公司编码不存在,部门编号为:{}"), reqVO.getDeptId().toString()); throw exception(new ErrorCode(1027004000, "部门或部门公司编码不存在,部门编号为:{}"), reqVO.getDeptId().toString());
} }
List<ErpMaterialCorrDO> erpMaterialCorrDOS=new ArrayList<>();
reqVO.getMaterials().forEach(materials -> {
//判断是否存在
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;
}
erpMaterialCorrDOS.add(ErpMaterialCorrDO.builder() erpMaterialCorrDOS.add(ErpMaterialCorrDO.builder()
.materialParentId(reqVO.getMaterialParentId()) .materialParentId(reqVO.getMaterialParentId())
.materialParentCode(reqVO.getMaterialParentCode()) .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.enums.OftenEnum;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialDO; 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.erp.dal.mysql.erp.ErpMaterialMapper;
import com.zt.plat.module.system.api.dept.DeptApi;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -65,6 +66,9 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
@Resource @Resource
private DepartmentMaterialApi departmentMaterialApi; private DepartmentMaterialApi departmentMaterialApi;
@Resource
private DeptApi deptApi;
@Override @Override
public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) { public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) {
// 校验存在 // 校验存在
@@ -389,35 +393,23 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
@Override @Override
public PageResult<ErpMaterialDO> getErpProdMaterialByApi(MaterialInfomationApiVO vo) { public PageResult<ErpMaterialDO> getErpProdMaterialByApi(MaterialInfomationApiVO vo) {
MaterialInfomationPageReqDTO materialInfomationPageReqDTO = new MaterialInfomationPageReqDTO(); DepartmentMaterialPageReqDTO pageReqDTO = new DepartmentMaterialPageReqDTO();
materialInfomationPageReqDTO.setCode(vo.getMaterialNumber()); pageReqDTO.setMaterialNumber(vo.getMaterialNumber());
materialInfomationPageReqDTO.setName(vo.getMaterialName()); pageReqDTO.setMaterialName(vo.getMaterialName());
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(materialInfomationPageReqDTO); pageReqDTO.setDeptId(Long.valueOf(vo.getDeptId()));
PageResult<MaterialInfomationRespDTO> data = materialInfomationPage.getData(); 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()) { if (data == null || data.getList() == null || data.getList().isEmpty()) {
return new PageResult<>(); 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<>(); List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
departmentMaterialPage.getList().forEach(item -> { data.getList().forEach(item -> {
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item)); ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item));
erpMaterialDOList.add(erpMaterialDO); erpMaterialDOList.add(erpMaterialDO);
}); });
return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getTotal()); return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal());
} }
@Override @Override