diff --git a/sql/table.sql b/sql/table.sql index da91e98..64a6784 100644 --- a/sql/table.sql +++ b/sql/table.sql @@ -20,6 +20,7 @@ CREATE TABLE `order_base_info` ( `order_hod_time` varchar(32) DEFAULT NULL COMMENT '订单上HOD时间', `outbound_type` varchar(32) DEFAULT NULL COMMENT '出库类型', `packet_type` varchar(64) DEFAULT NULL COMMENT '包装类型', + `order_status` INT NOT NULL COMMENT '订单状态', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', @@ -43,6 +44,7 @@ CREATE TABLE `order_profit_analysis` ( `packet_total_price` DOUBLE DEFAULT 0 COMMENT '包装费用合计¥', `exchange_rate` DOUBLE DEFAULT 0 COMMENT '汇率', `profit_rate` DOUBLE DEFAULT 0 COMMENT '利润率', + `order_status` INT NOT NULL COMMENT '订单状态', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', @@ -60,6 +62,7 @@ CREATE TABLE `order_completion_report` ( `idea_source` varchar(64) DEFAULT NULL COMMENT '想法来源', `manual_preform` varchar(64) DEFAULT NULL COMMENT '手工初型', `idea_manual_rate` DOUBLE DEFAULT 0 COMMENT '想法和手工比例分配', + `order_status` INT NOT NULL COMMENT '订单状态', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', @@ -78,15 +81,16 @@ CREATE TABLE `order_track_stage` ( `pp_confirm_result` varchar(64) DEFAULT NULL COMMENT 'pp样品确认意见', `eso_sample_send_time` varchar(64) DEFAULT NULL COMMENT 'EXTRA,SHOWROOM,ONLINE sample发送时间', `shippment_sample_send_time` varchar(64) DEFAULT NULL COMMENT 'shippment sample 发送时间', - `shippment_sample_confirm_time` varchar(64) DEFAULT NULL COMMENT 'shipment sample确认意见', + `shippment_sample_confirm_result` varchar(64) DEFAULT NULL COMMENT 'shipment sample确认意见', `self_test_pass_time` varchar(64) DEFAULT NULL COMMENT '自测通过时间', `aitex_test_send_time` varchar(64) DEFAULT NULL COMMENT 'Aitex测试发送时间', - `aitex_test_finish_time` varchar(64) DEFAULT NULL COMMENT 'Aitex测试结果时间', + `aitex_test_finish_result` varchar(64) DEFAULT NULL COMMENT 'Aitex测试结果', `sgs_test_send_time` varchar(64) DEFAULT NULL COMMENT 'SGS测试发送时间', - `sgs_test_finish_time` varchar(64) DEFAULT NULL COMMENT 'SGS测试结果时间', + `sgs_test_finish_result` varchar(64) DEFAULT NULL COMMENT 'SGS测试结果', `barcode_sticker_arrival_time` varchar(64) DEFAULT NULL COMMENT 'Barcode sticker arrival time', `latest_arrival_time` varchar(64) DEFAULT NULL COMMENT '最晚包材到货时间', `latest_bk_time` varchar(64) DEFAULT NULL COMMENT '最晚订舱+报关资料时间', + `order_status` INT NOT NULL COMMENT '订单状态', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', @@ -113,6 +117,7 @@ CREATE TABLE `order_inspection_stage` ( `value3` varchar(128) DEFAULT NULL COMMENT '其他不良3', `box_packet` varchar(64) DEFAULT NULL COMMENT '包装:卡片、条码、箱贴,箱单', `end_check_result` varchar(16) DEFAULT NULL COMMENT '尾期验货结果PASS / FAIL', + `order_status` INT NOT NULL COMMENT '订单状态', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', @@ -147,6 +152,8 @@ CREATE TABLE `order_field_lock_apply` ( `audit_user_id` bigint DEFAULT NULL COMMENT '审批用户id', `fields` text DEFAULT NULL COMMENT '锁定字段 json字符串', `status` INT DEFAULT 0 COMMENT '状态:0 待审批,1 通过,2 拒绝', + `type` INT NOT NULL COMMENT '申请类型', + `remark` varchar(64) DEFAULT NULL COMMENT '申请类型描述', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', diff --git a/src/main/java/com/order/erp/common/constant/ServerResultCode.java b/src/main/java/com/order/erp/common/constant/ServerResultCode.java index 8877c0a..e708966 100644 --- a/src/main/java/com/order/erp/common/constant/ServerResultCode.java +++ b/src/main/java/com/order/erp/common/constant/ServerResultCode.java @@ -62,6 +62,10 @@ public enum ServerResultCode implements ErrorInfo { //订单 ORDER_BASE_INFO_EMPTY(70001, "订单基础信息不能为空!"), + + //申请 + APPLY_UNLOCK_FIELD_EXIST(80001, "还有未审批完结的申请,请等上一个申请单完结!"), + APPLY_NOT_EXIST(80002, "申请单不存在!"), ; diff --git a/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java b/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java new file mode 100644 index 0000000..1bcef4c --- /dev/null +++ b/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java @@ -0,0 +1,142 @@ +package com.order.erp.common.utils; + +import com.order.erp.domain.OrderLockFieldEnum; +import com.order.erp.domain.vo.order.*; + +import java.util.Objects; + +/** + * @author: xms + * @description: TODO + * @date: 2023/9/13 20:02 + * @version: 1.0 + */ +public class OrderFieldUtils { + + /** + * @param lockFieldEnum + * @return + */ + public static OrderLockFieldVO initField(OrderLockFieldEnum lockFieldEnum) { + if (Objects.isNull(lockFieldEnum)) { + lockFieldEnum = OrderLockFieldEnum.LOCKED; + } + return OrderLockFieldVO.builder() + .baseFields(initOrderBaseField(lockFieldEnum)) + .reportFields(initReportField(lockFieldEnum)) + .profitAnalysisFields(initProfitAnalysisField(lockFieldEnum)) + .trackStageFields(initTrackStageField(lockFieldEnum)) + .inspectionStageFields(initInspectionStageField(lockFieldEnum)) + .build(); + } + + /** + * @param lockFieldEnum + * @return + */ + public static OrderBaseFieldVO initOrderBaseField(OrderLockFieldEnum lockFieldEnum) { + String locked = lockFieldEnum.getStatus(); + return OrderBaseFieldVO.builder() + .cnColor(locked) + .collection(locked) + .customerCode(locked) + .customerPo(locked) + .customerStyle(locked) + .innerNo(locked) + .modeleLo(locked) + .orderComposition(locked) + .orderCount(locked) + .orderHodTime(locked) + .orderStatus(locked) + .outboundType(locked) + .packetType(locked) + .picUrl(locked) + .poColor(locked) + .productionComment(locked) + .productionDepartment(locked) + .productionDepartmentConsignTime(locked) + .productStyle(locked) + .projectNo(locked) + .build(); + } + + /** + * @param lockFieldEnum + * @return + */ + public static OrderCompletionReportFieldVO initReportField(OrderLockFieldEnum lockFieldEnum) { + String locked = lockFieldEnum.getStatus(); + return OrderCompletionReportFieldVO.builder() + .ideaManualRate(locked) + .ideaSource(locked) + .manualPreform(locked) + .orderStatus(locked) + .build(); + } + + /** + * @param lockFieldEnum + * @return + */ + public static OrderProfitAnalysisFieldVO initProfitAnalysisField(OrderLockFieldEnum lockFieldEnum) { + String locked = lockFieldEnum.getStatus(); + return OrderProfitAnalysisFieldVO.builder() + .customerPrice(locked) + .customerTotalPrice(locked) + .exchangeRate(locked) + .orderStatus(locked) + .packetPrice(locked) + .packetTotalPrice(locked) + .productionDepartmentPrice(locked) + .productionDepartmentTotalPrice(locked) + .profitRate(locked) + .build(); + } + + /** + * @param lockFieldEnum + * @return + */ + public static OrderTrackStageFieldVO initTrackStageField(OrderLockFieldEnum lockFieldEnum) { + String locked = lockFieldEnum.getStatus(); + return OrderTrackStageFieldVO.builder() + .aitexTestFinishResult(locked) + .aitexTestSendTime(locked) + .barcodeStickerArrivalTime(locked) + .esoSampleSendTime(locked) + .latestArrivalTime(locked) + .latestBkTime(locked) + .orderStatus(locked) + .ppConfirmResult(locked) + .ppTime(locked) + .selfTestPassTime(locked) + .sgsTestFinishResult(locked) + .sgsTestSendTime(locked) + .shippmentSampleConfirmResult(locked) + .shippmentSampleSendTime(locked) + .build(); + } + + /** + * @param lockFieldEnum + * @return + */ + public static OrderInspectionStageFieldVO initInspectionStageField(OrderLockFieldEnum lockFieldEnum) { + String locked = lockFieldEnum.getStatus(); + return OrderInspectionStageFieldVO.builder() + .boxPacket(locked) + .electroplate(locked) + .endCheckApplyTime(locked) + .endCheckResult(locked) + .functionality(locked) + .midCheckApplyTime(locked) + .midCheckComment(locked) + .midCheckResult(locked) + .orderStatus(locked) + .specification(locked) + .value1(locked) + .value2(locked) + .value3(locked) + .build(); + } +} diff --git a/src/main/java/com/order/erp/config/DataScope.java b/src/main/java/com/order/erp/config/DataScope.java index 80ceb3d..7b057c7 100644 --- a/src/main/java/com/order/erp/config/DataScope.java +++ b/src/main/java/com/order/erp/config/DataScope.java @@ -27,6 +27,14 @@ public class DataScope { } /** + * + * @return + */ + public String getLoginUserName(){ + return SecurityUtils.getUsername(); + } + + /** * @return */ public UserVO getUser() { diff --git a/src/main/java/com/order/erp/controller/AuditController.java b/src/main/java/com/order/erp/controller/AuditController.java new file mode 100644 index 0000000..aab9d28 --- /dev/null +++ b/src/main/java/com/order/erp/controller/AuditController.java @@ -0,0 +1,55 @@ +package com.order.erp.controller; + +import com.order.erp.common.annotation.AnonymousAccess; +import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.vo.order.AuditVO; +import com.order.erp.domain.vo.order.OrderFieldLockApplyQueryVO; +import com.order.erp.service.order.OrderFieldLockApplyService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 订单基础信息表(OrderBaseInfo)表控制层 + * + * @author makejava + * @since 2023-09-08 15:26:43 + */ +@RestController +@RequestMapping("/order/erp/audit") +public class AuditController { + /** + * 服务对象 + */ + @Resource + private OrderFieldLockApplyService applyService; + + /** + * 分页查询 + * + * @param queryVO 查询条件 + * @return 查询结果 + */ + @PostMapping("/list_by_page") + @AnonymousAccess + public ServerResult listByPage(@RequestBody @Validated OrderFieldLockApplyQueryVO queryVO) { + return applyService.listByPage(queryVO); + } + + /** + * 审核 + * + * @param auditVO 查询条件 + * @return 查询结果 + */ + @PostMapping("/do_audit") + @AnonymousAccess + public ServerResult doAudit(@RequestBody @Validated AuditVO auditVO) { + return applyService.doAudit(auditVO); + } +} + diff --git a/src/main/java/com/order/erp/controller/DeptController.java b/src/main/java/com/order/erp/controller/DeptController.java index ba9badb..6a51ad4 100644 --- a/src/main/java/com/order/erp/controller/DeptController.java +++ b/src/main/java/com/order/erp/controller/DeptController.java @@ -54,6 +54,6 @@ public class DeptController { @DeleteMapping @PreAuthorize("@el.check('dept:del')") public ServerResult delete(@RequestBody @Validated AdminDeptQueryVO queryVO) { - return ServerResult.success(deptService.deleteById(queryVO)); + return deptService.deleteById(queryVO); } } \ No newline at end of file diff --git a/src/main/java/com/order/erp/controller/DictionaryController.java b/src/main/java/com/order/erp/controller/DictionaryController.java new file mode 100644 index 0000000..2257f87 --- /dev/null +++ b/src/main/java/com/order/erp/controller/DictionaryController.java @@ -0,0 +1,70 @@ +package com.order.erp.controller; + +import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.vo.admin.DictionaryQueryVO; +import com.order.erp.domain.vo.admin.DictionaryVO; +import com.order.erp.log.Log; +import com.order.erp.service.admin.DictionaryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author xms + */ +@RestController +@Api(tags = "系统:字典管理") +@RequestMapping("/order/erp/dictionary") +public class DictionaryController { + + @Resource + private DictionaryService dictionaryService; + + + @Log("查询字典列表") + @ApiOperation("查询字典列表") + @PostMapping(value = "/list_by_page") + @PreAuthorize("@el.check('user:list','dept:list')") + public ServerResult listByPage(@RequestBody @Validated DictionaryQueryVO queryVO) { + return dictionaryService.listByPage(queryVO); + } + + @Log("获取所有字典") + @ApiOperation("获取所有字典") + @PostMapping(value = "/get_all") + @PreAuthorize("@el.check('user:list','dept:list')") + public ServerResult getAll(@RequestBody @Validated DictionaryQueryVO queryVO) { + return dictionaryService.getAll(queryVO); + } + + @Log("新增字典") + @ApiOperation("新增字典") + @PostMapping("/add") + @PreAuthorize("@el.check('dept:add')") + public ServerResult add(@RequestBody @Validated DictionaryVO dictionaryVO) { + return dictionaryService.add(dictionaryVO); + } + + @Log("修改字典") + @ApiOperation("修改字典") + @PostMapping("/edit") + @PreAuthorize("@el.check('dept:edit')") + public ServerResult edit(@RequestBody @Validated DictionaryVO dictionaryVO) { + return dictionaryService.edit(dictionaryVO); + } + + @Log("删除字典") + @ApiOperation("删除字典") + @PostMapping("/delete") + @PreAuthorize("@el.check('dept:del')") + public ServerResult delete(@RequestBody @Validated DictionaryQueryVO queryVO) { + return dictionaryService.deleteById(queryVO); + } +} \ No newline at end of file diff --git a/src/main/java/com/order/erp/controller/OrderController.java b/src/main/java/com/order/erp/controller/OrderController.java index eaabee2..f918317 100644 --- a/src/main/java/com/order/erp/controller/OrderController.java +++ b/src/main/java/com/order/erp/controller/OrderController.java @@ -2,9 +2,7 @@ package com.order.erp.controller; import com.order.erp.common.annotation.AnonymousAccess; import com.order.erp.common.constant.ServerResult; -import com.order.erp.domain.vo.order.OrderAddVO; -import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO; -import com.order.erp.domain.vo.order.OrderBaseInfoVO; +import com.order.erp.domain.vo.order.*; import com.order.erp.service.order.OrderBaseInfoService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -65,6 +63,19 @@ public class OrderController { } /** + * 字段解锁申请 + * + * @param fieldVO 查询条件 + * @return 查询结果 + */ + @PostMapping("/field_unlock_apply") + @AnonymousAccess + public ServerResult fieldUnlockApply(@RequestBody @Validated OrderUnlockFieldApplyVO fieldVO) { + return orderBaseInfoService.fieldUnlockApply(fieldVO); + } + + + /** * 编辑数据 * * @param orderBaseInfoVO 数据VO diff --git a/src/main/java/com/order/erp/domain/ApplyStatusEnum.java b/src/main/java/com/order/erp/domain/ApplyStatusEnum.java new file mode 100644 index 0000000..5a6b6ce --- /dev/null +++ b/src/main/java/com/order/erp/domain/ApplyStatusEnum.java @@ -0,0 +1,25 @@ +package com.order.erp.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author: xms + * @description: TODO + * @date: 2023/9/13 18:05 + * @version: 1.0 + */ +@Getter +@AllArgsConstructor +public enum ApplyStatusEnum { + + WAIT_AUDIT(0, "待审批"), + + AUDIT_PASS(10, "已通过"), + + AUDIT_REFUSE(20, "已驳回"), + ; + private Integer status; + + private String desc; +} diff --git a/src/main/java/com/order/erp/domain/ApplyTypeEnum.java b/src/main/java/com/order/erp/domain/ApplyTypeEnum.java new file mode 100644 index 0000000..aa0aee2 --- /dev/null +++ b/src/main/java/com/order/erp/domain/ApplyTypeEnum.java @@ -0,0 +1,25 @@ +package com.order.erp.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author: xms + * @description: TODO + * @date: 2023/9/13 18:05 + * @version: 1.0 + */ +@Getter +@AllArgsConstructor +public enum ApplyTypeEnum { + + FIELD_EDIT_APPLY(0, "字段编辑申请"), + + ORDER_PROFIT_APPLY(10, "利润分析申请"), + + ORDER_REPORT_APPLY(20, "项目报告书申请"), + ; + private Integer type; + + private String desc; +} diff --git a/src/main/java/com/order/erp/domain/DictionaryEnum.java b/src/main/java/com/order/erp/domain/DictionaryEnum.java new file mode 100644 index 0000000..3efd8ae --- /dev/null +++ b/src/main/java/com/order/erp/domain/DictionaryEnum.java @@ -0,0 +1,21 @@ +package com.order.erp.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author: xms + * @description: TODO + * @date: 2023/9/13 18:05 + * @version: 1.0 + */ +@Getter +@AllArgsConstructor +public enum DictionaryEnum { + + EXCHANGE_RATE("exchange_rate", "汇率"), + ; + private String code; + + private String name; +} diff --git a/src/main/java/com/order/erp/domain/OrderLockFieldEnum.java b/src/main/java/com/order/erp/domain/OrderLockFieldEnum.java new file mode 100644 index 0000000..f3c87ba --- /dev/null +++ b/src/main/java/com/order/erp/domain/OrderLockFieldEnum.java @@ -0,0 +1,23 @@ +package com.order.erp.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author: xms + * @description: TODO + * @date: 2023/9/13 18:05 + * @version: 1.0 + */ +@Getter +@AllArgsConstructor +public enum OrderLockFieldEnum { + + LOCKED("LOCKED", "锁定"), + + UN_LOCKED("UN_LOCKED", "解锁"), + ; + private String status; + + private String desc; +} diff --git a/src/main/java/com/order/erp/domain/OrderStatusEnum.java b/src/main/java/com/order/erp/domain/OrderStatusEnum.java new file mode 100644 index 0000000..ab5bd65 --- /dev/null +++ b/src/main/java/com/order/erp/domain/OrderStatusEnum.java @@ -0,0 +1,43 @@ +package com.order.erp.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author: xms + * @description: TODO + * @date: 2023/9/13 18:05 + * @version: 1.0 + */ +@Getter +@AllArgsConstructor +public enum OrderStatusEnum { + + CREATE_FINISH(0, "订单创建完成"), + + PROFIT_WAIT_AUDIT(10, "利润分析表待审核"), + + PROFIT_AUDIT_PASS(11, "利润分析表审核通过"), + + PROFIT_AUDIT_REFUSE(12, "利润分析表审核驳回"), + + REPORT_WAIT_AUDIT(20, "项目报告书待审核"), + + REPORT_AUDIT_PASS(21, "项目报告书审核通过"), + + REPORT_AUDIT_REFUSE(22, "项目报告书审核驳回"), + + TRACK_ING(30, "跟单中"), + + TRACK_PASS(31, "跟单完成"), + + INSPECT_ING(40, "质检中"), + + INSPECT_PASS(41, "质检完成"), + + ORDER_FINISH(50, "订单完成"), + ; + private Integer status; + + private String desc; +} diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java index 8881ec3..83c25f3 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java @@ -101,4 +101,9 @@ public class OrderBaseInfoDO extends BaseDO implements Serializable { */ private String packetType; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; + } diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java index ee3ef61..e7a48c7 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java @@ -41,4 +41,10 @@ public class OrderCompletionReportDO extends BaseDO implements Serializable { */ private Double ideaManualRate; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; + + } diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderFieldLockApplyDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderFieldLockApplyDO.java index 1a72f96..ce67fd7 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderFieldLockApplyDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderFieldLockApplyDO.java @@ -21,7 +21,6 @@ import java.io.Serializable; @EqualsAndHashCode(callSuper = false) @SuperBuilder public class OrderFieldLockApplyDO extends BaseDO implements Serializable { - private static final long serialVersionUID = 646989609392883241L; private Long id; /** @@ -45,4 +44,14 @@ public class OrderFieldLockApplyDO extends BaseDO implements Serializable { */ private Integer status; + /** + * 申请类型:枚举类ApplyTypeEnum + */ + private Integer type; + + /** + * 申请类型描述 + */ + private String remark; + } diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderInspectionStageDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderInspectionStageDO.java index fcc67c1..ca9ef04 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderInspectionStageDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderInspectionStageDO.java @@ -77,4 +77,10 @@ public class OrderInspectionStageDO extends BaseDO implements Serializable { */ private String endCheckResult; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; + + } diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderProfitAnalysisDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderProfitAnalysisDO.java index f9c7355..eb89ff6 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderProfitAnalysisDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderProfitAnalysisDO.java @@ -61,4 +61,10 @@ public class OrderProfitAnalysisDO extends BaseDO implements Serializable { */ private Double profitRate; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; + + } diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderTrackStageDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderTrackStageDO.java index 2bf892e..adb5d51 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderTrackStageDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderTrackStageDO.java @@ -47,7 +47,7 @@ public class OrderTrackStageDO extends BaseDO implements Serializable { /** * shipment sample确认意见 */ - private String shippmentSampleConfirmTime; + private String shippmentSampleConfirmResult; /** * 自测通过时间 */ @@ -57,17 +57,17 @@ public class OrderTrackStageDO extends BaseDO implements Serializable { */ private String aitexTestSendTime; /** - * Aitex测试结果时间 + * Aitex测试结果 */ - private String aitexTestFinishTime; + private String aitexTestFinishResult; /** * SGS测试发送时间 */ private String sgsTestSendTime; /** - * SGS测试结果时间 + * SGS测试结果 */ - private String sgsTestFinishTime; + private String sgsTestFinishResult; /** * Barcode sticker arrival time */ @@ -81,4 +81,10 @@ public class OrderTrackStageDO extends BaseDO implements Serializable { */ private String latestBkTime; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; + + } diff --git a/src/main/java/com/order/erp/domain/vo/admin/DictionaryResultVO.java b/src/main/java/com/order/erp/domain/vo/admin/DictionaryResultVO.java new file mode 100644 index 0000000..c389d91 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/admin/DictionaryResultVO.java @@ -0,0 +1,43 @@ +package com.order.erp.domain.vo.admin; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * @author makejava + * @since 2023-08-30 17:51:48 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class DictionaryResultVO implements Serializable { + + private Long id; + /** + * 字典编码 + */ + private String dictCode; + /** + * 名称 + */ + private String dictName; + /** + * 值 + */ + private String dictValue; + /** + * 备注 + */ + private String remark; + /** + * 排序字段 + */ + private Integer sort; + + +} diff --git a/src/main/java/com/order/erp/domain/vo/order/AuditVO.java b/src/main/java/com/order/erp/domain/vo/order/AuditVO.java new file mode 100644 index 0000000..4eddf12 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/AuditVO.java @@ -0,0 +1,34 @@ +package com.order.erp.domain.vo.order; + +import com.order.erp.domain.vo.BasePageVO; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @author makejava + * @since 2023-09-08 15:26:44 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class AuditVO extends BasePageVO implements Serializable { + + /** + * 申请id + */ + @NotNull(message = "申请id不能为空") + private Long id; + + /** + * 状态:1 通过,2 拒绝 + */ + @NotNull(message = "状态不能为空") + private Integer status; +} + diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderApplyResultVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderApplyResultVO.java new file mode 100644 index 0000000..325e94b --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderApplyResultVO.java @@ -0,0 +1,84 @@ +package com.order.erp.domain.vo.order; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.ibatis.type.LocalDateTimeTypeHandler; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 订单基础信息表(OrderBaseInfo)实体类 + * + * @author makejava + * @since 2023-09-08 15:26:43 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderApplyResultVO implements Serializable { + + private Long id; + + /** + * 订单id + */ + private Long orderId; + /** + * 申请用户id + */ + private Long applyUserId; + /** + * 审批用户id + */ + private Long auditUserId; + /** + * 锁定字段 json字符串 + */ + private OrderLockFieldVO fieldInfos; + /** + * 状态:0 待审批,1 通过,2 拒绝 + */ + private Integer status; + + /** + * 申请类型:枚举类ApplyTypeEnum + */ + private Integer type; + + /** + * 申请类型描述 + */ + private String desc; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 修改时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime modifyTime; + + /** + * 修改人 + */ + private String modifyBy; + + +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderBaseFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderBaseFieldVO.java new file mode 100644 index 0000000..c2b5e77 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderBaseFieldVO.java @@ -0,0 +1,104 @@ +package com.order.erp.domain.vo.order; + +import com.order.erp.domain.OrderLockFieldEnum; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * + * @author makejava + * @since 2023-09-08 15:26:43 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderBaseFieldVO implements Serializable { + + /** + * 客户编码 + */ + private String customerCode = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 项目号 + */ + private String projectNo = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 生产科 + */ + private String productionDepartment = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 内部编号 + */ + private String innerNo = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 客户po号 + */ + private String customerPo = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 客户STYLE# + */ + private String customerStyle = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * Modelo(REFERENCE) + */ + private String modeleLo = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * COLLECTION (style description) + */ + private String collection = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * PO COLOR + */ + private String poColor = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 颜色中文 + */ + private String cnColor = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * pic图片地址 + */ + private String picUrl = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 生产要求 + */ + private String productionComment = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 数量 + */ + private String orderCount = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 订单成分 + */ + private String orderComposition = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 款式类型 + */ + private String productStyle = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 生成科拖货时间 + */ + private String productionDepartmentConsignTime = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 订单上HOD时间 + */ + private String orderHodTime = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 出库类型 + */ + private String outboundType = OrderLockFieldEnum.LOCKED.getStatus(); + /** + * 包装类型 + */ + private String packetType = OrderLockFieldEnum.LOCKED.getStatus(); + + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private String orderStatus = OrderLockFieldEnum.LOCKED.getStatus(); + +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java index e8e1758..34fd157 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java @@ -98,5 +98,9 @@ public class OrderBaseInfoVO implements Serializable { */ private String packetType; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java new file mode 100644 index 0000000..93f280d --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java @@ -0,0 +1,38 @@ +package com.order.erp.domain.vo.order; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * + * @author makejava + * @since 2023-09-08 15:26:44 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderCompletionReportFieldVO implements Serializable { + + /** + * 想法来源 + */ + private String ideaSource; + /** + * 手工初型 + */ + private String manualPreform; + /** + * 想法和手工比例分配 + */ + private String ideaManualRate; + + /** + * 订单状态 + */ + private String orderStatus; +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java index 950391d..212cc57 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java @@ -38,5 +38,8 @@ public class OrderCompletionReportVO implements Serializable { */ private Double ideaManualRate; - + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderInfoResultVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderInfoResultVO.java index 4771f8a..d9439e5 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderInfoResultVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderInfoResultVO.java @@ -39,4 +39,9 @@ public class OrderInfoResultVO extends OrderBaseInfoVO implements Serializable { */ private OrderInspectionStageVO inspectionStageInfo; + /** + * 字段锁定集合 + */ + private OrderLockFieldVO lockFields; + } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageFieldVO.java new file mode 100644 index 0000000..b8f147d --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageFieldVO.java @@ -0,0 +1,73 @@ +package com.order.erp.domain.vo.order; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * + * @author makejava + * @since 2023-09-08 15:26:45 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderInspectionStageFieldVO implements Serializable { + /** + * 中期验货申请时间 + */ + private String midCheckApplyTime; + /** + * 中期验货(功能性-拉力/跌落等、外观性-颜色/规格等、耐久性-烤厅等) + */ + private String midCheckComment; + /** + * 中期验货结果PASS / FAIL + */ + private String midCheckResult; + /** + * 尾期验货申请时间 + */ + private String endCheckApplyTime; + /** + * 长度/规格 + */ + private String specification; + /** + * 功能性不良 + */ + private String functionality; + /** + * 电镀不良 + */ + private String electroplate; + /** + * 不良1 + */ + private String value1; + /** + * 不良2 + */ + private String value2; + /** + * 其他不良3 + */ + private String value3; + /** + * 包装:卡片、条码、箱贴,箱单 + */ + private String boxPacket; + /** + * 尾期验货结果PASS / FAIL + */ + private String endCheckResult; + + /** + * 订单状态 + */ + private String orderStatus; +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageVO.java index 5005c41..a7961eb 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderInspectionStageVO.java @@ -74,5 +74,8 @@ public class OrderInspectionStageVO implements Serializable { */ private String endCheckResult; - + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderLockFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderLockFieldVO.java new file mode 100644 index 0000000..2e07435 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderLockFieldVO.java @@ -0,0 +1,45 @@ +package com.order.erp.domain.vo.order; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * @author makejava + * @since 2023-09-08 15:26:43 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderLockFieldVO implements Serializable { + + /** + * 基础信息字段 + */ + private OrderBaseFieldVO baseFields; + + /** + * 利润分析字段 + */ + private OrderProfitAnalysisFieldVO profitAnalysisFields; + + /** + * 项目报告书字段 + */ + private OrderCompletionReportFieldVO reportFields; + + /** + * 跟单字段 + */ + private OrderTrackStageFieldVO trackStageFields; + + /** + * 质检字段 + */ + private OrderInspectionStageFieldVO inspectionStageFields; + +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java new file mode 100644 index 0000000..bf86d91 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java @@ -0,0 +1,59 @@ +package com.order.erp.domain.vo.order; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * + * @author makejava + * @since 2023-09-08 15:26:47 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderProfitAnalysisFieldVO implements Serializable { + /** + * 客户单价$ + */ + private String customerPrice; + /** + * 客户总价$ + */ + private String customerTotalPrice; + /** + * 生成科单价¥ + */ + private String productionDepartmentPrice; + /** + * 生成科总价¥ + */ + private String productionDepartmentTotalPrice; + /** + * 包装费用¥ + */ + private String packetPrice; + /** + * 包装费用合计¥ + */ + private String packetTotalPrice; + /** + * 汇率 + */ + private String exchangeRate; + /** + * 利润率 + */ + private String profitRate; + + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private String orderStatus; + + +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisVO.java index fa3057a..51f5565 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisVO.java @@ -58,5 +58,10 @@ public class OrderProfitAnalysisVO implements Serializable { */ private Double profitRate; + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; + } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageFieldVO.java new file mode 100644 index 0000000..7339c54 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageFieldVO.java @@ -0,0 +1,77 @@ +package com.order.erp.domain.vo.order; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * @author makejava + * @since 2023-09-08 15:26:48 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderTrackStageFieldVO implements Serializable { + + /** + * pp date + */ + private String ppTime; + /** + * pp样品确认意见 + */ + private String ppConfirmResult; + /** + * EXTRA,SHOWROOM,ONLINE sample发送时间 + */ + private String esoSampleSendTime; + /** + * shippment sample 发送时间 + */ + private String shippmentSampleSendTime; + /** + * shipment sample确认意见 + */ + private String shippmentSampleConfirmResult; + /** + * 自测通过时间 + */ + private String selfTestPassTime; + /** + * Aitex测试发送时间 + */ + private String aitexTestSendTime; + /** + * Aitex测试结果 + */ + private String aitexTestFinishResult; + /** + * SGS测试发送时间 + */ + private String sgsTestSendTime; + /** + * SGS测试结果 + */ + private String sgsTestFinishResult; + /** + * Barcode sticker arrival time + */ + private String barcodeStickerArrivalTime; + /** + * 最晚包材到货时间 + */ + private String latestArrivalTime; + /** + * 最晚订舱+报关资料时间 + */ + private String latestBkTime; + + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private String orderStatus; +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageVO.java index f15dd22..537bdda 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderTrackStageVO.java @@ -78,5 +78,8 @@ public class OrderTrackStageVO implements Serializable { */ private String latestBkTime; - + /** + * 订单状态:枚举类 OrderStatusEnum + */ + private Integer orderStatus; } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderUnlockFieldApplyVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderUnlockFieldApplyVO.java new file mode 100644 index 0000000..66df5f0 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/order/OrderUnlockFieldApplyVO.java @@ -0,0 +1,49 @@ +package com.order.erp.domain.vo.order; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @author makejava + * @since 2023-09-08 15:26:43 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class OrderUnlockFieldApplyVO implements Serializable { + + @NotNull(message = "订单id不能为空!") + private Long orderId; + + /** + * 基础信息字段 + */ + private OrderBaseFieldVO baseFields; + + /** + * 利润分析字段 + */ + private OrderProfitAnalysisFieldVO profitAnalysisFields; + + /** + * 项目报告书字段 + */ + private OrderCompletionReportFieldVO reportFields; + + /** + * 跟单字段 + */ + private OrderTrackStageFieldVO trackStageFields; + + /** + * 质检字段 + */ + private OrderInspectionStageFieldVO inspectionStageFields; + +} diff --git a/src/main/java/com/order/erp/service/admin/DictionaryService.java b/src/main/java/com/order/erp/service/admin/DictionaryService.java index c56a0fb..99b38f6 100644 --- a/src/main/java/com/order/erp/service/admin/DictionaryService.java +++ b/src/main/java/com/order/erp/service/admin/DictionaryService.java @@ -31,6 +31,20 @@ public interface DictionaryService extends IService<DictionaryDO> { ServerResult list(DictionaryQueryVO dictionaryQueryVO); /** + * + * @param dictionaryQueryVO + * @return + */ + ServerResult listByPage(DictionaryQueryVO dictionaryQueryVO); + + /** + * + * @param dictionaryQueryVO + * @return + */ + ServerResult getAll(DictionaryQueryVO dictionaryQueryVO); + + /** * 新增数据 * * @param dictionaryVO 数据VO diff --git a/src/main/java/com/order/erp/service/admin/impl/DictionaryServiceImpl.java b/src/main/java/com/order/erp/service/admin/impl/DictionaryServiceImpl.java index 25d0b07..0406cb4 100644 --- a/src/main/java/com/order/erp/service/admin/impl/DictionaryServiceImpl.java +++ b/src/main/java/com/order/erp/service/admin/impl/DictionaryServiceImpl.java @@ -2,20 +2,29 @@ package com.order.erp.service.admin.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +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.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.order.erp.common.constant.Constant; import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.dto.BaseDO; import com.order.erp.domain.dto.admin.DictionaryDO; import com.order.erp.domain.vo.admin.DictionaryQueryVO; +import com.order.erp.domain.vo.admin.DictionaryResultVO; import com.order.erp.domain.vo.admin.DictionaryVO; import com.order.erp.mapper.admin.DictionaryMapper; import com.order.erp.service.admin.DictionaryService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 字典表(Dictionary)表服务实现类 @@ -59,6 +68,51 @@ public class DictionaryServiceImpl extends ServiceImpl<DictionaryMapper, Diction return ServerResult.success(); } + @Override + public ServerResult listByPage(DictionaryQueryVO queryVO) { + + LambdaQueryWrapper<DictionaryDO> queryWrapper = buildQueryByParam(queryVO); + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize()); + IPage<DictionaryDO> iPage = page(page, queryWrapper); + + Page<DictionaryResultVO> webVOPage = new Page<>(); + List<DictionaryDO> dictionaryDOList = iPage.getRecords(); + if (CollectionUtils.isNotEmpty(dictionaryDOList)) { + List<DictionaryResultVO> queryVos = dictionaryDOList.stream().map(x -> { + DictionaryResultVO resultVO = new DictionaryResultVO(); + BeanUtils.copyProperties(x, resultVO); + return resultVO; + }).collect(Collectors.toList()); + webVOPage.setRecords(queryVos); + } + BeanUtils.copyProperties(page, webVOPage, "records"); + return ServerResult.success(webVOPage); + } + + /** + * @param queryVO + * @return + */ + private LambdaQueryWrapper<DictionaryDO> buildQueryByParam(DictionaryQueryVO queryVO) { + return new LambdaQueryWrapper<DictionaryDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .like(StringUtils.isNotBlank(queryVO.getDictName()), DictionaryDO::getDictName, queryVO.getDictName()) + .eq(StringUtils.isNotBlank(queryVO.getDictCode()), DictionaryDO::getDictCode, queryVO.getDictCode()); + } + + @Override + public ServerResult getAll(DictionaryQueryVO dictionaryQueryVO) { + List<DictionaryDO> dictionaryDOList = list(buildQueryByParam(dictionaryQueryVO)); + if (CollectionUtils.isEmpty(dictionaryDOList)) { + return ServerResult.success(); + } + return ServerResult.success(dictionaryDOList.stream().map(x -> { + DictionaryResultVO resultVO = new DictionaryResultVO(); + BeanUtils.copyProperties(x, resultVO); + return resultVO; + }).collect(Collectors.toList())); + } + /** * 新增数据 * diff --git a/src/main/java/com/order/erp/service/order/OrderBaseInfoService.java b/src/main/java/com/order/erp/service/order/OrderBaseInfoService.java index 7e75b88..de6c124 100644 --- a/src/main/java/com/order/erp/service/order/OrderBaseInfoService.java +++ b/src/main/java/com/order/erp/service/order/OrderBaseInfoService.java @@ -3,9 +3,7 @@ package com.order.erp.service.order; import com.baomidou.mybatisplus.extension.service.IService; import com.order.erp.common.constant.ServerResult; import com.order.erp.domain.dto.order.OrderBaseInfoDO; -import com.order.erp.domain.vo.order.OrderAddVO; -import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO; -import com.order.erp.domain.vo.order.OrderBaseInfoVO; +import com.order.erp.domain.vo.order.*; /** * 订单基础信息表(OrderBaseInfo)表服务接口 @@ -40,6 +38,13 @@ public interface OrderBaseInfoService extends IService<OrderBaseInfoDO> { ServerResult listByPage(OrderBaseInfoQueryVO orderBaseInfoQueryVO); /** + * + * @param fieldVO + * @return + */ + ServerResult fieldUnlockApply(OrderUnlockFieldApplyVO fieldVO); + + /** * 新增数据 * * @param orderAddVO 数据VO diff --git a/src/main/java/com/order/erp/service/order/OrderFieldLockApplyService.java b/src/main/java/com/order/erp/service/order/OrderFieldLockApplyService.java index 40455a4..9c0812d 100644 --- a/src/main/java/com/order/erp/service/order/OrderFieldLockApplyService.java +++ b/src/main/java/com/order/erp/service/order/OrderFieldLockApplyService.java @@ -3,6 +3,7 @@ package com.order.erp.service.order; import com.baomidou.mybatisplus.extension.service.IService; import com.order.erp.common.constant.ServerResult; import com.order.erp.domain.dto.order.OrderFieldLockApplyDO; +import com.order.erp.domain.vo.order.AuditVO; import com.order.erp.domain.vo.order.OrderFieldLockApplyQueryVO; import com.order.erp.domain.vo.order.OrderFieldLockApplyVO; @@ -31,6 +32,12 @@ public interface OrderFieldLockApplyService extends IService<OrderFieldLockApply ServerResult list(OrderFieldLockApplyQueryVO orderFieldLockApplyQueryVO); /** + * @param orderFieldLockApplyQueryVO + * @return + */ + ServerResult listByPage(OrderFieldLockApplyQueryVO orderFieldLockApplyQueryVO); + + /** * 新增数据 * * @param orderFieldLockApplyVO 数据VO @@ -39,6 +46,12 @@ public interface OrderFieldLockApplyService extends IService<OrderFieldLockApply ServerResult add(OrderFieldLockApplyVO orderFieldLockApplyVO); /** + * @param auditVO + * @return + */ + ServerResult doAudit(AuditVO auditVO); + + /** * 修改数据 * * @param orderFieldLockApplyVO 数据VO diff --git a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java index 8353fd5..9bf7fa8 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java @@ -2,6 +2,7 @@ package com.order.erp.service.order.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -13,6 +14,12 @@ import com.canrd.shop.common.constant.ServerResultCode; import com.order.erp.common.constant.Constant; import com.order.erp.common.constant.ServerResult; import com.order.erp.common.exception.BusinessException; +import com.order.erp.common.utils.OrderFieldUtils; +import com.order.erp.config.DataScope; +import com.order.erp.domain.ApplyStatusEnum; +import com.order.erp.domain.ApplyTypeEnum; +import com.order.erp.domain.OrderLockFieldEnum; +import com.order.erp.domain.OrderStatusEnum; import com.order.erp.domain.dto.BaseDO; import com.order.erp.domain.dto.order.*; import com.order.erp.domain.vo.order.*; @@ -53,6 +60,15 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O @Resource private OrderInspectionStageService inspectionStageService; + @Resource + private OrderFieldLockRecordService fieldLockRecordService; + + @Resource + private OrderFieldLockApplyService orderFieldLockApplyService; + + @Resource + private DataScope dataScope; + /** * 通过ID查询单条数据 * <p> @@ -111,12 +127,61 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O // 填充质检信息 fillInspectionStageInfo(resultVOList); + // 填充字段锁定信息 + fillLockFields(resultVOList); + webVOPage.setRecords(resultVOList); } BeanUtils.copyProperties(page, webVOPage, "records"); return ServerResult.success(webVOPage); } + @Override + public ServerResult fieldUnlockApply(OrderUnlockFieldApplyVO fieldVO) { + Long userId = dataScope.getLoginUserId(); + checkApply(fieldVO, userId); + + OrderFieldLockApplyDO applyDO = initOrderFieldLockApplyDO(fieldVO, userId); + + orderFieldLockApplyService.save(applyDO); + return ServerResult.success(); + } + + /** + * @param fieldVO + * @param userId + */ + private void checkApply(OrderUnlockFieldApplyVO fieldVO, Long userId) { + List<OrderFieldLockApplyDO> applyDOS = orderFieldLockApplyService.list(new LambdaQueryWrapper<OrderFieldLockApplyDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(OrderFieldLockApplyDO::getOrderId, fieldVO.getOrderId()) + .eq(OrderFieldLockApplyDO::getApplyUserId, userId) + .eq(OrderFieldLockApplyDO::getType, ApplyTypeEnum.FIELD_EDIT_APPLY.getType()) + .eq(OrderFieldLockApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus())); + if (CollectionUtils.isNotEmpty(applyDOS)) { + throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST); + } + } + + /** + * @param fieldVO + * @param userId + * @return + */ + private OrderFieldLockApplyDO initOrderFieldLockApplyDO(OrderUnlockFieldApplyVO fieldVO, Long userId) { + OrderLockFieldVO lockFieldVO = new OrderLockFieldVO(); + BeanUtils.copyProperties(fieldVO, lockFieldVO); + return OrderFieldLockApplyDO.builder() + .applyUserId(userId) + .auditUserId(null) + .fields(JSONObject.toJSONString(lockFieldVO)) + .orderId(fieldVO.getOrderId()) + .type(ApplyTypeEnum.FIELD_EDIT_APPLY.getType()) + .remark(ApplyTypeEnum.FIELD_EDIT_APPLY.getDesc()) + .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) + .build(); + } + /** * @param orderInfoResultVOList */ @@ -129,18 +194,19 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O List<OrderProfitAnalysisDO> orderProfitAnalysisDOS = profitAnalysisService.list(new LambdaQueryWrapper<OrderProfitAnalysisDO>() .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) .in(OrderProfitAnalysisDO::getOrderId, orderIds)); - if (CollectionUtils.isEmpty(orderProfitAnalysisDOS)) { - return; + + if (CollectionUtils.isNotEmpty(orderProfitAnalysisDOS)) { + Map<Long, OrderProfitAnalysisDO> profitAnalysisDOMap = orderProfitAnalysisDOS.stream().collect(Collectors.toMap(OrderProfitAnalysisDO::getOrderId, Function.identity())); + orderInfoResultVOList.forEach(result -> { + if (profitAnalysisDOMap.containsKey(result.getId())) { + OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisDOMap.get(result.getId()); + OrderProfitAnalysisVO profitAnalysisVO = new OrderProfitAnalysisVO(); + BeanUtils.copyProperties(profitAnalysisDO, profitAnalysisVO); + result.setProfitAnalysisInfo(profitAnalysisVO); + } + }); } - Map<Long, OrderProfitAnalysisDO> profitAnalysisDOMap = orderProfitAnalysisDOS.stream().collect(Collectors.toMap(OrderProfitAnalysisDO::getOrderId, Function.identity())); - orderInfoResultVOList.forEach(result -> { - if (profitAnalysisDOMap.containsKey(result.getId())) { - OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisDOMap.get(result.getId()); - OrderProfitAnalysisVO profitAnalysisVO = new OrderProfitAnalysisVO(); - BeanUtils.copyProperties(profitAnalysisDO, profitAnalysisVO); - result.setProfitAnalysisInfo(profitAnalysisVO); - } - }); + } /** @@ -198,6 +264,45 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O /** * @param orderInfoResultVOList */ + private void fillLockFields(List<OrderInfoResultVO> orderInfoResultVOList) { + if (CollectionUtils.isEmpty(orderInfoResultVOList)) { + return; + } + + Set<Long> orderIds = orderInfoResultVOList.stream().map(OrderInfoResultVO::getId).collect(Collectors.toSet()); + + List<OrderFieldLockRecordDO> fieldLockRecordDOList = fieldLockRecordService.list(new LambdaQueryWrapper<OrderFieldLockRecordDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(OrderFieldLockRecordDO::getUserId, dataScope.getLoginUserId()) + .in(OrderFieldLockRecordDO::getOrderId, orderIds)); + + if (CollectionUtils.isNotEmpty(fieldLockRecordDOList)) { + Map<Long, OrderFieldLockRecordDO> recordDOMap = fieldLockRecordDOList.stream().collect(Collectors.toMap(OrderFieldLockRecordDO::getOrderId, Function.identity())); + orderInfoResultVOList.forEach(x -> { + OrderFieldLockRecordDO recordDO = recordDOMap.get(x.getId()); + if (Objects.nonNull(recordDO)) { + String fields = recordDO.getFields(); + if (StringUtils.isNotBlank(fields)) { + OrderLockFieldVO fieldVO = JSONObject.parseObject(fields, OrderLockFieldVO.class); + x.setLockFields(fieldVO); + } else { + x.setLockFields(OrderFieldUtils.initField(OrderLockFieldEnum.LOCKED)); + } + } else { + x.setLockFields(OrderFieldUtils.initField(OrderLockFieldEnum.LOCKED)); + } + }); + } else { + orderInfoResultVOList.forEach(x -> { + x.setLockFields(OrderFieldUtils.initField(OrderLockFieldEnum.LOCKED)); + }); + } + + } + + /** + * @param orderInfoResultVOList + */ private void fillInspectionStageInfo(List<OrderInfoResultVO> orderInfoResultVOList) { if (CollectionUtils.isEmpty(orderInfoResultVOList)) { return; @@ -258,6 +363,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O } OrderBaseInfoDO baseInfoDO = new OrderBaseInfoDO(); BeanUtils.copyProperties(baseInfoVO, baseInfoDO); + baseInfoDO.setOrderStatus(OrderStatusEnum.CREATE_FINISH.getStatus()); save(baseInfoDO); OrderProfitAnalysisVO profitAnalysisVO = orderAddVO.getProfitAnalysisInfo(); @@ -265,6 +371,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O OrderProfitAnalysisDO profitAnalysisDO = new OrderProfitAnalysisDO(); BeanUtils.copyProperties(profitAnalysisVO, profitAnalysisDO); profitAnalysisDO.setOrderId(baseInfoDO.getId()); + profitAnalysisDO.setOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus()); profitAnalysisService.save(profitAnalysisDO); } @@ -273,6 +380,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O OrderCompletionReportDO reportDO = new OrderCompletionReportDO(); BeanUtils.copyProperties(reportVO, reportDO); reportDO.setOrderId(baseInfoDO.getId()); + reportDO.setOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus()); reportService.save(reportDO); } @@ -281,6 +389,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O OrderTrackStageDO trackStageDO = new OrderTrackStageDO(); BeanUtils.copyProperties(trackStageVO, trackStageDO); trackStageDO.setOrderId(baseInfoDO.getId()); + trackStageDO.setOrderStatus(OrderStatusEnum.TRACK_ING.getStatus()); trackStageService.save(trackStageDO); } @@ -289,6 +398,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O OrderInspectionStageDO inspectionStageDO = new OrderInspectionStageDO(); BeanUtils.copyProperties(inspectionStageVO, inspectionStageDO); inspectionStageDO.setOrderId(baseInfoDO.getId()); + inspectionStageDO.setOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus()); inspectionStageService.save(inspectionStageDO); } diff --git a/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java index 2b2d444..9e8703f 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java @@ -2,20 +2,39 @@ package com.order.erp.service.order.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.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.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.canrd.shop.common.constant.ServerResultCode; import com.order.erp.common.constant.Constant; import com.order.erp.common.constant.ServerResult; +import com.order.erp.common.exception.BusinessException; +import com.order.erp.config.DataScope; +import com.order.erp.domain.ApplyStatusEnum; +import com.order.erp.domain.ApplyTypeEnum; +import com.order.erp.domain.dto.BaseDO; +import com.order.erp.domain.dto.order.OrderAuditLogDO; import com.order.erp.domain.dto.order.OrderFieldLockApplyDO; -import com.order.erp.domain.vo.order.OrderFieldLockApplyQueryVO; -import com.order.erp.domain.vo.order.OrderFieldLockApplyVO; +import com.order.erp.domain.dto.order.OrderFieldLockRecordDO; +import com.order.erp.domain.vo.order.*; import com.order.erp.mapper.order.OrderFieldLockApplyMapper; +import com.order.erp.service.order.OrderAuditLogService; import com.order.erp.service.order.OrderFieldLockApplyService; +import com.order.erp.service.order.OrderFieldLockRecordService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 用户订单-字段锁定申请表(OrderFieldLockApply)表服务实现类 @@ -27,6 +46,17 @@ import java.util.Objects; @Service public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockApplyMapper, OrderFieldLockApplyDO> implements OrderFieldLockApplyService { + @Resource + private DataScope dataScope; + + @Resource + private OrderFieldLockRecordService fieldLockRecordService; + + @Resource + private OrderFieldLockApplyService applyService; + + @Resource + private OrderAuditLogService auditLogService; /** * 通过ID查询单条数据 @@ -59,6 +89,42 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp return ServerResult.success(); } + @Override + public ServerResult listByPage(OrderFieldLockApplyQueryVO queryVO) { + LambdaQueryWrapper<OrderFieldLockApplyDO> queryWrapper = buildQueryByParam(queryVO); + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize()); + IPage<OrderFieldLockApplyDO> iPage = page(page, queryWrapper); + + Page<OrderApplyResultVO> webVOPage = new Page<>(); + List<OrderFieldLockApplyDO> applyDOList = iPage.getRecords(); + if (CollectionUtils.isNotEmpty(applyDOList)) { + List<OrderApplyResultVO> resultVOList = applyDOList.stream().map(x -> { + OrderApplyResultVO resultVO = new OrderApplyResultVO(); + BeanUtils.copyProperties(x, resultVO); + String fields = x.getFields(); + if (StringUtils.isNotBlank(fields)) { + resultVO.setFieldInfos(JSONObject.parseObject(fields, OrderLockFieldVO.class)); + } + return resultVO; + }).collect(Collectors.toList()); + + webVOPage.setRecords(resultVOList); + } + BeanUtils.copyProperties(page, webVOPage, "records"); + return ServerResult.success(webVOPage); + } + + /** + * @param queryVO + * @return + */ + private LambdaQueryWrapper<OrderFieldLockApplyDO> buildQueryByParam(OrderFieldLockApplyQueryVO queryVO) { + return new LambdaQueryWrapper<OrderFieldLockApplyDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(Objects.nonNull(queryVO.getApplyUserId()), OrderFieldLockApplyDO::getApplyUserId, queryVO.getApplyUserId()) + .eq(Objects.nonNull(queryVO.getStatus()), OrderFieldLockApplyDO::getStatus, queryVO.getStatus()); + } + /** * 新增数据 * @@ -78,6 +144,71 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp return ServerResult.success(); } + @Override + public ServerResult doAudit(AuditVO auditVO) { + OrderFieldLockApplyDO applyDO = getById(auditVO.getId()); + if (Objects.isNull(applyDO)) { + throw new BusinessException(ServerResultCode.APPLY_NOT_EXIST); + } + Long auditUserId = dataScope.getLoginUserId(); + // 申请通过 + if (ApplyStatusEnum.AUDIT_PASS.getStatus().equals(auditVO.getStatus())) { + doPass(applyDO, auditUserId); + } + if (ApplyStatusEnum.AUDIT_REFUSE.getStatus().equals(auditVO.getStatus())) { + doRefuse(applyDO, auditUserId); + } + return ServerResult.success(); + } + + @Transactional(rollbackFor = Exception.class) + public void doRefuse(OrderFieldLockApplyDO applyDO, Long auditUserId) { + applyDO.setAuditUserId(auditUserId); + applyDO.setStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus()); + + OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build(); + + applyService.updateById(applyDO); + auditLogService.save(auditLogDO); + } + + /** + * @param applyDO + * @param auditUserId + */ + @Transactional(rollbackFor = Exception.class) + public void doPass(OrderFieldLockApplyDO applyDO, Long auditUserId) { + OrderFieldLockRecordDO recordDO = null; + if (ApplyTypeEnum.FIELD_EDIT_APPLY.getType().equals(applyDO.getType())) { + applyDO.setAuditUserId(auditUserId); + applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); + + recordDO = fieldLockRecordService.getOne(new LambdaQueryWrapper<OrderFieldLockRecordDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(OrderFieldLockRecordDO::getOrderId, applyDO.getOrderId()) + .eq(OrderFieldLockRecordDO::getUserId, applyDO.getApplyUserId())); + if (Objects.isNull(recordDO)) { + recordDO = OrderFieldLockRecordDO.builder() + .orderId(applyDO.getOrderId()) + .userId(applyDO.getApplyUserId()) + .fields(applyDO.getFields()).build(); + } + recordDO.setFields(applyDO.getFields()); + } + + OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build(); + + applyService.updateById(applyDO); + + if (Objects.isNull(recordDO.getId())) { + fieldLockRecordService.save(recordDO); + } else { + fieldLockRecordService.updateById(recordDO); + } + + auditLogService.save(auditLogDO); + } + /** * 修改数据 *