From 9b9542385fe5731bbd3871c0618f987cb0f68c32 Mon Sep 17 00:00:00 2001 From: shenyifei Date: Wed, 17 Dec 2025 18:24:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=96=B0=E5=A2=9E=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=88=90=E6=9C=AC=E5=92=8C=E8=BF=94=E7=82=B9=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增订单成本项管理接口,支持创建和分页查询 - 新增订单返点管理接口,支持分页查询 - 扩展订单供应商接口,增加批量上传发票功能 - 完善费用类型枚举,新增物流类型 - 扩展费用归属枚举,新增司机类型 - 更新订单相关DTO,增加是否付款字段 - 优化订单查询条件,支持按支付状态筛选 - 完善订单供应商信息,增加公司信息和创建时间字段 - 新增经销商损耗相关字段配置 --- .../admin/controller/OrderCostController.java | 62 +++++ .../controller/OrderRebateController.java | 56 +++++ .../controller/OrderSupplierController.java | 39 ++-- .../turbo/auth/controller/UserController.java | 5 +- .../biz/app/assembler/OrderCostAssembler.java | 19 ++ .../app/assembler/OrderRebateAssembler.java | 19 ++ .../app/assembler/OrderSupplierAssembler.java | 5 +- .../executor/cmd/OrderCostCreateCmdExe.java | 29 +++ ...OrderSupplierBatchInvoiceUploadCmdExe.java | 29 +++ .../cmd/OrderSupplierUpdateCmdExe.java | 2 +- .../executor/query/OrderCostPageQryExe.java | 29 +++ .../executor/query/OrderRebatePageQryExe.java | 29 +++ .../query/OrderSupplierPageQryExe.java | 2 +- .../biz/app/service/OrderCostServiceImpl.java | 37 +++ .../app/service/OrderRebateServiceImpl.java | 29 +++ .../app/service/OrderSupplierServiceImpl.java | 8 + .../erp/turbo/biz/domain/entity/Cost.java | 4 +- .../turbo/biz/domain/entity/OrderCost.java | 108 +++++++++ .../turbo/biz/domain/entity/OrderRebate.java | 90 ++++++++ .../turbo/biz/domain/entity/OrderShip.java | 16 ++ .../biz/domain/entity/OrderSupplier.java | 218 ++++++++++++++++++ .../biz/domain/entity/PurchaseOrder.java | 6 +- .../biz/domain/gateway/OrderCostGateway.java | 16 ++ .../domain/gateway/OrderRebateGateway.java | 13 ++ .../domain/gateway/OrderSupplierGateway.java | 5 +- .../convert/OrderCostConvert.java | 20 +- .../convert/OrderRebateConvert.java | 10 +- .../convert/OrderShipConvert.java | 5 + .../convert/OrderSupplierConvert.java | 25 +- .../convert/PurchaseOrderConvert.java | 102 +++++++- .../biz/infrastructure/entity/CostDO.java | 4 +- .../infrastructure/entity/OrderCostDO.java | 24 +- .../infrastructure/entity/OrderRebateDO.java | 20 ++ .../infrastructure/entity/OrderShipDO.java | 16 ++ .../entity/OrderSupplierDO.java | 17 ++ .../gateway/OrderCostGatewayImpl.java | 108 +++++++++ .../gateway/OrderRebateGatewayImpl.java | 97 ++++++++ .../gateway/OrderShipGatewayImpl.java | 23 +- .../gateway/OrderSupplierGatewayImpl.java | 56 ++++- .../gateway/PurchaseOrderGatewayImpl.java | 25 +- .../mapper/OrderCostMapper.java | 7 + .../mapper/OrderRebateMapper.java | 6 + .../main/resources/mapper/OrderCostMapper.xml | 33 +++ .../resources/mapper/OrderRebateMapper.xml | 33 +++ .../resources/mapper/OrderSupplierMapper.xml | 12 +- .../turbo/api/biz/api/OrderCostServiceI.java | 16 ++ .../api/biz/api/OrderRebateServiceI.java | 13 ++ .../api/biz/api/OrderSupplierServiceI.java | 8 + .../turbo/api/biz/dto/cmd/CostCreateCmd.java | 8 +- .../api/biz/dto/cmd/DealerCreateCmd.java | 12 + .../api/biz/dto/cmd/OrderCostCreateCmd.java | 89 +++++++ .../OrderSupplierBatchInvoiceUploadCmd.java | 39 ++++ .../biz/dto/cmd/OrderSupplierUpdateCmd.java | 6 + .../api/biz/dto/common/OrderCompany.java | 2 + .../turbo/api/biz/dto/common/OrderCost.java | 14 +- .../turbo/api/biz/dto/common/OrderRebate.java | 6 + .../turbo/api/biz/dto/common/OrderShip.java | 12 + .../api/biz/dto/common/OrderSupplier.java | 26 +++ .../api/biz/dto/common/OrderVehicle.java | 2 + .../api/biz/dto/enums/CostBelongEnum.java | 3 +- .../turbo/api/biz/dto/enums/CostTypeEnum.java | 3 +- .../turbo/api/biz/dto/qry/CostListQry.java | 8 +- .../turbo/api/biz/dto/qry/CostPageQry.java | 8 +- .../api/biz/dto/qry/OrderCostPageQry.java | 38 +++ .../api/biz/dto/qry/OrderRebatePageQry.java | 28 +++ .../api/biz/dto/qry/OrderSupplierPageQry.java | 3 + .../api/biz/dto/qry/PurchaseOrderShowQry.java | 3 + .../erp/turbo/api/biz/dto/vo/CostVO.java | 6 +- .../erp/turbo/api/biz/dto/vo/DealerVO.java | 12 + .../erp/turbo/api/biz/dto/vo/OrderCostVO.java | 132 +++++++++++ .../turbo/api/biz/dto/vo/OrderRebateVO.java | 108 +++++++++ .../erp/turbo/api/biz/dto/vo/OrderShipVO.java | 19 ++ .../turbo/api/biz/dto/vo/OrderSupplierVO.java | 86 ++++--- .../turbo/api/biz/dto/vo/PurchaseOrderVO.java | 2 + .../api/user/dto/cmd/AdminCreateCmd.java | 2 +- .../turbo/api/user/dto/qry/AdminShowQry.java | 8 +- .../erp/turbo/api/user/dto/vo/AdminVO.java | 2 +- .../turbo/web/aspect/MerchantIdAspect.java | 7 +- 78 files changed, 2123 insertions(+), 126 deletions(-) create mode 100644 erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderCostController.java create mode 100644 erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderRebateController.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderCostAssembler.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderRebateAssembler.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderCostCreateCmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierBatchInvoiceUploadCmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderCostPageQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderRebatePageQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderCostServiceImpl.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderRebateServiceImpl.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderCost.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderRebate.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderSupplier.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderCostGateway.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderRebateGateway.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderRebateGatewayImpl.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderCostServiceI.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderRebateServiceI.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderCostCreateCmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierBatchInvoiceUploadCmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderCostPageQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderRebatePageQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderCostVO.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderRebateVO.java diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderCostController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderCostController.java new file mode 100644 index 0000000..d3ccbc1 --- /dev/null +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderCostController.java @@ -0,0 +1,62 @@ +package com.xunhong.erp.turbo.admin.controller; + +import cn.dev33.satoken.annotation.SaCheckLogin; +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.xunhong.erp.turbo.api.biz.api.OrderCostServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderCostVO; +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; +import com.xunhong.erp.turbo.api.user.dto.vo.AdminVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.base.dto.UserSession; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * @author shenyifei + */ +@Tag(name = "OrderCost", description = "订单成本项管理") +@RestController("operationOrderCostController") +@RequestMapping(value = "/operation") +@RequiredArgsConstructor +public class OrderCostController { + + @DubboReference(version = "1.0.0") + private final OrderCostServiceI orderCostService; + + @DubboReference(version = "1.0.0") + private final AdminServiceI adminService; + + + @SaCheckLogin +// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_ORDER_SUPPLIER_VIEW}) + @GetMapping("pageOrderCost") + @Operation(summary = "订单成本项列表", method = "GET") + public PageResponse pageOrderCost(@ModelAttribute @Validated OrderCostPageQry orderCostPageQry) { + String roleSlug = UserSession.USER_THREAD_LOCAL.get().getRoleSlug(); + if (roleSlug.equals(RoleConstant.ORIGIN_ENTRY) || roleSlug.equals(RoleConstant.MARKET_BUYER)) { + Long userId = UserSession.USER_THREAD_LOCAL.get().getUserId(); + AdminShowQry adminShowQry = new AdminShowQry(); + adminShowQry.setUserId(userId); + AdminVO adminVO = adminService.show(adminShowQry); + orderCostPageQry.setCreatedBy(adminVO.getAdminId()); + } + PageDTO page = orderCostService.page(orderCostPageQry); + return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); + } + @SaCheckLogin +// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_ORDER_SUPPLIER_UPDATE}) + @PostMapping(value = "createOrderCost") + @Operation(summary = "创建订单成本项", method = "POST") + public SingleResponse createOrderCost(@RequestBody @Validated OrderCostCreateCmd orderCostCreateCmd) { + return SingleResponse.of(orderCostService.create(orderCostCreateCmd)); + } +} diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderRebateController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderRebateController.java new file mode 100644 index 0000000..e442a35 --- /dev/null +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderRebateController.java @@ -0,0 +1,56 @@ +package com.xunhong.erp.turbo.admin.controller; + +import cn.dev33.satoken.annotation.SaCheckLogin; +import com.alibaba.cola.dto.PageResponse; +import com.xunhong.erp.turbo.api.biz.api.OrderRebateServiceI; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderRebateVO; +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; +import com.xunhong.erp.turbo.api.user.dto.vo.AdminVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.base.dto.UserSession; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author shenyifei + */ +@Tag(name = "OrderRebate", description = "订单返点管理") +@RestController("operationOrderRebateController") +@RequestMapping(value = "/operation") +@RequiredArgsConstructor +public class OrderRebateController { + + @DubboReference(version = "1.0.0") + private final OrderRebateServiceI orderRebateService; + + @DubboReference(version = "1.0.0") + private final AdminServiceI adminService; + + + @SaCheckLogin +// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_ORDER_SUPPLIER_VIEW}) + @GetMapping("pageOrderRebate") + @Operation(summary = "订单返点列表", method = "GET") + public PageResponse pageOrderRebate(@ModelAttribute @Validated OrderRebatePageQry orderRebatePageQry) { + String roleSlug = UserSession.USER_THREAD_LOCAL.get().getRoleSlug(); + if (roleSlug.equals(RoleConstant.ORIGIN_ENTRY) || roleSlug.equals(RoleConstant.MARKET_BUYER)) { + Long userId = UserSession.USER_THREAD_LOCAL.get().getUserId(); + AdminShowQry adminShowQry = new AdminShowQry(); + adminShowQry.setUserId(userId); + AdminVO adminVO = adminService.show(adminShowQry); + orderRebatePageQry.setCreatedBy(adminVO.getAdminId()); + } + PageDTO page = orderRebateService.page(orderRebatePageQry); + return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); + } +} diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderSupplierController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderSupplierController.java index ebbbeca..3a700cf 100644 --- a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderSupplierController.java +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/OrderSupplierController.java @@ -2,8 +2,10 @@ package com.xunhong.erp.turbo.admin.controller; import cn.dev33.satoken.annotation.SaCheckLogin; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.xunhong.erp.turbo.api.biz.api.OrderSupplierServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierBatchInvoiceUploadCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderSupplierPageQry; import com.xunhong.erp.turbo.api.biz.dto.vo.OrderSupplierVO; @@ -30,17 +32,17 @@ import org.springframework.web.bind.annotation.*; public class OrderSupplierController { @DubboReference(version = "1.0.0") - private final OrderSupplierServiceI orderSupplierService; + private final OrderSupplierServiceI orderSupplierService; @DubboReference(version = "1.0.0") private final AdminServiceI adminService; - @SaCheckLogin + @SaCheckLogin // @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_ORDER_SUPPLIER_VIEW}) - @GetMapping("pageOrderSupplier") - @Operation(summary = "订单供应商列表", method = "GET") - public PageResponse pageOrderSupplier(@ModelAttribute @Validated OrderSupplierPageQry orderSupplierPageQry) { + @GetMapping("pageOrderSupplier") + @Operation(summary = "订单供应商列表", method = "GET") + public PageResponse pageOrderSupplier(@ModelAttribute @Validated OrderSupplierPageQry orderSupplierPageQry) { String roleSlug = UserSession.USER_THREAD_LOCAL.get().getRoleSlug(); if (roleSlug.equals(RoleConstant.ORIGIN_ENTRY) || roleSlug.equals(RoleConstant.MARKET_BUYER)) { Long userId = UserSession.USER_THREAD_LOCAL.get().getUserId(); @@ -49,15 +51,24 @@ public class OrderSupplierController { AdminVO adminVO = adminService.show(adminShowQry); orderSupplierPageQry.setCreatedBy(adminVO.getAdminId()); } - PageDTO page = orderSupplierService.page(orderSupplierPageQry); - return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); - } + PageDTO page = orderSupplierService.page(orderSupplierPageQry); + return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); + } - @SaCheckLogin + @SaCheckLogin // @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_ORDER_SUPPLIER_UPDATE}) - @RequestMapping(value = "updateOrderSupplier", method = {RequestMethod.PATCH, RequestMethod.PUT}) - @Operation(summary = "订单供应商更新", method = "PATCH") - public SingleResponse updateOrderSupplier(@RequestBody @Validated OrderSupplierUpdateCmd orderSupplierUpdateCmd) { - return SingleResponse.of(orderSupplierService.update(orderSupplierUpdateCmd)); - } + @RequestMapping(value = "updateOrderSupplier", method = {RequestMethod.PATCH, RequestMethod.PUT}) + @Operation(summary = "订单供应商更新", method = "PATCH") + public SingleResponse updateOrderSupplier(@RequestBody @Validated OrderSupplierUpdateCmd orderSupplierUpdateCmd) { + return SingleResponse.of(orderSupplierService.update(orderSupplierUpdateCmd)); + } + + @SaCheckLogin +// @SaCheckPermission(value = {PermissionConstant.MDB_BUSINESS_ORDER_SUPPLIER_BATCH_INVOICE_UPLOAD}) + @PostMapping("batchUploadInvoice") + @Operation(summary = "批量上传供应商发票", method = "POST") + public Response batchUploadInvoice(@RequestBody @Validated OrderSupplierBatchInvoiceUploadCmd batchInvoiceUploadCmd) { + orderSupplierService.batchUploadInvoice(batchInvoiceUploadCmd); + return SingleResponse.buildSuccess(); + } } diff --git a/erp-turbo-auth/src/main/java/com/xunhong/erp/turbo/auth/controller/UserController.java b/erp-turbo-auth/src/main/java/com/xunhong/erp/turbo/auth/controller/UserController.java index b60395f..1e68d0b 100644 --- a/erp-turbo-auth/src/main/java/com/xunhong/erp/turbo/auth/controller/UserController.java +++ b/erp-turbo-auth/src/main/java/com/xunhong/erp/turbo/auth/controller/UserController.java @@ -82,7 +82,6 @@ public class UserController { @GetMapping(value = "/userAdmin") @Operation(summary = "管理员详情", method = "GET") public SingleResponse userAdmin(@ModelAttribute @Validated AdminShowQry adminShowQry) { - Long userId = UserSession.USER_THREAD_LOCAL.get().getUserId(); adminShowQry.setUserId(userId); @@ -99,6 +98,10 @@ public class UserController { EmployeeVO employeeVO = employeeService.show(employeeShowQry); + if (Objects.isNull(employeeVO)) { + return SingleResponse.of(null); + } + // 获取角色 UserRoleListQry userRoleListQry = new UserRoleListQry(); userRoleListQry.setUserId(employeeVO.getUserId()); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderCostAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderCostAssembler.java new file mode 100644 index 0000000..d70a885 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderCostAssembler.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.biz.app.assembler; + +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderCostVO; +import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; + +/** + * @author shenyifei + */ +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +public interface OrderCostAssembler { + + @Mapping(target = "purchaseOrderVO", source = "purchaseOrder") + @Mapping(target = "createdByName", ignore = true) + @Mapping(target = "createdBy", ignore = true) + OrderCostVO toOrderCostVO(OrderCost orderCost); +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderRebateAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderRebateAssembler.java new file mode 100644 index 0000000..3ba9271 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderRebateAssembler.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.biz.app.assembler; + +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderRebateVO; +import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; + +/** + * @author shenyifei + */ +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +public interface OrderRebateAssembler { + + @Mapping(target = "purchaseOrderVO", source = "purchaseOrder") + @Mapping(target = "createdByName", ignore = true) + @Mapping(target = "createdBy", ignore = true) + OrderRebateVO toOrderRebateVO(OrderRebate orderRebate); +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderSupplierAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderSupplierAssembler.java index 0e8cb94..ecee01d 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderSupplierAssembler.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/OrderSupplierAssembler.java @@ -1,7 +1,7 @@ package com.xunhong.erp.turbo.biz.app.assembler; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.api.biz.dto.vo.OrderSupplierVO; +import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.NullValueCheckStrategy; @@ -12,7 +12,6 @@ import org.mapstruct.NullValueCheckStrategy; @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface OrderSupplierAssembler { - @Mapping(target = "pricingMethod", ignore = true) - @Mapping(target = "createdAt", ignore = true) + @Mapping(target = "purchaseOrderVO", source = "purchaseOrder") OrderSupplierVO toOrderSupplierVO(OrderSupplier orderSupplier); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderCostCreateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderCostCreateCmdExe.java new file mode 100644 index 0000000..bf7ce6e --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderCostCreateCmdExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderCostVO; +import com.xunhong.erp.turbo.biz.app.assembler.OrderCostAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; +import com.xunhong.erp.turbo.biz.domain.gateway.OrderCostGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class OrderCostCreateCmdExe { + + private final OrderCostAssembler orderCostAssembler; + private final OrderCostGateway orderCostGateway; + + public OrderCostVO execute(OrderCostCreateCmd orderCostCreateCmd) { + OrderCost orderCost = orderCostGateway.save(orderCostCreateCmd); + + return orderCostAssembler.toOrderCostVO(orderCost); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierBatchInvoiceUploadCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierBatchInvoiceUploadCmdExe.java new file mode 100644 index 0000000..0188dad --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierBatchInvoiceUploadCmdExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierBatchInvoiceUploadCmd; +import com.xunhong.erp.turbo.biz.domain.gateway.OrderSupplierGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 订单供应商批量上传发票执行器 + * + * @author claude + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class OrderSupplierBatchInvoiceUploadCmdExe { + + private final OrderSupplierGateway orderSupplierGateway; + + /** + * 执行批量上传发票 + * + * @param orderSupplierBatchInvoiceUploadCmd 批量上传发票命令 + */ + public void execute(OrderSupplierBatchInvoiceUploadCmd orderSupplierBatchInvoiceUploadCmd) { + orderSupplierGateway.batchInvoiceUpload(orderSupplierBatchInvoiceUploadCmd); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierUpdateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierUpdateCmdExe.java index e192889..220d317 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierUpdateCmdExe.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/OrderSupplierUpdateCmdExe.java @@ -1,9 +1,9 @@ package com.xunhong.erp.turbo.biz.app.executor.cmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.api.biz.dto.vo.OrderSupplierVO; import com.xunhong.erp.turbo.biz.app.assembler.OrderSupplierAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; import com.xunhong.erp.turbo.biz.domain.gateway.OrderSupplierGateway; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderCostPageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderCostPageQryExe.java new file mode 100644 index 0000000..b10b500 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderCostPageQryExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.query; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderCostVO; +import com.xunhong.erp.turbo.biz.app.assembler.OrderCostAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; +import com.xunhong.erp.turbo.biz.domain.gateway.OrderCostGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class OrderCostPageQryExe { + + private final OrderCostGateway orderCostGateway; + private final OrderCostAssembler orderCostAssembler; + + public IPage execute(OrderCostPageQry orderCostPageQry) { + IPage page = orderCostGateway.page(orderCostPageQry); + return page.convert(orderCostAssembler::toOrderCostVO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderRebatePageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderRebatePageQryExe.java new file mode 100644 index 0000000..8123696 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderRebatePageQryExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.query; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderRebateVO; +import com.xunhong.erp.turbo.biz.app.assembler.OrderRebateAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate; +import com.xunhong.erp.turbo.biz.domain.gateway.OrderRebateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class OrderRebatePageQryExe { + + private final OrderRebateGateway orderRebateGateway; + private final OrderRebateAssembler orderRebateAssembler; + + public IPage execute(OrderRebatePageQry orderRebatePageQry) { + IPage page = orderRebateGateway.page(orderRebatePageQry); + return page.convert(orderRebateAssembler::toOrderRebateVO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderSupplierPageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderSupplierPageQryExe.java index 14d4c3f..b2ed2e8 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderSupplierPageQryExe.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/OrderSupplierPageQryExe.java @@ -1,10 +1,10 @@ package com.xunhong.erp.turbo.biz.app.executor.query; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderSupplierPageQry; import com.xunhong.erp.turbo.api.biz.dto.vo.OrderSupplierVO; import com.xunhong.erp.turbo.biz.app.assembler.OrderSupplierAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; import com.xunhong.erp.turbo.biz.domain.gateway.OrderSupplierGateway; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderCostServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderCostServiceImpl.java new file mode 100644 index 0000000..2b9d7c4 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderCostServiceImpl.java @@ -0,0 +1,37 @@ +package com.xunhong.erp.turbo.biz.app.service; + +import com.xunhong.erp.turbo.api.biz.api.OrderCostServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderCostVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.biz.app.executor.cmd.OrderCostCreateCmdExe; +import com.xunhong.erp.turbo.biz.app.executor.query.OrderCostPageQryExe; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.stereotype.Service; + +/** + * @author shenyifei + */ +@Slf4j +@Service +@DubboService(interfaceClass = OrderCostServiceI.class, version = "1.0.0") +@RequiredArgsConstructor +public class OrderCostServiceImpl implements OrderCostServiceI { + + private final OrderCostPageQryExe orderCostPageQryExe; + private final OrderCostCreateCmdExe orderCostCreateCmdExe; + + @Override + public PageDTO page(OrderCostPageQry orderCostPageQry) { + return PageDTO.of(orderCostPageQryExe.execute(orderCostPageQry)); + } + + @Override + public OrderCostVO create(OrderCostCreateCmd orderCostCreateCmd) { + return orderCostCreateCmdExe.execute(orderCostCreateCmd); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderRebateServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderRebateServiceImpl.java new file mode 100644 index 0000000..6e65de6 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderRebateServiceImpl.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.service; + +import com.xunhong.erp.turbo.api.biz.api.OrderRebateServiceI; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderRebateVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.biz.app.executor.query.OrderRebatePageQryExe; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.stereotype.Service; + +/** + * @author shenyifei + */ +@Slf4j +@Service +@DubboService(interfaceClass = OrderRebateServiceI.class, version = "1.0.0") +@RequiredArgsConstructor +public class OrderRebateServiceImpl implements OrderRebateServiceI { + + private final OrderRebatePageQryExe orderRebatePageQryExe; + + @Override + public PageDTO page(OrderRebatePageQry orderRebatePageQry) { + return PageDTO.of(orderRebatePageQryExe.execute(orderRebatePageQry)); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderSupplierServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderSupplierServiceImpl.java index f7ecdb2..7fbe15c 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderSupplierServiceImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/OrderSupplierServiceImpl.java @@ -1,10 +1,12 @@ package com.xunhong.erp.turbo.biz.app.service; import com.xunhong.erp.turbo.api.biz.api.OrderSupplierServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierBatchInvoiceUploadCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderSupplierPageQry; import com.xunhong.erp.turbo.api.biz.dto.vo.OrderSupplierVO; import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.biz.app.executor.cmd.OrderSupplierBatchInvoiceUploadCmdExe; import com.xunhong.erp.turbo.biz.app.executor.cmd.OrderSupplierUpdateCmdExe; import com.xunhong.erp.turbo.biz.app.executor.query.OrderSupplierPageQryExe; import lombok.RequiredArgsConstructor; @@ -22,6 +24,7 @@ import org.springframework.stereotype.Service; public class OrderSupplierServiceImpl implements OrderSupplierServiceI { private final OrderSupplierUpdateCmdExe orderSupplierUpdateCmdExe; + private final OrderSupplierBatchInvoiceUploadCmdExe orderSupplierBatchInvoiceUploadCmdExe; private final OrderSupplierPageQryExe orderSupplierPageQryExe; @@ -35,5 +38,10 @@ public class OrderSupplierServiceImpl implements OrderSupplierServiceI { public OrderSupplierVO update(OrderSupplierUpdateCmd orderSupplierUpdateCmd) { return orderSupplierUpdateCmdExe.execute(orderSupplierUpdateCmd); } + + @Override + public void batchUploadInvoice(OrderSupplierBatchInvoiceUploadCmd batchInvoiceUploadCmd) { + orderSupplierBatchInvoiceUploadCmdExe.execute(batchInvoiceUploadCmd); + } } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Cost.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Cost.java index 46ce89d..5f9b3e2 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Cost.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Cost.java @@ -25,12 +25,12 @@ public class Cost extends DTO { private Long costId; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ private CostTypeEnum type; /** - * 费用归属:1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ private CostBelongEnum belong; diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderCost.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderCost.java new file mode 100644 index 0000000..a2b9c9c --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderCost.java @@ -0,0 +1,108 @@ +package com.xunhong.erp.turbo.biz.domain.entity; + +import com.alibaba.cola.dto.DTO; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; +import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@EqualsAndHashCode(callSuper = true) +@JsonIgnoreProperties(ignoreUnknown = true) +public class OrderCost extends DTO { + + /** + * 记录ID + */ + private Long orderCostId; + + /** + * 订单ID + */ + private Long orderId; + + /** + * 费用Id + */ + private Long costId; + + /** + * 成本项目名称 + */ + private String name; + + /** + * 单价 + */ + private BigDecimal price; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private Integer count; + + /** + * 费用归属:0_无归属;1_工头;2_产地;3_司机; + */ + private CostBelongEnum belong; + + /** + * 负责人 + */ + private String principal; + + /** + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 + */ + private CostTypeEnum type; + + /** + * 关联项目id + */ + private List costItemIds; + + /** + * 是否付款 + */ + private Boolean isPaid; + + /** + * 采购订单车辆信息 + */ + private OrderVehicle orderVehicle; + + /** + * 采购订单公司信息 + */ + private OrderCompany orderCompany; + + /** + * 采购订单信息 + */ + private PurchaseOrder purchaseOrder; + + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + private PurchaseOrderStateEnum poState; + + + private LocalDateTime createdAt; +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderRebate.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderRebate.java new file mode 100644 index 0000000..55dc183 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderRebate.java @@ -0,0 +1,90 @@ +package com.xunhong.erp.turbo.biz.domain.entity; + +import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; +import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@EqualsAndHashCode(callSuper = true) +public class OrderRebate extends DTO { + + /** + * 记录ID + */ + private Long orderRebateId; + + /** + * 订单ID + */ + private Long orderId; + + /** + * 客户ID + */ + private Long customerId; + + /** + * 经销商ID + */ + private Long dealerId; + + /** + * 客户名称 + */ + private String name; + + /** + * 返点计算方式:1_按净重计算;2_固定金额; + */ + private OrderRebateCalcMethodEnum calcMethod; + + /** + * 返点净重 + */ + private BigDecimal netWeight; + + /** + * 返点单价 + */ + private BigDecimal unitPrice; + + /** + * 返点金额 + */ + private BigDecimal amount; + + /** + * 是否付款 + */ + private Boolean isPaid; + + /** + * 采购订单车辆信息 + */ + private OrderVehicle orderVehicle; + + /** + * 采购订单公司信息 + */ + private OrderCompany orderCompany; + + /** + * 采购订单信息 + */ + private PurchaseOrder purchaseOrder; + + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + private PurchaseOrderStateEnum poState; + + + private LocalDateTime createdAt; +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java index dd29c44..3909ef9 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java @@ -4,6 +4,7 @@ import com.alibaba.cola.domain.Entity; import com.alibaba.cola.dto.DTO; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost; import com.xunhong.erp.turbo.api.biz.dto.common.OrderShipItem; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderShipStateEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -35,6 +36,16 @@ public class OrderShip extends DTO { */ private String orderSn; + /** + * 经销商ID + */ + private Long dealerId; + + /** + * 经销商名称 + */ + private String dealerName; + /** * 仓库ID */ @@ -119,4 +130,9 @@ public class OrderShip extends DTO { * 订单费用表 */ private List orderCostList; + + /** + * 订单运输表 + */ + private OrderVehicle orderVehicle; } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderSupplier.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderSupplier.java new file mode 100644 index 0000000..2c88ead --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderSupplier.java @@ -0,0 +1,218 @@ +package com.xunhong.erp.turbo.biz.domain.entity; + +import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.common.*; +import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "采购订单供应商信息创建") +@EqualsAndHashCode(callSuper = true) +public class OrderSupplier extends DTO { + + /** + * 记录ID + */ + private Long orderSupplierId; + + /** + * 订单ID + */ + private Long orderId; + + /** + * 供应商ID + */ + private Long supplierId; + + /** + * 供应商姓名 + */ + private String name; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 银行卡号 + */ + private String bankCard; + + /** + * 手机号 + */ + private String phone; + + /** + * 微信二维码 + */ + private String wechatQr; + + /** + * 是否最后一家 + */ + private Boolean isLast; + + /** + * 空磅是否包含纸箱 + */ + private Boolean isPaper; + + /** + * 空车重量(kg) + */ + private BigDecimal emptyWeight; + + /** + * 总重量(kg) + */ + private BigDecimal totalWeight; + + /** + * 毛重(kg) + */ + private BigDecimal grossWeight; + + /** + * 净重(kg) + */ + private BigDecimal netWeight; + + /** + * 采购单价(元/斤) + */ + private BigDecimal purchasePrice; + + /** + * 箱子类型 + */ + private List packageUsage; + + /** + * 装车模式:1_搭架子+网垫;2_纸箱+胶带+木隔板 + */ + private LoadingModeEnum loadingMode; + + /** + * 销售单价(元/斤) + */ + private BigDecimal salePrice; + + /** + * 报价方式:1_按毛重报价;2_按净重报价; + */ + private PurchaseOrderPricingMethodEnum pricingMethod; + + /** + * 发票金额 + */ + private BigDecimal invoiceAmount; + + /** + * 空车照片 + */ + private String emptyWeightImg; + + /** + * 满载照片 + */ + private String totalWeightImg; + + /** + * 是否上传票证 + */ + private Boolean invoiceUpload; + + /** + * 发票 + */ + private List invoiceImg; + + /** + * 是否上传合同 + */ + private Boolean contractUpload; + + /** + * 合同 + */ + private List contractImg; + + /** + * 产品ID + */ + private Long productId; + + /** + * 产品名称 + */ + private String productName; + + /** + * 关联费用id + */ + private List costIds; + + /** + * 成本模板 + */ + private String costTemplate; + + /** + * 是否已付定金 + */ + private Boolean isDepositPaid; + + /** + * 定金金额 + */ + private BigDecimal depositAmount; + + /** + * 是否付款 + */ + private Boolean isPaid; + + /** + * 采购订单包装箱信息 + */ + private List orderPackageList; + + /** + * 采购订单车辆信息 + */ + private OrderVehicle orderVehicle; + + /** + * 采购订单公司信息 + */ + private OrderCompany orderCompany; + + /** + * 采购订单信息 + */ + private PurchaseOrder purchaseOrder; + + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + private PurchaseOrderStateEnum poState; + + /** + * 创建时间 + */ + private LocalDateTime createdAt; +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/PurchaseOrder.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/PurchaseOrder.java index 9007078..e8e38b0 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/PurchaseOrder.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/PurchaseOrder.java @@ -83,7 +83,7 @@ public class PurchaseOrder extends DTO { /** * 采购订单供应商信息 */ - private List orderSupplierList; + private List orderSupplierList; /** * 采购订单运输信息 @@ -103,7 +103,7 @@ public class PurchaseOrder extends DTO { /** * 采购订单包装箱信息 */ - private List orderCostList; + private List orderCostList; /** * 采购订单成本项目信息 @@ -113,7 +113,7 @@ public class PurchaseOrder extends DTO { /** * 采购订单返点信息 */ - private OrderRebate orderRebate; + private com.xunhong.erp.turbo.api.biz.dto.common.OrderRebate orderRebate; /** * 采购订单包装信息 diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderCostGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderCostGateway.java new file mode 100644 index 0000000..125ee33 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderCostGateway.java @@ -0,0 +1,16 @@ +package com.xunhong.erp.turbo.biz.domain.gateway; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; +import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; + +/** + * @author shenyifei + */ +public interface OrderCostGateway { + IPage page(OrderCostPageQry orderCostPageQry); + + OrderCost save(OrderCostCreateCmd orderCostCreateCmd); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderRebateGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderRebateGateway.java new file mode 100644 index 0000000..ef4b7a1 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderRebateGateway.java @@ -0,0 +1,13 @@ +package com.xunhong.erp.turbo.biz.domain.gateway; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; +import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate; + +/** + * @author shenyifei + */ +public interface OrderRebateGateway { + IPage page(OrderRebatePageQry orderRebatePageQry); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderSupplierGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderSupplierGateway.java index 2409684..c8ed168 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderSupplierGateway.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/OrderSupplierGateway.java @@ -1,9 +1,10 @@ package com.xunhong.erp.turbo.biz.domain.gateway; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierBatchInvoiceUploadCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderSupplierPageQry; +import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; /** * @author shenyifei @@ -12,5 +13,7 @@ public interface OrderSupplierGateway { IPage page(OrderSupplierPageQry orderSupplierPageQry); OrderSupplier update(OrderSupplierUpdateCmd orderSupplierUpdateCmd); + + void batchInvoiceUpload(OrderSupplierBatchInvoiceUploadCmd cmd); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderCostConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderCostConvert.java index cd10f53..b709b39 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderCostConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderCostConvert.java @@ -1,6 +1,7 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -13,6 +14,9 @@ import java.util.List; */ @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface OrderCostConvert { + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCostId", ignore = true) @Mapping(target = "version", ignore = true) @Mapping(target = "updatedAt", ignore = true) @@ -24,5 +28,19 @@ public interface OrderCostConvert { List toOrderCostList(List orderCostDOList); + @Mapping(target = "orderCompany", source = "orderCompanyDO") + @Mapping(target = "orderVehicle", source = "orderVehicleDO") + @Mapping(target = "purchaseOrder", source = "purchaseOrderDO") OrderCost toOrderCost(OrderCostDO orderCostDO); + + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "poState", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "orderCostId", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + OrderCostDO toOrderCostDO(OrderCostCreateCmd orderCostCreateCmd); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderRebateConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderRebateConvert.java index 95b3e88..858553f 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderRebateConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderRebateConvert.java @@ -1,6 +1,6 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderRebate; +import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -11,11 +11,9 @@ import org.mapstruct.NullValueCheckStrategy; */ @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface OrderRebateConvert { - @Mapping(target = "version", ignore = true) - @Mapping(target = "updatedAt", ignore = true) - @Mapping(target = "isDelete", ignore = true) - @Mapping(target = "createdAt", ignore = true) - OrderRebateDO toOrderRebateDO(OrderRebate orderRebate); + @Mapping(target = "orderCompany", source = "orderCompanyDO") + @Mapping(target = "orderVehicle", source = "orderVehicleDO") + @Mapping(target = "purchaseOrder", source = "purchaseOrderDO") OrderRebate toOrderRebate(OrderRebateDO orderRebateDO); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java index a65780f..e39e689 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java @@ -16,10 +16,12 @@ import org.mapstruct.NullValueCheckStrategy; @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface OrderShipConvert { + @Mapping(target = "orderVehicle", source = "orderVehicleDO") @Mapping(target = "orderCostList", source = "orderCostDOList") @Mapping(target = "orderShipItemList", source = "orderShipItemDOList") com.xunhong.erp.turbo.biz.domain.entity.OrderShip toOrderShip(OrderShipDO orderShipDO); + @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "warehouseName", ignore = true) @Mapping(target = "warehouseId", ignore = true) @@ -32,6 +34,7 @@ public interface OrderShipConvert { @Mapping(target = "createdAt", ignore = true) OrderShipDO toOrderShipDO(OrderShipCreateCmd orderShipCreateCmd); + @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderId", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "warehouseName", ignore = true) @@ -48,6 +51,7 @@ public interface OrderShipConvert { @Mapping(target = "createdAt", ignore = true) void toOrderShipDO(@MappingTarget OrderShipDO orderShipDO, OrderShipUpdateCmd orderShipUpdateCmd); + @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderId", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "companyName", ignore = true) @@ -66,6 +70,7 @@ public interface OrderShipConvert { @Mapping(target = "createdAt", ignore = true) void toOrderShipDO(@MappingTarget OrderShipDO orderShipDO, OrderShipGenerateDocumentCmd orderShipGenerateDocumentCmd); + @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "orderShipItemDOList", ignore = true) @Mapping(target = "version", ignore = true) 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 57aa121..43bd7dc 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 @@ -1,39 +1,32 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; +import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; import org.mapstruct.NullValueCheckStrategy; -import java.util.List; /** * @author shenyifei */ @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = {OrderPackageConvert.class}) public interface OrderSupplierConvert { - @Mapping(target = "orderVehicleDO", ignore = true) - @Mapping(target = "orderPackageDOList", source = "orderPackageList") - @Mapping(target = "orderSupplierId", ignore = true) - @Mapping(target = "version", ignore = true) - @Mapping(target = "updatedAt", ignore = true) - @Mapping(target = "isDelete", ignore = true) - @Mapping(target = "createdAt", ignore = true) - OrderSupplierDO toOrderSupplierDO(OrderSupplier orderSupplier); - - List toOrderSupplierDOList(List orderSupplierList); - - List toOrderSupplierList(List orderSupplierDOList); + @Mapping(target = "purchaseOrder", source = "purchaseOrderDO") + @Mapping(target = "orderCompany", source = "orderCompanyDO") @Mapping(target = "orderVehicle", source = "orderVehicleDO") - @Mapping(target = "createdByName", ignore = true) - @Mapping(target = "createdBy", ignore = true) @Mapping(target = "orderPackageList", source = "orderPackageDOList") OrderSupplier toOrderSupplier(OrderSupplierDO orderSupplierDO); + @Mapping(target = "pricingMethod", ignore = true) + @Mapping(target = "poState", ignore = true) + @Mapping(target = "packageUsage", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "costTemplate", ignore = true) + @Mapping(target = "costIds", ignore = true) @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "wechatQr", ignore = true) @Mapping(target = "totalWeightImg", ignore = true) 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 d9edba4..7b5e36b 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,17 +1,25 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert; import com.xunhong.erp.turbo.api.biz.dto.cmd.*; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderRebate; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; import org.mapstruct.NullValueCheckStrategy; +import java.util.List; + /** * @author shenyifei */ -@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = {OrderVehicleConvert.class, OrderSupplierConvert.class, OrderCostConvert.class, OrderPackageConvert.class, OrderDealerConvert.class, OrderRebateConvert.class, OrderCompanyConvert.class, OrderPackageConvert.class, OrderShipItemConvert.class, OrderShipConvert.class}) +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = {OrderVehicleConvert.class, OrderCostConvert.class, OrderPackageConvert.class, OrderDealerConvert.class, OrderRebateConvert.class, OrderCompanyConvert.class, OrderPackageConvert.class, OrderShipItemConvert.class, OrderShipConvert.class}) public interface PurchaseOrderConvert { @Mapping(target = "orderShipList", source = "orderShipDOList") @@ -92,5 +100,97 @@ public interface PurchaseOrderConvert { @Mapping(target = "isDelete", ignore = true) @Mapping(target = "createdAt", ignore = true) PurchaseOrderDO toPurchaseOrderDO(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd); + + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "orderPackageDOList", source = "orderPackageList") + @Mapping(target = "orderSupplierId", ignore = true) + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + OrderSupplierDO toOrderSupplierDO(OrderSupplier orderSupplier); + + List toOrderSupplierDOList(List orderSupplierList); + + List toOrderSupplierList(List orderSupplierDOList); + + @Mapping(target = "selected", ignore = true) + @Mapping(target = "orderCompany", source = "orderCompanyDO") + @Mapping(target = "orderVehicle", source = "orderVehicleDO") + @Mapping(target = "createdByName", ignore = true) + @Mapping(target = "createdBy", ignore = true) + @Mapping(target = "orderPackageList", source = "orderPackageDOList") + OrderSupplier toOrderSupplier(OrderSupplierDO orderSupplierDO); + + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "pricingMethod", ignore = true) + @Mapping(target = "poState", ignore = true) + @Mapping(target = "packageUsage", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "costTemplate", ignore = true) + @Mapping(target = "costIds", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "wechatQr", ignore = true) + @Mapping(target = "totalWeightImg", ignore = true) + @Mapping(target = "totalWeight", ignore = true) + @Mapping(target = "supplierId", ignore = true) + @Mapping(target = "salePrice", ignore = true) + @Mapping(target = "purchasePrice", ignore = true) + @Mapping(target = "productName", ignore = true) + @Mapping(target = "productId", ignore = true) + @Mapping(target = "phone", ignore = true) + @Mapping(target = "orderId", ignore = true) + @Mapping(target = "netWeight", ignore = true) + @Mapping(target = "name", ignore = true) + @Mapping(target = "isPaper", ignore = true) + @Mapping(target = "isLast", ignore = true) + @Mapping(target = "invoiceAmount", ignore = true) + @Mapping(target = "idCard", ignore = true) + @Mapping(target = "grossWeight", ignore = true) + @Mapping(target = "emptyWeightImg", ignore = true) + @Mapping(target = "emptyWeight", ignore = true) + @Mapping(target = "createdAt", ignore = true) + @Mapping(target = "bankCard", ignore = true) + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "orderPackageDOList", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "isDepositPaid", ignore = true) + @Mapping(target = "depositAmount", ignore = true) + void toOrderSupplierDO(@MappingTarget OrderSupplierDO orderSupplierDO, OrderSupplierUpdateCmd orderSupplierUpdateCmd); + + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "poState", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "orderCostId", ignore = true) + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + OrderCostDO toOrderCostDO(OrderCost orderCost); + + List toOrderCostDOList(List orderCostList); + + List toOrderCostList(List orderCostDOList); + + @Mapping(target = "selected", ignore = true) + @Mapping(target = "createdByName", ignore = true) + @Mapping(target = "createdBy", ignore = true) + OrderCost toOrderCost(OrderCostDO orderCostDO); + + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "poState", ignore = true) + @Mapping(target = "orderVehicleDO", ignore = true) + @Mapping(target = "orderCompanyDO", ignore = true) + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + OrderRebateDO toOrderRebateDO(OrderRebate orderRebate); + + OrderRebate toOrderRebate(OrderRebateDO orderRebateDO); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/CostDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/CostDO.java index bb0e26c..c5220b9 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/CostDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/CostDO.java @@ -29,13 +29,13 @@ public class CostDO extends BaseDO { private Long costId; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ @TableField(value = "type") private CostTypeEnum type; /** - * 费用归属:1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ @TableField(value = "belong") private CostBelongEnum belong; diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderCostDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderCostDO.java index 67bde36..9e08916 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderCostDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderCostDO.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO; import lombok.Data; import lombok.EqualsAndHashCode; @@ -65,7 +66,7 @@ public class OrderCostDO extends BaseDO { private Integer count; /** - * 费用归属:1_工头;2_产地 + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ @TableField(value = "belong") private CostBelongEnum belong; @@ -83,10 +84,29 @@ public class OrderCostDO extends BaseDO { private List costItemIds; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ @TableField(value = "type") private CostTypeEnum type; + /** + * 是否付款 + */ + @TableField(value = "is_paid") + private Boolean isPaid; + + @TableField(exist = false) + private PurchaseOrderStateEnum poState; + + + @TableField(exist = false) + private OrderVehicleDO orderVehicleDO; + + @TableField(exist = false) + private OrderCompanyDO orderCompanyDO; + + @TableField(exist = false) + private PurchaseOrderDO purchaseOrderDO; + } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderRebateDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderRebateDO.java index 7fc54c8..c509208 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderRebateDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderRebateDO.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO; import lombok.Data; import lombok.EqualsAndHashCode; @@ -72,4 +73,23 @@ public class OrderRebateDO extends BaseDO { */ @TableField("amount") private BigDecimal amount; + + /** + * 是否付款 + */ + @TableField(value = "is_paid") + private Boolean isPaid; + + @TableField(exist = false) + private PurchaseOrderStateEnum poState; + + + @TableField(exist = false) + private OrderVehicleDO orderVehicleDO; + + @TableField(exist = false) + private OrderCompanyDO orderCompanyDO; + + @TableField(exist = false) + private PurchaseOrderDO purchaseOrderDO; } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java index f42ca44..4785a37 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java @@ -32,6 +32,19 @@ public class OrderShipDO extends BaseDO { @TableField(value = "order_id") private Long orderId; + /** + * 经销商ID + */ + @TableField(value = "dealer_id") + private Long dealerId; + + /** + * 经销商名称 + */ + @TableField(value = "dealer_name") + private String dealerName; + + /** * 发货单编号 */ @@ -139,4 +152,7 @@ public class OrderShipDO extends BaseDO { @TableField(exist = false) private List orderCostDOList; + @TableField(exist = false) + private OrderVehicleDO orderVehicleDO; + } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderSupplierDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderSupplierDO.java index 452370e..0f6f0be 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderSupplierDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderSupplierDO.java @@ -9,6 +9,7 @@ import com.xunhong.erp.turbo.api.biz.dto.common.SupplierPackageUsage; import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem; import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO; import lombok.Data; import lombok.EqualsAndHashCode; @@ -216,9 +217,25 @@ public class OrderSupplierDO extends BaseDO { @TableField(value = "deposit_amount") private BigDecimal depositAmount; + /** + * 是否付款 + */ + @TableField(value = "is_paid") + private Boolean isPaid; + @TableField(exist = false) private List orderPackageDOList; @TableField(exist = false) private OrderVehicleDO orderVehicleDO; + + @TableField(exist = false) + private OrderCompanyDO orderCompanyDO; + + @TableField(exist = false) + private PurchaseOrderDO purchaseOrderDO; + + @TableField(exist = false) + private PurchaseOrderStateEnum poState; + } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java new file mode 100644 index 0000000..fe55158 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java @@ -0,0 +1,108 @@ +package com.xunhong.erp.turbo.biz.infrastructure.gateway; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; +import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; +import com.xunhong.erp.turbo.biz.domain.gateway.OrderCostGateway; +import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderCostConvert; +import com.xunhong.erp.turbo.biz.infrastructure.entity.*; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.*; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author shenyifei + */ +@Slf4j +@Repository +@RequiredArgsConstructor +public class OrderCostGatewayImpl implements OrderCostGateway { + private final OrderCostMapper orderCostMapper; + private final OrderCostConvert orderCostConvert; + + private final OrderVehicleMapper orderVehicleMapper; + private final OrderCompanyMapper orderCompanyMapper; + private final PurchaseOrderMapper purchaseOrderMapper; + + private final CostMapper costMapper; + + + @Override + public IPage page(OrderCostPageQry orderCostPageQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(OrderCostDO.class); + queryWrapper.eq(Objects.nonNull(orderCostPageQry.getCostId()), OrderCostDO::getCostId, orderCostPageQry.getCostId()); + queryWrapper.eq(Objects.nonNull(orderCostPageQry.getIsPaid()), OrderCostDO::getIsPaid, orderCostPageQry.getIsPaid()); + queryWrapper.in(Objects.nonNull(orderCostPageQry.getBelongs()), OrderCostDO::getBelong, orderCostPageQry.getBelongs()); + + queryWrapper.orderByDesc(OrderCostDO::getCreatedAt); + + IPage page = new Page<>(orderCostPageQry.getPageIndex(), orderCostPageQry.getPageSize()); + page = orderCostMapper.selectPage(page, queryWrapper, orderCostPageQry); + + List orderIdList = page.getRecords().stream().map(OrderCostDO::getOrderId).toList(); + if (CollUtil.isNotEmpty(orderIdList)) { + LambdaQueryWrapper queryWrapper3 = Wrappers.lambdaQuery(OrderVehicleDO.class); + queryWrapper3.in(OrderVehicleDO::getOrderId, orderIdList); + queryWrapper3.select(OrderVehicleDO::getOrderId, OrderVehicleDO::getVehicleNo, OrderVehicleDO::getDeliveryTime, OrderVehicleDO::getOrigin, OrderVehicleDO::getDestination, OrderVehicleDO::getDealerId, OrderVehicleDO::getDealerName); + List orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper3); + Map orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderCostDO -> { + OrderVehicleDO orderVehicleDO = orderVehicleDOMap.get(orderCostDO.getOrderId()); + if (Objects.nonNull(orderVehicleDO)) { + orderCostDO.setOrderVehicleDO(orderVehicleDO); + } + }); + + LambdaQueryWrapper queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); + queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); + queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId); + List orderCompanyDOList = orderCompanyMapper.selectList(queryWrapper2); + Map orderCompanyDOMap = orderCompanyDOList.stream().collect(Collectors.toMap(OrderCompanyDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderCostDO -> { + OrderCompanyDO orderCompanyDO = orderCompanyDOMap.get(orderCostDO.getOrderId()); + if (Objects.nonNull(orderCompanyDO)) { + orderCostDO.setOrderCompanyDO(orderCompanyDO); + } + }); + + LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(PurchaseOrderDO.class); + queryWrapper1.in(PurchaseOrderDO::getOrderId, orderIdList); + queryWrapper1.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getOrderSn, PurchaseOrderDO::getState, PurchaseOrderDO::getAuditState); + List purchaseOrderDOList = purchaseOrderMapper.selectList(queryWrapper1); + Map purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderCostDO -> { + PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderCostDO.getOrderId()); + if (Objects.nonNull(purchaseOrderDO)) { + orderCostDO.setPurchaseOrderDO(purchaseOrderDO); + } + }); + } + + return page.convert(orderCostConvert::toOrderCost); + } + + @Override + public OrderCost save(OrderCostCreateCmd orderCostCreateCmd) { + CostDO costDO = costMapper.selectById(orderCostCreateCmd.getCostId()); + OrderCostDO orderCostDO = orderCostConvert.toOrderCostDO(orderCostCreateCmd); + orderCostDO.setUnit(costDO.getUnit()); + orderCostDO.setName(costDO.getName()); + orderCostDO.setBelong(costDO.getBelong()); + orderCostMapper.insert(orderCostDO); + + return orderCostConvert.toOrderCost(orderCostDO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderRebateGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderRebateGatewayImpl.java new file mode 100644 index 0000000..909064d --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderRebateGatewayImpl.java @@ -0,0 +1,97 @@ +package com.xunhong.erp.turbo.biz.infrastructure.gateway; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; +import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate; +import com.xunhong.erp.turbo.biz.domain.gateway.OrderRebateGateway; +import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderRebateConvert; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderRebateMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderVehicleMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author shenyifei + */ +@Slf4j +@Repository +@RequiredArgsConstructor +public class OrderRebateGatewayImpl implements OrderRebateGateway { + private final OrderRebateMapper orderRebateMapper; + private final OrderRebateConvert orderRebateConvert; + + private final OrderVehicleMapper orderVehicleMapper; + private final OrderCompanyMapper orderCompanyMapper; + private final PurchaseOrderMapper purchaseOrderMapper; + + + @Override + public IPage page(OrderRebatePageQry orderRebatePageQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(OrderRebateDO.class); + queryWrapper.eq(Objects.nonNull(orderRebatePageQry.getIsPaid()), OrderRebateDO::getIsPaid, orderRebatePageQry.getIsPaid()); + + queryWrapper.orderByDesc(OrderRebateDO::getCreatedAt); + + IPage page = new Page<>(orderRebatePageQry.getPageIndex(), orderRebatePageQry.getPageSize()); + page = orderRebateMapper.selectPage(page, queryWrapper, orderRebatePageQry); + + List orderIdList = page.getRecords().stream().map(OrderRebateDO::getOrderId).toList(); + if (CollUtil.isNotEmpty(orderIdList)) { + LambdaQueryWrapper queryWrapper3 = Wrappers.lambdaQuery(OrderVehicleDO.class); + queryWrapper3.in(OrderVehicleDO::getOrderId, orderIdList); + queryWrapper3.select(OrderVehicleDO::getOrderId, OrderVehicleDO::getVehicleNo, OrderVehicleDO::getDeliveryTime, OrderVehicleDO::getOrigin, OrderVehicleDO::getDestination, OrderVehicleDO::getDealerId, OrderVehicleDO::getDealerName); + List orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper3); + Map orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderCostDO -> { + OrderVehicleDO orderVehicleDO = orderVehicleDOMap.get(orderCostDO.getOrderId()); + if (Objects.nonNull(orderVehicleDO)) { + orderCostDO.setOrderVehicleDO(orderVehicleDO); + } + }); + + LambdaQueryWrapper queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); + queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); + queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId); + List orderCompanyDOList = orderCompanyMapper.selectList(queryWrapper2); + Map orderCompanyDOMap = orderCompanyDOList.stream().collect(Collectors.toMap(OrderCompanyDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderCostDO -> { + OrderCompanyDO orderCompanyDO = orderCompanyDOMap.get(orderCostDO.getOrderId()); + if (Objects.nonNull(orderCompanyDO)) { + orderCostDO.setOrderCompanyDO(orderCompanyDO); + } + }); + + LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(PurchaseOrderDO.class); + queryWrapper1.in(PurchaseOrderDO::getOrderId, orderIdList); + queryWrapper1.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getOrderSn, PurchaseOrderDO::getState, PurchaseOrderDO::getAuditState); + List purchaseOrderDOList = purchaseOrderMapper.selectList(queryWrapper1); + Map purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderCostDO -> { + PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderCostDO.getOrderId()); + if (Objects.nonNull(purchaseOrderDO)) { + orderCostDO.setPurchaseOrderDO(purchaseOrderDO); + } + }); + } + + return page.convert(orderRebateConvert::toOrderRebate); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java index 09b2885..d952aa1 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java @@ -1,5 +1,6 @@ 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; @@ -20,14 +21,16 @@ import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderShipConvert; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderShipDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderShipItemDO; -import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper; -import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderShipItemMapper; -import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderShipMapper; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.*; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author shenyifei @@ -41,6 +44,9 @@ public class OrderShipGatewayImpl implements OrderShipGateway { private final OrderShipItemMapper orderShipItemMapper; private final OrderCostMapper orderCostMapper; + private final PurchaseOrderMapper purchaseOrderMapper; + + private final OrderVehicleMapper orderVehicleMapper; @Override public OrderShip save(OrderShipCreateCmd orderShipCreateCmd) { @@ -62,6 +68,17 @@ public class OrderShipGatewayImpl implements OrderShipGateway { IPage page = new Page<>(orderShipPageQry.getPageIndex(), orderShipPageQry.getPageSize()); page = orderShipMapper.selectPage(page, queryWrapper); + List orderIdList = page.getRecords().stream().map(OrderShipDO::getOrderId).toList(); + if (CollUtil.isNotEmpty(orderIdList)) { + LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(OrderVehicleDO.class); + queryWrapper1.in(OrderVehicleDO::getOrderId, orderIdList); + List orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper1); + Map orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderShipDO -> { + orderShipDO.setOrderVehicleDO(orderVehicleDOMap.get(orderShipDO.getOrderId())); + }); + } + return page.convert(orderShipConvert::toOrderShip); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderSupplierGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderSupplierGatewayImpl.java index 2035c5c..f154535 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderSupplierGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderSupplierGatewayImpl.java @@ -1,20 +1,28 @@ package com.xunhong.erp.turbo.biz.infrastructure.gateway; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierBatchInvoiceUploadCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; -import com.xunhong.erp.turbo.api.biz.dto.common.OrderSupplier; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderSupplierPageQry; +import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; import com.xunhong.erp.turbo.biz.domain.gateway.OrderSupplierGateway; import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderSupplierConvert; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderSupplierMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderVehicleMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; import java.util.List; @@ -26,6 +34,7 @@ import java.util.stream.Collectors; /** * @author shenyifei */ +@Slf4j @Repository @RequiredArgsConstructor public class OrderSupplierGatewayImpl implements OrderSupplierGateway { @@ -33,14 +42,16 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway { private final OrderSupplierConvert orderSupplierConvert; private final OrderVehicleMapper orderVehicleMapper; + private final OrderCompanyMapper orderCompanyMapper; + private final PurchaseOrderMapper purchaseOrderMapper; @Override public IPage page(OrderSupplierPageQry orderSupplierPageQry) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(OrderSupplierDO.class); - queryWrapper.eq(Objects.nonNull(orderSupplierPageQry.getOrderId()), OrderSupplierDO::getOrderId, orderSupplierPageQry.getOrderId()); queryWrapper.eq(Objects.nonNull(orderSupplierPageQry.getSupplierId()), OrderSupplierDO::getSupplierId, orderSupplierPageQry.getSupplierId()); queryWrapper.eq(Objects.nonNull(orderSupplierPageQry.getInvoiceUpload()), OrderSupplierDO::getInvoiceUpload, orderSupplierPageQry.getInvoiceUpload()); + queryWrapper.eq(Objects.nonNull(orderSupplierPageQry.getIsPaid()), OrderSupplierDO::getIsPaid, orderSupplierPageQry.getIsPaid()); queryWrapper.orderByDesc(OrderSupplierDO::getCreatedAt); @@ -49,7 +60,10 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway { List orderIdList = page.getRecords().stream().map(OrderSupplierDO::getOrderId).toList(); if (CollUtil.isNotEmpty(orderIdList)) { - List orderVehicleDOList = orderVehicleMapper.selectList(Wrappers.lambdaQuery(OrderVehicleDO.class).in(OrderVehicleDO::getOrderId, orderIdList)); + LambdaQueryWrapper queryWrapper3 = Wrappers.lambdaQuery(OrderVehicleDO.class); + queryWrapper3.in(OrderVehicleDO::getOrderId, orderIdList); + queryWrapper3.select(OrderVehicleDO::getOrderId, OrderVehicleDO::getVehicleNo, OrderVehicleDO::getDeliveryTime, OrderVehicleDO::getOrigin, OrderVehicleDO::getDestination, OrderVehicleDO::getDealerId, OrderVehicleDO::getDealerName); + List orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper3); Map orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity())); page.getRecords().forEach(orderSupplierDO -> { OrderVehicleDO orderVehicleDO = orderVehicleDOMap.get(orderSupplierDO.getOrderId()); @@ -57,6 +71,30 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway { orderSupplierDO.setOrderVehicleDO(orderVehicleDO); } }); + + LambdaQueryWrapper queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); + queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); + queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId); + List orderCompanyDOList = orderCompanyMapper.selectList(queryWrapper2); + Map orderCompanyDOMap = orderCompanyDOList.stream().collect(Collectors.toMap(OrderCompanyDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderSupplierDO -> { + OrderCompanyDO orderCompanyDO = orderCompanyDOMap.get(orderSupplierDO.getOrderId()); + if (Objects.nonNull(orderCompanyDO)) { + orderSupplierDO.setOrderCompanyDO(orderCompanyDO); + } + }); + + LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(PurchaseOrderDO.class); + queryWrapper1.in(PurchaseOrderDO::getOrderId, orderIdList); + queryWrapper1.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getOrderSn, PurchaseOrderDO::getState, PurchaseOrderDO::getAuditState); + List purchaseOrderDOList = purchaseOrderMapper.selectList(queryWrapper1); + Map purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); + page.getRecords().forEach(orderSupplierDO -> { + PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderSupplierDO.getOrderId()); + if (Objects.nonNull(purchaseOrderDO)) { + orderSupplierDO.setPurchaseOrderDO(purchaseOrderDO); + } + }); } return page.convert(orderSupplierConvert::toOrderSupplier); @@ -75,5 +113,17 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway { return orderSupplierConvert.toOrderSupplier(orderSupplierDO); } + + @Override + public void batchInvoiceUpload(OrderSupplierBatchInvoiceUploadCmd orderSupplierBatchInvoiceUploadCmd) { + // 构建更新条件 + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(OrderSupplierDO.class); + updateWrapper.in(OrderSupplierDO::getOrderSupplierId, orderSupplierBatchInvoiceUploadCmd.getOrderSupplierIdList()) + .set(OrderSupplierDO::getInvoiceUpload, true) + .set(OrderSupplierDO::getInvoiceImg, JSONObject.toJSONString(orderSupplierBatchInvoiceUploadCmd.getInvoiceImg())); + + // 执行更新 + orderSupplierMapper.update(updateWrapper); + } } 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 87b87cb..f40cde8 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 @@ -212,6 +212,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { LambdaQueryWrapper queryWrapper6 = Wrappers.lambdaQuery(OrderShipDO.class); queryWrapper6.eq(OrderShipDO::getOrderId, purchaseOrderDO.getOrderId()); + queryWrapper6.eq(Objects.nonNull(purchaseOrderShowQry.getOrderShipId()), OrderShipDO::getOrderShipId, purchaseOrderShowQry.getOrderShipId()); List orderShipDOList = orderShipMapper.selectList(queryWrapper6); LambdaQueryWrapper queryWrapper7 = Wrappers.lambdaQuery(OrderShipItemDO.class); @@ -339,7 +340,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { // 更新供应商信息(直接更新,因为不存在条数更新) purchaseOrderApproveCmd.getOrderSupplierList().forEach(orderSupplier -> { orderSupplier.setOrderId(purchaseOrderDO.getOrderId()); - OrderSupplierDO orderSupplierDO = orderSupplierConvert.toOrderSupplierDO(orderSupplier); + OrderSupplierDO orderSupplierDO = purchaseOrderConvert.toOrderSupplierDO(orderSupplier); orderSupplierDO.setOrderSupplierId(orderSupplier.getOrderSupplierId()); // 直接更新包材信息(因为包材信息条数也不会变) @@ -359,7 +360,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { OrderRebate orderRebate = purchaseOrderApproveCmd.getOrderRebate(); if (Objects.nonNull(orderRebate)) { orderRebate.setOrderId(purchaseOrderDO.getOrderId()); - OrderRebateDO orderRebateDO = orderRebateConvert.toOrderRebateDO(orderRebate); + OrderRebateDO orderRebateDO = purchaseOrderConvert.toOrderRebateDO(orderRebate); // 先尝试更新,如果不存在则插入 if (orderRebateDO.getOrderRebateId() != null) { orderRebateMapper.updateById(orderRebateDO); @@ -377,7 +378,19 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { } saveOrderCostItem(purchaseOrderDO.getOrderId(), purchaseOrderApproveCmd.getOrderCostItemList().stream().toList()); - saveOrderCost(purchaseOrderDO.getOrderId(), purchaseOrderApproveCmd.getOrderCostList().stream().toList()); + saveOrderCost(purchaseOrderDO.getOrderId(), purchaseOrderApproveCmd.getOrderCostList().stream().peek(orderCost -> { + if (orderCost.getBelong().equals(CostBelongEnum.PRODUCTION_TYPE)) { + orderCost.setPrincipal(purchaseOrderDO.getOriginPrincipal()); + } + + if (orderCost.getBelong().equals(CostBelongEnum.DRIVER_TYPE)) { + orderCost.setPrincipal(orderVehicleDO.getDriver()); + } + + if (orderCost.getBelong().equals(CostBelongEnum.WORKER_TYPE)) { + orderCost.setPrincipal(purchaseOrderDO.getForeman()); + } + }).toList()); saveOrderShip(purchaseOrderDO.getOrderId(), purchaseOrderApproveCmd.getOrderShipList().stream().toList(), purchaseOrderApproveCmd); } @@ -856,7 +869,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { } updatedSupplier.setOrderId(orderId); - OrderSupplierDO orderSupplierDO = orderSupplierConvert.toOrderSupplierDO(updatedSupplier); + OrderSupplierDO orderSupplierDO = purchaseOrderConvert.toOrderSupplierDO(updatedSupplier); if (updatedSupplier.getSupplierId() != null && existingOrderSupplierMap.containsKey(updatedSupplier.getSupplierId())) { // 更新已存在的供应商 @@ -980,7 +993,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderMapper.updateById(purchaseOrderDO); saveOrderCostItem(orderId, purchaseOrderStep3Cmd.getOrderCostItemList().stream().toList()); - saveOrderCost(orderId, purchaseOrderStep3Cmd.getOrderCostList().stream().toList()); + saveOrderCost(purchaseOrderDO.getOrderId(), purchaseOrderStep3Cmd.getOrderCostList().stream().toList()); // 空箱费 if (purchaseOrderStep3Cmd.getOrderPackageList() != null) { @@ -1062,7 +1075,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { for (OrderCost updatedCost : orderCostList) { updatedCost.setOrderId(orderId); - OrderCostDO costDO = orderCostConvert.toOrderCostDO(updatedCost); + OrderCostDO costDO = purchaseOrderConvert.toOrderCostDO(updatedCost); if (existingCostMap.containsKey(updatedCost.getCostId())) { // 更新已存在的费用 diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderCostMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderCostMapper.java index d55f318..4a92f79 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderCostMapper.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderCostMapper.java @@ -1,13 +1,20 @@ package com.xunhong.erp.turbo.biz.infrastructure.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * @author shenyifei */ @Mapper public interface OrderCostMapper extends BaseMapper { + IPage selectPage(IPage page, @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper, @Param("query") OrderCostPageQry orderCostPageQry); + } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderRebateMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderRebateMapper.java index 1801393..e36272e 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderRebateMapper.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderRebateMapper.java @@ -1,13 +1,19 @@ package com.xunhong.erp.turbo.biz.infrastructure.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * @author shenyifei */ @Mapper public interface OrderRebateMapper extends BaseMapper { + IPage selectPage(IPage page, @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper, @Param("query") OrderRebatePageQry orderRebatePageQry); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderCostMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderCostMapper.xml index bde3cce..dc35c46 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderCostMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderCostMapper.xml @@ -14,11 +14,44 @@ + + + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderRebateMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderRebateMapper.xml index 02ead0a..1839c13 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderRebateMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderRebateMapper.xml @@ -13,11 +13,44 @@ + + + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderSupplierMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderSupplierMapper.xml index 615d7ce..a1b86df 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderSupplierMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderSupplierMapper.xml @@ -41,6 +41,8 @@ + + @@ -51,7 +53,8 @@ resultType="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO" resultMap="BaseResultMap"> SELECT - os.* + os.*, + po.state as po_state FROM order_supplier os LEFT JOIN order_vehicle ov ON os.order_id = ov.order_id AND ov.is_delete = 0 LEFT JOIN purchase_order po ON os.order_id = po.order_id AND po.is_delete = 0 @@ -63,10 +66,13 @@ AND po.created_by = #{query.createdBy} + + AND po.order_id = #{query.orderId} + AND po.state IN - - #{state} + + #{state.type} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderCostServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderCostServiceI.java new file mode 100644 index 0000000..601f03d --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderCostServiceI.java @@ -0,0 +1,16 @@ +package com.xunhong.erp.turbo.api.biz.api; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderCostVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; + +/** + * @author shenyifei + */ +public interface OrderCostServiceI { + PageDTO page(OrderCostPageQry orderCostPageQry); + + OrderCostVO create(OrderCostCreateCmd orderCostCreateCmd); +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderRebateServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderRebateServiceI.java new file mode 100644 index 0000000..e238de6 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderRebateServiceI.java @@ -0,0 +1,13 @@ +package com.xunhong.erp.turbo.api.biz.api; + +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderRebatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.OrderRebateVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; + +/** + * @author shenyifei + */ +public interface OrderRebateServiceI { + PageDTO page(OrderRebatePageQry orderRebatePageQry); +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderSupplierServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderSupplierServiceI.java index b7b4f35..1fff74f 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderSupplierServiceI.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/OrderSupplierServiceI.java @@ -1,5 +1,6 @@ package com.xunhong.erp.turbo.api.biz.api; +import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierBatchInvoiceUploadCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderSupplierPageQry; import com.xunhong.erp.turbo.api.biz.dto.vo.OrderSupplierVO; @@ -12,5 +13,12 @@ public interface OrderSupplierServiceI { PageDTO page(OrderSupplierPageQry orderSupplierPageQry); OrderSupplierVO update(OrderSupplierUpdateCmd orderSupplierUpdateCmd); + + /** + * 批量上传供应商发票 + * + * @param batchInvoiceUploadCmd 批量上传发票命令 + */ + void batchUploadInvoice(OrderSupplierBatchInvoiceUploadCmd batchInvoiceUploadCmd); } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/CostCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/CostCreateCmd.java index a20a8cd..5db84ad 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/CostCreateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/CostCreateCmd.java @@ -25,15 +25,15 @@ public class CostCreateCmd extends Command { private Long costId; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ - @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型", requiredMode = Schema.RequiredMode.REQUIRED) private CostTypeEnum type; /** - * 费用归属:1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ - @Schema(title = "费用归属:1_工头;2_产地;", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;", requiredMode = Schema.RequiredMode.REQUIRED) private CostBelongEnum belong; /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/DealerCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/DealerCreateCmd.java index 03b8c51..6f7f7cc 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/DealerCreateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/DealerCreateCmd.java @@ -118,5 +118,17 @@ public class DealerCreateCmd extends Command { @Schema(title = "是否可调整比例") private Boolean shareAdjusted; + /** + * 是否开启损耗 + */ + @Schema(title = "是否开启损耗") + private Boolean enableLoss; + + /** + * 损耗金额 + */ + @Schema(title = "损耗金额") + private BigDecimal lossAmount; + } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderCostCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderCostCreateCmd.java new file mode 100644 index 0000000..63c7552 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderCostCreateCmd.java @@ -0,0 +1,89 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "订单成本费用创建") +@EqualsAndHashCode(callSuper = true) +@JsonIgnoreProperties(ignoreUnknown = true) +public class OrderCostCreateCmd extends Command { + + /** + * 订单ID + */ + @Schema(title = "订单ID", type = "string") + private Long orderId; + + /** + * 费用Id + */ + @Schema(title = "费用Id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long costId; + + /** + * 成本项目名称 + */ + @Schema(title = "成本项目名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + + /** + * 单价 + */ + @Schema(title = "单价", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal price; + + /** + * 单位 + */ + @Schema(title = "单位", requiredMode = Schema.RequiredMode.REQUIRED) + private String unit; + + /** + * 数量 + */ + @Schema(title = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer count; + + /** + * 费用归属:0_无归属;1_工头;2_产地;3_司机; + */ + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;") + private CostBelongEnum belong; + + /** + * 负责人 + */ + @Schema(title = "负责人") + private String principal; + + /** + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 + */ + @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型", requiredMode = Schema.RequiredMode.REQUIRED) + private CostTypeEnum type; + + /** + * 关联项目id + */ + @Schema(title = "关联项目id") + private List costItemIds; + + /** + * 是否付款 + */ + @Schema(title = "是否付款") + private Boolean isPaid; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierBatchInvoiceUploadCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierBatchInvoiceUploadCmd.java new file mode 100644 index 0000000..03c2836 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierBatchInvoiceUploadCmd.java @@ -0,0 +1,39 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem; +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 claude + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "订单供应商批量上传发票命令") +public class OrderSupplierBatchInvoiceUploadCmd extends Command { + + /** + * 供应商ID列表 + */ + @Schema(description = "供应商ID列表", requiredMode = Schema.RequiredMode.REQUIRED) + private List orderSupplierIdList; + + /** + * 是否上传票证 + */ + @Schema(title = "是否上传票证") + private Boolean invoiceUpload; + + /** + * 发票照片 + */ + @Schema(title = "发票照片") + private List invoiceImg; + +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierUpdateCmd.java index f4e1a96..6372a28 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierUpdateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderSupplierUpdateCmd.java @@ -57,6 +57,12 @@ public class OrderSupplierUpdateCmd extends Command { @Schema(title = "定金金额") private BigDecimal depositAmount; + /** + * 是否付款 + */ + @Schema(title = "是否付款") + private Boolean isPaid; + /** * 装车模式:1_搭架子+网垫;2_纸箱+胶带+木隔板 */ diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCompany.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCompany.java index 18e93ed..765134d 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCompany.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCompany.java @@ -1,5 +1,6 @@ package com.xunhong.erp.turbo.api.biz.dto.common; +import com.fasterxml.jackson.annotation.JsonInclude; import com.xunhong.erp.turbo.base.dto.Command; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,6 +12,7 @@ import lombok.EqualsAndHashCode; @Data @Schema(title = "采购订单公司信息创建") @EqualsAndHashCode(callSuper = true) +@JsonInclude(JsonInclude.Include.NON_NULL) public class OrderCompany extends Command { /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCost.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCost.java index 8344054..878f8e7 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCost.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderCost.java @@ -63,9 +63,9 @@ public class OrderCost extends Command { private Integer count; /** - * 费用归属:1_工头;2_产地 + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ - @Schema(title = "费用归属:1_工头;2_产地") + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;") private CostBelongEnum belong; /** @@ -75,9 +75,9 @@ public class OrderCost extends Command { private String principal; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ - @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型", requiredMode = Schema.RequiredMode.REQUIRED) private CostTypeEnum type; /** @@ -92,5 +92,11 @@ public class OrderCost extends Command { */ @Schema(title = "是否选中", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean selected; + + /** + * 是否已付款 + */ + @Schema(title = "是否已付款") + private Boolean isPaid; } 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 69a54bc..1298f87 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 @@ -65,4 +65,10 @@ public class OrderRebate extends DTO { */ @Schema(title = "返点金额") private BigDecimal amount; + + /** + * 是否已付款 + */ + @Schema(title = "是否已付款") + private Boolean isPaid; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java index 6c07e1b..b1eb655 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java @@ -35,6 +35,18 @@ public class OrderShip extends Command { @Schema(title = "发货单编号", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) private String orderSn; + /** + * 经销商ID + */ + @Schema(title = "经销商ID", type = "string") + private Long dealerId; + + /** + * 经销商名称 + */ + @Schema(title = "经销商名称") + private String dealerName; + /** * 仓库ID */ diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderSupplier.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderSupplier.java index 3eff4cf..3f1b0cf 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderSupplier.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderSupplier.java @@ -2,12 +2,14 @@ package com.xunhong.erp.turbo.api.biz.dto.common; import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.base.dto.Command; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.List; /** @@ -210,6 +212,12 @@ public class OrderSupplier extends Command { @Schema(title = "定金金额") private BigDecimal depositAmount; + /** + * 是否付款 + */ + @Schema(title = "是否付款") + private Boolean isPaid; + /** * 采购订单包装箱信息 */ @@ -222,9 +230,27 @@ public class OrderSupplier extends Command { @Schema(title = "采购订单车辆信息") private OrderVehicle orderVehicle; + /** + * 采购订单公司信息 + */ + @Schema(title = "采购订单公司信息") + private OrderCompany orderCompany; + /** * 是否选中 */ @Schema(title = "是否选中", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean selected; + + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + @Schema(title = "采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭;") + private PurchaseOrderStateEnum poState; + + /** + * 创建时间 + */ + @Schema(title = "创建时间") + private LocalDateTime createdAt; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderVehicle.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderVehicle.java index bea698f..18f9d96 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderVehicle.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderVehicle.java @@ -1,6 +1,7 @@ package com.xunhong.erp.turbo.api.biz.dto.common; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderVehiclePriceTypeEnum; import com.xunhong.erp.turbo.base.dto.Command; import io.swagger.v3.oas.annotations.media.Schema; @@ -17,6 +18,7 @@ import java.time.LocalDate; @Data @Schema(title = "采购订单车辆运输信息创建") @EqualsAndHashCode(callSuper = true) +@JsonInclude(JsonInclude.Include.NON_NULL) public class OrderVehicle extends Command { /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostBelongEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostBelongEnum.java index 87007dc..1381d19 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostBelongEnum.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostBelongEnum.java @@ -8,11 +8,12 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum CostBelongEnum { /** - * 费用归属:0_无归属;1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ NONE_TYPE(0, "无归属"), WORKER_TYPE(1, "工头"), PRODUCTION_TYPE(2, "产地"), + DRIVER_TYPE(3, "司机"), ; @EnumValue diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostTypeEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostTypeEnum.java index 6260ffb..bc38f8c 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostTypeEnum.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/CostTypeEnum.java @@ -8,12 +8,13 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum CostTypeEnum { /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型;5_物流类型 */ MATERIAL_TYPE(1, "辅料类型"), ARTIFICIAL_TYPE(2, "人工类型"), PRODUCTION_TYPE(3, "产地类型"), OTHER_TYPE(4, "其他类型"), + LOGISTICS_TYPE(5, "物流类型"), ; @EnumValue diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostListQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostListQry.java index f336243..7b5b191 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostListQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostListQry.java @@ -19,15 +19,15 @@ public class CostListQry extends Query { private Long costId; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ - @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型") + @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型") private CostTypeEnum type; /** - * 费用归属:1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ - @Schema(title = "费用归属:1_工头;2_产地;") + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;") private CostBelongEnum belong; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostPageQry.java index 6e0f3f8..ddf6835 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostPageQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/CostPageQry.java @@ -19,15 +19,15 @@ public class CostPageQry extends PageQuery { private Long costId; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ - @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型") + @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型") private CostTypeEnum type; /** - * 费用归属:1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ - @Schema(title = "费用归属:1_工头;2_产地;") + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;") private CostBelongEnum belong; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderCostPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderCostPageQry.java new file mode 100644 index 0000000..b521b00 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderCostPageQry.java @@ -0,0 +1,38 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import com.xunhong.erp.turbo.base.dto.PageQuery; +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 OrderCostPageQry extends PageQuery { + + @Schema(title = "订单ID", type = "string") + private Long orderId; + + @Schema(title = "订单ID", type = "string") + private Long costId; + + @Schema(title = "供应商id", type = "string") + private Long supplierId; + + @Schema(title = "订单状态") + private List poStates; + + @Schema(title = "所属方") + private List belongs; + + @Schema(title = "是否支付", type = "boolean") + private Boolean isPaid; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderRebatePageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderRebatePageQry.java new file mode 100644 index 0000000..268fc74 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderRebatePageQry.java @@ -0,0 +1,28 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import com.xunhong.erp.turbo.base.dto.PageQuery; +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 OrderRebatePageQry extends PageQuery { + + @Schema(title = "订单ID", type = "string") + private Long orderId; + + @Schema(title = "订单状态") + private List poStates; + + @Schema(title = "是否支付", type = "boolean") + private Boolean isPaid; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderSupplierPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderSupplierPageQry.java index eaa4206..ec29bef 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderSupplierPageQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderSupplierPageQry.java @@ -36,5 +36,8 @@ public class OrderSupplierPageQry extends PageQuery { @Schema(title = "订单状态") private List poStates; + + @Schema(title = "是否支付", type = "boolean") + private Boolean isPaid; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderShowQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderShowQry.java index 004f7cd..7d94e4e 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderShowQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/PurchaseOrderShowQry.java @@ -15,5 +15,8 @@ public class PurchaseOrderShowQry extends Query { @Schema(title = "采购订单ID", type = "string") private Long orderId; + + @Schema(title = "采购订单发货ID", type = "string") + private Long orderShipId; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/CostVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/CostVO.java index d68a53d..67d1c91 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/CostVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/CostVO.java @@ -26,15 +26,15 @@ public class CostVO extends DTO { private Long costId; /** - * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型 + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 */ @Schema(title = "费用类型", requiredMode = Schema.RequiredMode.REQUIRED) private CostTypeEnum type; /** - * 费用归属:1_工头;2_产地; + * 费用归属:0_无归属;1_工头;2_产地;3_司机; */ - @Schema(title = "费用归属:1_工头;2_产地;", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;", requiredMode = Schema.RequiredMode.REQUIRED) private CostBelongEnum belong; /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/DealerVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/DealerVO.java index 687c202..171e9bd 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/DealerVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/DealerVO.java @@ -137,5 +137,17 @@ public class DealerVO extends DTO { */ @Schema(title = "是否可调整比例") private Boolean shareAdjusted; + + /** + * 是否开启损耗 + */ + @Schema(title = "是否开启损耗") + private Boolean enableLoss; + + /** + * 损耗金额 + */ + @Schema(title = "损耗金额") + private BigDecimal lossAmount; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderCostVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderCostVO.java new file mode 100644 index 0000000..98068a7 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderCostVO.java @@ -0,0 +1,132 @@ +package com.xunhong.erp.turbo.api.biz.dto.vo; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; +import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "采购订单成本项目信息") +@EqualsAndHashCode(callSuper = true) +@JsonIgnoreProperties(ignoreUnknown = true) +public class OrderCostVO extends Command { + + /** + * 记录ID + */ + @Schema(title = "记录ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long orderCostId; + + /** + * 订单ID + */ + @Schema(title = "订单ID", type = "string") + private Long orderId; + + /** + * 费用Id + */ + @Schema(title = "费用Id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long costId; + + /** + * 成本项目名称 + */ + @Schema(title = "成本项目名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + + /** + * 单价 + */ + @Schema(title = "单价", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal price; + + /** + * 单位 + */ + @Schema(title = "单位", requiredMode = Schema.RequiredMode.REQUIRED) + private String unit; + + /** + * 数量 + */ + @Schema(title = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer count; + + /** + * 费用归属:0_无归属;1_工头;2_产地;3_司机; + */ + @Schema(title = "费用归属:0_无归属;1_工头;2_产地;3_司机;") + private CostBelongEnum belong; + + /** + * 负责人 + */ + @Schema(title = "负责人") + private String principal; + + /** + * 费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型 + */ + @Schema(title = "费用类型:1_辅料类型;2_人工类型;3_产地类型;4_其他类型;5_物流类型", requiredMode = Schema.RequiredMode.REQUIRED) + private CostTypeEnum type; + + /** + * 关联项目id + */ + @Schema(title = "关联项目id") + private List costItemIds; + + /** + * 创建时间 + */ + @Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createdAt; + + /** + * 车辆信息 + */ + @Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderVehicle orderVehicle; + + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + @Schema(title = "采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭;") + private PurchaseOrderStateEnum poState; + + /** + * 公司信息 + */ + @Schema(title = "公司信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderCompany orderCompany; + + /** + * 采购订单信息 + */ + @Schema(title = "采购订单信息", requiredMode = Schema.RequiredMode.REQUIRED) + private PurchaseOrderVO purchaseOrderVO; + + + /** + * 是否付款 + */ + @Schema(title = "是否付款") + private Boolean isPaid; + + +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderRebateVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderRebateVO.java new file mode 100644 index 0000000..8259af6 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderRebateVO.java @@ -0,0 +1,108 @@ +package com.xunhong.erp.turbo.api.biz.dto.vo; + +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; +import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@EqualsAndHashCode(callSuper = true) +public class OrderRebateVO extends Command { + + /** + * 记录ID + */ + @Schema(title = "记录ID", type = "string") + private Long orderRebateId; + + /** + * 订单ID + */ + @Schema(title = "订单ID", type = "string") + private Long orderId; + + /** + * 客户ID + */ + @Schema(title = "客户ID", type = "string") + private Long customerId; + + /** + * 经销商ID + */ + @Schema(title = "经销商ID", type = "string") + private Long dealerId; + + /** + * 客户名称 + */ + @Schema(title = "客户名称") + private String name; + + /** + * 返点计算方式:1_按净重计算;2_固定金额; + */ + @Schema(title = "返点计算方式:1_按净重计算;2_固定金额;") + private OrderRebateCalcMethodEnum calcMethod; + + /** + * 返点净重 + */ + @Schema(title = "返点净重") + private BigDecimal netWeight; + + /** + * 返点单价 + */ + @Schema(title = "返点单价") + private BigDecimal unitPrice; + + /** + * 返点金额 + */ + @Schema(title = "返点金额") + private BigDecimal amount; + /** + * 创建时间 + */ + @Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createdAt; + + /** + * 车辆信息 + */ + @Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderVehicle orderVehicle; + + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + @Schema(title = "采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭;") + private PurchaseOrderStateEnum poState; + + /** + * 公司信息 + */ + @Schema(title = "公司信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderCompany orderCompany; + + /** + * 采购订单信息 + */ + @Schema(title = "采购订单信息", requiredMode = Schema.RequiredMode.REQUIRED) + private PurchaseOrderVO purchaseOrderVO; + + + /** + * 是否付款 + */ + @Schema(title = "是否付款") + private Boolean isPaid; +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java index 7b9c695..d7f2a07 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java @@ -4,6 +4,7 @@ import com.alibaba.cola.dto.DTO; import com.fasterxml.jackson.annotation.JsonFormat; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost; import com.xunhong.erp.turbo.api.biz.dto.common.OrderShipItem; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderShipStateEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -33,6 +34,18 @@ public class OrderShipVO extends DTO { */ @Schema(title = "采购单ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) private Long orderId; + + /** + * 经销商ID + */ + @Schema(title = "经销商ID", type = "string") + private Long dealerId; + + /** + * 经销商名称 + */ + @Schema(title = "经销商名称") + private String dealerName; /** * 发货单编号 @@ -153,4 +166,10 @@ public class OrderShipVO extends DTO { @Schema(title = "发货单成本项目信息") private List orderCostList; + /** + * 采购订单车辆运输信息 + */ + @Schema(title = "采购订单车辆运输信息") + private OrderVehicle orderVehicle; + } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderSupplierVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderSupplierVO.java index 4179e90..c612492 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderSupplierVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderSupplierVO.java @@ -1,9 +1,12 @@ package com.xunhong.erp.turbo.api.biz.dto.vo; import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle; import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem; import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -35,176 +38,199 @@ public class OrderSupplierVO extends DTO { /** * 供应商ID */ - @Schema(title = "供应商ID", type = "string") + @Schema(title = "供应商ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) private Long supplierId; /** * 供应商姓名 */ - @Schema(title = "供应商姓名") + @Schema(title = "供应商姓名", requiredMode = Schema.RequiredMode.REQUIRED) private String name; /** * 身份证号 */ - @Schema(title = "身份证号") + @Schema(title = "身份证号", requiredMode = Schema.RequiredMode.REQUIRED) private String idCard; /** * 银行卡号 */ - @Schema(title = "银行卡号") + @Schema(title = "银行卡号", requiredMode = Schema.RequiredMode.REQUIRED) private String bankCard; /** * 手机号 */ - @Schema(title = "手机号") + @Schema(title = "手机号", requiredMode = Schema.RequiredMode.REQUIRED) private String phone; /** * 微信二维码 */ - @Schema(title = "微信二维码") + @Schema(title = "微信二维码", requiredMode = Schema.RequiredMode.REQUIRED) private String wechatQr; /** * 是否最后一家 */ - @Schema(title = "是否最后一家") + @Schema(title = "是否最后一家", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean isLast; /** * 空磅是否包含纸箱 */ - @Schema(title = "空磅是否包含纸箱") + @Schema(title = "空磅是否包含纸箱", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean isPaper; /** * 产品id */ - @Schema(title = "产品id", type = "string") + @Schema(title = "产品id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) private Long productId; /** * 产品名称 */ - @Schema(title = "产品名称") + @Schema(title = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED) private String productName; /** * 装车模式:1_搭架子+网垫;2_纸箱+胶带+木隔板 */ - @Schema(title = "装车模式", description = "1_搭架子+网垫;2_纸箱+胶带+木隔板") + @Schema(title = "装车模式:1_搭架子+网垫;2_纸箱+胶带+木隔板", requiredMode = Schema.RequiredMode.REQUIRED) private LoadingModeEnum loadingMode; /** * 空车重量(kg) */ - @Schema(title = "空车重量(kg)") + @Schema(title = "空车重量(kg)", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal emptyWeight; /** * 总重量(kg) */ - @Schema(title = "总重量(kg)") + @Schema(title = "总重量(kg)", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal totalWeight; /** * 毛重(斤) */ - @Schema(title = "毛重(斤)") + @Schema(title = "毛重(斤)", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal grossWeight; /** * 净重(斤) */ - @Schema(title = "净重(斤)") + @Schema(title = "净重(斤)", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal netWeight; /** * 采购单价(元/斤) */ - @Schema(title = "采购单价(元/斤)") + @Schema(title = "采购单价(元/斤)", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal purchasePrice; /** * 销售单价(元/斤) */ - @Schema(title = "销售单价(元/斤)") + @Schema(title = "销售单价(元/斤)", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal salePrice; /** * 报价方式:1_按毛重报价;2_按净重报价; */ - @Schema(title = "报价方式:1_按毛重报价;2_按净重报价;") - private Boolean pricingMethod; + @Schema(title = "报价方式:1_按毛重报价;2_按净重报价;", requiredMode = Schema.RequiredMode.REQUIRED) + private PurchaseOrderPricingMethodEnum pricingMethod; /** * 发票金额 */ - @Schema(title = "发票金额") + @Schema(title = "发票金额", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal invoiceAmount; /** * 是否已付定金 */ - @Schema(title = "是否已付定金") + @Schema(title = "是否已付定金", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean isDepositPaid; /** * 定金金额 */ - @Schema(title = "定金金额") + @Schema(title = "定金金额", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal depositAmount; + /** + * 是否付款 + */ + @Schema(title = "是否付款", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isPaid; + /** * 空车照片 */ - @Schema(title = "空车照片") + @Schema(title = "空车照片", requiredMode = Schema.RequiredMode.REQUIRED) private String emptyWeightImg; /** * 满载照片 */ - @Schema(title = "满载照片") + @Schema(title = "满载照片", requiredMode = Schema.RequiredMode.REQUIRED) private String totalWeightImg; /** * 是否上传票证 */ - @Schema(title = "是否上传票证") + @Schema(title = "是否上传票证", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean invoiceUpload; /** * 发票照片 */ - @Schema(title = "发票照片") + @Schema(title = "发票照片", requiredMode = Schema.RequiredMode.REQUIRED) private List invoiceImg; /** * 是否上传合同 */ - @Schema(title = "是否上传合同") + @Schema(title = "是否上传合同", requiredMode = Schema.RequiredMode.REQUIRED) private Boolean contractUpload; /** * 合同照片 */ - @Schema(title = "合同照片") + @Schema(title = "合同照片", requiredMode = Schema.RequiredMode.REQUIRED) private List contractImg; /** * 创建时间 */ - @Schema(title = "创建时间") + @Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createdAt; /** * 车辆信息 */ - @Schema(title = "车辆信息") + @Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED) private OrderVehicle orderVehicle; + /** + * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; + */ + @Schema(title = "采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭;") + private PurchaseOrderStateEnum poState; + + /** + * 公司信息 + */ + @Schema(title = "公司信息", requiredMode = Schema.RequiredMode.REQUIRED) + private OrderCompany orderCompany; + + /** + * 采购订单信息 + */ + @Schema(title = "采购订单信息", requiredMode = Schema.RequiredMode.REQUIRED) + private PurchaseOrderVO purchaseOrderVO; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/PurchaseOrderVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/PurchaseOrderVO.java index 2417f7c..196de92 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/PurchaseOrderVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/PurchaseOrderVO.java @@ -1,6 +1,7 @@ package com.xunhong.erp.turbo.api.biz.dto.vo; import com.alibaba.cola.dto.DTO; +import com.fasterxml.jackson.annotation.JsonInclude; import com.xunhong.erp.turbo.api.biz.dto.common.*; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderAuditStateEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; @@ -18,6 +19,7 @@ import java.util.List; @Data @Schema(title = "采购订单") @EqualsAndHashCode(callSuper = true) +@JsonInclude(JsonInclude.Include.NON_NULL) public class PurchaseOrderVO extends DTO { /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/cmd/AdminCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/cmd/AdminCreateCmd.java index e8166d3..740c172 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/cmd/AdminCreateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/cmd/AdminCreateCmd.java @@ -19,6 +19,6 @@ public class AdminCreateCmd extends Command { @Schema(title = "管理员名称") private String name; - @Schema(title = "管理员类型", type = "string") + @Schema(title = "管理员类型") private AdminTypeEnum type; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/qry/AdminShowQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/qry/AdminShowQry.java index 933bb55..e60514d 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/qry/AdminShowQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/qry/AdminShowQry.java @@ -1,5 +1,6 @@ package com.xunhong.erp.turbo.api.user.dto.qry; +import com.xunhong.erp.turbo.api.user.dto.enums.AdminTypeEnum; import com.xunhong.erp.turbo.base.dto.Query; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -15,6 +16,9 @@ public class AdminShowQry extends Query { @Schema(title = "用户ID", type = "string") private Long userId; - @Schema(title = "管理员类型", type = "string") - private Integer type; + @Schema(title = "管理员类型") + private AdminTypeEnum type; + + @Schema(title = "平台ID", type = "string") + private Long platformId; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/vo/AdminVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/vo/AdminVO.java index fde724a..7f9ea7a 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/vo/AdminVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/user/dto/vo/AdminVO.java @@ -29,6 +29,6 @@ public class AdminVO extends DTO { @Schema(title = "用户Id", requiredMode = Schema.RequiredMode.REQUIRED, type = "string") private Long userId; - @Schema(title = "管理员类型", type = "string") + @Schema(title = "管理员类型") private AdminTypeEnum type; } diff --git a/erp-turbo-common/erp-turbo-web/src/main/java/com/xunhong/erp/turbo/web/aspect/MerchantIdAspect.java b/erp-turbo-common/erp-turbo-web/src/main/java/com/xunhong/erp/turbo/web/aspect/MerchantIdAspect.java index e8d92dc..e4f3738 100644 --- a/erp-turbo-common/erp-turbo-web/src/main/java/com/xunhong/erp/turbo/web/aspect/MerchantIdAspect.java +++ b/erp-turbo-common/erp-turbo-web/src/main/java/com/xunhong/erp/turbo/web/aspect/MerchantIdAspect.java @@ -61,8 +61,11 @@ public class MerchantIdAspect { // 获取方法的第一个参数对象 if (args.length > 0 && args[0] instanceof DTO dto) { - setParam(dto, "CreatedBy", UserSession.USER_THREAD_LOCAL.get().getCreatedBy()); - setParam(dto, "CreatedByName", UserSession.USER_THREAD_LOCAL.get().getCreatedByName()); + String roleSlug = UserSession.USER_THREAD_LOCAL.get().getRoleSlug(); + if (!"operation".equals(roleSlug)) { + setParam(dto, "CreatedBy", UserSession.USER_THREAD_LOCAL.get().getCreatedBy()); + setParam(dto, "CreatedByName", UserSession.USER_THREAD_LOCAL.get().getCreatedByName()); + } } // 继续执行原方法