计划管理相关功能实现

This commit is contained in:
潘荣晟
2026-01-20 17:55:35 +08:00
parent b597920d55
commit fec079e2fe
9 changed files with 153 additions and 110 deletions

View File

@@ -46,14 +46,14 @@ public class PrchOrdDtlController implements BusinessControllerMarker {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建采购订单明细") @Operation(summary = "创建采购订单明细")
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:create')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:create','purchase:order:list:OrderList:add')")
public CommonResult<PrchOrdDtlRespVO> createPrchOrdDtl(@Valid @RequestBody PrchOrdDtlSaveReqVO createReqVO) { public CommonResult<PrchOrdDtlRespVO> createPrchOrdDtl(@Valid @RequestBody PrchOrdDtlSaveReqVO createReqVO) {
return success(prchOrdDtlService.createPrchOrdDtl(createReqVO)); return success(prchOrdDtlService.createPrchOrdDtl(createReqVO));
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新采购订单明细") @Operation(summary = "更新采购订单明细")
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:update')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:update','purchase:order:list:OrderList:edit')")
public CommonResult<Boolean> updatePrchOrdDtl(@Valid @RequestBody PrchOrdDtlSaveReqVO updateReqVO) { public CommonResult<Boolean> updatePrchOrdDtl(@Valid @RequestBody PrchOrdDtlSaveReqVO updateReqVO) {
prchOrdDtlService.updatePrchOrdDtl(updateReqVO); prchOrdDtlService.updatePrchOrdDtl(updateReqVO);
return success(true); return success(true);
@@ -62,7 +62,7 @@ public class PrchOrdDtlController implements BusinessControllerMarker {
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除采购订单明细") @Operation(summary = "删除采购订单明细")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:delete')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:delete','purchase:order:list:OrderList:delete')")
public CommonResult<Boolean> deletePrchOrdDtl(@RequestParam("id") Long id) { public CommonResult<Boolean> deletePrchOrdDtl(@RequestParam("id") Long id) {
prchOrdDtlService.deletePrchOrdDtl(id); prchOrdDtlService.deletePrchOrdDtl(id);
return success(true); return success(true);
@@ -71,7 +71,7 @@ public class PrchOrdDtlController implements BusinessControllerMarker {
@DeleteMapping("/delete-list") @DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除采购订单明细") @Operation(summary = "批量删除采购订单明细")
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:delete')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:delete','purchase:order:list:OrderList:delete')")
public CommonResult<Boolean> deletePrchOrdDtlList(@RequestBody BatchDeleteReqVO req) { public CommonResult<Boolean> deletePrchOrdDtlList(@RequestBody BatchDeleteReqVO req) {
prchOrdDtlService.deletePrchOrdDtlListByIds(req.getIds()); prchOrdDtlService.deletePrchOrdDtlListByIds(req.getIds());
return success(true); return success(true);
@@ -80,7 +80,7 @@ public class PrchOrdDtlController implements BusinessControllerMarker {
@GetMapping("/get") @GetMapping("/get")
@Operation(summary = "获得采购订单明细") @Operation(summary = "获得采购订单明细")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:query')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:query','purchase:order:list:OrderList:query')")
public CommonResult<PrchOrdDtlRespVO> getPrchOrdDtl(@RequestParam("id") Long id) { public CommonResult<PrchOrdDtlRespVO> getPrchOrdDtl(@RequestParam("id") Long id) {
PrchOrdDtlDO prchOrdDtl = prchOrdDtlService.getPrchOrdDtl(id); PrchOrdDtlDO prchOrdDtl = prchOrdDtlService.getPrchOrdDtl(id);
return success(BeanUtils.toBean(prchOrdDtl, PrchOrdDtlRespVO.class)); return success(BeanUtils.toBean(prchOrdDtl, PrchOrdDtlRespVO.class));
@@ -88,7 +88,7 @@ public class PrchOrdDtlController implements BusinessControllerMarker {
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "获得采购订单明细分页") @Operation(summary = "获得采购订单明细分页")
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:query')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:query','purchase:order:list:OrderList:query')")
public CommonResult<PageResult<PrchOrdDtlRespVO>> getPrchOrdDtlPage(@Valid PrchOrdDtlPageReqVO pageReqVO) { public CommonResult<PageResult<PrchOrdDtlRespVO>> getPrchOrdDtlPage(@Valid PrchOrdDtlPageReqVO pageReqVO) {
PageResult<PrchOrdDtlDO> pageResult = prchOrdDtlService.getPrchOrdDtlPage(pageReqVO); PageResult<PrchOrdDtlDO> pageResult = prchOrdDtlService.getPrchOrdDtlPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PrchOrdDtlRespVO.class)); return success(BeanUtils.toBean(pageResult, PrchOrdDtlRespVO.class));
@@ -96,7 +96,7 @@ public class PrchOrdDtlController implements BusinessControllerMarker {
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出采购订单明细 Excel") @Operation(summary = "导出采购订单明细 Excel")
@PreAuthorize("@ss.hasPermission('base:prch-ord-dtl:export')") @PreAuthorize("@ss.hasAnyPermissions('base:prch-ord-dtl:export','purchase:order:list:OrderList:export')")
@ApiAccessLog(operateType = EXPORT) @ApiAccessLog(operateType = EXPORT)
public void exportPrchOrdDtlExcel(@Valid PrchOrdDtlPageReqVO pageReqVO, public void exportPrchOrdDtlExcel(@Valid PrchOrdDtlPageReqVO pageReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {

View File

@@ -55,14 +55,14 @@ public class SalesOrderController implements BusinessControllerMarker {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建销售订单") @Operation(summary = "创建销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:create')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:create','sale:order:list:OrderList:add')")
public CommonResult<SalesOrderRespVO> createSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO createReqVO) { public CommonResult<SalesOrderRespVO> createSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO createReqVO) {
return success(salesOrderService.createSalesOrder(createReqVO)); return success(salesOrderService.createSalesOrder(createReqVO));
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新销售订单") @Operation(summary = "更新销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:update','sale:order:list:OrderList:edit')")
public CommonResult<Boolean> updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) { public CommonResult<Boolean> updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) {
salesOrderService.updateSalesOrder(updateReqVO); salesOrderService.updateSalesOrder(updateReqVO);
return success(true); return success(true);
@@ -71,7 +71,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除销售订单") @Operation(summary = "删除销售订单")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:delete','sale:order:list:OrderList:delete')")
public CommonResult<Boolean> deleteSalesOrder(@RequestParam("id") Long id) { public CommonResult<Boolean> deleteSalesOrder(@RequestParam("id") Long id) {
salesOrderService.deleteSalesOrder(id); salesOrderService.deleteSalesOrder(id);
return success(true); return success(true);
@@ -80,7 +80,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@DeleteMapping("/delete-list") @DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除销售订单") @Operation(summary = "批量删除销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:delete','sale:order:list:OrderList:delete')")
public CommonResult<Boolean> deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) { public CommonResult<Boolean> deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) {
salesOrderService.deleteSalesOrderListByIds(req.getIds()); salesOrderService.deleteSalesOrderListByIds(req.getIds());
return success(true); return success(true);
@@ -89,7 +89,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@GetMapping("/get") @GetMapping("/get")
@Operation(summary = "获得销售订单") @Operation(summary = "获得销售订单")
@Parameter(name = "id", description = "id是订单主键splyBsnTp是订单类型销售或者是消费", required = true, example = "1024") @Parameter(name = "id", description = "id是订单主键splyBsnTp是订单类型销售或者是消费", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:query','sale:order:list:OrderList:query')")
public CommonResult<SalesOrderRespVO> getSalesOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) { public CommonResult<SalesOrderRespVO> getSalesOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) {
SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp); SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp);
SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class);
@@ -103,7 +103,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@GetMapping("/order-no") @GetMapping("/order-no")
@Operation(summary = "通过订单号获得销售订单") @Operation(summary = "通过订单号获得销售订单")
@Parameter(name = "orderNo", description = "订单号", required = true, example = "1024") @Parameter(name = "orderNo", description = "订单号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:query','sale:order:list:OrderList:query')")
public CommonResult<SalesOrderRespVO> getSalesOrderByNo(@RequestParam("orderNo") String orderNo) { public CommonResult<SalesOrderRespVO> getSalesOrderByNo(@RequestParam("orderNo") String orderNo) {
SalesOrderDO purchaseOrder = salesOrderService.getSalesOrderByOrderNo(orderNo); SalesOrderDO purchaseOrder = salesOrderService.getSalesOrderByOrderNo(orderNo);
SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class);
@@ -116,7 +116,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "获得销售订单分页") @Operation(summary = "获得销售订单分页")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:query','sale:order:list:OrderList:query')")
public CommonResult<PageResult<SalesOrderRespVO>> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) { public CommonResult<PageResult<SalesOrderRespVO>> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) {
PageResult<SalesOrderDO> pageResult = salesOrderService.getSalesOrderPage(pageReqVO); PageResult<SalesOrderDO> pageResult = salesOrderService.getSalesOrderPage(pageReqVO);
PageResult<SalesOrderRespVO> salesOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); PageResult<SalesOrderRespVO> salesOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class);
@@ -129,7 +129,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出销售订单 Excel") @Operation(summary = "导出销售订单 Excel")
@PreAuthorize("@ss.hasPermission('base:sales-order:export')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:export')")
@ApiAccessLog(operateType = EXPORT) @ApiAccessLog(operateType = EXPORT)
public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO, public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
@@ -143,7 +143,7 @@ public class SalesOrderController implements BusinessControllerMarker {
//推送erp091 //推送erp091
@PostMapping("/push-erp091") @PostMapping("/push-erp091")
@Operation(summary = "推送erp091") @Operation(summary = "推送erp091")
@PreAuthorize("@ss.hasPermission('base:purchase-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','sale:order:list:OrderList:edit')")
public CommonResult<Boolean> pushErp091(@RequestBody @Validated @NotEmpty(message = "销售订单id不能为空") List<String> ids) { public CommonResult<Boolean> pushErp091(@RequestBody @Validated @NotEmpty(message = "销售订单id不能为空") List<String> ids) {
ids.forEach(id -> salesOrderService.pushErp091(id)); ids.forEach(id -> salesOrderService.pushErp091(id));
return success(true); return success(true);
@@ -152,14 +152,14 @@ public class SalesOrderController implements BusinessControllerMarker {
//提交审批 //提交审批
@PostMapping("/submit-order") @PostMapping("/submit-order")
@Operation(summary = "提交审批") @Operation(summary = "提交审批")
@PreAuthorize("@ss.hasPermission('base:purchase-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','sale:order:list:OrderList:edit')")
public CommonResult<String> submitOrder(@RequestParam("id") String id) { public CommonResult<String> submitOrder(@RequestParam("id") String id) {
return success(salesOrderService.submitOrder(id)); return success(salesOrderService.submitOrder(id));
} }
@PostMapping("/submit-order-batch") @PostMapping("/submit-order-batch")
@Operation(summary = "批量提交订单审核") @Operation(summary = "批量提交订单审核")
@PreAuthorize("@ss.hasPermission('base:purchase-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','sale:order:list:OrderList:edit')")
public CommonResult<Boolean> submitOrder(@RequestBody @Validated @NotEmpty(message = "销售订单id不能为空") List<String> ids) { public CommonResult<Boolean> submitOrder(@RequestBody @Validated @NotEmpty(message = "销售订单id不能为空") List<String> ids) {
System.out.println("ids:" + ids); System.out.println("ids:" + ids);
ids.forEach(id -> salesOrderService.submitOrder(id)); ids.forEach(id -> salesOrderService.submitOrder(id));
@@ -169,7 +169,7 @@ public class SalesOrderController implements BusinessControllerMarker {
//提交审批 //提交审批
@PostMapping("/order-pass-reject") @PostMapping("/order-pass-reject")
@Operation(summary = "订单审核") @Operation(summary = "订单审核")
@PreAuthorize("@ss.hasPermission('base:purchase-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','sale:order:list:OrderList:edit')")
public CommonResult<Boolean> orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) { public CommonResult<Boolean> orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) {
return success(salesOrderService.orderPassReject(reqVO)); return success(salesOrderService.orderPassReject(reqVO));
} }
@@ -177,7 +177,7 @@ public class SalesOrderController implements BusinessControllerMarker {
//关联订单 //关联订单
@PostMapping("/link-order") @PostMapping("/link-order")
@Operation(summary = "关联订单") @Operation(summary = "关联订单")
@PreAuthorize("@ss.hasPermission('base:purchase-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','sale:order:list:OrderList:edit')")
public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req) { public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req) {
return success(salesOrderService.linkOrder(req)); return success(salesOrderService.linkOrder(req));
} }
@@ -185,7 +185,7 @@ public class SalesOrderController implements BusinessControllerMarker {
//根据订单id和方式获取上或下游订单 //根据订单id和方式获取上或下游订单
@PostMapping("/order-by-order-id-and-type") @PostMapping("/order-by-order-id-and-type")
@Operation(summary = "根据订单id和方式获取上或下游订单") @Operation(summary = "根据订单id和方式获取上或下游订单")
@PreAuthorize("@ss.hasPermission('base:purchase-order:query')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:query','sale:order:list:OrderList:query')")
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
return success(salesOrderService.getOrderByOrderIdAndType(reqVO)); return success(salesOrderService.getOrderByOrderIdAndType(reqVO));
} }
@@ -193,14 +193,14 @@ public class SalesOrderController implements BusinessControllerMarker {
@PostMapping("/bound-order") @PostMapping("/bound-order")
@Operation(summary = "获取已绑定的订单") @Operation(summary = "获取已绑定的订单")
@PreAuthorize("@ss.hasPermission('base:purchase-order:query')") @PreAuthorize("@ss.hasAnyPermissions('base:sales-order:query','sale:order:list:OrderList:query')")
public CommonResult<List<PurchaseOrderRespVO>> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) { public CommonResult<List<PurchaseOrderRespVO>> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) {
return success(salesOrderService.getBindOrderByOrder(reqVO)); return success(salesOrderService.getBindOrderByOrder(reqVO));
} }
@PutMapping("/update-order-status") @PutMapping("/update-order-status")
@Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'销售订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改") @Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'销售订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改")
@PreAuthorize("@ss.hasPermission('base:purchase-order:update')") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','sale:order:list:OrderList:edit')")
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) { public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) {
salesOrderService.updateOrderStatusByIdOrOrderNo(req); salesOrderService.updateOrderStatusByIdOrOrderNo(req);
return success(true); return success(true);

View File

@@ -1,12 +1,14 @@
package com.zt.plat.module.erp.controller.admin.erp; package com.zt.plat.module.erp.controller.admin.erp;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; 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.CommonResult;
import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.excel.core.util.ExcelUtils; 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.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
import com.zt.plat.module.erp.controller.admin.erp.vo.*; import com.zt.plat.module.erp.controller.admin.erp.vo.*;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialDO; 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 @RestController
@RequestMapping("/base/erp-material") @RequestMapping("/base/erp-material")
@Validated @Validated
public class ErpMaterialController { public class ErpMaterialController implements BusinessControllerMarker {
@Resource @Resource
@@ -147,7 +149,7 @@ public class ErpMaterialController {
@Operation(summary = "通过主物料查询子物料信息") @Operation(summary = "通过主物料查询子物料信息")
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByMainMaterial(@RequestParam("id") Long mainMaterialId) { 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)); return success(BeanUtils.toBean(erpMaterial, ErpMaterialRespVO.class));
} }
@@ -156,11 +158,12 @@ public class ErpMaterialController {
@Operation(summary = "通过接口查询物料") @Operation(summary = "通过接口查询物料")
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
public CommonResult<PageResult<ErpMaterialRespVO>> getErpMaterialByApi(@RequestBody MaterialInfomationApiVO vo) { public CommonResult<PageResult<ErpMaterialRespVO>> getErpMaterialByApi(@RequestBody MaterialInfomationApiVO vo) {
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO(); DepartmentMaterialPageReqDTO material = new DepartmentMaterialPageReqDTO();
material.setCode(vo.getMaterialNumber()); material.setMaterialNumber(vo.getMaterialNumber());
material.setName(vo.getMaterialName()); material.setMaterialName(vo.getMaterialName());
material.setPageSize(vo.getPageSize()); material.setPageSize(vo.getPageSize());
material.setPageNo(vo.getPageNo()); material.setPageNo(vo.getPageNo());
material.setDeptId(Long.valueOf(vo.getDeptId()));
PageResult<ErpMaterialDO> erpMaterialByApi = erpMaterialService.getErpMaterialByApi(material); PageResult<ErpMaterialDO> erpMaterialByApi = erpMaterialService.getErpMaterialByApi(material);
return success(BeanUtils.toBean(erpMaterialByApi, ErpMaterialRespVO.class)); return success(BeanUtils.toBean(erpMaterialByApi, ErpMaterialRespVO.class));
} }
@@ -168,16 +171,15 @@ public class ErpMaterialController {
@GetMapping("/erpMaterial-mainMaterial-code") @GetMapping("/erpMaterial-mainMaterial-code")
@Operation(summary = "通过主物料编号查询子物料信息") @Operation(summary = "通过主物料编号查询子物料信息")
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
public CommonResult<ErpMaterialRespVO> getErpMaterialByMainMaterialByCode(@RequestParam("materialNumber") String code) { public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByMainMaterialByCode(@RequestParam("materialNumber") String code,@RequestParam(value = "deptId",required = false) String deptId) {
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByMainMaterialByCode(code), ErpMaterialRespVO.class)); return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByMainMaterialByCode(code,deptId), ErpMaterialRespVO.class));
} }
//查询物料 //查询物料
@GetMapping("/api-erp-material-code") @GetMapping("/api-erp-material-code")
@Operation(summary = "通过编号接口查询物料") @Operation(summary = "通过编号接口查询物料")
@PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})") @PreAuthorize("@ss.hasAnyPermissions({'sply:erp-material:query','basic:material-config:query'})")
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByApiByCode(@RequestParam("materialNumber")String code) { 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));
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByApiByCode(code), ErpMaterialRespVO.class));
} }
} }

