From 61ebd1418152b1d6d270b5e3677f34e02c49ab5e Mon Sep 17 00:00:00 2001 From: shenyifei Date: Wed, 12 Nov 2025 18:41:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(purchase-order):=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=88=86=E6=AD=A5=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增三个分步提交接口:savePurchaseOrderStep1、savePurchaseOrderStep2、savePurchaseOrderStep3 - 添加对应的服务层方法和网关方法支持分步提交逻辑 - 修改OrderDealerDO实体类,移除冗余字段并新增财务相关字段 - 更新OrderPackageDO和ShipOrderDO等实体类以支持新业务需求 - 调整DTO和VO对象,增加companyId和companyName等相关属性 - 优化查询条件构造逻辑,增强dealerRebateCustomer查询的灵活性 - 废弃原有的createPurchaseOrder接口,改为分步提交模式 --- .lingma/rules/addFiled.md | 25 + .../controller/PurchaseOrderController.java | 42 +- .../cmd/PurchaseOrderStep1CmdExe.java | 27 + .../cmd/PurchaseOrderStep2CmdExe.java | 22 + .../cmd/PurchaseOrderStep3CmdExe.java | 22 + .../app/service/PurchaseOrderServiceImpl.java | 22 +- .../turbo/biz/domain/entity/ShipOrder.java | 13 +- .../erp/turbo/biz/domain/entity/Supplier.java | 11 + .../domain/gateway/PurchaseOrderGateway.java | 7 +- .../convert/OrderDealerConvert.java | 2 + .../convert/OrderSupplierConvert.java | 2 + .../convert/PurchaseOrderConvert.java | 59 ++- .../convert/SupplierConvert.java | 9 + .../infrastructure/entity/OrderDealerDO.java | 95 +--- .../infrastructure/entity/OrderPackageDO.java | 9 +- .../infrastructure/entity/ShipOrderDO.java | 15 +- .../entity/ShipOrderPackageDO.java | 2 - .../biz/infrastructure/entity/SupplierDO.java | 12 + .../DealerRebateCustomerGatewayImpl.java | 6 +- .../gateway/PurchaseOrderGatewayImpl.java | 487 +++++++++++------- .../gateway/ShipOrderGatewayImpl.java | 12 +- .../resources/mapper/OrderDealerMapper.xml | 21 +- .../resources/mapper/OrderPackageMapper.xml | 4 +- .../main/resources/mapper/ShipOrderMapper.xml | 5 +- .../main/resources/mapper/SupplierMapper.xml | 2 + .../api/biz/api/PurchaseOrderServiceI.java | 8 +- .../biz/dto/cmd/PurchaseOrderCreateCmd.java | 5 + .../biz/dto/cmd/PurchaseOrderStep1Cmd.java | 41 ++ .../biz/dto/cmd/PurchaseOrderStep2Cmd.java | 36 ++ .../biz/dto/cmd/PurchaseOrderStep3Cmd.java | 36 ++ .../api/biz/dto/cmd/ShipOrderCreateCmd.java | 15 +- .../api/biz/dto/cmd/ShipOrderUpdateCmd.java | 15 +- .../turbo/api/biz/dto/common/OrderDealer.java | 97 +--- .../api/biz/dto/common/OrderPackage.java | 9 +- .../turbo/api/biz/dto/common/OrderRebate.java | 8 +- .../api/biz/dto/common/ShipOrderPackage.java | 9 +- .../dto/enums/OrderPackageBoxTypeEnum.java | 5 +- .../dto/enums/OrderRebateCalcMethodEnum.java | 2 +- .../api/biz/dto/qry/PurchaseOrderPageQry.java | 9 - .../api/biz/dto/qry/ShipOrderPageQry.java | 18 + .../erp/turbo/api/biz/dto/vo/ShipOrderVO.java | 15 +- .../erp/turbo/api/biz/dto/vo/SupplierVO.java | 12 + .../xunhong/erp/turbo/base/dto/PageQuery.java | 12 + 43 files changed, 859 insertions(+), 426 deletions(-) create mode 100644 .lingma/rules/addFiled.md create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep1CmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep2CmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep3CmdExe.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep1Cmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep2Cmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep3Cmd.java diff --git a/.lingma/rules/addFiled.md b/.lingma/rules/addFiled.md new file mode 100644 index 0000000..025d6dc --- /dev/null +++ b/.lingma/rules/addFiled.md @@ -0,0 +1,25 @@ +--- +trigger: manual +--- + +注意: +不用管 erp-turbo-svc 这个目录的代码 +增加字段规则,举例如果需要在 AAAA.java 增加 BBB 字段 + +那么需要增加的地方有以下地方: + +> 必须加 +- AAAA.java +- AAAADO.java +- AAAAVO.java +- AAAAMapper.java +- AAAAMapper.xml +- AAAACreateCmd.java + +> 可加可不加 +- AAAAListQry.java +- AAAAPageQry.java + +> 判断加不加 +- AAAAConvert.java +- AAAAAssembler.java diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/PurchaseOrderController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/PurchaseOrderController.java index f383ee8..2ae2c9a 100644 --- a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/PurchaseOrderController.java +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/PurchaseOrderController.java @@ -1,6 +1,7 @@ package com.xunhong.erp.turbo.admin.controller; import cn.dev33.satoken.annotation.SaCheckLogin; +import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckRole; import cn.dev33.satoken.annotation.SaMode; import com.alibaba.cola.dto.MultiResponse; @@ -14,6 +15,7 @@ import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderListQry; import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderPageQry; import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderShowQry; import com.xunhong.erp.turbo.api.biz.dto.vo.PurchaseOrderVO; +import com.xunhong.erp.turbo.api.rbac.dto.constants.PermissionConstant; import com.xunhong.erp.turbo.api.rbac.dto.constants.RoleConstant; import com.xunhong.erp.turbo.api.user.api.AdminServiceI; import com.xunhong.erp.turbo.api.user.dto.qry.AdminShowQry; @@ -59,12 +61,31 @@ public class PurchaseOrderController { return SingleResponse.of(purchaseOrderService.countPurchaseOrderByState(purchaseOrderCountQry)); } + // 分步提交第一步:车辆信息和经销商信息保存 @SaCheckLogin // @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_PURCHASE_ORDER_CREATE}) - @PostMapping("createPurchaseOrder") - @Operation(summary = "创建采购订单(暂存)", method = "POST") - public SingleResponse createPurchaseOrder(@RequestBody @Validated PurchaseOrderCreateCmd purchaseOrderCreateCmd) { - return SingleResponse.of(purchaseOrderService.create(purchaseOrderCreateCmd)); + @PostMapping("savePurchaseOrderStep1") + @Operation(summary = "采购订单第一步:车辆信息和经销商信息保存", method = "POST") + public SingleResponse savePurchaseOrderStep1(@RequestBody @Validated PurchaseOrderStep1Cmd purchaseOrderStep1Cmd) { + return SingleResponse.of(purchaseOrderService.saveStep1(purchaseOrderStep1Cmd)); + } + + // 分步提交第二步:供应商信息保存 + @SaCheckLogin + @PostMapping("savePurchaseOrderStep2") + @Operation(summary = "采购订单第二步:供应商信息保存", method = "POST") + public Response savePurchaseOrderStep2(@RequestBody @Validated PurchaseOrderStep2Cmd purchaseOrderStep2Cmd) { + purchaseOrderService.saveStep2(purchaseOrderStep2Cmd); + return Response.buildSuccess(); + } + + // 分步提交第三步:人工和辅料等费用信息保存 + @SaCheckLogin + @PostMapping("savePurchaseOrderStep3") + @Operation(summary = "采购订单第三步:人工和辅料等费用信息保存", method = "POST") + public Response savePurchaseOrderStep3(@RequestBody @Validated PurchaseOrderStep3Cmd purchaseOrderStep3Cmd) { + purchaseOrderService.saveStep3(purchaseOrderStep3Cmd); + return Response.buildSuccess(); } @SaCheckLogin @@ -143,8 +164,19 @@ public class PurchaseOrderController { return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); } + // 注释掉原有的创建接口 + @Deprecated @SaCheckLogin -// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_PURCHASE_ORDER_UPDATE}) +// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_PURCHASE_ORDER_CREATE}) + @PostMapping("createPurchaseOrder") + @Operation(summary = "创建采购订单(暂存)", method = "POST") + public SingleResponse createPurchaseOrder(@RequestBody @Validated PurchaseOrderCreateCmd purchaseOrderCreateCmd) { + return SingleResponse.of(purchaseOrderService.create(purchaseOrderCreateCmd)); + } + + @Deprecated + @SaCheckLogin +// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_PURCHASE_ORDER_UPDATE}) @RequestMapping(value = "updatePurchaseOrder", method = {RequestMethod.PATCH, RequestMethod.PUT}) @Operation(summary = "采购订单更新", method = "PATCH") public SingleResponse updatePurchaseOrder(@RequestBody @Validated PurchaseOrderUpdateCmd purchaseOrderUpdateCmd) { diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep1CmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep1CmdExe.java new file mode 100644 index 0000000..8324836 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep1CmdExe.java @@ -0,0 +1,27 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.PurchaseOrderStep1Cmd; +import com.xunhong.erp.turbo.api.biz.dto.vo.PurchaseOrderVO; +import com.xunhong.erp.turbo.biz.app.assembler.PurchaseOrderAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder; +import com.xunhong.erp.turbo.biz.domain.gateway.PurchaseOrderGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class PurchaseOrderStep1CmdExe { + + private final PurchaseOrderAssembler purchaseOrderAssembler; + private final PurchaseOrderGateway purchaseOrderGateway; + + public PurchaseOrderVO execute(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd) { + PurchaseOrder purchaseOrder = purchaseOrderGateway.saveStep1(purchaseOrderStep1Cmd); + return purchaseOrderAssembler.toPurchaseOrderVO(purchaseOrder); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep2CmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep2CmdExe.java new file mode 100644 index 0000000..050d216 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep2CmdExe.java @@ -0,0 +1,22 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.PurchaseOrderStep2Cmd; +import com.xunhong.erp.turbo.biz.domain.gateway.PurchaseOrderGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class PurchaseOrderStep2CmdExe { + + private final PurchaseOrderGateway purchaseOrderGateway; + + public void execute(PurchaseOrderStep2Cmd purchaseOrderStep2Cmd) { + purchaseOrderGateway.saveStep2(purchaseOrderStep2Cmd); + } +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep3CmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep3CmdExe.java new file mode 100644 index 0000000..3866470 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/PurchaseOrderStep3CmdExe.java @@ -0,0 +1,22 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.PurchaseOrderStep3Cmd; +import com.xunhong.erp.turbo.biz.domain.gateway.PurchaseOrderGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class PurchaseOrderStep3CmdExe { + + private final PurchaseOrderGateway purchaseOrderGateway; + + public void execute(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd) { + purchaseOrderGateway.saveStep3(purchaseOrderStep3Cmd); + } +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/PurchaseOrderServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/PurchaseOrderServiceImpl.java index 65c519e..7ff5fd5 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/PurchaseOrderServiceImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/PurchaseOrderServiceImpl.java @@ -43,6 +43,11 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderServiceI { private final PurchaseOrderRejectFinalCmdExe purchaseOrderRejectFinalCmdExe; private final PurchaseOrderCountQryExe purchaseOrderCountQryExe; + // 新增分步提交执行器 + private final PurchaseOrderStep1CmdExe purchaseOrderStep1CmdExe; + private final PurchaseOrderStep2CmdExe purchaseOrderStep2CmdExe; + private final PurchaseOrderStep3CmdExe purchaseOrderStep3CmdExe; + @Override public PurchaseOrderVO create(PurchaseOrderCreateCmd purchaseOrderCreateCmd) { return purchaseOrderCreateCmdExe.execute(purchaseOrderCreateCmd); @@ -107,5 +112,20 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderServiceI { public Long countPurchaseOrderByState(PurchaseOrderCountQry purchaseOrderCountQry) { return purchaseOrderCountQryExe.execute(purchaseOrderCountQry); } -} + // 新增分步提交方法 + @Override + public PurchaseOrderVO saveStep1(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd) { + return purchaseOrderStep1CmdExe.execute(purchaseOrderStep1Cmd); + } + + @Override + public void saveStep2(PurchaseOrderStep2Cmd purchaseOrderStep2Cmd) { + purchaseOrderStep2CmdExe.execute(purchaseOrderStep2Cmd); + } + + @Override + public void saveStep3(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd) { + purchaseOrderStep3CmdExe.execute(purchaseOrderStep3Cmd); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ShipOrder.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ShipOrder.java index 0772e91..e36f57b 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ShipOrder.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ShipOrder.java @@ -56,6 +56,16 @@ public class ShipOrder extends DTO { */ private String warehouseName; + /** + * 公司ID + */ + private Long companyId; + + /** + * 公司名称 + */ + private String companyName; + /** * 车次号 */ @@ -195,5 +205,4 @@ public class ShipOrder extends DTO { * 发货单子项表 */ private List shipOrderPackageList; -} - +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Supplier.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Supplier.java index 70d5751..515a5e1 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Supplier.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Supplier.java @@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.biz.domain.entity; import com.alibaba.cola.domain.Entity; import com.alibaba.cola.dto.DTO; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import lombok.EqualsAndHashCode; @@ -55,6 +56,16 @@ public class Supplier extends DTO { */ private Boolean status; + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建人姓名 + */ + private String createdByName; + /** * 创建时间 */ diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/PurchaseOrderGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/PurchaseOrderGateway.java index 4cdf119..b61f319 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/PurchaseOrderGateway.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/PurchaseOrderGateway.java @@ -16,6 +16,11 @@ import java.util.List; public interface PurchaseOrderGateway { PurchaseOrder save(PurchaseOrderCreateCmd purchaseOrderCreateCmd); + // 新增分步提交方法 + PurchaseOrder saveStep1(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd); + void saveStep2(PurchaseOrderStep2Cmd purchaseOrderStep2Cmd); + void saveStep3(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd); + IPage page(PurchaseOrderPageQry purchaseOrderPageQry); List list(PurchaseOrderListQry purchaseOrderListQry); @@ -39,4 +44,4 @@ public interface PurchaseOrderGateway { void rejectFinal(PurchaseOrderRejectFinalCmd purchaseOrderRejectFinalCmd); Long countBy(PurchaseOrderCountQry purchaseOrderCountQry); -} +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderDealerConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderDealerConvert.java index 1f93292..557d3b9 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderDealerConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderDealerConvert.java @@ -17,5 +17,7 @@ public interface OrderDealerConvert { @Mapping(target = "createdAt", ignore = true) OrderDealerDO toOrderDealerDO(OrderDealer orderDealer); + @Mapping(target = "createdByName", ignore = true) + @Mapping(target = "createdBy", ignore = true) OrderDealer toOrderDealer(OrderDealerDO orderDealerDO); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderSupplierConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderSupplierConvert.java index 84011fb..b94cbe1 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderSupplierConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderSupplierConvert.java @@ -25,6 +25,8 @@ public interface OrderSupplierConvert { List toOrderSupplierList(List orderSupplierDOList); + @Mapping(target = "createdByName", ignore = true) + @Mapping(target = "createdBy", ignore = true) @Mapping(target = "orderPackageList", source = "orderPackageDOList") OrderSupplier toOrderSupplier(OrderSupplierDO orderSupplierDO); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/PurchaseOrderConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/PurchaseOrderConvert.java index 980651c..57d969f 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/PurchaseOrderConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/PurchaseOrderConvert.java @@ -1,7 +1,6 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert; -import com.xunhong.erp.turbo.api.biz.dto.cmd.PurchaseOrderCreateCmd; -import com.xunhong.erp.turbo.api.biz.dto.cmd.PurchaseOrderUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.*; import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder; import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; import org.mapstruct.Mapper; @@ -23,6 +22,18 @@ public interface PurchaseOrderConvert { @Mapping(target = "orderVehicle", source = "orderVehicleDO") PurchaseOrder toPurchaseOrder(PurchaseOrderDO purchaseOrderDO); + @Mapping(target = "totalCost", ignore = true) + @Mapping(target = "supplierCount", ignore = true) + @Mapping(target = "saleAmount", ignore = true) + @Mapping(target = "rebate", ignore = true) + @Mapping(target = "pricingMethod", ignore = true) + @Mapping(target = "packageFee", ignore = true) + @Mapping(target = "orderRebateDO", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "netWeight", ignore = true) + @Mapping(target = "grossWeight", ignore = true) + @Mapping(target = "freightCharge", ignore = true) + @Mapping(target = "avgUnitPrice", ignore = true) @Mapping(target = "orderDealerDO", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "orderSn", ignore = true) @@ -36,6 +47,18 @@ public interface PurchaseOrderConvert { @Mapping(target = "createdAt", ignore = true) PurchaseOrderDO toPurchaseOrderDO(PurchaseOrderCreateCmd purchaseOrderCreateCmd); + @Mapping(target = "totalCost", ignore = true) + @Mapping(target = "supplierCount", ignore = true) + @Mapping(target = "saleAmount", ignore = true) + @Mapping(target = "rebate", ignore = true) + @Mapping(target = "pricingMethod", ignore = true) + @Mapping(target = "packageFee", ignore = true) + @Mapping(target = "orderRebateDO", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "netWeight", ignore = true) + @Mapping(target = "grossWeight", ignore = true) + @Mapping(target = "freightCharge", ignore = true) + @Mapping(target = "avgUnitPrice", ignore = true) @Mapping(target = "orderDealerDO", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "orderVehicleDO", ignore = true) @@ -48,5 +71,37 @@ public interface PurchaseOrderConvert { @Mapping(target = "isDelete", ignore = true) @Mapping(target = "createdAt", ignore = true) void toPurchaseOrderDO(@MappingTarget PurchaseOrderDO purchaseOrderDO, PurchaseOrderUpdateCmd purchaseOrderUpdateCmd); + + PurchaseOrderStep1Cmd toPurchaseOrderStep1Cmd(PurchaseOrderCreateCmd purchaseOrderCreateCmd); + + PurchaseOrderStep2Cmd toPurchaseOrderStep2Cmd(PurchaseOrderCreateCmd purchaseOrderCreateCmd); + + PurchaseOrderStep3Cmd toPurchaseOrderStep3Cmd(PurchaseOrderCreateCmd purchaseOrderCreateCmd); + + @Mapping(target = "originPrincipal", source = "createdByName") + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "totalCost", ignore = true) + @Mapping(target = "supplierCount", ignore = true) + @Mapping(target = "state", ignore = true) + @Mapping(target = "saleAmount", ignore = true) + @Mapping(target = "remark", ignore = true) + @Mapping(target = "rebate", ignore = true) + @Mapping(target = "pricingMethod", ignore = true) + @Mapping(target = "packageFee", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "orderSupplierDOList", ignore = true) + @Mapping(target = "orderSn", ignore = true) + @Mapping(target = "orderRebateDO", ignore = true) + @Mapping(target = "orderDealerDO", ignore = true) + @Mapping(target = "orderCostDOList", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "netWeight", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "grossWeight", ignore = true) + @Mapping(target = "freightCharge", ignore = true) + @Mapping(target = "createdAt", ignore = true) + @Mapping(target = "avgUnitPrice", ignore = true) + PurchaseOrderDO toPurchaseOrderDO(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/SupplierConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/SupplierConvert.java index a086e66..2e924bf 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/SupplierConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/SupplierConvert.java @@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert; import com.xunhong.erp.turbo.api.biz.dto.cmd.SupplierCreateCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.SupplierUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.biz.domain.entity.Supplier; import com.xunhong.erp.turbo.biz.infrastructure.entity.SupplierDO; import org.mapstruct.Mapper; @@ -28,5 +29,13 @@ public interface SupplierConvert { @Mapping(target = "isDelete", ignore = true) @Mapping(target = "createdAt", ignore = true) void toSupplierDO(@MappingTarget SupplierDO supplierDO, SupplierUpdateCmd supplierUpdateCmd); + + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "status", ignore = true) + @Mapping(target = "remark", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + SupplierDO toSupplierDO(OrderSupplier updatedSupplier); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderDealerDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderDealerDO.java index d0f3904..345d13d 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderDealerDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderDealerDO.java @@ -85,90 +85,29 @@ public class OrderDealerDO extends BaseDO { */ @TableField(value = "document_types") private String documentTypes; - + /** - * 账户ID + * 税费补贴 */ - @TableField(value = "account_id") - private Long accountId; - + @TableField(value = "tax_subsidy") + private BigDecimal taxSubsidy; + /** - * 公司名称 + * 计提税金 */ - @TableField(value = "company_name") - private String companyName; - + @TableField(value = "tax_provision") + private BigDecimal taxProvision; + /** - * 税号 + * 成本差异 */ - @TableField(value = "tax_number") - private String taxNumber; - + @TableField(value = "cost_difference") + private BigDecimal costDifference; + /** - * 银行账号 + * 利润分成 */ - @TableField(value = "bank_account") - private String bankAccount; - - /** - * 单位地址 - */ - @TableField(value = "company_address") - private String companyAddress; - - /** - * 电话 - */ - @TableField(value = "phone") - private String phone; - - /** - * 开户行 - */ - @TableField(value = "opening_bank") - private String openingBank; - - /** - * 仓库ID - */ - @TableField(value = "warehouse_id") - private Long warehouseId; - - /** - * 仓库名称 - */ - @TableField(value = "warehouse_name") - private String warehouseName; - - /** - * 仓库地址 - */ - @TableField(value = "warehouse_address") - private String warehouseAddress; - - /** - * 联系人 - */ - @TableField(value = "contact_person") - private String contactPerson; - - /** - * 联系电话 - */ - @TableField(value = "contact_phone") - private String contactPhone; - - /** - * 收货人姓名 - */ - @TableField(value = "receiver_name") - private String receiverName; - - /** - * 收货人电话 - */ - @TableField(value = "receiver_phone") - private String receiverPhone; - -} + @TableField(value = "profit_sharing") + private BigDecimal profitSharing; +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderPackageDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderPackageDO.java index 4efee03..89fd55c 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderPackageDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderPackageDO.java @@ -43,6 +43,12 @@ public class OrderPackageDO extends BaseDO { @TableField(value = "box_brand_name") private String boxBrandName; + /** + * 箱子品牌图片 + */ + @TableField(value = "box_brand_image") + private String boxBrandImage; + /** * 箱子分类ID */ @@ -91,5 +97,4 @@ public class OrderPackageDO extends BaseDO { @TableField(value = "box_type") private OrderPackageBoxTypeEnum boxType; -} - +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderDO.java index ea9dc4f..d3eab04 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderDO.java @@ -63,6 +63,18 @@ public class ShipOrderDO extends BaseDO { @TableField(value = "warehouse_name") private String warehouseName; + /** + * 公司ID + */ + @TableField(value = "company_id") + private Long companyId; + + /** + * 公司名称 + */ + @TableField(value = "company_name") + private String companyName; + /** * 车次号 */ @@ -226,5 +238,4 @@ public class ShipOrderDO extends BaseDO { @TableField(exist = false) private List shipOrderItemDOList; -} - +} \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderPackageDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderPackageDO.java index 10b15b8..b2bc054 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderPackageDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ShipOrderPackageDO.java @@ -71,6 +71,4 @@ public class ShipOrderPackageDO extends BaseDO { */ @TableField(value = "total_weight") private BigDecimal totalWeight; - } - diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/SupplierDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/SupplierDO.java index bea424f..e64a071 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/SupplierDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/SupplierDO.java @@ -58,6 +58,18 @@ public class SupplierDO extends BaseDO { @TableField(value = "remark") private String remark; + /** + * 创建人ID + */ + @TableField(value = "created_by") + private Long createdBy; + + /** + * 创建人姓名 + */ + @TableField(value = "created_by_name") + private String createdByName; + /** * 状态:1_启用;0_禁用; */ diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/DealerRebateCustomerGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/DealerRebateCustomerGatewayImpl.java index 58f7f8b..66555be 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/DealerRebateCustomerGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/DealerRebateCustomerGatewayImpl.java @@ -98,7 +98,11 @@ public class DealerRebateCustomerGatewayImpl implements DealerRebateCustomerGate @Override public DealerRebateCustomer show(DealerRebateCustomerShowQry dealerRebateCustomerShowQry) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(DealerRebateCustomerDO.class); - queryWrapper.eq(DealerRebateCustomerDO::getCustomerId, dealerRebateCustomerShowQry.getCustomerId()); + queryWrapper.eq(Objects.nonNull(dealerRebateCustomerShowQry.getCustomerId()), DealerRebateCustomerDO::getCustomerId, dealerRebateCustomerShowQry.getCustomerId()); + queryWrapper.eq(Objects.nonNull(dealerRebateCustomerShowQry.getDealerId()), DealerRebateCustomerDO::getDealerId, dealerRebateCustomerShowQry.getDealerId()); + queryWrapper.eq(Objects.nonNull(dealerRebateCustomerShowQry.getStatus()), DealerRebateCustomerDO::getStatus, dealerRebateCustomerShowQry.getStatus()); + + queryWrapper.last("limit 1"); DealerRebateCustomerDO dealerRebateCustomerDO = dealerRebateCustomerMapper.selectOne(queryWrapper); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PurchaseOrderGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PurchaseOrderGatewayImpl.java index 7b2a4c6..f88416d 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PurchaseOrderGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PurchaseOrderGatewayImpl.java @@ -66,47 +66,17 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { private final ShipOrderItemMapper shipOrderItemMapper; private final ShipOrderPackageMapper shipOrderPackageMapper; + private final SupplierMapper supplierMapper; + private final SupplierConvert supplierConvert; + @Override @Transactional public PurchaseOrder save(PurchaseOrderCreateCmd purchaseOrderCreateCmd) { - PurchaseOrderDO purchaseOrderDO = purchaseOrderConvert.toPurchaseOrderDO(purchaseOrderCreateCmd); - purchaseOrderDO.setState(PurchaseOrderStateEnum.DRAFT); - purchaseOrderDO.setOrderSn("CG" + generateShipOrderSn()); - purchaseOrderMapper.insert(purchaseOrderDO); - - // 订单运输信息 - OrderVehicle orderVehicle = purchaseOrderCreateCmd.getOrderVehicle(); - orderVehicle.setOrderId(purchaseOrderDO.getOrderId()); - OrderVehicleDO orderVehicleDO = orderVehicleConvert.toOrderVehicleDO(orderVehicle); - orderVehicleMapper.insert(orderVehicleDO); - - // 订单经销商信息 - OrderDealer orderDealer = purchaseOrderCreateCmd.getOrderDealer(); - orderDealer.setOrderId(purchaseOrderDO.getOrderId()); - OrderDealerDO orderDealerDO = orderDealerConvert.toOrderDealerDO(orderDealer); - orderDealerMapper.insert(orderDealerDO); - - // 订单供应商信息 - purchaseOrderCreateCmd.getOrderSupplierList().forEach(orderSupplier -> { - orderSupplier.setOrderId(purchaseOrderDO.getOrderId()); - OrderSupplierDO orderSupplierDO = orderSupplierConvert.toOrderSupplierDO(orderSupplier); - orderSupplierMapper.insert(orderSupplierDO); - - // 订单包材信息 - orderSupplier.getOrderPackageList().forEach(orderPackage -> { - orderPackage.setOrderSupplierId(orderSupplierDO.getOrderSupplierId()); - OrderPackageDO orderPackageDO = orderPackageConvert.toOrderPackageDO(orderPackage); - orderPackageMapper.insert(orderPackageDO); - }); - }); - - // 订单费用信息 - purchaseOrderCreateCmd.getOrderCostList().forEach(orderCost -> { - orderCost.setOrderId(purchaseOrderDO.getOrderId()); - orderCostMapper.insert(orderCostConvert.toOrderCostDO(orderCost)); - }); - - return purchaseOrderConvert.toPurchaseOrder(purchaseOrderDO); + PurchaseOrder purchaseOrder = saveStep1(purchaseOrderConvert.toPurchaseOrderStep1Cmd(purchaseOrderCreateCmd)); + purchaseOrderCreateCmd.setOrderId(purchaseOrder.getOrderId()); + saveStep2(purchaseOrderConvert.toPurchaseOrderStep2Cmd(purchaseOrderCreateCmd)); + saveStep3(purchaseOrderConvert.toPurchaseOrderStep3Cmd(purchaseOrderCreateCmd)); + return purchaseOrder; } @Override @@ -129,10 +99,9 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { } } - if (Objects.nonNull(purchaseOrderPageQry.getDealerId()) || Objects.nonNull(purchaseOrderPageQry.getDealerPaymentAccountId())) { + if (Objects.nonNull(purchaseOrderPageQry.getDealerId())) { LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(OrderDealerDO.class); queryWrapper1.eq(Objects.nonNull(purchaseOrderPageQry.getDealerId()), OrderDealerDO::getDealerId, purchaseOrderPageQry.getDealerId()); - queryWrapper1.eq(Objects.nonNull(purchaseOrderPageQry.getDealerPaymentAccountId()), OrderDealerDO::getAccountId, purchaseOrderPageQry.getDealerPaymentAccountId()); List orderDealerDOList = orderDealerMapper.selectList(queryWrapper1); if (CollUtil.isNotEmpty(orderDealerDOList)) { @@ -174,159 +143,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { @Override @Transactional public PurchaseOrder update(PurchaseOrderUpdateCmd purchaseOrderUpdateCmd) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(PurchaseOrderDO.class); - queryWrapper.eq(PurchaseOrderDO::getOrderId, purchaseOrderUpdateCmd.getOrderId()); - queryWrapper.last("limit 1"); - - PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectOne(queryWrapper); - - purchaseOrderConvert.toPurchaseOrderDO(purchaseOrderDO, purchaseOrderUpdateCmd); - purchaseOrderMapper.updateById(purchaseOrderDO); - - // 更新车辆信息 - OrderVehicle orderVehicle = purchaseOrderUpdateCmd.getOrderVehicle(); - OrderVehicleDO orderVehicleDO = orderVehicleConvert.toOrderVehicleDO(orderVehicle); - orderVehicleDO.setOrderId(purchaseOrderDO.getOrderId()); - orderVehicleMapper.updateById(orderVehicleDO); - - // 更新经销商信息 - OrderDealer orderDealer = purchaseOrderUpdateCmd.getOrderDealer(); - orderDealer.setOrderId(purchaseOrderDO.getOrderId()); - OrderDealerDO orderDealerDO = orderDealerConvert.toOrderDealerDO(orderDealer); - // 先尝试更新,如果不存在则插入 - if (orderDealerDO.getOrderDealerId() != null) { - orderDealerMapper.updateById(orderDealerDO); - } else { - LambdaQueryWrapper dealerQueryWrapper = Wrappers.lambdaQuery(OrderDealerDO.class); - dealerQueryWrapper.eq(OrderDealerDO::getOrderId, purchaseOrderDO.getOrderId()); - OrderDealerDO existingDealer = orderDealerMapper.selectOne(dealerQueryWrapper); - if (existingDealer != null) { - orderDealerDO.setOrderDealerId(existingDealer.getOrderDealerId()); - orderDealerMapper.updateById(orderDealerDO); - } else { - orderDealerMapper.insert(orderDealerDO); - } - } - - // 更新供应商信息(精细化处理) - // 获取现有的供应商列表 - LambdaQueryWrapper supplierQueryWrapper = Wrappers.lambdaQuery(OrderSupplierDO.class); - supplierQueryWrapper.eq(OrderSupplierDO::getOrderId, purchaseOrderDO.getOrderId()); - List existingSuppliers = orderSupplierMapper.selectList(supplierQueryWrapper); - - // 获取更新的供应商列表 - List updatedSuppliers = purchaseOrderUpdateCmd.getOrderSupplierList(); - - // 将现有供应商映射到ID字典中便于查找 - Map existingSupplierMap = existingSuppliers.stream() - .collect(Collectors.toMap(OrderSupplierDO::getOrderSupplierId, Function.identity())); - - // 收集需要更新和新增的供应商 - List suppliersToInsert = new ArrayList<>(); - List suppliersToUpdate = new ArrayList<>(); - - for (OrderSupplier updatedSupplier : updatedSuppliers) { - updatedSupplier.setOrderId(purchaseOrderDO.getOrderId()); - OrderSupplierDO supplierDO = orderSupplierConvert.toOrderSupplierDO(updatedSupplier); - - if (updatedSupplier.getOrderSupplierId() != null && existingSupplierMap.containsKey(updatedSupplier.getOrderSupplierId())) { - // 更新已存在的供应商 - supplierDO.setOrderSupplierId(updatedSupplier.getOrderSupplierId()); - suppliersToUpdate.add(supplierDO); - // 从现有映射中移除,剩下的就是需要删除的 - existingSupplierMap.remove(updatedSupplier.getOrderSupplierId()); - } else { - // 新增供应商 - suppliersToInsert.add(supplierDO); - } - } - - // 删除不再需要的供应商 - existingSupplierMap.values().forEach(supplier -> supplier.deleteById()); - - // 执行更新操作 - suppliersToUpdate.forEach(orderSupplierMapper::updateById); - - // 执行插入操作 - suppliersToInsert.forEach(orderSupplierMapper::insert); - - // 处理包材信息(对更新和新增的供应商) - List allAffectedSuppliers = new ArrayList<>(); - allAffectedSuppliers.addAll(suppliersToUpdate); - allAffectedSuppliers.addAll(suppliersToInsert); - - for (OrderSupplierDO supplierDO : allAffectedSuppliers) { - // 查找对应的更新数据 - OrderSupplier updatedSupplier = updatedSuppliers.stream() - .filter(s -> (s.getOrderSupplierId() != null && s.getOrderSupplierId().equals(supplierDO.getOrderSupplierId())) - || (s.getOrderSupplierId() == null && supplierDO.getOrderSupplierId() != null - && s.getSupplierId().equals(supplierDO.getSupplierId()))) - .findFirst() - .orElse(null); - - if (updatedSupplier != null && updatedSupplier.getOrderPackageList() != null && !updatedSupplier.getOrderPackageList().isEmpty()) { - // 删除旧的包材信息 - LambdaQueryWrapper packageDeleteWrapper = Wrappers.lambdaQuery(OrderPackageDO.class); - packageDeleteWrapper.eq(OrderPackageDO::getOrderSupplierId, supplierDO.getOrderSupplierId()); - orderPackageMapper.delete(packageDeleteWrapper); - - // 插入新的包材信息 - for (OrderPackage orderPackage : updatedSupplier.getOrderPackageList()) { - orderPackage.setOrderSupplierId(supplierDO.getOrderSupplierId()); - OrderPackageDO orderPackageDO = orderPackageConvert.toOrderPackageDO(orderPackage); - orderPackageMapper.insert(orderPackageDO); - } - } else if (updatedSupplier != null) { - // 如果更新的数据中包材列表为空,则删除所有包材信息 - LambdaQueryWrapper packageDeleteWrapper = Wrappers.lambdaQuery(OrderPackageDO.class); - packageDeleteWrapper.eq(OrderPackageDO::getOrderSupplierId, supplierDO.getOrderSupplierId()); - orderPackageMapper.delete(packageDeleteWrapper); - } - } - - // 更新费用信息(精细化处理) - // 获取现有的费用列表 - LambdaQueryWrapper costQueryWrapper = Wrappers.lambdaQuery(OrderCostDO.class); - costQueryWrapper.eq(OrderCostDO::getOrderId, purchaseOrderDO.getOrderId()); - List existingCosts = orderCostMapper.selectList(costQueryWrapper); - - // 获取更新的费用列表 - List updatedCosts = purchaseOrderUpdateCmd.getOrderCostList(); - - // 将现有费用映射到ID字典中便于查找 - Map existingCostMap = existingCosts.stream() - .collect(Collectors.toMap(OrderCostDO::getOrderCostId, Function.identity())); - - // 收集需要更新和新增的费用 - List costsToInsert = new ArrayList<>(); - List costsToUpdate = new ArrayList<>(); - - for (OrderCost updatedCost : updatedCosts) { - updatedCost.setOrderId(purchaseOrderDO.getOrderId()); - OrderCostDO costDO = orderCostConvert.toOrderCostDO(updatedCost); - - if (updatedCost.getOrderCostId() != null && existingCostMap.containsKey(updatedCost.getOrderCostId())) { - // 更新已存在的费用 - costDO.setOrderCostId(updatedCost.getOrderCostId()); - costsToUpdate.add(costDO); - // 从现有映射中移除,剩下的就是需要删除的 - existingCostMap.remove(updatedCost.getOrderCostId()); - } else { - // 新增费用 - costsToInsert.add(costDO); - } - } - - // 删除不再需要的费用 - existingCostMap.values().forEach(cost -> cost.deleteById()); - - // 执行更新操作 - costsToUpdate.forEach(orderCostMapper::updateById); - - // 执行插入操作 - costsToInsert.forEach(orderCostMapper::insert); - - return purchaseOrderConvert.toPurchaseOrder(purchaseOrderDO); + return save(purchaseOrderUpdateCmd); } @Override @@ -603,6 +420,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { shipOrderDO.setDriverName(orderVehicleDO.getDriver()); shipOrderDO.setDriverPhone(orderVehicleDO.getPhone()); shipOrderDO.setShippingDate(orderVehicleDO.getDeliveryTime()); + shipOrderDO.setShippingAddress(orderVehicleDO.getOrigin()); shipOrderDO.setFreightDebt(orderVehicleDO.getPrice()); if (orderVehicleDO.getOpenStrawCurtain()) { shipOrderDO.setStrawMatDebt(orderVehicleDO.getStrawCurtainPrice()); @@ -612,16 +430,23 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { shipOrderDO.setVehicleNo(orderVehicleDO.getVehicleNo()); } + // 从公司信息中获取相关信息 + OrderCompanyDO orderCompanyDO = orderCompanyMapper.selectOne( + Wrappers.lambdaQuery(OrderCompanyDO.class) + .eq(OrderCompanyDO::getOrderId, purchaseOrderDO.getOrderId()) + ); + + if (orderCompanyDO != null) { + shipOrderDO.setCompanyId(orderCompanyDO.getCompanyId()); + shipOrderDO.setCompanyName(orderCompanyDO.getFullName()); + } + // 从经销商信息中获取相关信息 OrderDealerDO orderDealerDO = orderDealerMapper.selectOne( Wrappers.lambdaQuery(OrderDealerDO.class) .eq(OrderDealerDO::getOrderId, purchaseOrderDO.getOrderId()) ); - if (orderDealerDO != null) { - shipOrderDO.setReceivingAddress(orderDealerDO.getWarehouseAddress()); - } - // 设置其他基本信息 shipOrderDO.setCreatedBy(purchaseOrderFinalApproveCmd.getCreatedBy()); shipOrderDO.setCreatedByName(purchaseOrderFinalApproveCmd.getCreatedByName()); @@ -734,8 +559,6 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { BigDecimal totalAmount = unitPrice.multiply(BigDecimal.valueOf(totalQuantity)); shipOrderPackageDO.setItemAmount(totalAmount); - shipOrderPackageDO.setSingleWeight(shipOrderPackageDO.getTotalWeight().divide(shipOrderPackageDO.getUnitPrice(), 2, RoundingMode.HALF_UP)); - // 计算总重量(如果有) BigDecimal totalWeight = packages.stream() .map(p -> { @@ -747,6 +570,8 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { .reduce(BigDecimal.ZERO, BigDecimal::add); shipOrderPackageDO.setTotalWeight(totalWeight); + shipOrderPackageDO.setSingleWeight(shipOrderPackageDO.getTotalWeight().divide(shipOrderPackageDO.getUnitPrice(), 2, RoundingMode.HALF_UP)); + shipOrderPackageMapper.insert(shipOrderPackageDO); } @@ -832,5 +657,269 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { queryWrapper.eq(PurchaseOrderDO::getState, purchaseOrderCountQry.getState()); return purchaseOrderMapper.selectCount(queryWrapper); } + + @Override + @Transactional + public PurchaseOrder saveStep1(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd) { + PurchaseOrderDO purchaseOrderDO; + + // 如果订单ID为空,则创建新订单 + if (purchaseOrderStep1Cmd.getOrderId() == null) { + purchaseOrderDO = purchaseOrderConvert.toPurchaseOrderDO(purchaseOrderStep1Cmd); + purchaseOrderDO.setState(PurchaseOrderStateEnum.DRAFT); + purchaseOrderDO.setOrderSn("CG" + generateShipOrderSn()); + purchaseOrderMapper.insert(purchaseOrderDO); + } else { + // 否则更新现有订单 + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(PurchaseOrderDO.class); + queryWrapper.eq(PurchaseOrderDO::getOrderId, purchaseOrderStep1Cmd.getOrderId()); + queryWrapper.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getActive); + queryWrapper.last("limit 1"); + purchaseOrderDO = purchaseOrderMapper.selectOne(queryWrapper); + purchaseOrderDO.setActive(purchaseOrderStep1Cmd.getActive()); + purchaseOrderMapper.updateById(purchaseOrderDO); + } + + // 保存或更新车辆信息 + OrderVehicle orderVehicle = purchaseOrderStep1Cmd.getOrderVehicle(); + orderVehicle.setOrderId(purchaseOrderDO.getOrderId()); + OrderVehicleDO orderVehicleDO = orderVehicleConvert.toOrderVehicleDO(orderVehicle); + + if (orderVehicle.getVehicleId() != null) { + orderVehicleMapper.updateById(orderVehicleDO); + } else { + // 检查是否已存在车辆信息 + LambdaQueryWrapper vehicleQueryWrapper = Wrappers.lambdaQuery(OrderVehicleDO.class); + vehicleQueryWrapper.eq(OrderVehicleDO::getOrderId, purchaseOrderDO.getOrderId()); + OrderVehicleDO existingVehicle = orderVehicleMapper.selectOne(vehicleQueryWrapper); + + if (existingVehicle != null) { + orderVehicleDO.setVehicleId(existingVehicle.getVehicleId()); + orderVehicleMapper.updateById(orderVehicleDO); + } else { + orderVehicleMapper.insert(orderVehicleDO); + } + } + + // 保存或更新经销商信息 + OrderDealer orderDealer = purchaseOrderStep1Cmd.getOrderDealer(); + orderDealer.setOrderId(purchaseOrderDO.getOrderId()); + OrderDealerDO orderDealerDO = orderDealerConvert.toOrderDealerDO(orderDealer); + + if (orderDealer.getOrderDealerId() != null) { + orderDealerMapper.updateById(orderDealerDO); + } else { + // 检查是否已存在经销商信息 + LambdaQueryWrapper dealerQueryWrapper = Wrappers.lambdaQuery(OrderDealerDO.class); + dealerQueryWrapper.eq(OrderDealerDO::getOrderId, purchaseOrderDO.getOrderId()); + OrderDealerDO existingDealer = orderDealerMapper.selectOne(dealerQueryWrapper); + + if (existingDealer != null) { + orderDealerDO.setOrderDealerId(existingDealer.getOrderDealerId()); + orderDealerMapper.updateById(orderDealerDO); + } else { + orderDealerMapper.insert(orderDealerDO); + } + } + + return purchaseOrderConvert.toPurchaseOrder(purchaseOrderDO); + } + + @Override + @Transactional + public void saveStep2(PurchaseOrderStep2Cmd purchaseOrderStep2Cmd) { + Long orderId = purchaseOrderStep2Cmd.getOrderId(); + + // 否则更新现有订单 + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(PurchaseOrderDO.class); + queryWrapper.eq(PurchaseOrderDO::getOrderId, orderId); + queryWrapper.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getActive); + queryWrapper.last("limit 1"); + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectOne(queryWrapper); + purchaseOrderDO.setActive(purchaseOrderStep2Cmd.getActive()); + purchaseOrderMapper.updateById(purchaseOrderDO); + + // 更新供应商信息(精细化处理) + // 获取现有的供应商列表 + LambdaQueryWrapper supplierQueryWrapper = Wrappers.lambdaQuery(OrderSupplierDO.class); + supplierQueryWrapper.eq(OrderSupplierDO::getOrderId, orderId); + List existingSuppliers = orderSupplierMapper.selectList(supplierQueryWrapper); + + // 获取更新的供应商列表 + List updatedSuppliers = purchaseOrderStep2Cmd.getOrderSupplierList(); + + // 将现有供应商映射到ID字典中便于查找 + Map existingOrderSupplierMap = existingSuppliers.stream() + .collect(Collectors.toMap(OrderSupplierDO::getSupplierId, Function.identity())); + + // 将更新后的供应商映射到ID字典中便于查找 + Map existingSupplierMap = existingSuppliers.stream().collect(Collectors.toMap(OrderSupplierDO::getSupplierId, OrderSupplierDO::getOrderSupplierId)); + + // 收集需要更新和新增的供应商 + List suppliersToInsert = new ArrayList<>(); + List suppliersToUpdate = new ArrayList<>(); + + for (OrderSupplier updatedSupplier : updatedSuppliers) { + // 检查供应商ID是否为空,如果为空则创建新的供应商 + if (Objects.isNull(updatedSupplier.getSupplierId())) { + SupplierDO supplierDO1 = supplierConvert.toSupplierDO(updatedSupplier); + supplierDO1.setStatus(Boolean.TRUE); + supplierDO1.setCreatedBy(purchaseOrderStep2Cmd.getCreatedBy()); + supplierDO1.setCreatedByName(purchaseOrderStep2Cmd.getCreatedByName()); + supplierMapper.insert(supplierDO1); + + updatedSupplier.setSupplierId(supplierDO1.getSupplierId()); + } + + updatedSupplier.setOrderId(orderId); + OrderSupplierDO orderSupplierDO = orderSupplierConvert.toOrderSupplierDO(updatedSupplier); + + if (updatedSupplier.getSupplierId() != null && existingOrderSupplierMap.containsKey(updatedSupplier.getSupplierId())) { + // 更新已存在的供应商 + orderSupplierDO.setSupplierId(updatedSupplier.getSupplierId()); + + Long orderSupplierId = existingSupplierMap.get(updatedSupplier.getSupplierId()); + orderSupplierDO.setOrderSupplierId(orderSupplierId); + updatedSupplier.setOrderSupplierId(orderSupplierId); + + suppliersToUpdate.add(orderSupplierDO); + // 从现有映射中移除,剩下的就是需要删除的 + existingOrderSupplierMap.remove(updatedSupplier.getSupplierId()); + } else { + // 新增供应商 + suppliersToInsert.add(orderSupplierDO); + updatedSupplier.setOrderSupplierId(orderSupplierDO.getOrderSupplierId()); + } + } + + // 删除不再需要的供应商 + existingOrderSupplierMap.values().forEach(supplier -> supplier.deleteById()); + + // 执行更新操作 + suppliersToUpdate.forEach(orderSupplierMapper::updateById); + + // 执行插入操作 + suppliersToInsert.forEach(orderSupplierMapper::insert); + + // 第三步处理包材 + if (purchaseOrderStep2Cmd.getActive() == 4) { + // 处理包材信息(对更新和新增的供应商) + List allAffectedSuppliers = new ArrayList<>(); + allAffectedSuppliers.addAll(suppliersToUpdate); + allAffectedSuppliers.addAll(suppliersToInsert); + + for (OrderSupplierDO supplierDO : allAffectedSuppliers) { + // 查找对应的更新数据 + OrderSupplier updatedSupplier = updatedSuppliers.stream() + .filter(s -> (s.getOrderSupplierId() != null && s.getOrderSupplierId().equals(supplierDO.getOrderSupplierId())) + || (s.getOrderSupplierId() == null && supplierDO.getOrderSupplierId() != null + && s.getSupplierId().equals(supplierDO.getSupplierId()))) + .findFirst() + .orElse(null); + + if (updatedSupplier != null && updatedSupplier.getOrderPackageList() != null && !updatedSupplier.getOrderPackageList().isEmpty()) { + // 获取现有的包材信息 + LambdaQueryWrapper packageQueryWrapper = Wrappers.lambdaQuery(OrderPackageDO.class); + packageQueryWrapper.eq(OrderPackageDO::getOrderSupplierId, supplierDO.getOrderSupplierId()); + List existingPackages = orderPackageMapper.selectList(packageQueryWrapper); + + // 将现有包材映射到ID字典中便于查找 + Map existingPackageMap = existingPackages.stream() + .collect(Collectors.toMap(OrderPackageDO::getOrderPackageId, Function.identity())); + + // 收集需要更新和新增的包材 + List packagesToInsert = new ArrayList<>(); + List packagesToUpdate = new ArrayList<>(); + + for (OrderPackage orderPackage : updatedSupplier.getOrderPackageList()) { + orderPackage.setOrderSupplierId(supplierDO.getOrderSupplierId()); + OrderPackageDO orderPackageDO = orderPackageConvert.toOrderPackageDO(orderPackage); + + if (orderPackage.getOrderPackageId() != null && existingPackageMap.containsKey(orderPackage.getOrderPackageId())) { + // 更新已存在的包材 + orderPackageDO.setOrderPackageId(orderPackage.getOrderPackageId()); + packagesToUpdate.add(orderPackageDO); + // 从现有映射中移除,剩下的就是需要删除的 + existingPackageMap.remove(orderPackage.getOrderPackageId()); + } else { + // 新增包材 + packagesToInsert.add(orderPackageDO); + } + } + + // 删除不再需要的包材 + existingPackageMap.values().forEach(packageDO -> packageDO.deleteById()); + + // 执行更新操作 + packagesToUpdate.forEach(orderPackageMapper::updateById); + + // 执行插入操作 + packagesToInsert.forEach(orderPackageMapper::insert); + } else if (updatedSupplier != null) { + // 如果更新的数据中包材列表为空,则删除所有包材信息 + LambdaQueryWrapper packageDeleteWrapper = Wrappers.lambdaQuery(OrderPackageDO.class); + packageDeleteWrapper.eq(OrderPackageDO::getOrderSupplierId, supplierDO.getOrderSupplierId()); + orderPackageMapper.delete(packageDeleteWrapper); + } + } + } + } + + @Override + @Transactional + public void saveStep3(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd) { + Long orderId = purchaseOrderStep3Cmd.getOrderId(); + + // 否则更新现有订单 + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(PurchaseOrderDO.class); + queryWrapper.eq(PurchaseOrderDO::getOrderId, orderId); + queryWrapper.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getActive); + queryWrapper.last("limit 1"); + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectOne(queryWrapper); + purchaseOrderDO.setActive(purchaseOrderStep3Cmd.getActive()); + purchaseOrderMapper.updateById(purchaseOrderDO); + + // 更新费用信息(精细化处理) + // 获取现有的费用列表 + LambdaQueryWrapper costQueryWrapper = Wrappers.lambdaQuery(OrderCostDO.class); + costQueryWrapper.eq(OrderCostDO::getOrderId, orderId); + List existingCosts = orderCostMapper.selectList(costQueryWrapper); + + // 获取更新的费用列表 + List updatedCosts = purchaseOrderStep3Cmd.getOrderCostList(); + + // 将现有费用映射到ID字典中便于查找 + Map existingCostMap = existingCosts.stream() + .collect(Collectors.toMap(OrderCostDO::getOrderCostId, Function.identity())); + + // 收集需要更新和新增的费用 + List costsToInsert = new ArrayList<>(); + List costsToUpdate = new ArrayList<>(); + + for (OrderCost updatedCost : updatedCosts) { + updatedCost.setOrderId(orderId); + OrderCostDO costDO = orderCostConvert.toOrderCostDO(updatedCost); + + if (updatedCost.getOrderCostId() != null && existingCostMap.containsKey(updatedCost.getOrderCostId())) { + // 更新已存在的费用 + costDO.setOrderCostId(updatedCost.getOrderCostId()); + costsToUpdate.add(costDO); + // 从现有映射中移除,剩下的就是需要删除的 + existingCostMap.remove(updatedCost.getOrderCostId()); + } else { + // 新增费用 + costsToInsert.add(costDO); + } + } + + // 删除不再需要的费用 + existingCostMap.values().forEach(cost -> cost.deleteById()); + + // 执行更新操作 + costsToUpdate.forEach(orderCostMapper::updateById); + + // 执行插入操作 + costsToInsert.forEach(orderCostMapper::insert); + } } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ShipOrderGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ShipOrderGatewayImpl.java index c056e21..1e7a6e8 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ShipOrderGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ShipOrderGatewayImpl.java @@ -1,5 +1,7 @@ package com.xunhong.erp.turbo.biz.infrastructure.gateway; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -16,9 +18,7 @@ import com.xunhong.erp.turbo.api.biz.dto.qry.ShipOrderShowQry; import com.xunhong.erp.turbo.biz.domain.entity.ShipOrder; import com.xunhong.erp.turbo.biz.domain.gateway.ShipOrderGateway; import com.xunhong.erp.turbo.biz.infrastructure.convert.ShipOrderConvert; -import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderDO; -import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderItemDO; -import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderPackageDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.*; import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderItemMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderPackageMapper; @@ -51,6 +51,12 @@ public class ShipOrderGatewayImpl implements ShipOrderGateway { @Override public IPage page(ShipOrderPageQry shipOrderPageQry) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ShipOrderDO.class); + queryWrapper.like(StrUtil.isNotBlank(shipOrderPageQry.getOrderSn()), ShipOrderDO::getOrderSn, shipOrderPageQry.getOrderSn()); + queryWrapper.eq(Objects.nonNull(shipOrderPageQry.getState()), ShipOrderDO::getState, shipOrderPageQry.getState()); + queryWrapper.eq(Objects.nonNull(shipOrderPageQry.getCreatedBy()), ShipOrderDO::getCreatedBy, shipOrderPageQry.getCreatedBy()); + queryWrapper.like(StrUtil.isNotBlank(shipOrderPageQry.getVehicleNo()), ShipOrderDO::getVehicleNo, shipOrderPageQry.getVehicleNo()); + queryWrapper.eq(Objects.nonNull(shipOrderPageQry.getDealerId()), ShipOrderDO::getDealerId, shipOrderPageQry.getDealerId()); + queryWrapper.orderByDesc(ShipOrderDO::getCreatedAt); IPage page = new Page<>(shipOrderPageQry.getPageIndex(), shipOrderPageQry.getPageSize()); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderDealerMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderDealerMapper.xml index 0c50703..09476c7 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderDealerMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderDealerMapper.xml @@ -16,25 +16,14 @@ - - - - - - - - - - - - - - + + + + - - + \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderPackageMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderPackageMapper.xml index aa4593c..8accb2c 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderPackageMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderPackageMapper.xml @@ -9,6 +9,7 @@ + @@ -23,5 +24,4 @@ - - + \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ShipOrderMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ShipOrderMapper.xml index 9b32a8e..c067aa0 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ShipOrderMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ShipOrderMapper.xml @@ -12,6 +12,8 @@ + + @@ -44,5 +46,4 @@ - - + \ No newline at end of file diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/SupplierMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/SupplierMapper.xml index 2554b87..ab10778 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/SupplierMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/SupplierMapper.xml @@ -13,6 +13,8 @@ + + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/PurchaseOrderServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/PurchaseOrderServiceI.java index 59b1350..25e04aa 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/PurchaseOrderServiceI.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/PurchaseOrderServiceI.java @@ -39,5 +39,9 @@ public interface PurchaseOrderServiceI { void rejectFinal(PurchaseOrderRejectFinalCmd purchaseOrderRejectFinalCmd); Long countPurchaseOrderByState(PurchaseOrderCountQry purchaseOrderCountQry); -} - + + // 分步提交方法 + PurchaseOrderVO saveStep1(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd); + void saveStep2(PurchaseOrderStep2Cmd purchaseOrderStep2Cmd); + void saveStep3(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd); +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderCreateCmd.java index e1ac560..3066482 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderCreateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderCreateCmd.java @@ -18,6 +18,11 @@ import java.util.List; @Schema(title = "采购订单创建") @EqualsAndHashCode(callSuper = true) public class PurchaseOrderCreateCmd extends Command { + /** + * 订单ID(更新时使用) + */ + @Schema(title = "采购订单ID", type = "string") + private Long orderId; /** * 步骤标识 diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep1Cmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep1Cmd.java new file mode 100644 index 0000000..69e9de0 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep1Cmd.java @@ -0,0 +1,41 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.common.OrderDealer; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "采购订单第一步:车辆信息和经销商信息保存") +@EqualsAndHashCode(callSuper = true) +public class PurchaseOrderStep1Cmd extends Command { + + /** + * 订单ID(更新时使用) + */ + @Schema(title = "采购订单ID", type = "string") + private Long orderId; + + /** + * 步骤标识 + */ + @Schema(title = "步骤标识") + private Integer active; + + /** + * 车辆信息 + */ + @Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderVehicle orderVehicle; + + /** + * 经销商信息 + */ + @Schema(title = "经销商信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderDealer orderDealer; +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep2Cmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep2Cmd.java new file mode 100644 index 0000000..fd0088d --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep2Cmd.java @@ -0,0 +1,36 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "采购订单第二步:供应商信息保存") +@EqualsAndHashCode(callSuper = true) +public class PurchaseOrderStep2Cmd extends Command { + + /** + * 订单ID + */ + @Schema(title = "采购订单ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string") + private Long orderId; + + /** + * 步骤标识 + */ + @Schema(title = "步骤标识") + private Integer active; + + /** + * 供应商信息 + */ + @Schema(title = "供应商信息", requiredMode = Schema.RequiredMode.REQUIRED) + private List orderSupplierList; +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep3Cmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep3Cmd.java new file mode 100644 index 0000000..4bc6e3a --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/PurchaseOrderStep3Cmd.java @@ -0,0 +1,36 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "采购订单第三步:人工和辅料等费用信息保存") +@EqualsAndHashCode(callSuper = true) +public class PurchaseOrderStep3Cmd extends Command { + + /** + * 订单ID + */ + @Schema(title = "采购订单ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string") + private Long orderId; + + /** + * 步骤标识 + */ + @Schema(title = "步骤标识") + private Integer active; + + /** + * 费用信息 + */ + @Schema(title = "采购订单费用信息", requiredMode = Schema.RequiredMode.REQUIRED) + private List orderCostList; +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderCreateCmd.java index 871fbd0..7f86bfd 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderCreateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderCreateCmd.java @@ -136,6 +136,18 @@ public class ShipOrderCreateCmd extends Command { @Schema(title = "瓜农姓名逗号隔开") private String farmerInfo; + /** + * 公司ID + */ + @Schema(title = "公司ID", type = "string") + private Long companyId; + + /** + * 公司名称 + */ + @Schema(title = "公司名称") + private String companyName; + /** * 备注 */ @@ -154,5 +166,4 @@ public class ShipOrderCreateCmd extends Command { @Schema(title = "创建人姓名") private String createdByName; -} - +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderUpdateCmd.java index e7078db..a842f97 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderUpdateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ShipOrderUpdateCmd.java @@ -38,6 +38,18 @@ public class ShipOrderUpdateCmd extends Command { @Schema(title = "发货地址") private String shippingAddress; + /** + * 公司ID + */ + @Schema(title = "公司ID", type = "string") + private Long companyId; + + /** + * 公司名称 + */ + @Schema(title = "公司名称") + private String companyName; + /** * 备注 */ @@ -67,5 +79,4 @@ public class ShipOrderUpdateCmd extends Command { */ @Schema(title = "成本单据") private String costDocument; -} - +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderDealer.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderDealer.java index 79e2888..21aa916 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderDealer.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderDealer.java @@ -81,91 +81,28 @@ public class OrderDealer extends Command { */ @Schema(title = "单据类型:delivery-发货单, purchase-采购底单, cost-成本单") private String documentTypes; - + /** - * 账户ID + * 税费补贴 */ - @Schema(title = "账户ID", type = "string") - private Long accountId; - + @Schema(title = "税费补贴") + private BigDecimal taxSubsidy; + /** - * 公司名称 + * 计提税金 */ - @Schema(title = "公司名称") - private String companyName; - + @Schema(title = "计提税金") + private BigDecimal taxProvision; + /** - * 税号 + * 成本差异 */ - @Schema(title = "税号") - private String taxNumber; - + @Schema(title = "成本差异") + private BigDecimal costDifference; + /** - * 银行账号 + * 利润分成 */ - @Schema(title = "银行账号") - private String bankAccount; - - /** - * 单位地址 - */ - @Schema(title = "单位地址") - private String companyAddress; - - /** - * 电话 - */ - @Schema(title = "电话") - private String phone; - - /** - * 开户行 - */ - @Schema(title = "开户行") - private String openingBank; - - /** - * 仓库ID - */ - @Schema(title = "仓库ID", type = "string") - private Long warehouseId; - - - /** - * 仓库名称 - */ - @Schema(title = "仓库名称") - private String warehouseName; - - /** - * 仓库地址 - */ - @Schema(title = "仓库地址") - private String warehouseAddress; - - /** - * 联系人 - */ - @Schema(title = "联系人") - private String contactPerson; - - /** - * 联系电话 - */ - @Schema(title = "联系电话") - private String contactPhone; - - /** - * 收货人姓名 - */ - @Schema(title = "收货人姓名") - private String receiverName; - - /** - * 收货人电话 - */ - @Schema(title = "收货人电话") - private String receiverPhone; - -} - + @Schema(title = "利润分成") + private BigDecimal profitSharing; +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderPackage.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderPackage.java index 98d2b06..54cf660 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderPackage.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderPackage.java @@ -40,6 +40,12 @@ public class OrderPackage extends Command { @Schema(title = "箱子品牌名称", requiredMode = Schema.RequiredMode.REQUIRED) private String boxBrandName; + /** + * 箱子品牌图片 + */ + @Schema(title = "箱子品牌图片") + private String boxBrandImage; + /** * 箱子分类ID */ @@ -88,5 +94,4 @@ public class OrderPackage extends Command { @Schema(title = "箱子类型:1_本次使用;2_额外运输;3_已使用额外运输;4_车上剩余;", requiredMode = Schema.RequiredMode.REQUIRED) private OrderPackageBoxTypeEnum boxType; -} - +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderRebate.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderRebate.java index ae06ba6..69a54bc 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderRebate.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderRebate.java @@ -15,25 +15,25 @@ public class OrderRebate extends DTO { /** * 记录ID */ - @Schema(title = "记录ID") + @Schema(title = "记录ID", type = "string") private Long orderRebateId; /** * 订单ID */ - @Schema(title = "订单ID") + @Schema(title = "订单ID", type = "string") private Long orderId; /** * 客户ID */ - @Schema(title = "客户ID") + @Schema(title = "客户ID", type = "string") private Long customerId; /** * 经销商ID */ - @Schema(title = "经销商ID") + @Schema(title = "经销商ID", type = "string") private Long dealerId; /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ShipOrderPackage.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ShipOrderPackage.java index b23d96d..09785cf 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ShipOrderPackage.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ShipOrderPackage.java @@ -70,11 +70,16 @@ public class ShipOrderPackage extends DTO { @Schema(title = "总重(斤)") private BigDecimal totalWeight; + /** + * 箱子品牌图片 + */ + @Schema(title = "箱子品牌图片") + private String boxBrandImage; + /** * 创建时间 */ @Schema(title = "创建时间") private LocalDateTime createdAt; -} - +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderPackageBoxTypeEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderPackageBoxTypeEnum.java index bd0d195..851a054 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderPackageBoxTypeEnum.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderPackageBoxTypeEnum.java @@ -8,12 +8,13 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum OrderPackageBoxTypeEnum { /** - * 箱子类型:1_本次使用;2_额外运输;3_已使用额外运输;4_车上剩余; + * 箱子类型:1_本次使用;2_额外运输;3_已使用额外运输;4_车上剩余;5_瓜农纸箱; */ USED(1, "本次使用"), EXTRA(2, "额外运输"), EXTRA_USED(3, "已使用额外运输"), - REMAIN(4, "车上剩余"); + REMAIN(4, "车上剩余"), + OWN(5, "瓜农纸箱"); @EnumValue private final int type; diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderRebateCalcMethodEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderRebateCalcMethodEnum.java index e799374..13b1298 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderRebateCalcMethodEnum.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderRebateCalcMethodEnum.java @@ -10,7 +10,7 @@ public enum OrderRebateCalcMethodEnum { /** * 返点计算方式:1_按净重计算;2_固定金额; */ - BY_WEIGHT(1, "按净重计算"), + NET_WEIGHT(1, "按净重计算"), FIXED_AMOUNT(2, "固定金额"); @EnumValue diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderPageQry.java index 1afc3b5..1389425 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderPageQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderPageQry.java @@ -32,16 +32,7 @@ public class PurchaseOrderPageQry extends PageQuery { @Schema(title = "供应商名称", type = "string") private String supplierName; - @Schema(title = "经销商付款账户ID", type = "string") - private Long dealerPaymentAccountId; - @Schema(title = "经销商ID", type = "string") private Long dealerId; - - /** - * 创建人ID - */ - @Schema(title = "创建人ID", type = "string") - private Long createdBy; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ShipOrderPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ShipOrderPageQry.java index 33447cc..1dd7f52 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ShipOrderPageQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ShipOrderPageQry.java @@ -1,5 +1,6 @@ package com.xunhong.erp.turbo.api.biz.dto.qry; +import com.xunhong.erp.turbo.api.biz.dto.enums.ShipOrderStateEnum; import com.xunhong.erp.turbo.base.dto.PageQuery; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -15,5 +16,22 @@ public class ShipOrderPageQry extends PageQuery { @Schema(title = "发货单ID", type = "string") private Long shipOrderId; + + @Schema(title = "车辆编号", type = "string") + private String vehicleNo; + + @Schema(title = "采购订单编号", type = "string") + private String orderSn; + /** + * 发货单状态:1_待回款;2_部分回款;3_已回款;4_拒收完结;5_已完结; + */ + @Schema(title = "发货单状态:1_待回款;2_部分回款;3_已回款;4_拒收完结;5_已完结;") + private ShipOrderStateEnum state; + + @Schema(title = "供应商名称", type = "string") + private String supplierName; + + @Schema(title = "经销商ID", type = "string") + private Long dealerId; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ShipOrderVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ShipOrderVO.java index 9b9709b..19a2ec7 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ShipOrderVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ShipOrderVO.java @@ -65,6 +65,18 @@ public class ShipOrderVO extends DTO { @Schema(title = "仓库名称") private String warehouseName; + /** + * 公司ID + */ + @Schema(title = "公司ID", type = "string") + private Long companyId; + + /** + * 公司名称 + */ + @Schema(title = "公司名称") + private String companyName; + /** * 车次号 */ @@ -239,5 +251,4 @@ public class ShipOrderVO extends DTO { private List shipOrderPackageList; -} - +} \ No newline at end of file diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/SupplierVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/SupplierVO.java index 525e721..4c85821 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/SupplierVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/SupplierVO.java @@ -63,6 +63,18 @@ public class SupplierVO extends DTO { @Schema(title = "状态:1_启用;0_禁用;", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean status; + /** + * 创建人ID + */ + @Schema(title = "创建人ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long createdBy; + + /** + * 创建人姓名 + */ + @Schema(title = "创建人姓名") + private String createdByName; + /** * 创建时间 */ diff --git a/erp-turbo-common/erp-turbo-base/src/main/java/com/xunhong/erp/turbo/base/dto/PageQuery.java b/erp-turbo-common/erp-turbo-base/src/main/java/com/xunhong/erp/turbo/base/dto/PageQuery.java index 869b101..702a849 100644 --- a/erp-turbo-common/erp-turbo-base/src/main/java/com/xunhong/erp/turbo/base/dto/PageQuery.java +++ b/erp-turbo-common/erp-turbo-base/src/main/java/com/xunhong/erp/turbo/base/dto/PageQuery.java @@ -25,4 +25,16 @@ public class PageQuery extends com.alibaba.cola.dto.PageQuery { */ @Schema(title = "状态:1_启用;0_禁用;") private Boolean status; + + /** + * 创建人ID + */ + @Schema(title = "创建人ID", type = "string", hidden = true) + private Long createdBy; + + /** + * 创建人名称 + */ + @Schema(title = "创建人名称", type = "string", hidden = true) + private String createdByName; }