From 20ca821bb2d1031337270e554c613eb7ba69626f Mon Sep 17 00:00:00 2001 From: shenyifei Date: Tue, 23 Dec 2025 10:06:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(operation):=20=E6=B7=BB=E5=8A=A0=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 AuditController 提供审核详情、列表和更新接口 - 新增 AuditServiceI 接口定义审核服务契约 - 重构审核相关枚举名称,将 OrderAuditStateEnum 重命名为 AuditStateEnum - 新增 AuditSubjectTypeEnum 枚举定义审核对象类型 - 重构 OrderAuditTypeEnum 为 AuditTypeEnum 审核类型枚举 - 新增 AuditPageQry、AuditShowQry 查询对象和 AuditVO 值对象 - 优化 ExpenseCost 中的 expenseAmount 字段类型定义 - 为 ExpenseProvision 添加备注字段 - 新增 AuditAssembler 实现审核数据转换 - 实现 AuditUpdateCmdExe、AuditPageQryExe、AuditShowQryExe 执行器 - 新增 AuditServiceImpl 实现审核服务 - 创建 Audit 实体类和 AuditGateway 数据网关接口 - 新增 AuditConvert 数据转换器和 AuditDO 数据对象 - 实现 AuditGatewayImpl 数据访问实现类 - 优化各 GatewayImpl 中的查询逻辑,使用 Set 替代 List 避免重复数据 - 更新 PurchaseOrderGatewayImpl 中的审核相关处理逻辑 --- .../admin/controller/AuditController.java | 52 ++++++ .../biz/app/assembler/AuditAssembler.java | 17 ++ .../app/executor/cmd/AuditUpdateCmdExe.java | 27 ++++ .../app/executor/query/AuditPageQryExe.java | 29 ++++ .../app/executor/query/AuditShowQryExe.java | 29 ++++ .../biz/app/service/AuditServiceImpl.java | 45 ++++++ .../erp/turbo/biz/domain/entity/Audit.java | 87 ++++++++++ .../biz/domain/gateway/AuditGateway.java | 20 +++ .../infrastructure/convert/AuditConvert.java | 27 ++++ .../{OrderAuditDO.java => AuditDO.java} | 26 ++- .../entity/ExpenseProvisionDO.java | 6 + .../gateway/AuditGatewayImpl.java | 90 +++++++++++ .../gateway/OrderCostGatewayImpl.java | 3 +- .../gateway/OrderRebateGatewayImpl.java | 3 +- .../gateway/OrderSupplierGatewayImpl.java | 3 +- .../gateway/PurchaseOrderGatewayImpl.java | 152 +++++++++--------- ...OrderAuditMapper.java => AuditMapper.java} | 4 +- .../mapper/PurchaseOrderMapper.java | 3 +- .../{OrderAuditMapper.xml => AuditMapper.xml} | 7 +- .../resources/mapper/PurchaseOrderMapper.xml | 2 +- .../erp/turbo/api/biz/api/AuditServiceI.java | 19 +++ .../turbo/api/biz/dto/cmd/AuditUpdateCmd.java | 93 +++++++++++ .../turbo/api/biz/dto/common/ExpenseCost.java | 2 +- .../api/biz/dto/common/ExpenseProvision.java | 6 + ...uditStateEnum.java => AuditStateEnum.java} | 2 +- .../biz/dto/enums/AuditSubjectTypeEnum.java | 20 +++ ...rAuditTypeEnum.java => AuditTypeEnum.java} | 2 +- .../turbo/api/biz/dto/qry/AuditPageQry.java | 31 ++++ .../turbo/api/biz/dto/qry/AuditShowQry.java | 19 +++ .../erp/turbo/api/biz/dto/vo/AuditVO.java | 100 ++++++++++++ .../turbo/api/biz/dto/vo/PurchaseOrderVO.java | 6 +- .../turbo/api/biz/exception/BizErrorCode.java | 4 +- 32 files changed, 834 insertions(+), 102 deletions(-) create mode 100644 erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/AuditController.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/AuditAssembler.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/AuditUpdateCmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditPageQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditShowQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/AuditServiceImpl.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Audit.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/AuditGateway.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/AuditConvert.java rename erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/{OrderAuditDO.java => AuditDO.java} (71%) create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/AuditGatewayImpl.java rename erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/{OrderAuditMapper.java => AuditMapper.java} (59%) rename erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/{OrderAuditMapper.xml => AuditMapper.xml} (86%) create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/AuditServiceI.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/AuditUpdateCmd.java rename erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/{OrderAuditStateEnum.java => AuditStateEnum.java} (94%) create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditSubjectTypeEnum.java rename erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/{OrderAuditTypeEnum.java => AuditTypeEnum.java} (92%) create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditPageQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditShowQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/AuditVO.java diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/AuditController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/AuditController.java new file mode 100644 index 0000000..04b465a --- /dev/null +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/AuditController.java @@ -0,0 +1,52 @@ +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.AuditServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.AuditUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditPageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +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 = "Audit", description = "审核管理") +@RestController("operationAuditController") +@RequestMapping(value = "/operation") +@RequiredArgsConstructor +public class AuditController { + + @DubboReference(version = "1.0.0") + private final AuditServiceI auditService; + + @SaCheckLogin + @GetMapping("showAudit") + @Operation(summary = "审核详情", method = "GET") + public SingleResponse showAudit(@ModelAttribute @Validated AuditShowQry auditShowQry) { + return SingleResponse.of(auditService.show(auditShowQry)); + } + + @SaCheckLogin + @GetMapping("pageAudit") + @Operation(summary = "审核列表", method = "GET") + public PageResponse pageAudit(@ModelAttribute @Validated AuditPageQry auditPageQry) { + PageDTO page = auditService.page(auditPageQry); + return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); + } + + @SaCheckLogin + @RequestMapping(value = "updateAudit", method = {RequestMethod.PATCH, RequestMethod.PUT}) + @Operation(summary = "审核更新", method = "PATCH") + public SingleResponse updateAudit(@RequestBody @Validated AuditUpdateCmd auditUpdateCmd) { + return SingleResponse.of(auditService.update(auditUpdateCmd)); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/AuditAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/AuditAssembler.java new file mode 100644 index 0000000..05bad72 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/AuditAssembler.java @@ -0,0 +1,17 @@ +package com.xunhong.erp.turbo.biz.app.assembler; + +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; + +/** + * @author shenyifei + */ +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = {PurchaseOrderAssembler.class}) +public interface AuditAssembler { + + @Mapping(target = "purchaseOrderVO", source = "purchaseOrder") + AuditVO toAuditVO(Audit audit); +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/AuditUpdateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/AuditUpdateCmdExe.java new file mode 100644 index 0000000..c8c608f --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/AuditUpdateCmdExe.java @@ -0,0 +1,27 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.AuditUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.biz.app.assembler.AuditAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; +import com.xunhong.erp.turbo.biz.domain.gateway.AuditGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AuditUpdateCmdExe { + + private final AuditAssembler auditAssembler; + private final AuditGateway auditGateway; + + public AuditVO execute(AuditUpdateCmd auditUpdateCmd) { + Audit audit = auditGateway.update(auditUpdateCmd); + return auditAssembler.toAuditVO(audit); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditPageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditPageQryExe.java new file mode 100644 index 0000000..079a7d1 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditPageQryExe.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.AuditPageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.biz.app.assembler.AuditAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; +import com.xunhong.erp.turbo.biz.domain.gateway.AuditGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AuditPageQryExe { + + private final AuditGateway auditGateway; + private final AuditAssembler auditAssembler; + + public IPage execute(AuditPageQry auditPageQry) { + IPage page = auditGateway.page(auditPageQry); + return page.convert(auditAssembler::toAuditVO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditShowQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditShowQryExe.java new file mode 100644 index 0000000..e1e9157 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/AuditShowQryExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.query; + +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.biz.app.assembler.AuditAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; +import com.xunhong.erp.turbo.biz.domain.gateway.AuditGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AuditShowQryExe { + + private final AuditAssembler auditAssembler; + private final AuditGateway auditGateway; + + public AuditVO execute(AuditShowQry auditShowQry) { + Audit audit = auditGateway.show(auditShowQry); + + return auditAssembler.toAuditVO(audit); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/AuditServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/AuditServiceImpl.java new file mode 100644 index 0000000..94901e1 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/AuditServiceImpl.java @@ -0,0 +1,45 @@ +package com.xunhong.erp.turbo.biz.app.service; + +import com.xunhong.erp.turbo.api.biz.api.AuditServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.AuditUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditPageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.biz.app.executor.cmd.AuditUpdateCmdExe; +import com.xunhong.erp.turbo.biz.app.executor.query.AuditPageQryExe; +import com.xunhong.erp.turbo.biz.app.executor.query.AuditShowQryExe; +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 = AuditServiceI.class, version = "1.0.0") +@RequiredArgsConstructor +public class AuditServiceImpl implements AuditServiceI { + + private final AuditUpdateCmdExe auditUpdateCmdExe; + private final AuditPageQryExe auditPageQryExe; + private final AuditShowQryExe auditShowQryExe; + + @Override + public PageDTO page(AuditPageQry auditPageQry) { + return PageDTO.of(auditPageQryExe.execute(auditPageQry)); + } + + @Override + public AuditVO update(AuditUpdateCmd auditUpdateCmd) { + return auditUpdateCmdExe.execute(auditUpdateCmd); + } + + @Override + public AuditVO show(AuditShowQry auditShowQry) { + return auditShowQryExe.execute(auditShowQry); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Audit.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Audit.java new file mode 100644 index 0000000..2a72102 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/Audit.java @@ -0,0 +1,87 @@ +package com.xunhong.erp.turbo.biz.domain.entity; + +import com.alibaba.cola.domain.Entity; +import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditStateEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditSubjectTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditTypeEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * @author shenyifei + */ +@Data +@Entity +@EqualsAndHashCode(callSuper = true) +public class Audit extends DTO { + + /** + * 审核Id + */ + private Long auditId; + + /** + * 资源Id + */ + private Long subjectId; + + /** + * 资源类型 + */ + private AuditSubjectTypeEnum subjectType; + + /** + * 审核状态: 1_待审核;2_审核中;3_审核通过;4_审核驳回;5_审核撤回 + */ + private AuditStateEnum state; + + /** + * 审核类型:1_审核员审核;2_老板审核 + */ + private AuditTypeEnum type; + + /** + * 驳回原因 + */ + private String auditReason; + + /** + * 审核时间 + */ + private LocalDateTime auditAt; + + /** + * 审核人ID + */ + private Long auditBy; + + /** + * 审核人名称 + */ + private String auditByName; + + /** + * 创建人ID + */ + private Long createdBy; + + /** + * 创建人姓名 + */ + private String createdByName; + + /** + * 创建时间 + */ + private LocalDateTime createdAt; + + /** + * 采购订单 + */ + private PurchaseOrder purchaseOrder; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/AuditGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/AuditGateway.java new file mode 100644 index 0000000..f060a2d --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/AuditGateway.java @@ -0,0 +1,20 @@ +package com.xunhong.erp.turbo.biz.domain.gateway; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.cmd.AuditUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditPageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditShowQry; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; + +/** + * @author shenyifei + */ +public interface AuditGateway { + + IPage page(AuditPageQry auditPageQry); + + Audit update(AuditUpdateCmd auditUpdateCmd); + + Audit show(AuditShowQry auditShowQry); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/AuditConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/AuditConvert.java new file mode 100644 index 0000000..03d90e1 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/AuditConvert.java @@ -0,0 +1,27 @@ +package com.xunhong.erp.turbo.biz.infrastructure.convert; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.AuditUpdateCmd; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; +import com.xunhong.erp.turbo.biz.infrastructure.entity.AuditDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.NullValueCheckStrategy; + +/** + * @author shenyifei + */ +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = {PurchaseOrderConvert.class}) +public interface AuditConvert { + + @Mapping(target = "purchaseOrder", source = "purchaseOrderDO") + Audit toAudit(AuditDO auditDO); + + @Mapping(target = "purchaseOrderDO", ignore = true) + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + void toAuditDO(@MappingTarget AuditDO auditDO, AuditUpdateCmd auditUpdateCmd); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderAuditDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/AuditDO.java similarity index 71% rename from erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderAuditDO.java rename to erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/AuditDO.java index b90088a..87bdeba 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderAuditDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/AuditDO.java @@ -4,8 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; 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.OrderAuditStateEnum; -import com.xunhong.erp.turbo.api.biz.dto.enums.OrderAuditTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditStateEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditSubjectTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditTypeEnum; import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO; import lombok.Data; import lombok.EqualsAndHashCode; @@ -18,7 +19,7 @@ import java.time.LocalDateTime; @Data @TableName(value = "order_audit") @EqualsAndHashCode(callSuper = true) -public class OrderAuditDO extends BaseDO { +public class AuditDO extends BaseDO { /** * 审核Id @@ -27,22 +28,28 @@ public class OrderAuditDO extends BaseDO { private Long auditId; /** - * 订单Id + * 审核对象Id */ - @TableField(value = "order_id") - private Long orderId; + @TableField(value = "subject_id") + private Long subjectId; + + /** + * 审核对象类型:1_采购单; + */ + @TableField(value = "subject_type") + private AuditSubjectTypeEnum subjectType; /** * 审核状态: 1_待审核;2_审核中;3_审核通过:4_审核驳回;5_审核取消; */ @TableField(value = "state") - private OrderAuditStateEnum state; + private AuditStateEnum state; /** * 审核类型:1_报价审核员审核;2_老板审核 */ @TableField(value = "type") - private OrderAuditTypeEnum type; + private AuditTypeEnum type; /** * 驳回原因 @@ -80,5 +87,8 @@ public class OrderAuditDO extends BaseDO { @TableField(value = "created_by_name") private String createdByName; + @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/ExpenseProvisionDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ExpenseProvisionDO.java index bbe1f5c..0c4b996 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ExpenseProvisionDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ExpenseProvisionDO.java @@ -54,5 +54,11 @@ public class ExpenseProvisionDO extends BaseDO { @TableField(value = "order_id") private Long orderId; + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/AuditGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/AuditGatewayImpl.java new file mode 100644 index 0000000..3f5698c --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/AuditGatewayImpl.java @@ -0,0 +1,90 @@ +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.AuditUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditSubjectTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditPageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditShowQry; +import com.xunhong.erp.turbo.biz.domain.entity.Audit; +import com.xunhong.erp.turbo.biz.domain.gateway.AuditGateway; +import com.xunhong.erp.turbo.biz.infrastructure.convert.AuditConvert; +import com.xunhong.erp.turbo.biz.infrastructure.entity.AuditDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.AuditMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author shenyifei + */ +@Repository +@RequiredArgsConstructor +public class AuditGatewayImpl implements AuditGateway { + private final AuditMapper auditMapper; + private final AuditConvert auditConvert; + + private final PurchaseOrderMapper purchaseOrderMapper; + + @Override + public IPage page(AuditPageQry auditPageQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(AuditDO.class); + + queryWrapper.eq(Objects.nonNull(auditPageQry.getAuditId()), AuditDO::getAuditId, auditPageQry.getAuditId()); + queryWrapper.eq(Objects.nonNull(auditPageQry.getType()), AuditDO::getType, auditPageQry.getType()); + queryWrapper.eq(Objects.nonNull(auditPageQry.getState()), AuditDO::getState, auditPageQry.getState()); + queryWrapper.eq(Objects.nonNull(auditPageQry.getSubjectType()), AuditDO::getSubjectType, auditPageQry.getSubjectType()); + + queryWrapper.orderByDesc(AuditDO::getCreatedAt); + + IPage page = new Page<>(auditPageQry.getPageIndex(), auditPageQry.getPageSize()); + page = auditMapper.selectPage(page, queryWrapper); + Set orderIdList = page.getRecords().stream().filter(auditDO -> auditDO.getSubjectType().equals(AuditSubjectTypeEnum.PURCHASE_ORDER)).map(AuditDO::getSubjectId).collect(Collectors.toSet()); + if (CollUtil.isNotEmpty(orderIdList)) { + List purchaseOrderDOList = purchaseOrderMapper.selectByOrderIdList(orderIdList); + Map purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); + page.getRecords().forEach(auditDO -> { + PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(auditDO.getSubjectId()); + auditDO.setPurchaseOrderDO(purchaseOrderDO); + }); + } + + return page.convert(auditConvert::toAudit); + } + + @Override + public Audit update(AuditUpdateCmd auditUpdateCmd) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(AuditDO.class); + queryWrapper.eq(AuditDO::getAuditId, auditUpdateCmd.getAuditId()); + queryWrapper.last("limit 1"); + + AuditDO auditDO = auditMapper.selectOne(queryWrapper); + + auditConvert.toAuditDO(auditDO, auditUpdateCmd); + auditMapper.updateById(auditDO); + + return auditConvert.toAudit(auditDO); + } + + @Override + public Audit show(AuditShowQry auditShowQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(AuditDO.class); + queryWrapper.eq(AuditDO::getAuditId, auditShowQry.getAuditId()); + queryWrapper.last("limit 1"); + + AuditDO auditDO = auditMapper.selectOne(queryWrapper); + return auditConvert.toAudit(auditDO); + } +} + 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 index 8835e6e..93162e7 100644 --- 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 @@ -25,6 +25,7 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -56,7 +57,7 @@ public class OrderCostGatewayImpl implements OrderCostGateway { IPage page = new Page<>(orderCostPageQry.getPageIndex(), orderCostPageQry.getPageSize()); page = orderCostMapper.selectPage(page, queryWrapper, orderCostPageQry); - List orderIdList = page.getRecords().stream().map(OrderCostDO::getOrderId).toList(); + Set orderIdList = page.getRecords().stream().map(OrderCostDO::getOrderId).collect(Collectors.toSet()); if (CollUtil.isNotEmpty(orderIdList)) { LambdaQueryWrapper queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); 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 index 3ce6673..db55671 100644 --- 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 @@ -22,6 +22,7 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -49,7 +50,7 @@ public class OrderRebateGatewayImpl implements OrderRebateGateway { IPage page = new Page<>(orderRebatePageQry.getPageIndex(), orderRebatePageQry.getPageSize()); page = orderRebateMapper.selectPage(page, queryWrapper, orderRebatePageQry); - List orderIdList = page.getRecords().stream().map(OrderRebateDO::getOrderId).toList(); + Set orderIdList = page.getRecords().stream().map(OrderRebateDO::getOrderId).collect(Collectors.toSet()); if (CollUtil.isNotEmpty(orderIdList)) { LambdaQueryWrapper queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); 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 f790971..ae0dcb4 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 @@ -26,6 +26,7 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -55,7 +56,7 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway { IPage page = new Page<>(orderSupplierPageQry.getPageIndex(), orderSupplierPageQry.getPageSize()); page = orderSupplierMapper.selectPage(page, queryWrapper, orderSupplierPageQry); - List orderIdList = page.getRecords().stream().map(OrderSupplierDO::getOrderId).toList(); + Set orderIdList = page.getRecords().stream().map(OrderSupplierDO::getOrderId).collect(Collectors.toSet()); if (CollUtil.isNotEmpty(orderIdList)) { LambdaQueryWrapper queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); 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 101b4be..70674bc 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 @@ -68,7 +68,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { private final SupplierMapper supplierMapper; private final SupplierConvert supplierConvert; - private final OrderAuditMapper orderAuditMapper; + private final AuditMapper auditMapper; @Override @Transactional @@ -269,32 +269,32 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderDO.setAuditState(PurchaseOrderAuditStateEnum.PENDING_BOSS_APPROVAL); // 更新审核记录状态为审核成功 - LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(OrderAuditDO.class); - auditQueryWrapper.eq(OrderAuditDO::getOrderId, purchaseOrderApproveCmd.getOrderId()); - auditQueryWrapper.eq(OrderAuditDO::getState, OrderAuditStateEnum.WAITING_AUDIT); - auditQueryWrapper.eq(OrderAuditDO::getType, OrderAuditTypeEnum.REVIEWER_AUDIT); - OrderAuditDO orderAuditDO = orderAuditMapper.selectOne(auditQueryWrapper); + LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(AuditDO.class); + auditQueryWrapper.eq(AuditDO::getSubjectId, purchaseOrderApproveCmd.getOrderId()); + auditQueryWrapper.eq(AuditDO::getState, AuditStateEnum.WAITING_AUDIT); + auditQueryWrapper.eq(AuditDO::getType, AuditTypeEnum.REVIEWER_AUDIT); + AuditDO auditDO = auditMapper.selectOne(auditQueryWrapper); - if (orderAuditDO != null) { - orderAuditDO.setState(OrderAuditStateEnum.AUDIT_SUCCESS); - orderAuditDO.setAuditAt(LocalDateTime.now()); - orderAuditDO.setAuditBy(purchaseOrderApproveCmd.getCreatedBy()); - orderAuditDO.setAuditByName(purchaseOrderApproveCmd.getCreatedByName()); - orderAuditMapper.updateById(orderAuditDO); + if (auditDO != null) { + auditDO.setState(AuditStateEnum.AUDIT_SUCCESS); + auditDO.setAuditAt(LocalDateTime.now()); + auditDO.setAuditBy(purchaseOrderApproveCmd.getCreatedBy()); + auditDO.setAuditByName(purchaseOrderApproveCmd.getCreatedByName()); + auditMapper.updateById(auditDO); } else { // 如果审核记录不存在,抛出异常 - throw new BizException(BizErrorCode.B_BIZ_ORDER_AUDIT_NOT_FOUND); + throw new BizException(BizErrorCode.B_BIZ_AUDIT_NOT_FOUND); } // 自动生成报老板待审核记录(每次都创建新记录) - OrderAuditDO orderAuditDO1 = new OrderAuditDO(); - orderAuditDO1.setOrderId(purchaseOrderApproveCmd.getOrderId()); - orderAuditDO1.setType(OrderAuditTypeEnum.BOSS_AUDIT); - orderAuditDO1.setState(OrderAuditStateEnum.WAITING_AUDIT); - orderAuditDO1.setCreatedBy(purchaseOrderApproveCmd.getCreatedBy()); - orderAuditDO1.setCreatedByName(purchaseOrderApproveCmd.getCreatedByName()); - orderAuditMapper.insert(orderAuditDO1); + AuditDO auditDO1 = new AuditDO(); + auditDO1.setSubjectId(purchaseOrderApproveCmd.getOrderId()); + auditDO1.setType(AuditTypeEnum.BOSS_AUDIT); + auditDO1.setState(AuditStateEnum.WAITING_AUDIT); + auditDO1.setCreatedBy(purchaseOrderApproveCmd.getCreatedBy()); + auditDO1.setCreatedByName(purchaseOrderApproveCmd.getCreatedByName()); + auditMapper.insert(auditDO1); } purchaseOrderMapper.updateById(purchaseOrderDO); @@ -562,13 +562,13 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderMapper.updateById(purchaseOrderDO); // 自动生成报价审核员待审核记录(每次都创建新记录) - OrderAuditDO orderAuditDO = new OrderAuditDO(); - orderAuditDO.setOrderId(purchaseOrderSubmitReviewCmd.getOrderId()); - orderAuditDO.setType(OrderAuditTypeEnum.REVIEWER_AUDIT); - orderAuditDO.setState(OrderAuditStateEnum.WAITING_AUDIT); - orderAuditDO.setCreatedBy(purchaseOrderSubmitReviewCmd.getCreatedBy()); - orderAuditDO.setCreatedByName(purchaseOrderSubmitReviewCmd.getCreatedByName()); - orderAuditMapper.insert(orderAuditDO); + AuditDO auditDO = new AuditDO(); + auditDO.setSubjectId(purchaseOrderSubmitReviewCmd.getOrderId()); + auditDO.setType(AuditTypeEnum.REVIEWER_AUDIT); + auditDO.setState(AuditStateEnum.WAITING_AUDIT); + auditDO.setCreatedBy(purchaseOrderSubmitReviewCmd.getCreatedBy()); + auditDO.setCreatedByName(purchaseOrderSubmitReviewCmd.getCreatedByName()); + auditMapper.insert(auditDO); } @Override @@ -592,18 +592,18 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderMapper.updateById(purchaseOrderDO); // 更新审核记录状态为草稿(撤回审核) - LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(OrderAuditDO.class); - auditQueryWrapper.eq(OrderAuditDO::getOrderId, purchaseOrderWithdrawReviewCmd.getOrderId()); - auditQueryWrapper.eq(OrderAuditDO::getState, OrderAuditStateEnum.WAITING_AUDIT); - auditQueryWrapper.eq(OrderAuditDO::getType, OrderAuditTypeEnum.REVIEWER_AUDIT); - OrderAuditDO orderAuditDO = orderAuditMapper.selectOne(auditQueryWrapper); + LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(AuditDO.class); + auditQueryWrapper.eq(AuditDO::getSubjectId, purchaseOrderWithdrawReviewCmd.getOrderId()); + auditQueryWrapper.eq(AuditDO::getState, AuditStateEnum.WAITING_AUDIT); + auditQueryWrapper.eq(AuditDO::getType, AuditTypeEnum.REVIEWER_AUDIT); + AuditDO auditDO = auditMapper.selectOne(auditQueryWrapper); - if (orderAuditDO != null) { - orderAuditDO.setState(OrderAuditStateEnum.AUDIT_CANCEL); - orderAuditDO.setAuditAt(LocalDateTime.now()); - orderAuditDO.setAuditBy(purchaseOrderWithdrawReviewCmd.getCreatedBy()); - orderAuditDO.setAuditByName(purchaseOrderWithdrawReviewCmd.getCreatedByName()); - orderAuditMapper.updateById(orderAuditDO); + if (auditDO != null) { + auditDO.setState(AuditStateEnum.AUDIT_CANCEL); + auditDO.setAuditAt(LocalDateTime.now()); + auditDO.setAuditBy(purchaseOrderWithdrawReviewCmd.getCreatedBy()); + auditDO.setAuditByName(purchaseOrderWithdrawReviewCmd.getCreatedByName()); + auditMapper.updateById(auditDO); } } @@ -628,22 +628,22 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderMapper.updateById(purchaseOrderDO); // 更新审核记录 - LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(OrderAuditDO.class); - auditQueryWrapper.eq(OrderAuditDO::getOrderId, purchaseOrderRejectApproveCmd.getOrderId()); - auditQueryWrapper.eq(OrderAuditDO::getState, OrderAuditStateEnum.WAITING_AUDIT); - auditQueryWrapper.eq(OrderAuditDO::getType, OrderAuditTypeEnum.REVIEWER_AUDIT); - OrderAuditDO orderAuditDO = orderAuditMapper.selectOne(auditQueryWrapper); + LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(AuditDO.class); + auditQueryWrapper.eq(AuditDO::getSubjectId, purchaseOrderRejectApproveCmd.getOrderId()); + auditQueryWrapper.eq(AuditDO::getState, AuditStateEnum.WAITING_AUDIT); + auditQueryWrapper.eq(AuditDO::getType, AuditTypeEnum.REVIEWER_AUDIT); + AuditDO auditDO = auditMapper.selectOne(auditQueryWrapper); - if (orderAuditDO != null) { - orderAuditDO.setState(OrderAuditStateEnum.AUDIT_REJECTED); - orderAuditDO.setAuditReason(purchaseOrderRejectApproveCmd.getRejectReason()); - orderAuditDO.setAuditAt(LocalDateTime.now()); - orderAuditDO.setAuditBy(purchaseOrderRejectApproveCmd.getCreatedBy()); - orderAuditDO.setAuditByName(purchaseOrderRejectApproveCmd.getCreatedByName()); - orderAuditMapper.updateById(orderAuditDO); + if (auditDO != null) { + auditDO.setState(AuditStateEnum.AUDIT_REJECTED); + auditDO.setAuditReason(purchaseOrderRejectApproveCmd.getRejectReason()); + auditDO.setAuditAt(LocalDateTime.now()); + auditDO.setAuditBy(purchaseOrderRejectApproveCmd.getCreatedBy()); + auditDO.setAuditByName(purchaseOrderRejectApproveCmd.getCreatedByName()); + auditMapper.updateById(auditDO); } else { // 如果审核记录不存在,抛出异常 - throw new BizException(BizErrorCode.B_BIZ_ORDER_AUDIT_NOT_FOUND); + throw new BizException(BizErrorCode.B_BIZ_AUDIT_NOT_FOUND); } // 发货单改成(草稿) @@ -672,21 +672,21 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderDO.setAuditState(PurchaseOrderAuditStateEnum.BOSS_APPROVED); // 更新审核记录为审核成功 - LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(OrderAuditDO.class); - auditQueryWrapper.eq(OrderAuditDO::getOrderId, purchaseOrderFinalApproveCmd.getOrderId()); - auditQueryWrapper.eq(OrderAuditDO::getState, OrderAuditStateEnum.WAITING_AUDIT); - auditQueryWrapper.eq(OrderAuditDO::getType, OrderAuditTypeEnum.BOSS_AUDIT); - OrderAuditDO orderAuditDO = orderAuditMapper.selectOne(auditQueryWrapper); + LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(AuditDO.class); + auditQueryWrapper.eq(AuditDO::getSubjectId, purchaseOrderFinalApproveCmd.getOrderId()); + auditQueryWrapper.eq(AuditDO::getState, AuditStateEnum.WAITING_AUDIT); + auditQueryWrapper.eq(AuditDO::getType, AuditTypeEnum.BOSS_AUDIT); + AuditDO auditDO = auditMapper.selectOne(auditQueryWrapper); - if (orderAuditDO != null) { - orderAuditDO.setState(OrderAuditStateEnum.AUDIT_SUCCESS); - orderAuditDO.setAuditAt(LocalDateTime.now()); - orderAuditDO.setAuditBy(purchaseOrderFinalApproveCmd.getCreatedBy()); - orderAuditDO.setAuditByName(purchaseOrderFinalApproveCmd.getCreatedByName()); - orderAuditMapper.updateById(orderAuditDO); + if (auditDO != null) { + auditDO.setState(AuditStateEnum.AUDIT_SUCCESS); + auditDO.setAuditAt(LocalDateTime.now()); + auditDO.setAuditBy(purchaseOrderFinalApproveCmd.getCreatedBy()); + auditDO.setAuditByName(purchaseOrderFinalApproveCmd.getCreatedByName()); + auditMapper.updateById(auditDO); } else { // 如果审核记录不存在,抛出异常 - throw new BizException(BizErrorCode.B_BIZ_ORDER_AUDIT_NOT_FOUND); + throw new BizException(BizErrorCode.B_BIZ_AUDIT_NOT_FOUND); } purchaseOrderMapper.updateById(purchaseOrderDO); @@ -729,22 +729,22 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway { purchaseOrderMapper.updateById(purchaseOrderDO); // 更新审核记录 - LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(OrderAuditDO.class); - auditQueryWrapper.eq(OrderAuditDO::getOrderId, purchaseOrderRejectFinalCmd.getOrderId()); - auditQueryWrapper.eq(OrderAuditDO::getState, OrderAuditStateEnum.WAITING_AUDIT); - auditQueryWrapper.eq(OrderAuditDO::getType, OrderAuditTypeEnum.BOSS_AUDIT); - OrderAuditDO orderAuditDO = orderAuditMapper.selectOne(auditQueryWrapper); + LambdaQueryWrapper auditQueryWrapper = Wrappers.lambdaQuery(AuditDO.class); + auditQueryWrapper.eq(AuditDO::getSubjectId, purchaseOrderRejectFinalCmd.getOrderId()); + auditQueryWrapper.eq(AuditDO::getState, AuditStateEnum.WAITING_AUDIT); + auditQueryWrapper.eq(AuditDO::getType, AuditTypeEnum.BOSS_AUDIT); + AuditDO auditDO = auditMapper.selectOne(auditQueryWrapper); - if (orderAuditDO != null) { - orderAuditDO.setState(OrderAuditStateEnum.AUDIT_REJECTED); - orderAuditDO.setAuditReason(purchaseOrderRejectFinalCmd.getRejectReason()); - orderAuditDO.setAuditAt(LocalDateTime.now()); - orderAuditDO.setAuditBy(purchaseOrderRejectFinalCmd.getCreatedBy()); - orderAuditDO.setAuditByName(purchaseOrderRejectFinalCmd.getCreatedByName()); - orderAuditMapper.updateById(orderAuditDO); + if (auditDO != null) { + auditDO.setState(AuditStateEnum.AUDIT_REJECTED); + auditDO.setAuditReason(purchaseOrderRejectFinalCmd.getRejectReason()); + auditDO.setAuditAt(LocalDateTime.now()); + auditDO.setAuditBy(purchaseOrderRejectFinalCmd.getCreatedBy()); + auditDO.setAuditByName(purchaseOrderRejectFinalCmd.getCreatedByName()); + auditMapper.updateById(auditDO); } else { // 如果审核记录不存在,抛出异常 - throw new BizException(BizErrorCode.B_BIZ_ORDER_AUDIT_NOT_FOUND); + throw new BizException(BizErrorCode.B_BIZ_AUDIT_NOT_FOUND); } } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderAuditMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/AuditMapper.java similarity index 59% rename from erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderAuditMapper.java rename to erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/AuditMapper.java index 413b4c5..f0825f5 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderAuditMapper.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/AuditMapper.java @@ -1,13 +1,13 @@ package com.xunhong.erp.turbo.biz.infrastructure.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderAuditDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.AuditDO; import org.apache.ibatis.annotations.Mapper; /** * @author shenyifei */ @Mapper -public interface OrderAuditMapper extends BaseMapper { +public interface AuditMapper extends BaseMapper { } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/PurchaseOrderMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/PurchaseOrderMapper.java index 1d88d6a..08af52f 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/PurchaseOrderMapper.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/PurchaseOrderMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * @author shenyifei @@ -13,6 +14,6 @@ import java.util.List; @Mapper public interface PurchaseOrderMapper extends BaseMapper { - List selectByOrderIdList(@Param("orderIdList") List orderIdList); + List selectByOrderIdList(@Param("orderIdList") Set orderIdList); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderAuditMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/AuditMapper.xml similarity index 86% rename from erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderAuditMapper.xml rename to erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/AuditMapper.xml index 4901a9c..3210526 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderAuditMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/AuditMapper.xml @@ -1,9 +1,10 @@ - - + + - + + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/PurchaseOrderMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/PurchaseOrderMapper.xml index 9ce2f06..be9cf2e 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/PurchaseOrderMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/PurchaseOrderMapper.xml @@ -54,7 +54,7 @@ resultType="com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO" resultMap="SelectByOrderIdListResultMap"> SELECT - po.order_id, po.order_sn, po.state, po.type, ov.vehicle_id, ov.vehicle_no, ov.dealer_id, ov.dealer_name, ov.origin, ov.destination + po.order_id, po.order_sn, po.state, po.audit_state, po.type, ov.vehicle_id, ov.vehicle_no, ov.dealer_id, ov.dealer_name, ov.origin, ov.destination FROM purchase_order po LEFT JOIN order_vehicle ov ON po.order_id = ov.order_id AND ov.is_delete = 0 diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/AuditServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/AuditServiceI.java new file mode 100644 index 0000000..a29258f --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/AuditServiceI.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.api.biz.api; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.AuditUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditPageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.AuditShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.AuditVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; + +/** + * @author shenyifei + */ +public interface AuditServiceI { + PageDTO page(AuditPageQry auditPageQry); + + AuditVO update(AuditUpdateCmd auditUpdateCmd); + + AuditVO show(AuditShowQry auditShowQry); +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/AuditUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/AuditUpdateCmd.java new file mode 100644 index 0000000..82e5761 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/AuditUpdateCmd.java @@ -0,0 +1,93 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditStateEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditSubjectTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditTypeEnum; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "审核更新") +@EqualsAndHashCode(callSuper = true) +public class AuditUpdateCmd extends Command { + + /** + * 审核Id + */ + @Schema(title = "审核Id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long auditId; + + /** + * 资源Id + */ + @Schema(title = "资源Id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long subjectId; + + /** + * 资源类型 + */ + @Schema(title = "资源类型", requiredMode = Schema.RequiredMode.REQUIRED) + private AuditSubjectTypeEnum subjectType; + + /** + * 审核状态: 1_待审核;2_审核中;3_审核通过;4_审核驳回;5_审核撤回 + */ + @Schema(title = "审核状态: 1_待审核;2_审核中;3_审核通过;4_审核驳回;5_审核撤回") + private AuditStateEnum state; + + /** + * 审核类型:1_审核员审核;2_老板审核 + */ + @Schema(title = "审核类型:1_审核员审核;2_老板审核", requiredMode = Schema.RequiredMode.REQUIRED) + private AuditTypeEnum type; + + /** + * 驳回原因 + */ + @Schema(title = "驳回原因") + private String auditReason; + + /** + * 审核时间 + */ + @Schema(title = "审核时间") + private LocalDateTime auditAt; + + /** + * 审核人ID + */ + @Schema(title = "审核人ID", type = "string") + private Long auditBy; + + /** + * 审核人名称 + */ + @Schema(title = "审核人名称") + private String auditByName; + + /** + * 创建人ID + */ + @Schema(title = "创建人ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long createdBy; + + /** + * 创建人姓名 + */ + @Schema(title = "创建人姓名") + private String createdByName; + + /** + * 创建时间 + */ + @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/ExpenseCost.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseCost.java index 86adbbd..1ec8f4e 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseCost.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseCost.java @@ -44,7 +44,7 @@ public class ExpenseCost extends Command { /** * 花销金额 */ - @Schema(title = "花销金额", requiredMode = Schema.RequiredMode.REQUIRED, type = "string") + @Schema(title = "花销金额", requiredMode = Schema.RequiredMode.REQUIRED) private BigDecimal expenseAmount; /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseProvision.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseProvision.java index 525eb42..f0360f9 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseProvision.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/ExpenseProvision.java @@ -52,5 +52,11 @@ public class ExpenseProvision extends Command { */ @Schema(title = "采购单ID", type = "string") private Long orderId; + + /** + * 备注 + */ + @Schema(title = "备注", type = "string") + private String remark; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderAuditStateEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditStateEnum.java similarity index 94% rename from erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderAuditStateEnum.java rename to erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditStateEnum.java index ead077a..f63751e 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderAuditStateEnum.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditStateEnum.java @@ -6,7 +6,7 @@ import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor -public enum OrderAuditStateEnum { +public enum AuditStateEnum { /** * 审核状态: 1_待审核;2_审核中;3_审核通过:4_审核驳回;5_审核取消; */ diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditSubjectTypeEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditSubjectTypeEnum.java new file mode 100644 index 0000000..7793cd1 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditSubjectTypeEnum.java @@ -0,0 +1,20 @@ +package com.xunhong.erp.turbo.api.biz.dto.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum AuditSubjectTypeEnum { + /** + * 审核对象类型:1_采购单; + */ + PURCHASE_ORDER(1, "采购单"), + ; + + @EnumValue + private final int type; + + private final String message; +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderAuditTypeEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditTypeEnum.java similarity index 92% rename from erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderAuditTypeEnum.java rename to erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditTypeEnum.java index 9e5810c..1eca4b9 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/OrderAuditTypeEnum.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/AuditTypeEnum.java @@ -6,7 +6,7 @@ import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor -public enum OrderAuditTypeEnum { +public enum AuditTypeEnum { /** * 审核类型:1_审核员审核;2_老板审核 */ diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditPageQry.java new file mode 100644 index 0000000..0ea39bf --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditPageQry.java @@ -0,0 +1,31 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditStateEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditSubjectTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditTypeEnum; +import com.xunhong.erp.turbo.base.dto.PageQuery; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "审核分页查询") +@EqualsAndHashCode(callSuper = true) +public class AuditPageQry extends PageQuery { + + @Schema(title = "审核ID", type = "string") + private Long auditId; + + @Schema(title = "审核类型:1_报价审核员审核;2_老板审核") + private AuditTypeEnum type; + + @Schema(title = "审核状态: 1_待审核;2_审核中;3_审核通过;4_审核驳回;5_审核撤回") + private AuditStateEnum state; + + @Schema(title = "审核对象类型:1_采购单;") + private AuditSubjectTypeEnum subjectType; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditShowQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditShowQry.java new file mode 100644 index 0000000..59ddafa --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/AuditShowQry.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.base.dto.Query; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "审核查询") +@EqualsAndHashCode(callSuper = true) +public class AuditShowQry extends Query { + + @Schema(title = "审核ID", type = "string") + private Long auditId; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/AuditVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/AuditVO.java new file mode 100644 index 0000000..cc76030 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/AuditVO.java @@ -0,0 +1,100 @@ +package com.xunhong.erp.turbo.api.biz.dto.vo; + +import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditStateEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditSubjectTypeEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.AuditTypeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "审核") +@EqualsAndHashCode(callSuper = true) +public class AuditVO extends DTO { + + /** + * 审核Id + */ + @Schema(title = "审核Id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long auditId; + + /** + * 资源Id + */ + @Schema(title = "资源Id", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long subjectId; + + /** + * 资源类型 + */ + @Schema(title = "资源类型", requiredMode = Schema.RequiredMode.REQUIRED) + private AuditSubjectTypeEnum subjectType; + + /** + * 审核状态: 1_待审核;2_审核中;3_审核通过;4_审核驳回;5_审核撤回 + */ + @Schema(title = "审核状态: 1_待审核;2_审核中;3_审核通过;4_审核驳回;5_审核撤回") + private AuditStateEnum state; + + /** + * 审核类型:1_审核员审核;2_老板审核 + */ + @Schema(title = "审核类型:1_审核员审核;2_老板审核", requiredMode = Schema.RequiredMode.REQUIRED) + private AuditTypeEnum type; + + /** + * 驳回原因 + */ + @Schema(title = "驳回原因") + private String auditReason; + + /** + * 审核时间 + */ + @Schema(title = "审核时间") + private LocalDateTime auditAt; + + /** + * 审核人ID + */ + @Schema(title = "审核人ID", type = "string") + private Long auditBy; + + /** + * 审核人名称 + */ + @Schema(title = "审核人名称") + private String auditByName; + + /** + * 创建人ID + */ + @Schema(title = "创建人ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long createdBy; + + /** + * 创建人姓名 + */ + @Schema(title = "创建人姓名") + private String createdByName; + + /** + * 创建时间 + */ + @Schema(title = "创建时间") + private LocalDateTime createdAt; + + /** + * 采购单信息 + */ + @Schema(title = "采购单信息") + 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 50c858b..7df151d 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 @@ -68,19 +68,19 @@ public class PurchaseOrderVO extends DTO { /** * 采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭; */ - @Schema(title = "采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭;") + @Schema(title = "采购订单状态: 0_草稿;1_审核中;2_已完成;3_已驳回;4_已关闭;", requiredMode = Schema.RequiredMode.REQUIRED) private PurchaseOrderStateEnum state; /** * 采购单审核状态: 1_待报价审核;2_待老板审批;3_老板审批通过;4_报价审核驳回;5_老板审批驳回 */ - @Schema(title = "采购单审核状态: 1_待报价审核;2_待老板审批;3_老板审批通过;4_报价审核驳回;5_老板审批驳回") + @Schema(title = "采购单审核状态: 1_待报价审核;2_待老板审批;3_老板审批通过;4_报价审核驳回;5_老板审批驳回", requiredMode = Schema.RequiredMode.REQUIRED) private PurchaseOrderAuditStateEnum auditState; /** * 采购类型:1_产地采购;2_市场采购; */ - @Schema(title = "采购类型:1_产地采购;2_市场采购;") + @Schema(title = "采购类型:1_产地采购;2_市场采购;", requiredMode = Schema.RequiredMode.REQUIRED) private PurchaseOrderTypeEnum type; /** diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/exception/BizErrorCode.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/exception/BizErrorCode.java index ce347e6..d446f42 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/exception/BizErrorCode.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/exception/BizErrorCode.java @@ -40,7 +40,7 @@ public enum BizErrorCode implements ErrorCode { /** * 审核记录不存在 */ - B_BIZ_ORDER_AUDIT_NOT_FOUND("B_BIZ_ORDER_AUDIT_NOT_FOUND", "审核记录不存在"); + B_BIZ_AUDIT_NOT_FOUND("B_BIZ_AUDIT_NOT_FOUND", "审核记录不存在"); ; @@ -62,4 +62,4 @@ public enum BizErrorCode implements ErrorCode { public String getMessage() { return this.message; } -} \ No newline at end of file +}