View File

@@ -13,6 +13,8 @@ import java.util.List;
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
public class ErpMaterialRespVO { public class ErpMaterialRespVO {
@Schema(description = "关联表主键,删除需要使用这个", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038")
private Long corrId;
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038") @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038")
@ExcelProperty("主键") @ExcelProperty("主键")

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.erp.controller.admin.erp.vo; 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 com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO;
import lombok.Getter; import lombok.Getter;
@@ -78,7 +79,7 @@ public class MaterialAttributeUtils {
} }
/** /**
* 物料属性封装RecordJava 16+ * 物料属性封装Record
* 包含所有属性的安全取值 * 包含所有属性的安全取值
*/ */
public record MaterialAttribute( public record MaterialAttribute(
@@ -117,7 +118,7 @@ public class MaterialAttributeUtils {
* @param dto 物料信息DTO * @param dto 物料信息DTO
* @return 封装后的物料属性Record * @return 封装后的物料属性Record
*/ */
public static MaterialAttribute safeExtractAllAttributes(MaterialInfomationRespDTO dto) { public static MaterialAttribute safeExtractAllAttributes(DepartmentMaterialRespDTO dto) {
// 1. 空值校验 // 1. 空值校验
if (dto == null || dto.getFlatAttributes() == null) { if (dto == null || dto.getFlatAttributes() == null) {
return MaterialAttribute.empty(); return MaterialAttribute.empty();

View File

@@ -16,5 +16,7 @@ public interface ErpErpMaterialCorrService {
List<ErpMaterialCorrRspVO> create(@Valid ErpMaterialCorrSaveReqVO reqVO); List<ErpMaterialCorrRspVO> create(@Valid ErpMaterialCorrSaveReqVO reqVO);
void deleteBatch(BatchDeleteReqVO reqVO); void deleteBatch(BatchDeleteReqVO reqVO);
List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(Long mainMaterialId); List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(List<Long> mainMaterialIds);
List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterialByCode(String code);
} }

View File

@@ -40,7 +40,12 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{
} }
@Override @Override
public List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(Long mainMaterialId) { public List<ErpMaterialCorrRspVO> getErpMaterialByMainMaterial(List<Long> mainMaterialIds) {
return BeanUtils.toBean( erpErpMaterialCorrMapper.selectList(ErpMaterialCorrDO::getMaterialParentId, mainMaterialId), ErpMaterialCorrRspVO.class); 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);
} }
} }

View File

@@ -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.PageResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; 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.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
import com.zt.plat.module.erp.api.dto.ErpMaterialDTO; 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.ErpMaterialCorrSaveReqVO;
@@ -77,11 +78,11 @@ public interface ErpMaterialService {
ErpMaterialDO getErpMaterialById(Long id); 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);
} }

View File

@@ -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.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.module.api.BaseApi; import com.zt.plat.module.api.BaseApi;
import com.zt.plat.module.api.dto.MaterialOtherDTO; 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.MaterialInfomationApi;
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO; import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO; import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO;
@@ -59,6 +62,8 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
private ErpErpMaterialCorrService erpMaterialCorrService; private ErpErpMaterialCorrService erpMaterialCorrService;
@Resource @Resource
private MaterialInfomationApi materialInfomationApi; private MaterialInfomationApi materialInfomationApi;
@Resource
private DepartmentMaterialApi departmentMaterialApi;
@Override @Override
public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) { public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) {
@@ -120,16 +125,12 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
if (CollUtil.isEmpty(list) || list.size() != ids.size()) { if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(ERP_MATERIAL_NOT_EXISTS); throw exception(ERP_MATERIAL_NOT_EXISTS);
} }
List<ErpMaterialDO> erpMaterialDOList = list.stream() List<ErpMaterialDO> erpMaterialDOList = list.stream().filter(erpMaterialDO -> erpMaterialDO.getType().equals("ERP")).collect(Collectors.toList());
.filter(erpMaterialDO -> erpMaterialDO.getType().equals("ERP"))
.collect(Collectors.toList());
if (CollUtil.isEmpty(erpMaterialDOList)) { if (CollUtil.isEmpty(erpMaterialDOList)) {
throw exception(ERP_MATERIAL_NOT_ALLOW_DELETE); throw exception(ERP_MATERIAL_NOT_ALLOW_DELETE);
} }
// 优化成批量查询使用IN语句 // 优化成批量查询使用IN语句
List<String> downCenterNumbers = list.stream() List<String> downCenterNumbers = list.stream().map(ErpMaterialDO::getDownCenterNumber).collect(Collectors.toList());
.map(ErpMaterialDO::getDownCenterNumber)
.collect(Collectors.toList());
// 使用IN语句批量查询所有物料编码的数量 // 使用IN语句批量查询所有物料编码的数量
Integer countMap = erpMaterialMapper.countByErpMNumbers(downCenterNumbers); Integer countMap = erpMaterialMapper.countByErpMNumbers(downCenterNumbers);
@@ -145,9 +146,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
} }
private void validateErpFactoryExistsNumber(String number) { private void validateErpFactoryExistsNumber(String number) {
List<ErpMaterialDO> list = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()).stream() List<ErpMaterialDO> list = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()).stream().filter(erpWarehouseDO -> erpWarehouseDO.getDownCenterNumber().equals(number)).toList();
.filter(erpWarehouseDO -> erpWarehouseDO.getDownCenterNumber().equals(number))
.toList();
if (!list.isEmpty()) { if (!list.isEmpty()) {
throw exception(ERP_MATERIAL_EXISTS); throw exception(ERP_MATERIAL_EXISTS);
} }
@@ -209,21 +208,27 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
} }
private ErpMaterialRespVO buildErpMaterialRespDataById(Long id) { private ErpMaterialRespVO buildErpMaterialRespDataById(Long id) {
CommonResult<MaterialInfomationRespDTO> materialInfomation = materialInfomationApi.getMaterialInfomation(id); DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
return BeanUtils.toBean(buildErpMaterialDOData(materialInfomation), ErpMaterialRespVO.class); 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) { if (materialInfomation.getData() == null) {
return new ErpMaterialDO(); return new ErpMaterialDO();
} }
ErpMaterialDO erpMaterialDO = new ErpMaterialDO(); ErpMaterialDO erpMaterialDO = new ErpMaterialDO();
MaterialInfomationRespDTO data = materialInfomation.getData(); DepartmentMaterialRespDTO data = materialInfomation.getData();
MaterialAttributeUtils.MaterialAttribute materialAttribute = MaterialAttributeUtils.safeExtractAllAttributes(data); MaterialAttributeUtils.MaterialAttribute materialAttribute = MaterialAttributeUtils.safeExtractAllAttributes(data);
// 有对应关系的字段赋值 // 有对应关系的字段赋值
erpMaterialDO.setMaterialNumber(data.getCode());//物料编码 erpMaterialDO.setMaterialNumber(data.getMaterialNumber());//物料编码
erpMaterialDO.setId(data.getId()); // 主键 erpMaterialDO.setId(data.getInfomationId()); // 主键
erpMaterialDO.setMaterialName(data.getName()); // 物料名称 erpMaterialDO.setMaterialName(data.getMaterialName()); // 物料名称
erpMaterialDO.setDownCenterNumber(materialAttribute.mtrlZhongtongCode()); // 中铜物料编码 erpMaterialDO.setDownCenterNumber(materialAttribute.mtrlZhongtongCode()); // 中铜物料编码
erpMaterialDO.setCenterNumber(materialAttribute.mtrlChalcoCode()); // 中铝物料编码 erpMaterialDO.setCenterNumber(materialAttribute.mtrlChalcoCode()); // 中铝物料编码
erpMaterialDO.setUnit(materialAttribute.mtrlBaseUnitCode()); // 计量单位编码 erpMaterialDO.setUnit(materialAttribute.mtrlBaseUnitCode()); // 计量单位编码
@@ -256,75 +261,104 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
@Override @Override
public ErpMaterialDO getErpMaterialById(Long id) { public ErpMaterialDO getErpMaterialById(Long id) {
CommonResult<MaterialInfomationRespDTO> materialInfomation = materialInfomationApi.getMaterialInfomation(id); DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
return buildErpMaterialDOData(materialInfomation); 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 @Override
public List<ErpMaterialDO> getErpMaterialByMainMaterial(Long mainMaterial) { public List<ErpMaterialRespVO> getErpMaterialByMainMaterial(Long mainMaterial) {
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(mainMaterial); List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(List.of(mainMaterial));
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>(); List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
CommonResult<List<MaterialInfomationRespDTO>> materialInfomationListByIds = materialInfomationApi.getMaterialInfomationListByIds(erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList()); List<ErpMaterialRespVO> erpMaterialRespVOS = new ArrayList<>();
if (materialInfomationListByIds.getData() == null || materialInfomationListByIds.getData().isEmpty()) { if (erpMaterialByMainMaterial.isEmpty()) {
return erpMaterialDOList; return erpMaterialRespVOS;
} }
materialInfomationListByIds.getData().forEach( List<Long> mIds = erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList();
materialInfomation -> { //构造查询条件
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation)); DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
erpMaterialDOList.add(erpMaterialDO); departmentMaterialPageReqDTO.setInfomationIds(mIds);
} departmentMaterialPageReqDTO.setPageSize(10000);
); PageResult<DepartmentMaterialRespDTO> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(departmentMaterialPageReqDTO).getData();
if (departmentMaterialPage == null || departmentMaterialPage.getList() == null || departmentMaterialPage.getList().isEmpty()) {
return erpMaterialDOList; return erpMaterialRespVOS;
} }
@Override departmentMaterialPage.getList().forEach(item -> {
public PageResult<ErpMaterialDO> getErpMaterialByApi(MaterialInfomationPageReqDTO material) { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item));
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(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); 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 new PageResult<>(erpMaterialDOList, materialInfomationPage.getData().getTotal()); );
return erpMaterialRespVOS;
} }
@Override @Override
public ErpMaterialDO getErpMaterialByMainMaterialByCode(String code) { public PageResult<ErpMaterialDO> getErpMaterialByApi(DepartmentMaterialPageReqDTO material) {
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO(); CommonResult<PageResult<DepartmentMaterialRespDTO>> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(material);
material.setCode(code); List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
material.setPageSize(PAGE_SIZE_NONE); if (departmentMaterialPage.getData() != null && departmentMaterialPage.getData().getList() != null && !departmentMaterialPage.getData().getList().isEmpty()) {
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material); departmentMaterialPage.getData().getList().forEach(materialInfomation -> {
if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomation));
return buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0))); erpMaterialDOList.add(erpMaterialDO);
});
}
return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal());
}
@Override
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; return null;
} }
@Override @Override
public List<ErpMaterialDO> getErpMaterialByApiByCode(String code) { public List<ErpMaterialDO> getErpMaterialByApiByCode(String code, String deptId) {
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO();
material.setCode(code);
material.setPageSize(PAGE_SIZE_NONE);
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material);
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>(); List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) { //获取该物料编码下的所有物料id,并根据这个ID查询子物料
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0))); List<ErpMaterialCorrRspVO> erpMaterialByMainMaterialByCode = erpMaterialCorrService.getErpMaterialByMainMaterialByCode(code);
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(erpMaterialDO.getId()); if (erpMaterialByMainMaterialByCode.isEmpty()) {
CommonResult<List<MaterialInfomationRespDTO>> materialInfomationListByIds = materialInfomationApi.getMaterialInfomationListByIds(erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList());
if (materialInfomationListByIds.getData() == null || materialInfomationListByIds.getData().isEmpty()) {
return erpMaterialDOList; return erpMaterialDOList;
} }
materialInfomationListByIds.getData().forEach( List<Long> mIds = erpMaterialByMainMaterialByCode.stream().map(ErpMaterialCorrRspVO::getId).toList();
materialInfomation -> { DepartmentMaterialPageReqDTO departmentMaterialPageReqDTO = new DepartmentMaterialPageReqDTO();
erpMaterialDOList.add(buildErpMaterialDOData(CommonResult.success(materialInfomation))); 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; return erpMaterialDOList;
} }
@@ -443,11 +477,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
} }
private void initialize(String key) { private void initialize(String key) {
List<String> existingNumbers = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()) List<String> existingNumbers = erpMaterialMapper.selectList(new LambdaQueryWrapperX<ErpMaterialDO>()).stream().filter(ErpMaterialDO -> ErpMaterialDO.getType().equals("ERP")).map(ErpMaterialDO::getDownCenterNumber).collect(Collectors.toList());
.stream()
.filter(ErpMaterialDO -> ErpMaterialDO.getType().equals("ERP"))
.map(ErpMaterialDO::getDownCenterNumber)
.collect(Collectors.toList());
myRedisConfig.updateRedisCache(key, existingNumbers); myRedisConfig.updateRedisCache(key, existingNumbers);
} }
} }