From 6ba001a74a14cb183580a4d304d2548fcc0ef6af 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: Tue, 28 Oct 2025 15:18:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tmpltp/TemplateInstanceServiceImpl.java | 2 +- .../module/contractorder/api/ContractApi.java | 3 +- .../api/dto/{ => order}/PrchOrdDtlDTO.java | 2 +- .../PurchaseOrderWithDetailsDTO.java | 11 +- .../api/dto/order/SalesOrdDtlDTO.java | 137 +++++++++++++++++ .../contractorder/api/ContractApiImpl.java | 144 ++++++++++++++++-- .../vo/PrchOrdDtlDetailsRespVO.java | 2 +- .../salesorder/SalesOrderController.java | 27 ++-- .../purchaseorder/PurchaseOrderService.java | 21 ++- .../PurchaseOrderServiceImpl.java | 10 ++ 10 files changed, 324 insertions(+), 35 deletions(-) rename zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/{ => order}/PrchOrdDtlDTO.java (98%) rename zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/{ => order}/PurchaseOrderWithDetailsDTO.java (93%) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java index 06a929c..6db2e29 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java @@ -260,7 +260,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { code = TmplStsEnum.STOPPED.getCode(); } else if (reqVO.getType().equals("enable")) { // 启用 - code = TmplStsEnum.START.getCode(); + code = TmplStsEnum.DRAFT.getCode(); } if (code.isEmpty()) { throw exception(ILLEGAL_OPERATION_TYPE); diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index b31f3a1..e437454 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -2,7 +2,7 @@ package com.zt.plat.module.contractorder.api; import com.zt.plat.framework.common.pojo.CommonResult; -import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO; import com.zt.plat.module.contractorder.api.vo.contract.international.ContractRequest; @@ -11,7 +11,6 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PrchOrdDtlDTO.java similarity index 98% rename from zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java rename to zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PrchOrdDtlDTO.java index 599b0f3..202e49b 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PrchOrdDtlDTO.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.contractorder.api.dto; +package com.zt.plat.module.contractorder.api.dto.order; import lombok.Data; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PurchaseOrderWithDetailsDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java similarity index 93% rename from zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PurchaseOrderWithDetailsDTO.java rename to zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java index c353973..194843d 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PurchaseOrderWithDetailsDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.contractorder.api.dto; +package com.zt.plat.module.contractorder.api.dto.order; import lombok.Data; @@ -189,5 +189,12 @@ public class PurchaseOrderWithDetailsDTO { * 订单类型 */ private String splyBsnTp; - private List orderDetails; + /** + * 采购订单明细 + */ + private List prchOrdDtlDTOS; + /** + * 消费订单明细 + */ + private List salesOrdDtlDTOS; } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java new file mode 100644 index 0000000..5a91b03 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/SalesOrdDtlDTO.java @@ -0,0 +1,137 @@ +package com.zt.plat.module.contractorder.api.dto.order; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class SalesOrdDtlDTO { + + /** + * 主键 + */ + + private Long id; + /** + * 订单主键 + */ + + private Long orderId; + /** + * 行项目;推送ERP(必须) + */ + + private Long lineNumber; + /** + * 物料名称 + */ + + private String materialName; + /** + * 物料编码;推送ERP(必须) + */ + + private String materialNumber; + /** + * 工厂名称 + */ + + private String factoryName; + /** + * 工厂编码;推送ERP(必须) + */ + + private String factoryNumber; + /** + * 库位名称 + */ + + private String warehouseName; + /** + * 库位编码;推送ERP(必须) + */ + + private String warehouseNumber; + /** + * 计量单位;推送ERP(必须) + */ + + private String unit; + /** + * 开票类型;推送ERP(必须) + */ + + private String invoiceType; + /** + * 暂估数量;推送ERP(必须) + */ + + private BigDecimal quantity; + /** + * 稅分类(字典:SALE_TAX);推送ERP(必须) + */ + + private String taxAcctasscat; + /** + * 项目类别;推送ERP + */ + + private String projectCategory; + /** + * 装运地点;推送ERP + */ + + private String shippingPlace; + /** + * 物料科目分配组;推送ERP(必须) + */ + + private String metalAcctasscatGroup; + /** + * 小协议号 + */ + + private String agreementNumber; + /** + * 总价 + */ + + private BigDecimal gross; + /** + * 金属元素缩写 + */ + + private String elementAbbreviation; + /** + * 金属元素名称 + */ + private String elementName; + /** + * 金属元素编码 + */ + private String elementNumber; + /** + * 是否启用;处理明细中多个相同物料,只能允许一种物料启用 + */ + + private String isEnable; + /** + * 价格条件详情;推送ERP(必须):JSON + */ + + private String priceConditionDetail; + /** + * 来料加工原料详情;推送ERP:订单类型(JSON) + */ + + private String originDetail; + + /** + * 税率 + */ + + private BigDecimal taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index bac292b..c349894 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -1,11 +1,13 @@ package com.zt.plat.module.contractorder.api; +import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.module.contractorder.api.dto.PrchOrdDtlDTO; -import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO; +import com.zt.plat.module.contractorder.api.dto.order.PrchOrdDtlDTO; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; +import com.zt.plat.module.contractorder.api.dto.order.SalesOrdDtlDTO; import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO; import com.zt.plat.module.contractorder.api.vo.contract.international.*; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderDetailsRespVO; @@ -13,10 +15,15 @@ import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFieldDO; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFormDO; import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; +import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; import com.zt.plat.module.contractorder.dal.mysql.contract.ContractMainMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFieldMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFormMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper; import com.zt.plat.module.contractorder.enums.contract.DictEnum; import com.zt.plat.module.contractorder.service.contract.ContractService; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; @@ -55,6 +62,7 @@ public class ContractApiImpl implements ContractApi { @Resource private SystemRelativityMapper systemRelativityMapper; + @Override public ContractRespDTO getContractByPaperNumber(String contractPaperNumber) { return contractService.getFormulasByPaperNumber(contractPaperNumber); @@ -67,21 +75,74 @@ public class ContractApiImpl implements ContractApi { @Override public CommonResult> getOrderByOrderNo(List orderNoS) { + List orderByNos = purchaseOrderService.getOrderByNos(orderNoS); + if (orderByNos.isEmpty()) { + return success(new ArrayList<>()); + } + List order = new ArrayList<>(); + List purchaseOrderNoS = new ArrayList<>(); + List salesOrdNoS = new ArrayList<>(); + orderByNos.forEach(f -> { + if ("SALE".equals(f.getSplyBsnTp())) { + // 销售订单 + salesOrdNoS.add(f.getSystemOrderNumber()); + } else { + // 非销售订单(采购订单) + purchaseOrderNoS.add(f.getSystemOrderNumber()); + } + }); + + // 处理采购订单详情 + List purchaseOrderDetails = getPurchaseOrderDetails(purchaseOrderNoS); + if (!purchaseOrderDetails.isEmpty()) { + order.addAll(purchaseOrderDetails); + } + + // 处理销售订单详情 + List salesOrdDetails = getSalesOrdDetails(salesOrdNoS); + if (!salesOrdDetails.isEmpty()) { + order.addAll(salesOrdDetails); + } + return success(order); + } + + private List getSalesOrdDetails(List orderNoS) { + if (orderNoS.isEmpty()) { + return new ArrayList<>(); + } + SalesOrderMapper salesOrderMapper = SpringUtil.getBean(SalesOrderMapper.class); + SalesOrderDetailMapper salesOrderDetailMapper = SpringUtil.getBean(SalesOrderDetailMapper.class); + List salesOrderDOS = salesOrderMapper.selectList(SalesOrderDO::getSystemOrderNumber, orderNoS); + if (salesOrderDOS.isEmpty()) { + return new ArrayList<>(); + } + List purchaseOrderWithDetailsDTOS = BeanUtils.toBean(salesOrderDOS, PurchaseOrderWithDetailsDTO.class); + purchaseOrderWithDetailsDTOS.forEach(purchaseOrderWithDetailsDTO -> { + List salesOrderDetailDOS = salesOrderDetailMapper.selectList(SalesOrderDetailDO::getOrderId, purchaseOrderWithDetailsDTO.getId()); + List salesOrdDtlDTOS = BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class); + purchaseOrderWithDetailsDTO.setSalesOrdDtlDTOS(salesOrdDtlDTOS); + }); + return purchaseOrderWithDetailsDTOS; + } + + private List getPurchaseOrderDetails(List orderNoS) { + if (orderNoS.isEmpty()) { + return new ArrayList<>(); + } List purchaseOrderWithDetailsDTOS = new ArrayList<>(); List purchaseOrderWithDetailsVOS = purchaseOrderService.getOrderByOrderNo(orderNoS); purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> { - if (purchaseOrderWithDetailsVO!= null) { - PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, - PurchaseOrderWithDetailsDTO.class); + if (purchaseOrderWithDetailsVO != null) { + PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, PurchaseOrderWithDetailsDTO.class); if (purchaseOrderWithDetailsVO.getOrderDetails().isEmpty()) { - purchaseOrderWithDetailsDTO.setOrderDetails(new ArrayList<>()); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(new ArrayList<>()); } else { - purchaseOrderWithDetailsDTO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); } purchaseOrderWithDetailsDTOS.add(purchaseOrderWithDetailsDTO); } }); - return success(purchaseOrderWithDetailsDTOS); + return purchaseOrderWithDetailsDTOS; } @Override @@ -193,7 +254,8 @@ public class ContractApiImpl implements ContractApi { systemRelativityMapper.insert(saveRelation); } } else if ("D".equals(operateFlag)) { - if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); + if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) + throw exception(CONTRACT_NOT_EXISTS); contractId = systemRelativityDO.getDownId(); contractMainMapper.deleteById(contractId); } else { @@ -1666,23 +1728,73 @@ public class ContractApiImpl implements ContractApi { @Override public CommonResult> getOrderByOrderIds(List ids) { - if (ids==null||ids.isEmpty()){ + if (ids == null || ids.isEmpty()) { throw new RuntimeException("订单id为空"); } + List ordersByIds = purchaseOrderService.getOrdersByIds(ids.stream().map(String::valueOf).toList()); + List purchaseOrderIds = new ArrayList<>(); + List salesOrderIds = new ArrayList<>(); + if (ordersByIds.isEmpty()) { + return CommonResult.success(new ArrayList<>()); + } + ordersByIds.forEach(o->{ + if ("SALE".equals(o.getSplyBsnTp())) { + // 销售订单 + salesOrderIds.add(o.getId()); + } else { + // 非销售订单(采购订单) + purchaseOrderIds.add(o.getId()); + } + }); + List purchaseOrderDetails = getSalesOrdDetailsByIds(purchaseOrderIds); + List salesOrdDetails = getPurchaseOrderDetailsByIds(salesOrderIds); + if (!purchaseOrderDetails.isEmpty()) { + purchaseOrderDetails.addAll(salesOrdDetails); + } + if (!salesOrdDetails.isEmpty()) { + purchaseOrderDetails.addAll(salesOrdDetails); + } + return CommonResult.success(purchaseOrderDetails); + } + + + private List getSalesOrdDetailsByIds(List ids) { + if (ids.isEmpty()) { + return new ArrayList<>(); + } + SalesOrderMapper salesOrderMapper = SpringUtil.getBean(SalesOrderMapper.class); + SalesOrderDetailMapper salesOrderDetailMapper = SpringUtil.getBean(SalesOrderDetailMapper.class); + List salesOrderDOS = salesOrderMapper.selectList(SalesOrderDO::getId, ids); + if (salesOrderDOS.isEmpty()) { + return new ArrayList<>(); + } + List purchaseOrderWithDetailsDTOS = BeanUtils.toBean(salesOrderDOS, PurchaseOrderWithDetailsDTO.class); + purchaseOrderWithDetailsDTOS.forEach(purchaseOrderWithDetailsDTO -> { + List salesOrderDetailDOS = salesOrderDetailMapper.selectList(SalesOrderDetailDO::getOrderId, purchaseOrderWithDetailsDTO.getId()); + List salesOrdDtlDTOS = BeanUtils.toBean(salesOrderDetailDOS, SalesOrdDtlDTO.class); + purchaseOrderWithDetailsDTO.setSalesOrdDtlDTOS(salesOrdDtlDTOS); + }); + return purchaseOrderWithDetailsDTOS; + } + + private List getPurchaseOrderDetailsByIds(List ids) { + if (ids.isEmpty()) { + return new ArrayList<>(); + } List purchaseOrderWithDetailsDTOS = new ArrayList<>(); List purchaseOrderWithDetailsVOS = purchaseOrderService.getOrderByIds(ids); purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> { - if (purchaseOrderWithDetailsVO!= null) { - PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, - PurchaseOrderWithDetailsDTO.class); + if (purchaseOrderWithDetailsVO != null) { + PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, PurchaseOrderWithDetailsDTO.class); if (purchaseOrderWithDetailsVO.getOrderDetails().isEmpty()) { - purchaseOrderWithDetailsDTO.setOrderDetails(new ArrayList<>()); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(new ArrayList<>()); } else { - purchaseOrderWithDetailsDTO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); + purchaseOrderWithDetailsDTO.setPrchOrdDtlDTOS(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); } purchaseOrderWithDetailsDTOS.add(purchaseOrderWithDetailsDTO); } }); - return success(purchaseOrderWithDetailsDTOS); + return purchaseOrderWithDetailsDTOS; } + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java index bb6d147..a059eef 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlDetailsRespVO.java @@ -77,7 +77,7 @@ public class PrchOrdDtlDetailsRespVO { * 税码(字典: PRCH_TAX);推送ERP */ - private BigDecimal taxNum; + private String taxNum; /** * 是否基于GR的发票校验;推送ERP */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java index 60f26b6..9efce45 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.controller.admin.salesorder; +import cn.hutool.extra.spring.SpringUtil; 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; @@ -8,7 +9,9 @@ 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.contractorder.api.ContractApi; import com.zt.plat.module.contractorder.api.ContractApiImpl; +import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; @@ -26,12 +29,14 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import org.redisson.api.RObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; +import java.util.Objects; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zt.plat.framework.common.pojo.CommonResult.success; @@ -75,7 +80,7 @@ public class SalesOrderController implements BusinessControllerMarker { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除销售订单") - @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") + @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") public CommonResult deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) { salesOrderService.deleteSalesOrderListByIds(req.getIds()); return success(true); @@ -85,10 +90,10 @@ public class SalesOrderController implements BusinessControllerMarker { @Operation(summary = "获得销售订单") @Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型销售或者是消费", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('base:sales-order:query')") - public CommonResult getSalesOrder(@RequestParam("id") Long id,@RequestParam(value = "splyBsnTp",required = false) String splyBsnTp) { + public CommonResult getSalesOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) { SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp); SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); - if (salesOrderRespVO == null){ + if (salesOrderRespVO == null) { return success(null); } salesOrderService.setSalesOrderDetail(salesOrderRespVO); @@ -100,8 +105,8 @@ public class SalesOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('base:sales-order:query')") public CommonResult> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) { PageResult pageResult = salesOrderService.getSalesOrderPage(pageReqVO); - PageResult salesOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); - if (salesOrderRespVOPageResult.getList() != null){ + PageResult salesOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); + if (salesOrderRespVOPageResult.getList() != null) { salesOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> salesOrderService.setSalesOrderDetail(purchaseOrderRespVO)); } @@ -113,25 +118,25 @@ public class SalesOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('base:sales-order:export')") @ApiAccessLog(operateType = EXPORT) public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = salesOrderService.getSalesOrderPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "销售订单.xls", "数据", PurchaseOrderRespVO.class, - BeanUtils.toBean(list, PurchaseOrderRespVO.class)); + BeanUtils.toBean(list, PurchaseOrderRespVO.class)); } //推送erp091 @PostMapping("/push-erp091") @Operation(summary = "推送erp091") - public CommonResult pushErp091(@RequestParam("id")String id ) { + public CommonResult pushErp091(@RequestParam("id") String id) { return success(salesOrderService.pushErp091(id)); } //提交审批 @PostMapping("/submit-order") @Operation(summary = "提交审批") - public CommonResult submitOrder(@RequestParam("id")String id ) { + public CommonResult submitOrder(@RequestParam("id") String id) { return success(salesOrderService.submitOrder(id)); } @@ -141,6 +146,7 @@ public class SalesOrderController implements BusinessControllerMarker { public CommonResult orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) { return success(salesOrderService.orderPassReject(reqVO)); } + //关联订单 @PostMapping("/link-order") @Operation(summary = "关联订单") @@ -152,7 +158,7 @@ public class SalesOrderController implements BusinessControllerMarker { @PostMapping("/order-by-order-id-and-type") @Operation(summary = "根据订单id和方式获取上或下游订单") public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { - return success( salesOrderService.getOrderByOrderIdAndType(reqVO)); + return success(salesOrderService.getOrderByOrderIdAndType(reqVO)); } @@ -168,5 +174,4 @@ public class SalesOrderController implements BusinessControllerMarker { salesOrderService.updateOrderStatusByIdOrOrderNo(req); return success(true); } - } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java index ac08315..6e9590b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java @@ -124,6 +124,25 @@ public interface PurchaseOrderService { * @return 结果 */ Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO); - + /** + * 获取订单详情 + * + * @param ids 订单id + * @return 订单详情 + */ List getOrderByIds(List ids); + /** + * 获取订单详情 + * + * @param orderNos 订单编号 + * @return 订单详情 + */ + List getOrderByNos(List orderNos); + /** + * 获取订单详情 + * + * @param ids 订单id + * @return 订单详情 + */ + List getOrdersByIds(List ids); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index ba378c6..8ebb012 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -677,4 +677,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { }); return purchaseOrderDetailsRespVOS; } + + @Override + public List getOrderByNos(List orderNos) { + return purchaseOrderMapper.selectList(PurchaseOrderDO::getSystemOrderNumber, orderNos); + } + + @Override + public List getOrdersByIds(List ids) { + return purchaseOrderMapper.selectByIds(ids); + } }