Commit 46ab42aa9255c67515fd484c1fb6403a1a1f4bd7

Authored by chenhang4442024
2 parents ce6134c8 beeb44bd

Merge branch 'test' of http://39.108.227.113:8001/xiemaosheng2/order-erp into ch

Showing 49 changed files with 3142 additions and 4 deletions
sql/dml_erp_bill_v2.sql 0 → 100644
  1 +DROP TABLE IF EXISTS `invoice_bill_order`;
  2 +CREATE TABLE `invoice_bill_order` (
  3 + `id` bigint NOT NULL AUTO_INCREMENT,
  4 + `invoice_no` varchar(64) NOT NULL COMMENT '发票单号',
  5 + `bg_url` varchar(512) default NULL COMMENT '报关单url地址',
  6 + `back_refund_date` varchar(64) default null COMMENT '必须回款日期',
  7 + `actual_refund_date` varchar(64) default null COMMENT '实际回款日期',
  8 + `deduct_amount` decimal(20,6) DEFAULT NULL COMMENT '发生扣款金额',
  9 + `deduct_url` varchar(512) default NULL COMMENT '扣款单url地址',
  10 + `actual_receivable_amount` decimal(20,6) DEFAULT NULL COMMENT '实际应收金额',
  11 + `actual_payed_amount1` decimal(20,6) DEFAULT NULL COMMENT '实际应付金额1',
  12 + `actual_payed_amount2` decimal(20,6) DEFAULT NULL COMMENT '实际应付金额2',
  13 + `actual_payed_amount3` decimal(20,6) DEFAULT NULL COMMENT '实际应付金额3',
  14 + `other_amount` decimal(20,6) DEFAULT NULL COMMENT '其他费用金额',
  15 + `status` INT NOT NULL COMMENT '总经理审核状态 0:待审核、1:审核通过,2:审核驳回',
  16 + `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除',
  17 + `create_time` DATETIME NOT NULL COMMENT '创建时间',
  18 + `create_by` varchar(64) NOT NULL COMMENT '创建人',
  19 + `modify_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  20 + `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人',
  21 + `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段',
  22 + PRIMARY KEY (`id`)
  23 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应收款账单表';
  24 +
  25 +DROP TABLE IF EXISTS `invoice_bill_mapping`;
  26 +CREATE TABLE `invoice_bill_mapping` (
  27 + `id` bigint NOT NULL AUTO_INCREMENT,
  28 + `invoice_no` varchar(64) NOT NULL COMMENT '发票单号',
  29 + `invoice_bill_id` bigint DEFAULT '0' COMMENT 'invoice账单id',
  30 + `order_id` bigint DEFAULT '0' COMMENT '订单id',
  31 + `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除',
  32 + `create_time` DATETIME NOT NULL COMMENT '创建时间',
  33 + `create_by` varchar(64) NOT NULL COMMENT '创建人',
  34 + `modify_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  35 + `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人',
  36 + `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段',
  37 + PRIMARY KEY (`id`)
  38 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应收款账单关联订单映射表';
  39 +
  40 +
  41 +DROP TABLE IF EXISTS `produce_payment_check_bill_order`;
  42 +CREATE TABLE `produce_payment_check_bill_order` (
  43 + `id` bigint NOT NULL AUTO_INCREMENT,
  44 + `check_no` varchar(64) NOT NULL COMMENT '生产科对账单',
  45 + `invoice_url` varchar(512) default NULL COMMENT '发票url地址',
  46 + `deduct_pdf_url` varchar(512) default NULL COMMENT '扣款单url地址',
  47 + `payed_date` varchar(64) default null COMMENT '生产科应付款日期',
  48 + `deduct_dept` varchar(64) default null COMMENT '生产科扣款责任部门',
  49 + `deduct_amount` decimal(20,6) DEFAULT NULL COMMENT '生产科扣款金额',
  50 + `actual_payed_amount` decimal(20,6) DEFAULT NULL COMMENT '实际应付金额',
  51 + `status` INT NOT NULL COMMENT '总经理审核状态 0:待审核、1:审核通过,2:审核驳回',
  52 + `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除',
  53 + `create_time` DATETIME NOT NULL COMMENT '创建时间',
  54 + `create_by` varchar(64) NOT NULL COMMENT '创建人',
  55 + `modify_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  56 + `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人',
  57 + `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段',
  58 + PRIMARY KEY (`id`)
  59 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产科对账单应收账单';
  60 +
  61 +DROP TABLE IF EXISTS `check_bill_mapping`;
  62 +CREATE TABLE `check_bill_mapping` (
  63 + `id` bigint NOT NULL AUTO_INCREMENT,
  64 + `check_no` varchar(64) NOT NULL COMMENT '生产科对账单号',
  65 + `check_bill_id` bigint DEFAULT '0' COMMENT 'check账单id',
  66 + `order_id` bigint DEFAULT '0' COMMENT '订单id',
  67 + `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除',
  68 + `create_time` DATETIME NOT NULL COMMENT '创建时间',
  69 + `create_by` varchar(64) NOT NULL COMMENT '创建人',
  70 + `modify_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  71 + `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人',
  72 + `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段',
  73 + PRIMARY KEY (`id`)
  74 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产科对账单应收账单映射表';
  75 +
src/main/java/com/order/erp/controller/InvoiceBillOrderController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.annotation.AnonymousAccess;
  4 +import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.common.excel4j.exceptions.Excel4JException;
  6 +import com.order.erp.common.jsr303.OperateGroup;
  7 +import com.order.erp.domain.vo.order.*;
  8 +import com.order.erp.service.order.InvoiceBillOrderService;
  9 +import io.swagger.annotations.ApiOperation;
  10 +import org.springframework.validation.annotation.Validated;
  11 +import org.springframework.web.bind.annotation.PostMapping;
  12 +import org.springframework.web.bind.annotation.RequestBody;
  13 +import org.springframework.web.bind.annotation.RequestMapping;
  14 +import org.springframework.web.bind.annotation.RestController;
  15 +
  16 +import javax.annotation.Resource;
  17 +import javax.servlet.http.HttpServletResponse;
  18 +import java.io.IOException;
  19 +
  20 +/**
  21 + * 应收款账单表(InvoiceBillOrder)表控制层
  22 + *
  23 + * @author makejava
  24 + * @since 2024-08-05 16:26:34
  25 + */
  26 +@RestController
  27 +@RequestMapping("/order/erp/invoice_bill")
  28 +public class InvoiceBillOrderController {
  29 + /**
  30 + * 服务对象
  31 + */
  32 + @Resource
  33 + private InvoiceBillOrderService invoiceBillOrderService;
  34 +
  35 + /**
  36 + * 分页查询
  37 + *
  38 + * @param invoiceBillOrderQueryVO 查询条件
  39 + * @return 查询结果
  40 + */
  41 + @PostMapping("/list_by_page")
  42 + public ServerResult listByPage(@RequestBody @Validated({OperateGroup.List.class}) InvoiceBillOrderQueryVO invoiceBillOrderQueryVO) {
  43 + return invoiceBillOrderService.listByPage(invoiceBillOrderQueryVO);
  44 + }
  45 +
  46 + /**
  47 + * 基础订单查询
  48 + *
  49 + * @param queryVO 查询条件
  50 + * @return 查询结果
  51 + */
  52 + @PostMapping("/list_base_order_info_by")
  53 + public ServerResult listBaseOrderInfoBy(@RequestBody @Validated InvoiceBaseOrderQueryVO queryVO) {
  54 + return invoiceBillOrderService.listBaseOrderInfoBy(queryVO);
  55 + }
  56 +
  57 + /**
  58 + * 分析列表
  59 + *
  60 + * @param queryVO 查询条件
  61 + * @return 查询结果
  62 + */
  63 + @PostMapping("/list_analysis_by")
  64 + public ServerResult listAnalysisBy(@RequestBody @Validated({OperateGroup.List.class}) InvoiceBillAnalysisVO queryVO) {
  65 + return invoiceBillOrderService.listAnalysisBy(queryVO);
  66 + }
  67 +
  68 + /**
  69 + * 导出分析列表
  70 + *
  71 + * @param queryVO 查询条件
  72 + * @return 查询结果
  73 + */
  74 + @PostMapping(value = "/export")
  75 + @ApiOperation("导出分析列表")
  76 + @AnonymousAccess
  77 + public void export(HttpServletResponse response, @RequestBody @Validated InvoiceBillAnalysisVO queryVO) throws IOException, Excel4JException {
  78 + invoiceBillOrderService.export(response, queryVO);
  79 + }
  80 +
  81 + /**
  82 + * 创建invoice单据
  83 + *
  84 + * @param createVO 数据VO
  85 + * @return 新增结果
  86 + */
  87 + @PostMapping("/create")
  88 + public ServerResult create(@RequestBody InvoiceBillCreateVO createVO) {
  89 + return invoiceBillOrderService.create(createVO);
  90 + }
  91 +
  92 + /**
  93 + * 获取必须回款日期
  94 + *
  95 + * @param createVO 数据VO
  96 + * @return 新增结果
  97 + */
  98 + @PostMapping("/get_back_refund_date")
  99 + public ServerResult getBackRefundDate(@RequestBody InvoiceBillCreateVO createVO) {
  100 + return invoiceBillOrderService.getBackRefundDate(createVO);
  101 + }
  102 +
  103 + /**
  104 + * 更新扣款信息
  105 + *
  106 + * @param deductInfoVO 数据VO
  107 + * @return 编辑结果
  108 + */
  109 + @PostMapping("/update_deduct_info")
  110 + public ServerResult updateDeductInfo(@RequestBody InvoiceBillDeductInfoVO deductInfoVO) {
  111 + return invoiceBillOrderService.updateDeductInfo(deductInfoVO);
  112 + }
  113 +
  114 + /**
  115 + * 更新其他金额信息
  116 + *
  117 + * @param amountInfoVO 数据VO
  118 + * @return 编辑结果
  119 + */
  120 + @PostMapping("/update_amount_info")
  121 + public ServerResult updateAmountInfo(@RequestBody InvoiceBillAmountInfoVO amountInfoVO) {
  122 + return invoiceBillOrderService.updateAmountInfo(amountInfoVO);
  123 + }
  124 +
  125 + /**
  126 + * 提交审核
  127 + *
  128 + * @param commitApplyVO 数据VO
  129 + * @return 编辑结果
  130 + */
  131 + @PostMapping("/commit_apply")
  132 + public ServerResult commitApply(@RequestBody InvoiceBillCommitApplyVO commitApplyVO) {
  133 + return invoiceBillOrderService.commitApply(commitApplyVO);
  134 + }
  135 +
  136 + /**
  137 + * 删除数据
  138 + *
  139 + * @param invoiceBillOrderQueryVO 查询条件
  140 + * @return 删除是否成功
  141 + */
  142 + @PostMapping("/delete_by_id")
  143 + public ServerResult deleteById(@RequestBody InvoiceBillOrderQueryVO invoiceBillOrderQueryVO) {
  144 + return invoiceBillOrderService.deleteById(invoiceBillOrderQueryVO);
  145 + }
  146 +
  147 +}
  148 +
src/main/java/com/order/erp/controller/LocalStorageController.java
@@ -31,11 +31,18 @@ public class LocalStorageController { @@ -31,11 +31,18 @@ public class LocalStorageController {
31 return localStorageService.create(name, file); 31 return localStorageService.create(name, file);
32 } 32 }
33 33
34 - @ApiOperation("上传文件到oss服务") 34 + @ApiOperation("上传图片到oss服务")
35 @PostMapping(value = "/upload_oss") 35 @PostMapping(value = "/upload_oss")
36 @AnonymousAccess 36 @AnonymousAccess
37 public ServerResult upload2oss(@RequestParam String name, @RequestParam("file") MultipartFile file) { 37 public ServerResult upload2oss(@RequestParam String name, @RequestParam("file") MultipartFile file) {
38 return localStorageService.uploadByAliOss(name, file); 38 return localStorageService.uploadByAliOss(name, file);
39 } 39 }
40 40
  41 + @ApiOperation("上传文件到oss服务")
  42 + @PostMapping(value = "/upload_file_oss")
  43 + @AnonymousAccess
  44 + public ServerResult uploadFile2oss(@RequestParam String name, @RequestParam("file") MultipartFile file) {
  45 + return localStorageService.uploadFileByAliOss(name, file);
  46 + }
  47 +
41 } 48 }
42 \ No newline at end of file 49 \ No newline at end of file
src/main/java/com/order/erp/controller/ProducePaymentCheckBillOrderController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.common.jsr303.OperateGroup;
  5 +import com.order.erp.domain.vo.order.ProducePaymentCheckBillOrderQueryVO;
  6 +import com.order.erp.domain.vo.order.ProducePaymentCheckBillOrderVO;
  7 +import com.order.erp.service.order.ProducePaymentCheckBillOrderService;
  8 +import org.springframework.validation.annotation.Validated;
  9 +import org.springframework.web.bind.annotation.PostMapping;
  10 +import org.springframework.web.bind.annotation.RequestBody;
  11 +import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RestController;
  13 +
  14 +import javax.annotation.Resource;
  15 +
  16 +/**
  17 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)表控制层
  18 + *
  19 + * @author makejava
  20 + * @since 2024-08-05 16:26:35
  21 + */
  22 +@RestController
  23 +@RequestMapping("/order/erp/check_bill/")
  24 +public class ProducePaymentCheckBillOrderController {
  25 + /**
  26 + * 服务对象
  27 + */
  28 + @Resource
  29 + private ProducePaymentCheckBillOrderService producePaymentCheckBillOrderService;
  30 +
  31 + /**
  32 + * 分页查询
  33 + *
  34 + * @param producePaymentCheckBillOrderQueryVO 查询条件
  35 + * @return 查询结果
  36 + */
  37 + @PostMapping("/list")
  38 + public ServerResult list(@RequestBody @Validated({OperateGroup.List.class}) ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO) {
  39 + return producePaymentCheckBillOrderService.list(producePaymentCheckBillOrderQueryVO);
  40 + }
  41 +
  42 + /**
  43 + * 通过主键查询单条数据
  44 + *
  45 + * @param producePaymentCheckBillOrderQueryVO 查询条件
  46 + * @return 单条数据
  47 + */
  48 + @PostMapping("/query_by_id")
  49 + public ServerResult queryById(@RequestBody ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO) {
  50 + return producePaymentCheckBillOrderService.queryById(producePaymentCheckBillOrderQueryVO);
  51 + }
  52 +
  53 + /**
  54 + * 新增数据
  55 + *
  56 + * @param producePaymentCheckBillOrderVO 数据VO
  57 + * @return 新增结果
  58 + */
  59 + @PostMapping("/add")
  60 + public ServerResult add(@RequestBody ProducePaymentCheckBillOrderVO producePaymentCheckBillOrderVO) {
  61 + return producePaymentCheckBillOrderService.add(producePaymentCheckBillOrderVO);
  62 + }
  63 +
  64 + /**
  65 + * 编辑数据
  66 + *
  67 + * @param producePaymentCheckBillOrderVO 数据VO
  68 + * @return 编辑结果
  69 + */
  70 + @PostMapping("/edit")
  71 + public ServerResult edit(@RequestBody ProducePaymentCheckBillOrderVO producePaymentCheckBillOrderVO) {
  72 + return producePaymentCheckBillOrderService.edit(producePaymentCheckBillOrderVO);
  73 + }
  74 +
  75 + /**
  76 + * 删除数据
  77 + *
  78 + * @param producePaymentCheckBillOrderQueryVO 查询条件
  79 + * @return 删除是否成功
  80 + */
  81 + @PostMapping("/delete_by_id")
  82 + public ServerResult deleteById(@RequestBody ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO) {
  83 + return producePaymentCheckBillOrderService.deleteById(producePaymentCheckBillOrderQueryVO);
  84 + }
  85 +
  86 +}
  87 +
src/main/java/com/order/erp/domain/ApplyStatusEnum.java
@@ -13,6 +13,8 @@ import lombok.Getter; @@ -13,6 +13,8 @@ import lombok.Getter;
13 @AllArgsConstructor 13 @AllArgsConstructor
14 public enum ApplyStatusEnum { 14 public enum ApplyStatusEnum {
15 15
  16 + NO_COMMIT(-1, "未提交审核"),
  17 +
16 WAIT_AUDIT(0, "待审批"), 18 WAIT_AUDIT(0, "待审批"),
17 19
18 AUDIT_PASS(10, "已通过"), 20 AUDIT_PASS(10, "已通过"),
src/main/java/com/order/erp/domain/ApplyTypeEnum.java
@@ -18,6 +18,10 @@ public enum ApplyTypeEnum { @@ -18,6 +18,10 @@ public enum ApplyTypeEnum {
18 ORDER_PROFIT_APPLY(10, "利润分析申请"), 18 ORDER_PROFIT_APPLY(10, "利润分析申请"),
19 19
20 ORDER_REPORT_APPLY(20, "项目报告书申请"), 20 ORDER_REPORT_APPLY(20, "项目报告书申请"),
  21 +
  22 + INVOICE_BILL_APPLY(30, "应收账单申请"),
  23 +
  24 + CHECK_BILL_APPLY(40, "应付账单申请"),
21 ; 25 ;
22 private Integer type; 26 private Integer type;
23 27
src/main/java/com/order/erp/domain/dto/order/CheckBillMappingDO.java 0 → 100644
  1 +package com.order.erp.domain.dto.order;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.TableName;
  4 +import com.order.erp.domain.dto.BaseDO;
  5 +import lombok.*;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +import java.io.Serializable;
  9 +
  10 +/**
  11 + * 生产科对账单应收账单映射表(CheckBillMapping)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:36
  15 + */
  16 +@TableName("check_bill_mapping")
  17 +@Data
  18 +@AllArgsConstructor
  19 +@ToString
  20 +@NoArgsConstructor
  21 +@EqualsAndHashCode(callSuper = false)
  22 +@SuperBuilder
  23 +public class CheckBillMappingDO extends BaseDO implements Serializable {
  24 + private static final long serialVersionUID = 199786248752278040L;
  25 +
  26 + private Long id;
  27 + /**
  28 + * 生产科对账单号
  29 + */
  30 + private String checkNo;
  31 + /**
  32 + * check账单id
  33 + */
  34 + private Long checkBillId;
  35 + /**
  36 + * 订单id
  37 + */
  38 + private Long orderId;
  39 +
  40 +}
src/main/java/com/order/erp/domain/dto/order/InvoiceBillMappingDO.java 0 → 100644
  1 +package com.order.erp.domain.dto.order;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.TableName;
  4 +import com.order.erp.domain.dto.BaseDO;
  5 +import lombok.*;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +import java.io.Serializable;
  9 +
  10 +/**
  11 + * 应收款账单关联订单映射表(InvoiceBillMapping)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:36
  15 + */
  16 +@TableName("invoice_bill_mapping")
  17 +@Data
  18 +@AllArgsConstructor
  19 +@ToString
  20 +@NoArgsConstructor
  21 +@EqualsAndHashCode(callSuper = false)
  22 +@SuperBuilder
  23 +public class InvoiceBillMappingDO extends BaseDO implements Serializable {
  24 +
  25 + private Long id;
  26 + /**
  27 + * 发票单号
  28 + */
  29 + private String invoiceNo;
  30 + /**
  31 + * invoice账单id
  32 + */
  33 + private Long invoiceBillId;
  34 + /**
  35 + * 订单id
  36 + */
  37 + private Long orderId;
  38 +
  39 +}
src/main/java/com/order/erp/domain/dto/order/InvoiceBillOrderDO.java 0 → 100644
  1 +package com.order.erp.domain.dto.order;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.TableName;
  4 +import com.order.erp.domain.dto.BaseDO;
  5 +import lombok.*;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +import java.io.Serializable;
  9 +import java.math.BigDecimal;
  10 +
  11 +/**
  12 + * 应收款账单表(InvoiceBillOrder)实体类
  13 + *
  14 + * @author makejava
  15 + * @since 2024-08-05 16:26:33
  16 + */
  17 +@TableName("invoice_bill_order")
  18 +@Data
  19 +@AllArgsConstructor
  20 +@ToString
  21 +@NoArgsConstructor
  22 +@EqualsAndHashCode(callSuper = false)
  23 +@SuperBuilder
  24 +public class InvoiceBillOrderDO extends BaseDO implements Serializable {
  25 +
  26 + private Long id;
  27 + /**
  28 + * 发票单号
  29 + */
  30 + private String invoiceNo;
  31 + /**
  32 + * 报关单url地址
  33 + */
  34 + private String bgUrl;
  35 + /**
  36 + * 必须回款日期
  37 + */
  38 + private String backRefundDate;
  39 + /**
  40 + * 实际回款日期
  41 + */
  42 + private String actualRefundDate;
  43 +
  44 + /**
  45 + * 发生扣款金额
  46 + */
  47 + private BigDecimal deductAmount;
  48 + /**
  49 + * 扣款单url地址
  50 + */
  51 + private String deductUrl;
  52 + /**
  53 + * 实际应收金额
  54 + */
  55 + private BigDecimal actualReceivableAmount;
  56 + /**
  57 + * 实际应付金额1
  58 + */
  59 + private BigDecimal actualPayedAmount1;
  60 + /**
  61 + * 实际应付金额2
  62 + */
  63 + private BigDecimal actualPayedAmount2;
  64 + /**
  65 + * 实际应付金额3
  66 + */
  67 + private BigDecimal actualPayedAmount3;
  68 + /**
  69 + * 其他费用金额
  70 + */
  71 + private BigDecimal otherAmount;
  72 + /**
  73 + * 总经理审核状态 0:待审核、1:审核通过,2:审核驳回
  74 + */
  75 + private Integer status;
  76 +
  77 +}
src/main/java/com/order/erp/domain/dto/order/ProducePaymentCheckBillOrderDO.java 0 → 100644
  1 +package com.order.erp.domain.dto.order;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.TableName;
  4 +import com.order.erp.domain.dto.BaseDO;
  5 +import lombok.*;
  6 +import lombok.experimental.SuperBuilder;
  7 +
  8 +import java.io.Serializable;
  9 +
  10 +/**
  11 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:35
  15 + */
  16 +@TableName("produce_payment_check_bill_order")
  17 +@Data
  18 +@AllArgsConstructor
  19 +@ToString
  20 +@NoArgsConstructor
  21 +@EqualsAndHashCode(callSuper = false)
  22 +@SuperBuilder
  23 +public class ProducePaymentCheckBillOrderDO extends BaseDO implements Serializable {
  24 +
  25 + private Long id;
  26 + /**
  27 + * 生产科对账单
  28 + */
  29 + private String checkNo;
  30 + /**
  31 + * 发票url地址
  32 + */
  33 + private String invoiceUrl;
  34 + /**
  35 + * 扣款单url地址
  36 + */
  37 + private String deductPdfUrl;
  38 + /**
  39 + * 生产科应付款日期
  40 + */
  41 + private String payedDate;
  42 + /**
  43 + * 生产科扣款责任部门
  44 + */
  45 + private String deductDept;
  46 + /**
  47 + * 生产科扣款金额
  48 + */
  49 + private Double deductAmount;
  50 + /**
  51 + * 实际应付金额
  52 + */
  53 + private Double actualPayedAmount;
  54 + /**
  55 + * 总经理审核状态 0:待审核、1:审核通过,2:审核驳回
  56 + */
  57 + private Integer status;
  58 +
  59 +}
src/main/java/com/order/erp/domain/vo/FileRespVO.java 0 → 100644
  1 +package com.order.erp.domain.vo;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 文件上传实体类
  10 + *
  11 + * @author xms
  12 + * @since 2023-10-08 14:52:27
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class FileRespVO implements Serializable {
  21 +
  22 + /**
  23 + * file地址
  24 + */
  25 + private String fileUrl;
  26 +
  27 +}
src/main/java/com/order/erp/domain/vo/order/CheckBillMappingQueryVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import com.order.erp.domain.vo.BasePageVO;
  4 +import lombok.*;
  5 +import lombok.experimental.SuperBuilder;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 生产科对账单应收账单映射表(CheckBillMapping)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:37
  15 + */
  16 +@Data
  17 +@AllArgsConstructor
  18 +@ToString
  19 +@NoArgsConstructor
  20 +@EqualsAndHashCode(callSuper = false)
  21 +@SuperBuilder
  22 +public class CheckBillMappingQueryVO extends BasePageVO implements Serializable {
  23 +
  24 + private List<Long> ids;
  25 +
  26 +
  27 + private Long id;
  28 + /**
  29 + * 生产科对账单号
  30 + */
  31 + private String checkNo;
  32 + /**
  33 + * check账单id
  34 + */
  35 + private Long checkBillId;
  36 + /**
  37 + * 订单id
  38 + */
  39 + private Long orderId;
  40 +
  41 +
  42 +}
  43 +
src/main/java/com/order/erp/domain/vo/order/CheckBillMappingVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 生产科对账单应收账单映射表(CheckBillMapping)实体类
  10 + *
  11 + * @author makejava
  12 + * @since 2024-08-05 16:26:37
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class CheckBillMappingVO implements Serializable {
  21 +
  22 + private Long id;
  23 + /**
  24 + * 生产科对账单号
  25 + */
  26 + private String checkNo;
  27 + /**
  28 + * check账单id
  29 + */
  30 + private Long checkBillId;
  31 + /**
  32 + * 订单id
  33 + */
  34 + private Long orderId;
  35 +
  36 +
  37 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBaseOrderQueryVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import com.order.erp.domain.vo.BasePageVO;
  4 +import lombok.*;
  5 +import lombok.experimental.SuperBuilder;
  6 +
  7 +import javax.validation.constraints.NotBlank;
  8 +import java.io.Serializable;
  9 +
  10 +/**
  11 + * 应收款账单表(InvoiceBillOrder)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:34
  15 + */
  16 +@Data
  17 +@AllArgsConstructor
  18 +@ToString
  19 +@NoArgsConstructor
  20 +@EqualsAndHashCode(callSuper = false)
  21 +@SuperBuilder
  22 +public class InvoiceBaseOrderQueryVO extends BasePageVO implements Serializable {
  23 +
  24 + /**
  25 + * 发票单号
  26 + */
  27 + @NotBlank(message = "发票单号不能为空")
  28 + private String invoiceNo;
  29 +}
  30 +
src/main/java/com/order/erp/domain/vo/order/InvoiceBillAmountInfoVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.math.BigDecimal;
  8 +
  9 +/**
  10 + * 应收款账单 -- 其他金额信息
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceBillAmountInfoVO implements Serializable {
  22 +
  23 + private Long id;
  24 +
  25 + /**
  26 + * 报关单url地址
  27 + */
  28 + private String bgUrl;
  29 +
  30 + /**
  31 + * 实际应收金额
  32 + */
  33 + private BigDecimal actualReceivableAmount;
  34 + /**
  35 + * 实际应付金额1
  36 + */
  37 + private BigDecimal actualPayedAmount1;
  38 + /**
  39 + * 实际应付金额2
  40 + */
  41 + private BigDecimal actualPayedAmount2;
  42 + /**
  43 + * 实际应付金额3
  44 + */
  45 + private BigDecimal actualPayedAmount3;
  46 + /**
  47 + * 其他费用金额
  48 + */
  49 + private BigDecimal otherAmount;
  50 +
  51 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillAnalysisExportVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.math.BigDecimal;
  8 +
  9 +/**
  10 + * 应收款账单表(InvoiceBillOrder)实体类
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceBillAnalysisExportVO implements Serializable {
  22 +
  23 + private Long id;
  24 +
  25 + /**
  26 + * 客户编码
  27 + */
  28 + private String customerCode;
  29 +
  30 + /**
  31 + * 发票单号
  32 + */
  33 + private String invoiceNo;
  34 +
  35 + /**
  36 + * 客户总价$
  37 + */
  38 + private BigDecimal customerTotalPrice;
  39 +
  40 + /**
  41 + * 发生扣款金额
  42 + */
  43 + private BigDecimal deductAmount;
  44 +
  45 + /**
  46 + * 实际应收金额
  47 + */
  48 + private BigDecimal actualReceivableAmount;
  49 +
  50 + /**
  51 + * 实际应付金额
  52 + */
  53 + private BigDecimal actualPayedAmount;
  54 +
  55 + /**
  56 + * 实际应收 - 实际应付
  57 + * 其他费用金额汇总
  58 + */
  59 + private BigDecimal otherAmount;
  60 +
  61 + /**
  62 + * 实际应收 - 实际应付 - 其他费用金额汇总
  63 + * 其他费用金额合计
  64 + */
  65 + private BigDecimal otherTotalAmount;
  66 +
  67 + /**
  68 + * 必须回款日期
  69 + */
  70 + private String backRefundDate;
  71 +
  72 + /**
  73 + * 实际回款日期
  74 + */
  75 + private String actualRefundDate;
  76 +
  77 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillAnalysisResultVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.math.BigDecimal;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 应收款账单表(InvoiceBillOrder)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:33
  15 + */
  16 +@Data
  17 +@AllArgsConstructor
  18 +@ToString
  19 +@NoArgsConstructor
  20 +@EqualsAndHashCode(callSuper = false)
  21 +@SuperBuilder
  22 +public class InvoiceBillAnalysisResultVO implements Serializable {
  23 +
  24 +
  25 + /**
  26 + * 导出列表
  27 + */
  28 + private List<InvoiceBillAnalysisExportVO> exportVOS;
  29 +
  30 + /**
  31 + * 合计数据
  32 + */
  33 +
  34 + /**
  35 + * 客户总价$
  36 + */
  37 + private BigDecimal customerTotalPrice;
  38 +
  39 + /**
  40 + * 发生扣款金额
  41 + */
  42 + private BigDecimal deductAmount;
  43 +
  44 + /**
  45 + * 实际应收金额
  46 + */
  47 + private BigDecimal actualReceivableAmount;
  48 +
  49 + /**
  50 + * 实际应付金额
  51 + */
  52 + private BigDecimal actualPayedAmount;
  53 +
  54 + /**
  55 + * 实际应收 - 实际应付
  56 + * 其他费用金额汇总
  57 + */
  58 + private BigDecimal otherAmount;
  59 +
  60 + /**
  61 + * 实际应收 - 实际应付 - 其他费用金额汇总
  62 + * 其他费用金额合计
  63 + */
  64 + private BigDecimal otherTotalAmount;
  65 +
  66 + /**
  67 + * 合计数据
  68 + */
  69 +
  70 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillAnalysisVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 应收款账单 -- 分析
  10 + *
  11 + * @author makejava
  12 + * @since 2024-08-05 16:26:33
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@EqualsAndHashCode(callSuper = false)
  18 +@SuperBuilder
  19 +public class InvoiceBillAnalysisVO extends InvoiceBillOrderQueryVO implements Serializable {
  20 +
  21 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillCommitApplyVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 应收款账单 -- 提交审核
  10 + *
  11 + * @author makejava
  12 + * @since 2024-08-05 16:26:33
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class InvoiceBillCommitApplyVO implements Serializable {
  21 +
  22 + private Long id;
  23 +
  24 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillCreateVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * 应收款账单表(InvoiceBillOrder)实体类
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceBillCreateVO implements Serializable {
  22 + private static final long serialVersionUID = 543899167451834300L;
  23 +
  24 + private Long id;
  25 +
  26 + /**
  27 + * 发票单号
  28 + */
  29 + private String invoiceNo;
  30 +
  31 + /**
  32 + * 报关单url地址
  33 + */
  34 + private String bgUrl;
  35 +
  36 + /**
  37 + * 必须回款日期
  38 + */
  39 + private String backRefundDate;
  40 +
  41 + /**
  42 + * 订单id集合
  43 + */
  44 + private List<Long> orderIds;
  45 +
  46 +
  47 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillDeductInfoVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.math.BigDecimal;
  8 +
  9 +/**
  10 + * 应收款账单 -- 扣款信息
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceBillDeductInfoVO implements Serializable {
  22 +
  23 + private Long id;
  24 +
  25 + /**
  26 + * 发票单号
  27 + */
  28 + private String invoiceNo;
  29 +
  30 + /**
  31 + * 发生扣款金额
  32 + */
  33 + private BigDecimal deductAmount;
  34 +
  35 + /**
  36 + * 扣款单url地址
  37 + */
  38 + private String deductUrl;
  39 +
  40 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillMappingQueryVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import com.order.erp.domain.vo.BasePageVO;
  4 +import lombok.*;
  5 +import lombok.experimental.SuperBuilder;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 应收款账单关联订单映射表(InvoiceBillMapping)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:36
  15 + */
  16 +@Data
  17 +@AllArgsConstructor
  18 +@ToString
  19 +@NoArgsConstructor
  20 +@EqualsAndHashCode(callSuper = false)
  21 +@SuperBuilder
  22 +public class InvoiceBillMappingQueryVO extends BasePageVO implements Serializable {
  23 + private static final long serialVersionUID = -10772282327497511L;
  24 +
  25 + private List<Long> ids;
  26 +
  27 +
  28 + private Long id;
  29 + /**
  30 + * 发票单号
  31 + */
  32 + private String invoiceNo;
  33 + /**
  34 + * invoice账单id
  35 + */
  36 + private Long invoiceBillId;
  37 + /**
  38 + * 订单id
  39 + */
  40 + private Long orderId;
  41 +
  42 +
  43 +}
  44 +
src/main/java/com/order/erp/domain/vo/order/InvoiceBillMappingVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 应收款账单关联订单映射表(InvoiceBillMapping)实体类
  10 + *
  11 + * @author makejava
  12 + * @since 2024-08-05 16:26:36
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class InvoiceBillMappingVO implements Serializable {
  21 + private static final long serialVersionUID = -55765026730369748L;
  22 +
  23 + private Long id;
  24 + /**
  25 + * 发票单号
  26 + */
  27 + private String invoiceNo;
  28 + /**
  29 + * invoice账单id
  30 + */
  31 + private Long invoiceBillId;
  32 + /**
  33 + * 订单id
  34 + */
  35 + private Long orderId;
  36 +
  37 +
  38 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceBillOrderQueryVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import com.order.erp.domain.vo.BasePageVO;
  4 +import lombok.*;
  5 +import lombok.experimental.SuperBuilder;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 应收款账单表(InvoiceBillOrder)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:34
  15 + */
  16 +@Data
  17 +@AllArgsConstructor
  18 +@ToString
  19 +@NoArgsConstructor
  20 +@EqualsAndHashCode(callSuper = false)
  21 +@SuperBuilder
  22 +public class InvoiceBillOrderQueryVO extends BasePageVO implements Serializable {
  23 +
  24 + private List<Long> ids;
  25 +
  26 + /**
  27 + * 发票单号
  28 + */
  29 + private String invoiceNo;
  30 +
  31 + /**
  32 + * 总经理审核状态 -1,未提交审核,0:待审核、1:审核通过,2:审核驳回
  33 + */
  34 + private Integer status;
  35 +
  36 + /**
  37 + * 客户编码
  38 + */
  39 + private String customerCode;
  40 +
  41 + /**
  42 + * 项目号
  43 + */
  44 + private String projectNo;
  45 +
  46 + /**
  47 + * 生产科
  48 + */
  49 + private String productionDepartment;
  50 +
  51 + /**
  52 + * 内部编号
  53 + */
  54 + private String innerNo;
  55 +
  56 + /**
  57 + * 客户po号
  58 + */
  59 + private String customerPo;
  60 +
  61 + /**
  62 + * 开始时间
  63 + */
  64 + private String startTime;
  65 +
  66 + /**
  67 + * 结束时间
  68 + */
  69 + private String endTime;
  70 +}
  71 +
src/main/java/com/order/erp/domain/vo/order/InvoiceBillOrderVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.math.BigDecimal;
  8 +
  9 +/**
  10 + * 应收款账单表(InvoiceBillOrder)实体类
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceBillOrderVO implements Serializable {
  22 + private static final long serialVersionUID = 543899167451834300L;
  23 +
  24 + private Long id;
  25 +
  26 + /**
  27 + * 发票单号
  28 + */
  29 + private String invoiceNo;
  30 +
  31 + /**
  32 + * 报关单url地址
  33 + */
  34 + private String bgUrl;
  35 +
  36 + /**
  37 + * 必须回款日期
  38 + */
  39 + private String backRefundDate;
  40 +
  41 + /**
  42 + * 发生扣款金额
  43 + */
  44 + private BigDecimal deductAmount;
  45 +
  46 + /**
  47 + * 扣款单url地址
  48 + */
  49 + private String deductUrl;
  50 +
  51 + /**
  52 + * 实际应收金额
  53 + */
  54 + private BigDecimal actualReceivableAmount;
  55 +
  56 + /**
  57 + * 实际应付金额1
  58 + */
  59 + private BigDecimal actualPayedAmount1;
  60 +
  61 + /**
  62 + * 实际应付金额2
  63 + */
  64 + private BigDecimal actualPayedAmount2;
  65 +
  66 + /**
  67 + * 实际应付金额3
  68 + */
  69 + private BigDecimal actualPayedAmount3;
  70 +
  71 + /**
  72 + * 其他费用金额
  73 + */
  74 + private BigDecimal otherAmount;
  75 +
  76 + /**
  77 + * 总经理审核状态 0:待审核、1:审核通过,2:审核驳回
  78 + */
  79 + private Integer status;
  80 +
  81 +
  82 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceHoldTimeItemVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import com.order.erp.domain.dto.order.OrderBaseInfoDO;
  4 +import lombok.*;
  5 +import lombok.experimental.SuperBuilder;
  6 +
  7 +import java.io.Serializable;
  8 +
  9 +/**
  10 + * 应收款账单 -- holdTime
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceHoldTimeItemVO implements Serializable {
  22 +
  23 + /**
  24 + * 客户编码
  25 + */
  26 + private String customerCode;
  27 +
  28 + /**
  29 + * 订单hold时间
  30 + */
  31 + private String holdTime;
  32 +
  33 + /**
  34 + * 基础订单信息
  35 + */
  36 + private OrderBaseInfoDO baseInfoDO;
  37 +}
src/main/java/com/order/erp/domain/vo/order/InvoiceOrderBaseItemVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +import java.math.BigDecimal;
  8 +
  9 +/**
  10 + * 应收款账单表(InvoiceBillOrder)实体类
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:33
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +@EqualsAndHashCode(callSuper = false)
  20 +@SuperBuilder
  21 +public class InvoiceOrderBaseItemVO implements Serializable {
  22 +
  23 + private Long orderId;
  24 +
  25 + /**
  26 + * invoice编码
  27 + */
  28 + private String invoiceCode;
  29 +
  30 + /**
  31 + * 客户编码
  32 + */
  33 + private String customerCode;
  34 +
  35 + /**
  36 + * 客户总价$
  37 + */
  38 + private BigDecimal customerTotalPrice;
  39 +
  40 +
  41 +}
src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java
@@ -22,6 +22,10 @@ public class OrderBaseInfoVO implements Serializable { @@ -22,6 +22,10 @@ public class OrderBaseInfoVO implements Serializable {
22 22
23 private Long id; 23 private Long id;
24 /** 24 /**
  25 + * 发票单号
  26 + */
  27 + private String invoiceNo;
  28 + /**
25 * 客户编码 29 * 客户编码
26 */ 30 */
27 private String customerCode; 31 private String customerCode;
src/main/java/com/order/erp/domain/vo/order/OrderOpinionLogVO.java
1 -package com.order.erp.domain.vo.order; 1 +package com.order.erp.domain.vo.order;
2 2
3 import lombok.*; 3 import lombok.*;
4 import lombok.experimental.SuperBuilder; 4 import lombok.experimental.SuperBuilder;
src/main/java/com/order/erp/domain/vo/order/ProducePaymentCheckBillOrderQueryVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import com.order.erp.domain.vo.BasePageVO;
  4 +import lombok.*;
  5 +import lombok.experimental.SuperBuilder;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)实体类
  12 + *
  13 + * @author makejava
  14 + * @since 2024-08-05 16:26:35
  15 + */
  16 +@Data
  17 +@AllArgsConstructor
  18 +@ToString
  19 +@NoArgsConstructor
  20 +@EqualsAndHashCode(callSuper = false)
  21 +@SuperBuilder
  22 +public class ProducePaymentCheckBillOrderQueryVO extends BasePageVO implements Serializable {
  23 +
  24 + private List<Long> ids;
  25 +
  26 +
  27 + private Long id;
  28 + /**
  29 + * 生产科对账单
  30 + */
  31 + private String checkNo;
  32 + /**
  33 + * 发票url地址
  34 + */
  35 + private String invoiceUrl;
  36 + /**
  37 + * 扣款单url地址
  38 + */
  39 + private String deductPdfUrl;
  40 + /**
  41 + * 生产科应付款日期
  42 + */
  43 + private String payedDate;
  44 + /**
  45 + * 生产科扣款责任部门
  46 + */
  47 + private String deductDept;
  48 + /**
  49 + * 生产科扣款金额
  50 + */
  51 + private Double deductAmount;
  52 + /**
  53 + * 实际应付金额
  54 + */
  55 + private Double actualPayedAmount;
  56 + /**
  57 + * 总经理审核状态 0:待审核、1:审核通过,2:审核驳回
  58 + */
  59 + private Integer status;
  60 +
  61 +
  62 +}
  63 +
src/main/java/com/order/erp/domain/vo/order/ProducePaymentCheckBillOrderVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)实体类
  10 + *
  11 + * @author makejava
  12 + * @since 2024-08-05 16:26:35
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class ProducePaymentCheckBillOrderVO implements Serializable {
  21 + private static final long serialVersionUID = 239047702576286556L;
  22 +
  23 + private Long id;
  24 + /**
  25 + * 生产科对账单
  26 + */
  27 + private String checkNo;
  28 + /**
  29 + * 发票url地址
  30 + */
  31 + private String invoiceUrl;
  32 + /**
  33 + * 扣款单url地址
  34 + */
  35 + private String deductPdfUrl;
  36 + /**
  37 + * 生产科应付款日期
  38 + */
  39 + private String payedDate;
  40 + /**
  41 + * 生产科扣款责任部门
  42 + */
  43 + private String deductDept;
  44 + /**
  45 + * 生产科扣款金额
  46 + */
  47 + private Double deductAmount;
  48 + /**
  49 + * 实际应付金额
  50 + */
  51 + private Double actualPayedAmount;
  52 + /**
  53 + * 总经理审核状态 0:待审核、1:审核通过,2:审核驳回
  54 + */
  55 + private Integer status;
  56 +
  57 +
  58 +}
src/main/java/com/order/erp/mapper/order/CheckBillMappingMapper.java 0 → 100644
  1 +package com.order.erp.mapper.order;
  2 +
  3 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.order.erp.domain.dto.order.CheckBillMappingDO;
  5 +
  6 +/**
  7 + * 生产科对账单应收账单映射表(CheckBillMapping)表数据库访问层
  8 + *
  9 + * @author makejava
  10 + * @since 2024-08-05 16:26:37
  11 + */
  12 +public interface CheckBillMappingMapper extends BaseMapper<CheckBillMappingDO> {
  13 +
  14 +
  15 +}
  16 +
src/main/java/com/order/erp/mapper/order/InvoiceBillMappingMapper.java 0 → 100644
  1 +package com.order.erp.mapper.order;
  2 +
  3 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.order.erp.domain.dto.order.InvoiceBillMappingDO;
  5 +
  6 +/**
  7 + * 应收款账单关联订单映射表(InvoiceBillMapping)表数据库访问层
  8 + *
  9 + * @author makejava
  10 + * @since 2024-08-05 16:26:36
  11 + */
  12 +public interface InvoiceBillMappingMapper extends BaseMapper<InvoiceBillMappingDO> {
  13 +
  14 +
  15 +}
  16 +
src/main/java/com/order/erp/mapper/order/InvoiceBillOrderMapper.java 0 → 100644
  1 +package com.order.erp.mapper.order;
  2 +
  3 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.order.erp.domain.dto.order.InvoiceBillOrderDO;
  5 +
  6 +/**
  7 + * 应收款账单表(InvoiceBillOrder)表数据库访问层
  8 + *
  9 + * @author makejava
  10 + * @since 2024-08-05 16:26:34
  11 + */
  12 +public interface InvoiceBillOrderMapper extends BaseMapper<InvoiceBillOrderDO> {
  13 +
  14 +
  15 +}
  16 +
src/main/java/com/order/erp/mapper/order/ProducePaymentCheckBillOrderMapper.java 0 → 100644
  1 +package com.order.erp.mapper.order;
  2 +
  3 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.order.erp.domain.dto.order.ProducePaymentCheckBillOrderDO;
  5 +
  6 +/**
  7 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)表数据库访问层
  8 + *
  9 + * @author makejava
  10 + * @since 2024-08-05 16:26:35
  11 + */
  12 +public interface ProducePaymentCheckBillOrderMapper extends BaseMapper<ProducePaymentCheckBillOrderDO> {
  13 +
  14 +
  15 +}
  16 +
src/main/java/com/order/erp/service/LocalStorageService.java
@@ -24,6 +24,14 @@ public interface LocalStorageService extends IService&lt;LocalStorageDO&gt; { @@ -24,6 +24,14 @@ public interface LocalStorageService extends IService&lt;LocalStorageDO&gt; {
24 */ 24 */
25 ServerResult uploadByAliOss(String name, MultipartFile file); 25 ServerResult uploadByAliOss(String name, MultipartFile file);
26 26
  27 + /**
  28 + *
  29 + * @param name
  30 + * @param file
  31 + * @return
  32 + */
  33 + ServerResult uploadFileByAliOss(String name, MultipartFile file);
  34 +
27 ServerResult create(String name, MultipartFile file); 35 ServerResult create(String name, MultipartFile file);
28 36
29 /** 37 /**
src/main/java/com/order/erp/service/impl/LocalStorageServiceImpl.java
@@ -14,6 +14,7 @@ import com.order.erp.common.utils.FileUtil; @@ -14,6 +14,7 @@ import com.order.erp.common.utils.FileUtil;
14 import com.order.erp.common.utils.StringUtils; 14 import com.order.erp.common.utils.StringUtils;
15 import com.order.erp.config.AliOssConfig; 15 import com.order.erp.config.AliOssConfig;
16 import com.order.erp.domain.dto.LocalStorageDO; 16 import com.order.erp.domain.dto.LocalStorageDO;
  17 +import com.order.erp.domain.vo.FileRespVO;
17 import com.order.erp.domain.vo.ImageRespVO; 18 import com.order.erp.domain.vo.ImageRespVO;
18 import com.order.erp.domain.vo.LocalStorageQueryVO; 19 import com.order.erp.domain.vo.LocalStorageQueryVO;
19 import com.order.erp.domain.vo.LocalStorageVO; 20 import com.order.erp.domain.vo.LocalStorageVO;
@@ -51,6 +52,26 @@ public class LocalStorageServiceImpl extends ServiceImpl&lt;LocalStorageMapper, Loc @@ -51,6 +52,26 @@ public class LocalStorageServiceImpl extends ServiceImpl&lt;LocalStorageMapper, Loc
51 private long maxSize; 52 private long maxSize;
52 53
53 @Override 54 @Override
  55 + public ServerResult uploadFileByAliOss(String name, MultipartFile file) {
  56 + FileUtil.checkSize(maxSize, file.getSize());
  57 + String fileName = AliOssUtil.getUniqueFileName(name);
  58 + String tempFileName = "Thumbnails" + Constant.CROSS_BAR_CHARACTER + fileName;
  59 + FileRespVO fileRespVO = new FileRespVO();
  60 + try {
  61 + File tempFile = new File(path + "files" + File.separator + tempFileName);
  62 + if (AliOssUtil.upload(AliOssConfig.ALIYUN_BUCKET, fileName, file.getBytes())) {
  63 + String fileUrl = AliOssUtil.createUrl(AliOssConfig.ALIYUN_BUCKET, fileName, new DateTime().plusYears(Constant.ENABLE_TEN).toDate());
  64 + fileRespVO.setFileUrl(fileUrl);
  65 + FileUtil.del(tempFile);
  66 + }
  67 + return ServerResult.success(fileRespVO);
  68 + } catch (Exception e) {
  69 + log.error("上传文件异常:{}", e.getMessage());
  70 + throw new BusinessException(ServerResultCode.UPLOAD_IMAGES_ERROR);
  71 + }
  72 + }
  73 +
  74 + @Override
54 public ServerResult uploadByAliOss(String name, MultipartFile file) { 75 public ServerResult uploadByAliOss(String name, MultipartFile file) {
55 FileUtil.checkSize(maxSize, file.getSize()); 76 FileUtil.checkSize(maxSize, file.getSize());
56 String fileName = AliOssUtil.getUniqueFileName(name); 77 String fileName = AliOssUtil.getUniqueFileName(name);
src/main/java/com/order/erp/service/order/CheckBillMappingService.java 0 → 100644
  1 +package com.order.erp.service.order;
  2 +
  3 +import com.baomidou.mybatisplus.extension.service.IService;
  4 +import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.domain.dto.order.CheckBillMappingDO;
  6 +import com.order.erp.domain.vo.order.CheckBillMappingQueryVO;
  7 +import com.order.erp.domain.vo.order.CheckBillMappingVO;
  8 +
  9 +/**
  10 + * 生产科对账单应收账单映射表(CheckBillMapping)表服务接口
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:37
  14 + */
  15 +public interface CheckBillMappingService extends IService<CheckBillMappingDO> {
  16 +
  17 + /**
  18 + * 通过ID查询单条数据
  19 + *
  20 + * @param checkBillMappingQueryVO 主键
  21 + * @return 实例对象
  22 + */
  23 + ServerResult queryById(CheckBillMappingQueryVO checkBillMappingQueryVO);
  24 +
  25 + /**
  26 + * 分页查询
  27 + *
  28 + * @param checkBillMappingQueryVO 筛选条件
  29 + * @return 查询结果
  30 + */
  31 + ServerResult list(CheckBillMappingQueryVO checkBillMappingQueryVO);
  32 +
  33 + /**
  34 + * 新增数据
  35 + *
  36 + * @param checkBillMappingVO 数据VO
  37 + * @return 新增结果
  38 + */
  39 + ServerResult add(CheckBillMappingVO checkBillMappingVO);
  40 +
  41 + /**
  42 + * 修改数据
  43 + *
  44 + * @param checkBillMappingVO 数据VO
  45 + * @return 编辑结果
  46 + */
  47 + ServerResult edit(CheckBillMappingVO checkBillMappingVO);
  48 +
  49 + /**
  50 + * 通过主键删除数据
  51 + *
  52 + * @param checkBillMappingQueryVO 筛选条件
  53 + * @return 是否成功
  54 + */
  55 + ServerResult deleteById(CheckBillMappingQueryVO checkBillMappingQueryVO);
  56 +
  57 +}
src/main/java/com/order/erp/service/order/InvoiceBillMappingService.java 0 → 100644
  1 +package com.order.erp.service.order;
  2 +
  3 +import com.baomidou.mybatisplus.extension.service.IService;
  4 +import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.domain.dto.order.InvoiceBillMappingDO;
  6 +import com.order.erp.domain.vo.order.InvoiceBillMappingQueryVO;
  7 +import com.order.erp.domain.vo.order.InvoiceBillMappingVO;
  8 +
  9 +/**
  10 + * 应收款账单关联订单映射表(InvoiceBillMapping)表服务接口
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:36
  14 + */
  15 +public interface InvoiceBillMappingService extends IService<InvoiceBillMappingDO> {
  16 +
  17 + /**
  18 + * 通过ID查询单条数据
  19 + *
  20 + * @param invoiceBillMappingQueryVO 主键
  21 + * @return 实例对象
  22 + */
  23 + ServerResult queryById(InvoiceBillMappingQueryVO invoiceBillMappingQueryVO);
  24 +
  25 + /**
  26 + * 分页查询
  27 + *
  28 + * @param invoiceBillMappingQueryVO 筛选条件
  29 + * @return 查询结果
  30 + */
  31 + ServerResult list(InvoiceBillMappingQueryVO invoiceBillMappingQueryVO);
  32 +
  33 + /**
  34 + * 新增数据
  35 + *
  36 + * @param invoiceBillMappingVO 数据VO
  37 + * @return 新增结果
  38 + */
  39 + ServerResult add(InvoiceBillMappingVO invoiceBillMappingVO);
  40 +
  41 + /**
  42 + * 修改数据
  43 + *
  44 + * @param invoiceBillMappingVO 数据VO
  45 + * @return 编辑结果
  46 + */
  47 + ServerResult edit(InvoiceBillMappingVO invoiceBillMappingVO);
  48 +
  49 + /**
  50 + * 通过主键删除数据
  51 + *
  52 + * @param invoiceBillMappingQueryVO 筛选条件
  53 + * @return 是否成功
  54 + */
  55 + ServerResult deleteById(InvoiceBillMappingQueryVO invoiceBillMappingQueryVO);
  56 +
  57 +}
src/main/java/com/order/erp/service/order/InvoiceBillOrderService.java 0 → 100644
  1 +package com.order.erp.service.order;
  2 +
  3 +import com.baomidou.mybatisplus.extension.service.IService;
  4 +import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.domain.dto.order.InvoiceBillOrderDO;
  6 +import com.order.erp.domain.vo.order.*;
  7 +
  8 +import javax.servlet.http.HttpServletResponse;
  9 +import java.io.IOException;
  10 +
  11 +/**
  12 + * 应收款账单表(InvoiceBillOrder)表服务接口
  13 + *
  14 + * @author makejava
  15 + * @since 2024-08-05 16:26:34
  16 + */
  17 +public interface InvoiceBillOrderService extends IService<InvoiceBillOrderDO> {
  18 +
  19 + /**
  20 + * 分页查询
  21 + *
  22 + * @param invoiceBillOrderQueryVO 筛选条件
  23 + * @return 查询结果
  24 + */
  25 + ServerResult listByPage(InvoiceBillOrderQueryVO invoiceBillOrderQueryVO);
  26 +
  27 + /**
  28 + * @param queryVO
  29 + * @return
  30 + */
  31 + ServerResult listBaseOrderInfoBy(InvoiceBaseOrderQueryVO queryVO);
  32 +
  33 + /**
  34 + * @param queryVO
  35 + * @return
  36 + */
  37 + ServerResult listAnalysisBy(InvoiceBillAnalysisVO queryVO);
  38 +
  39 + /**
  40 + * @param queryVO
  41 + * @return
  42 + */
  43 + ServerResult export(HttpServletResponse response, InvoiceBillAnalysisVO queryVO) throws IOException;
  44 +
  45 + /**
  46 + * 新增数据
  47 + *
  48 + * @param createVO 数据VO
  49 + * @return 新增结果
  50 + */
  51 + ServerResult create(InvoiceBillCreateVO createVO);
  52 +
  53 + /**
  54 + *
  55 + * @param createVO
  56 + * @return
  57 + */
  58 + ServerResult getBackRefundDate(InvoiceBillCreateVO createVO);
  59 +
  60 + /**
  61 + * 更新扣款信息
  62 + *
  63 + * @param deductInfoVO 数据VO
  64 + * @return 编辑结果
  65 + */
  66 + ServerResult updateDeductInfo(InvoiceBillDeductInfoVO deductInfoVO);
  67 +
  68 + /**
  69 + * 更新其他金额信息
  70 + *
  71 + * @param amountInfoVO
  72 + * @return
  73 + */
  74 + ServerResult updateAmountInfo(InvoiceBillAmountInfoVO amountInfoVO);
  75 +
  76 + /**
  77 + * 提交审核
  78 + *
  79 + * @param commitApplyVO
  80 + * @return
  81 + */
  82 + ServerResult commitApply(InvoiceBillCommitApplyVO commitApplyVO);
  83 +
  84 + /**
  85 + * 通过主键删除数据
  86 + *
  87 + * @param invoiceBillOrderQueryVO 筛选条件
  88 + * @return 是否成功
  89 + */
  90 + ServerResult deleteById(InvoiceBillOrderQueryVO invoiceBillOrderQueryVO);
  91 +
  92 +}
src/main/java/com/order/erp/service/order/ProducePaymentCheckBillOrderService.java 0 → 100644
  1 +package com.order.erp.service.order;
  2 +
  3 +import com.baomidou.mybatisplus.extension.service.IService;
  4 +import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.domain.dto.order.ProducePaymentCheckBillOrderDO;
  6 +import com.order.erp.domain.vo.order.ProducePaymentCheckBillOrderQueryVO;
  7 +import com.order.erp.domain.vo.order.ProducePaymentCheckBillOrderVO;
  8 +
  9 +/**
  10 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)表服务接口
  11 + *
  12 + * @author makejava
  13 + * @since 2024-08-05 16:26:35
  14 + */
  15 +public interface ProducePaymentCheckBillOrderService extends IService<ProducePaymentCheckBillOrderDO> {
  16 +
  17 + /**
  18 + * 通过ID查询单条数据
  19 + *
  20 + * @param producePaymentCheckBillOrderQueryVO 主键
  21 + * @return 实例对象
  22 + */
  23 + ServerResult queryById(ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO);
  24 +
  25 + /**
  26 + * 分页查询
  27 + *
  28 + * @param producePaymentCheckBillOrderQueryVO 筛选条件
  29 + * @return 查询结果
  30 + */
  31 + ServerResult list(ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO);
  32 +
  33 + /**
  34 + * 新增数据
  35 + *
  36 + * @param producePaymentCheckBillOrderVO 数据VO
  37 + * @return 新增结果
  38 + */
  39 + ServerResult add(ProducePaymentCheckBillOrderVO producePaymentCheckBillOrderVO);
  40 +
  41 + /**
  42 + * 修改数据
  43 + *
  44 + * @param producePaymentCheckBillOrderVO 数据VO
  45 + * @return 编辑结果
  46 + */
  47 + ServerResult edit(ProducePaymentCheckBillOrderVO producePaymentCheckBillOrderVO);
  48 +
  49 + /**
  50 + * 通过主键删除数据
  51 + *
  52 + * @param producePaymentCheckBillOrderQueryVO 筛选条件
  53 + * @return 是否成功
  54 + */
  55 + ServerResult deleteById(ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO);
  56 +
  57 +}
src/main/java/com/order/erp/service/order/impl/CheckBillMappingServiceImpl.java 0 → 100644
  1 +package com.order.erp.service.order.impl;
  2 +
  3 +import cn.hutool.core.bean.BeanUtil;
  4 +import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6 +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10 +import com.order.erp.common.constant.Constant;
  11 +import com.order.erp.common.constant.ServerResult;
  12 +import com.order.erp.common.utils.PageUtils;
  13 +import com.order.erp.domain.dto.order.CheckBillMappingDO;
  14 +import com.order.erp.domain.vo.order.CheckBillMappingQueryVO;
  15 +import com.order.erp.domain.vo.order.CheckBillMappingVO;
  16 +import com.order.erp.mapper.order.CheckBillMappingMapper;
  17 +import com.order.erp.service.order.CheckBillMappingService;
  18 +import lombok.extern.slf4j.Slf4j;
  19 +import org.springframework.stereotype.Service;
  20 +
  21 +import java.util.List;
  22 +import java.util.Objects;
  23 +
  24 +/**
  25 + * 生产科对账单应收账单映射表(CheckBillMapping)表服务实现类
  26 + *
  27 + * @author makejava
  28 + * @since 2024-08-05 16:26:37
  29 + */
  30 +@Slf4j
  31 +@Service
  32 +public class CheckBillMappingServiceImpl extends ServiceImpl<CheckBillMappingMapper, CheckBillMappingDO> implements CheckBillMappingService {
  33 +
  34 +
  35 + /**
  36 + * 通过ID查询单条数据
  37 + * <p>
  38 + * checkBillMappingQueryVO 主键
  39 + *
  40 + * @return 实例对象
  41 + */
  42 + @Override
  43 + public ServerResult queryById(CheckBillMappingQueryVO checkBillMappingQueryVO) {
  44 + if (Objects.isNull(checkBillMappingQueryVO.getId())) {
  45 + return ServerResult.fail("id 不能为空");
  46 + }
  47 + CheckBillMappingDO CheckBillMappingDo = getById(checkBillMappingQueryVO.getId());
  48 + if (Objects.isNull(CheckBillMappingDo)) {
  49 + return ServerResult.success(null);
  50 + }
  51 + return ServerResult.success(BeanUtil.copyProperties(CheckBillMappingDo, CheckBillMappingVO.class));
  52 + }
  53 +
  54 + /**
  55 + * 分页查询
  56 + *
  57 + * @param checkBillMappingQueryVO 筛选条件
  58 + * @return 查询结果
  59 + */
  60 + @Override
  61 + public ServerResult list(CheckBillMappingQueryVO checkBillMappingQueryVO) {
  62 +
  63 + LambdaQueryWrapper<CheckBillMappingDO> queryWapper = new LambdaQueryWrapper<CheckBillMappingDO>()
  64 + .eq(CheckBillMappingDO::getEnableFlag, Constant.ENABLE_TEN)
  65 + .orderByDesc(CheckBillMappingDO::getId);
  66 + Page page = new Page<>(checkBillMappingQueryVO.getPage(), checkBillMappingQueryVO.getPageSize());
  67 + IPage<CheckBillMappingDO> iPage = page(page, queryWapper);
  68 + checkBillMappingQueryVO.setTotal(Long.valueOf(iPage.getTotal()).intValue());
  69 + return ServerResult.success(PageUtils.getPageReturn(null, checkBillMappingQueryVO));
  70 + }
  71 +
  72 + /**
  73 + * 新增数据
  74 + *
  75 + * @param checkBillMappingVO 实例对象
  76 + * @return 实例对象
  77 + */
  78 + @Override
  79 + public ServerResult add(CheckBillMappingVO checkBillMappingVO) {
  80 + //todo 校验
  81 + if (Objects.nonNull(checkBillMappingVO.getId())) {
  82 + checkBillMappingVO.setId(null);
  83 + }
  84 + CheckBillMappingDO checkBillMappingDo = BeanUtil.copyProperties(checkBillMappingVO, CheckBillMappingDO.class);
  85 +
  86 + save(checkBillMappingDo);
  87 +
  88 + return ServerResult.success();
  89 + }
  90 +
  91 + /**
  92 + * 修改数据
  93 + *
  94 + * @param checkBillMappingVO 实例对象
  95 + * @return 实例对象
  96 + */
  97 + @Override
  98 + public ServerResult edit(CheckBillMappingVO checkBillMappingVO) {
  99 + //todo 校验
  100 + if (Objects.isNull(checkBillMappingVO.getId())) {
  101 + return ServerResult.fail("id 不能为空");
  102 + }
  103 + CheckBillMappingDO checkBillMappingDo = BeanUtil.copyProperties(checkBillMappingVO, CheckBillMappingDO.class);
  104 +
  105 + updateById(checkBillMappingDo);
  106 +
  107 + return ServerResult.success();
  108 + }
  109 +
  110 + /**
  111 + * 通过主键删除数据
  112 + *
  113 + * @param checkBillMappingQueryVO 筛选条件
  114 + * @return 是否成功
  115 + */
  116 + @Override
  117 + public ServerResult deleteById(CheckBillMappingQueryVO checkBillMappingQueryVO) {
  118 + List<Long> ids = checkBillMappingQueryVO.getIds();
  119 + if (CollUtil.isEmpty(ids)) {
  120 + return ServerResult.fail("ids 参数不能为空");
  121 + }
  122 + List<CheckBillMappingDO> checkBillMappingList = listByIds(ids);
  123 + if (CollUtil.isEmpty(checkBillMappingList)) {
  124 + return ServerResult.success();
  125 + }
  126 + //todo 校验是否可以逻辑删除
  127 + LambdaUpdateWrapper<CheckBillMappingDO> updateWrapper = new LambdaUpdateWrapper<CheckBillMappingDO>()
  128 + .in(CheckBillMappingDO::getId, ids)
  129 + .set(CheckBillMappingDO::getEnableFlag, Constant.UNABLE_TWENTY);
  130 + update(updateWrapper);
  131 + return ServerResult.success();
  132 + }
  133 +}
src/main/java/com/order/erp/service/order/impl/InvoiceBillMappingServiceImpl.java 0 → 100644
  1 +package com.order.erp.service.order.impl;
  2 +
  3 +import cn.hutool.core.bean.BeanUtil;
  4 +import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6 +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10 +import com.order.erp.common.constant.Constant;
  11 +import com.order.erp.common.constant.ServerResult;
  12 +import com.order.erp.common.utils.PageUtils;
  13 +import com.order.erp.domain.dto.order.InvoiceBillMappingDO;
  14 +import com.order.erp.domain.vo.order.InvoiceBillMappingQueryVO;
  15 +import com.order.erp.domain.vo.order.InvoiceBillMappingVO;
  16 +import com.order.erp.mapper.order.InvoiceBillMappingMapper;
  17 +import com.order.erp.service.order.InvoiceBillMappingService;
  18 +import lombok.extern.slf4j.Slf4j;
  19 +import org.springframework.stereotype.Service;
  20 +
  21 +import java.util.List;
  22 +import java.util.Objects;
  23 +
  24 +/**
  25 + * 应收款账单关联订单映射表(InvoiceBillMapping)表服务实现类
  26 + *
  27 + * @author makejava
  28 + * @since 2024-08-05 16:26:36
  29 + */
  30 +@Slf4j
  31 +@Service
  32 +public class InvoiceBillMappingServiceImpl extends ServiceImpl<InvoiceBillMappingMapper, InvoiceBillMappingDO> implements InvoiceBillMappingService {
  33 +
  34 +
  35 + /**
  36 + * 通过ID查询单条数据
  37 + * <p>
  38 + * invoiceBillMappingQueryVO 主键
  39 + *
  40 + * @return 实例对象
  41 + */
  42 + @Override
  43 + public ServerResult queryById(InvoiceBillMappingQueryVO invoiceBillMappingQueryVO) {
  44 + if (Objects.isNull(invoiceBillMappingQueryVO.getId())) {
  45 + return ServerResult.fail("id 不能为空");
  46 + }
  47 + InvoiceBillMappingDO InvoiceBillMappingDo = getById(invoiceBillMappingQueryVO.getId());
  48 + if (Objects.isNull(InvoiceBillMappingDo)) {
  49 + return ServerResult.success(null);
  50 + }
  51 + return ServerResult.success(BeanUtil.copyProperties(InvoiceBillMappingDo, InvoiceBillMappingVO.class));
  52 + }
  53 +
  54 + /**
  55 + * 分页查询
  56 + *
  57 + * @param invoiceBillMappingQueryVO 筛选条件
  58 + * @return 查询结果
  59 + */
  60 + @Override
  61 + public ServerResult list(InvoiceBillMappingQueryVO invoiceBillMappingQueryVO) {
  62 +
  63 + LambdaQueryWrapper<InvoiceBillMappingDO> queryWapper = new LambdaQueryWrapper<InvoiceBillMappingDO>()
  64 + .eq(InvoiceBillMappingDO::getEnableFlag, Constant.ENABLE_TEN)
  65 + .orderByDesc(InvoiceBillMappingDO::getId);
  66 + Page page = new Page<>(invoiceBillMappingQueryVO.getPage(), invoiceBillMappingQueryVO.getPageSize());
  67 + IPage<InvoiceBillMappingDO> iPage = page(page, queryWapper);
  68 + invoiceBillMappingQueryVO.setTotal(Long.valueOf(iPage.getTotal()).intValue());
  69 + return ServerResult.success(PageUtils.getPageReturn(null, invoiceBillMappingQueryVO));
  70 + }
  71 +
  72 + /**
  73 + * 新增数据
  74 + *
  75 + * @param invoiceBillMappingVO 实例对象
  76 + * @return 实例对象
  77 + */
  78 + @Override
  79 + public ServerResult add(InvoiceBillMappingVO invoiceBillMappingVO) {
  80 + //todo 校验
  81 + if (Objects.nonNull(invoiceBillMappingVO.getId())) {
  82 + invoiceBillMappingVO.setId(null);
  83 + }
  84 + InvoiceBillMappingDO invoiceBillMappingDo = BeanUtil.copyProperties(invoiceBillMappingVO, InvoiceBillMappingDO.class);
  85 +
  86 + save(invoiceBillMappingDo);
  87 +
  88 + return ServerResult.success();
  89 + }
  90 +
  91 + /**
  92 + * 修改数据
  93 + *
  94 + * @param invoiceBillMappingVO 实例对象
  95 + * @return 实例对象
  96 + */
  97 + @Override
  98 + public ServerResult edit(InvoiceBillMappingVO invoiceBillMappingVO) {
  99 + //todo 校验
  100 + if (Objects.isNull(invoiceBillMappingVO.getId())) {
  101 + return ServerResult.fail("id 不能为空");
  102 + }
  103 + InvoiceBillMappingDO invoiceBillMappingDo = BeanUtil.copyProperties(invoiceBillMappingVO, InvoiceBillMappingDO.class);
  104 +
  105 + updateById(invoiceBillMappingDo);
  106 +
  107 + return ServerResult.success();
  108 + }
  109 +
  110 + /**
  111 + * 通过主键删除数据
  112 + *
  113 + * @param invoiceBillMappingQueryVO 筛选条件
  114 + * @return 是否成功
  115 + */
  116 + @Override
  117 + public ServerResult deleteById(InvoiceBillMappingQueryVO invoiceBillMappingQueryVO) {
  118 + List<Long> ids = invoiceBillMappingQueryVO.getIds();
  119 + if (CollUtil.isEmpty(ids)) {
  120 + return ServerResult.fail("ids 参数不能为空");
  121 + }
  122 + List<InvoiceBillMappingDO> invoiceBillMappingList = listByIds(ids);
  123 + if (CollUtil.isEmpty(invoiceBillMappingList)) {
  124 + return ServerResult.success();
  125 + }
  126 + //todo 校验是否可以逻辑删除
  127 + LambdaUpdateWrapper<InvoiceBillMappingDO> updateWrapper = new LambdaUpdateWrapper<InvoiceBillMappingDO>()
  128 + .in(InvoiceBillMappingDO::getId, ids)
  129 + .set(InvoiceBillMappingDO::getEnableFlag, Constant.UNABLE_TWENTY);
  130 + update(updateWrapper);
  131 + return ServerResult.success();
  132 + }
  133 +}
src/main/java/com/order/erp/service/order/impl/InvoiceBillOrderServiceImpl.java 0 → 100644
  1 +package com.order.erp.service.order.impl;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6 +import com.baomidou.mybatisplus.core.metadata.IPage;
  7 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  8 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10 +import com.github.stupdit1t.excel.common.PoiWorkbookType;
  11 +import com.github.stupdit1t.excel.core.ExcelHelper;
  12 +import com.github.stupdit1t.excel.style.CellPosition;
  13 +import com.order.erp.common.constant.Constant;
  14 +import com.order.erp.common.constant.ServerResult;
  15 +import com.order.erp.common.constant.ServerResultCode;
  16 +import com.order.erp.common.exception.BusinessException;
  17 +import com.order.erp.common.utils.DateUtils;
  18 +import com.order.erp.common.utils.StringUtils;
  19 +import com.order.erp.common.utils.TransactionHelper;
  20 +import com.order.erp.config.DataScope;
  21 +import com.order.erp.domain.ApplyStatusEnum;
  22 +import com.order.erp.domain.ApplyTypeEnum;
  23 +import com.order.erp.domain.RoleEnum;
  24 +import com.order.erp.domain.dto.BaseDO;
  25 +import com.order.erp.domain.dto.SystemSettingDO;
  26 +import com.order.erp.domain.dto.order.*;
  27 +import com.order.erp.domain.vo.order.*;
  28 +import com.order.erp.mapper.order.InvoiceBillOrderMapper;
  29 +import com.order.erp.service.SystemSettingService;
  30 +import com.order.erp.service.order.*;
  31 +import lombok.extern.slf4j.Slf4j;
  32 +import org.springframework.beans.BeanUtils;
  33 +import org.springframework.stereotype.Service;
  34 +
  35 +import javax.annotation.Resource;
  36 +import javax.servlet.http.HttpServletResponse;
  37 +import java.io.IOException;
  38 +import java.math.BigDecimal;
  39 +import java.time.LocalDateTime;
  40 +import java.util.*;
  41 +import java.util.function.Function;
  42 +import java.util.stream.Collectors;
  43 +
  44 +/**
  45 + * 应收款账单表(InvoiceBillOrder)表服务实现类
  46 + *
  47 + * @author makejava
  48 + * @since 2024-08-05 16:26:34
  49 + */
  50 +@Slf4j
  51 +@Service
  52 +public class InvoiceBillOrderServiceImpl extends ServiceImpl<InvoiceBillOrderMapper, InvoiceBillOrderDO> implements InvoiceBillOrderService {
  53 +
  54 +
  55 + @Resource
  56 + private OrderBaseInfoService orderBaseInfoService;
  57 +
  58 + @Resource
  59 + private OrderProfitAnalysisService profitAnalysisService;
  60 +
  61 + @Resource
  62 + private InvoiceBillMappingService invoiceBillMappingService;
  63 +
  64 + @Resource
  65 + private OrderFieldLockApplyService orderFieldLockApplyService;
  66 +
  67 + @Resource
  68 + private SystemSettingService systemSettingService;
  69 +
  70 + @Resource
  71 + private DataScope dataScope;
  72 +
  73 + @Resource
  74 + private TransactionHelper transactionHelper;
  75 +
  76 +
  77 + /**
  78 + * 分页查询
  79 + *
  80 + * @param queryVO 筛选条件
  81 + * @return 查询结果
  82 + */
  83 + @Override
  84 + public ServerResult listByPage(InvoiceBillOrderQueryVO queryVO) {
  85 + LambdaQueryWrapper<InvoiceBillOrderDO> queryWrapper = getQueryWrapper(queryVO);
  86 + Page page = new Page<>(queryVO.getPage(), queryVO.getPageSize());
  87 + IPage<InvoiceBillOrderDO> iPage = page(page, queryWrapper);
  88 + return ServerResult.success(iPage);
  89 + }
  90 +
  91 + /**
  92 + * @param queryVO
  93 + * @return
  94 + */
  95 + private LambdaQueryWrapper<InvoiceBillOrderDO> getQueryWrapper(InvoiceBillOrderQueryVO queryVO) {
  96 + Set<Long> billOrderIds = filterBillOrderIdsBy(queryVO);
  97 + return new LambdaQueryWrapper<InvoiceBillOrderDO>()
  98 + .eq(InvoiceBillOrderDO::getEnableFlag, Constant.ENABLE_TEN)
  99 + .in(CollectionUtils.isNotEmpty(billOrderIds), InvoiceBillOrderDO::getId, billOrderIds)
  100 + .eq(StringUtils.isNotBlank(queryVO.getInvoiceNo()), InvoiceBillOrderDO::getInvoiceNo, queryVO.getInvoiceNo())
  101 + .eq(Objects.nonNull(queryVO.getStatus()), InvoiceBillOrderDO::getStatus, queryVO.getStatus())
  102 + .ge(StringUtils.isNotBlank(queryVO.getStartTime()), InvoiceBillOrderDO::getCreateTime, queryVO.getStartTime())
  103 + .le(StringUtils.isNotBlank(queryVO.getEndTime()), InvoiceBillOrderDO::getCreateTime, queryVO.getEndTime())
  104 + .orderByDesc(InvoiceBillOrderDO::getId);
  105 + }
  106 +
  107 + @Override
  108 + public ServerResult listBaseOrderInfoBy(InvoiceBaseOrderQueryVO queryVO) {
  109 + List<InvoiceBillMappingDO> mappingDOS = invoiceBillMappingService.list(new LambdaQueryWrapper<InvoiceBillMappingDO>()
  110 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  111 + .eq(InvoiceBillMappingDO::getInvoiceNo, queryVO.getInvoiceNo()));
  112 + if (CollectionUtils.isEmpty(mappingDOS)) {
  113 + return ServerResult.success();
  114 + }
  115 + Set<Long> orderIds = mappingDOS.stream().map(InvoiceBillMappingDO::getOrderId).collect(Collectors.toSet());
  116 + return ServerResult.success(orderBaseInfoService.listByIds(orderIds));
  117 + }
  118 +
  119 + @Override
  120 + public ServerResult listAnalysisBy(InvoiceBillAnalysisVO queryVO) {
  121 + return ServerResult.success(getAnalysisResult(queryVO));
  122 + }
  123 +
  124 + @Override
  125 + public ServerResult export(HttpServletResponse response, InvoiceBillAnalysisVO queryVO) throws IOException {
  126 + InvoiceBillAnalysisResultVO resultVO = getAnalysisResult(queryVO);
  127 + if (Objects.isNull(resultVO)) {
  128 + throw new BusinessException("数据为空,不能导出!");
  129 + }
  130 + List<Map<String, Object>> list = buildExportMapVOS(resultVO);
  131 + if (CollectionUtils.isNotEmpty(list)) {
  132 + List<String> keys = new ArrayList<>(list.get(Constant.ZERO).keySet());
  133 +
  134 + ExcelHelper.opsExport(PoiWorkbookType.XLSX)
  135 + .opsSheet(list)
  136 + .opsHeader().simple().texts(keys).done()
  137 + .opsColumn().fields(keys).done()
  138 + .height(CellPosition.CELL, 750)
  139 + .done()
  140 + .export(response.getOutputStream());
  141 + }
  142 + return ServerResult.success();
  143 + }
  144 +
  145 + /**
  146 + * @param resultVO
  147 + * @return
  148 + */
  149 + private List<Map<String, Object>> buildExportMapVOS(InvoiceBillAnalysisResultVO resultVO) throws IOException {
  150 + List<InvoiceBillAnalysisExportVO> exportVOS = resultVO.getExportVOS();
  151 + List<Map<String, Object>> list = new ArrayList<>();
  152 + int i = 0;
  153 + for (InvoiceBillAnalysisExportVO exportVO : exportVOS) {
  154 + Map<String, Object> map = new LinkedHashMap<>();
  155 + map.put("编号", i++);
  156 + map.put("客户编码", exportVO.getCustomerCode());
  157 + map.put("INVOICE编码", exportVO.getInvoiceNo());
  158 + map.put("客户总金额汇总", exportVO.getCustomerTotalPrice());
  159 + map.put("客户扣款金额汇总", exportVO.getDeductAmount());
  160 + map.put("实际应收金额", exportVO.getActualReceivableAmount());
  161 + map.put("实际收款金额汇总", exportVO.getActualPayedAmount());
  162 + map.put("其他费用金额汇总", exportVO.getOtherAmount());
  163 + map.put("其他费用合计", exportVO.getOtherTotalAmount());
  164 + map.put("必须回款日期", exportVO.getBackRefundDate());
  165 + map.put("实际回款日期", exportVO.getActualRefundDate());
  166 + list.add(map);
  167 + }
  168 + Map<String, Object> map = new LinkedHashMap<>();
  169 + map.put("编号", "合计");
  170 + map.put("客户编码", "");
  171 + map.put("INVOICE编码", "");
  172 + map.put("客户总金额汇总", resultVO.getCustomerTotalPrice());
  173 + map.put("客户扣款金额汇总", resultVO.getDeductAmount());
  174 + map.put("实际应收金额", resultVO.getActualReceivableAmount());
  175 + map.put("实际收款金额汇总", resultVO.getActualPayedAmount());
  176 + map.put("其他费用金额汇总", resultVO.getOtherAmount());
  177 + map.put("其他费用合计", resultVO.getOtherTotalAmount());
  178 + map.put("必须回款日期", "");
  179 + map.put("实际回款日期", "");
  180 + list.add(map);
  181 + return list;
  182 + }
  183 +
  184 + /**
  185 + * @param queryVO
  186 + * @return
  187 + */
  188 + private InvoiceBillAnalysisResultVO getAnalysisResult(InvoiceBillAnalysisVO queryVO) {
  189 + LambdaQueryWrapper<InvoiceBillOrderDO> queryWrapper = getQueryWrapper(queryVO);
  190 + List<InvoiceBillOrderDO> invoiceBillOrderDOS = list(queryWrapper);
  191 + if (CollectionUtils.isEmpty(invoiceBillOrderDOS)) {
  192 + return null;
  193 + }
  194 + Set<Long> ids = invoiceBillOrderDOS.stream().map(InvoiceBillOrderDO::getId).collect(Collectors.toSet());
  195 + List<InvoiceBillMappingDO> invoiceBillMappingDOS = invoiceBillMappingService.list(new LambdaQueryWrapper<InvoiceBillMappingDO>().eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN).in(InvoiceBillMappingDO::getInvoiceBillId, ids));
  196 + if (CollectionUtils.isEmpty(invoiceBillMappingDOS)) {
  197 + return null;
  198 + }
  199 + Map<Long, InvoiceBillMappingDO> orderBillMap = invoiceBillMappingDOS.stream().collect(Collectors.toMap(InvoiceBillMappingDO::getOrderId, Function.identity(), (x, y) -> x));
  200 + List<InvoiceOrderBaseItemVO> itemVOS = getInvoiceOrderBaseItems(orderBillMap);
  201 + Map<String, InvoiceBillOrderDO> invoiceBillOrderDOMap = invoiceBillOrderDOS.stream().collect(Collectors.toMap(InvoiceBillOrderDO::getInvoiceNo, Function.identity(), (x, y) -> x));
  202 + Map<String, List<InvoiceOrderBaseItemVO>> baseItemMap = itemVOS.stream().collect(Collectors.groupingBy(InvoiceOrderBaseItemVO::getInvoiceCode));
  203 + List<InvoiceBillAnalysisExportVO> exportVOS = wrapperAnalysisExport(invoiceBillOrderDOMap, baseItemMap);
  204 + return wrapperAnalysisResultVO(exportVOS);
  205 + }
  206 +
  207 + /**
  208 + * @param exportVOS
  209 + * @return
  210 + */
  211 + private InvoiceBillAnalysisResultVO wrapperAnalysisResultVO(List<InvoiceBillAnalysisExportVO> exportVOS) {
  212 + if (CollectionUtils.isEmpty(exportVOS)) {
  213 + return null;
  214 + }
  215 + InvoiceBillAnalysisResultVO resultVO = InvoiceBillAnalysisResultVO.builder().exportVOS(exportVOS).build();
  216 + BigDecimal customerTotalPrice = new BigDecimal(Constant.ZERO);
  217 + BigDecimal deductAmount = new BigDecimal(Constant.ZERO);
  218 + BigDecimal actualReceivableAmount = new BigDecimal(Constant.ZERO);
  219 + BigDecimal actualPayedAmount = new BigDecimal(Constant.ZERO);
  220 + BigDecimal otherAmount = new BigDecimal(Constant.ZERO);
  221 + BigDecimal otherTotalAmount = new BigDecimal(Constant.ZERO);
  222 + for (InvoiceBillAnalysisExportVO exportVO : exportVOS) {
  223 + if (Objects.nonNull(exportVO.getCustomerTotalPrice())) {
  224 + customerTotalPrice = customerTotalPrice.add(exportVO.getCustomerTotalPrice());
  225 + }
  226 + if (Objects.nonNull(exportVO.getDeductAmount())) {
  227 + deductAmount = deductAmount.add(exportVO.getDeductAmount());
  228 + }
  229 + if (Objects.nonNull(exportVO.getActualReceivableAmount())) {
  230 + actualReceivableAmount = actualReceivableAmount.add(exportVO.getActualReceivableAmount());
  231 + }
  232 + if (Objects.nonNull(exportVO.getActualPayedAmount())) {
  233 + actualPayedAmount = actualPayedAmount.add(exportVO.getActualPayedAmount());
  234 + }
  235 + if (Objects.nonNull(exportVO.getOtherAmount())) {
  236 + otherAmount = customerTotalPrice.add(exportVO.getOtherAmount());
  237 + }
  238 + if (Objects.nonNull(exportVO.getOtherTotalAmount())) {
  239 + otherTotalAmount = otherTotalAmount.add(exportVO.getOtherTotalAmount());
  240 + }
  241 + }
  242 + resultVO.setCustomerTotalPrice(customerTotalPrice);
  243 + resultVO.setDeductAmount(deductAmount);
  244 + resultVO.setActualReceivableAmount(actualReceivableAmount);
  245 + resultVO.setActualPayedAmount(actualPayedAmount);
  246 + resultVO.setOtherAmount(otherAmount);
  247 + resultVO.setOtherTotalAmount(otherTotalAmount);
  248 + return resultVO;
  249 + }
  250 +
  251 + /**
  252 + * @param invoiceBillOrderDOMap
  253 + * @param baseItemMap
  254 + * @return
  255 + */
  256 + private List<InvoiceBillAnalysisExportVO> wrapperAnalysisExport(Map<String, InvoiceBillOrderDO> invoiceBillOrderDOMap, Map<String, List<InvoiceOrderBaseItemVO>> baseItemMap) {
  257 + if (CollectionUtils.isEmpty(invoiceBillOrderDOMap)) {
  258 + return Collections.emptyList();
  259 + }
  260 + List<InvoiceBillAnalysisExportVO> results = new ArrayList<>();
  261 + for (Map.Entry<String, InvoiceBillOrderDO> entry : invoiceBillOrderDOMap.entrySet()) {
  262 + InvoiceBillOrderDO invoiceBillOrderDO = entry.getValue();
  263 + List<InvoiceBillAnalysisExportVO> exportVOS = transfer2analysisExportVO(invoiceBillOrderDO, baseItemMap);
  264 + if (CollectionUtils.isNotEmpty(exportVOS)) {
  265 + results.addAll(exportVOS);
  266 + }
  267 + }
  268 + return results;
  269 + }
  270 +
  271 + /**
  272 + * @param invoiceBillOrderDO
  273 + * @param baseItemMap
  274 + * @return
  275 + */
  276 + private List<InvoiceBillAnalysisExportVO> transfer2analysisExportVO(InvoiceBillOrderDO invoiceBillOrderDO, Map<String, List<InvoiceOrderBaseItemVO>> baseItemMap) {
  277 + List<InvoiceBillAnalysisExportVO> results = new ArrayList<>();
  278 + String invoiceNo = invoiceBillOrderDO.getInvoiceNo();
  279 + if (baseItemMap.containsKey(invoiceNo)) {
  280 + List<InvoiceOrderBaseItemVO> baseItemVOS = baseItemMap.get(invoiceNo);
  281 + Map<String, List<InvoiceOrderBaseItemVO>> listMap = baseItemVOS.stream().collect(Collectors.groupingBy(InvoiceOrderBaseItemVO::getCustomerCode));
  282 + for (Map.Entry<String, List<InvoiceOrderBaseItemVO>> entry : listMap.entrySet()) {
  283 + String customerCode = entry.getKey();
  284 + List<InvoiceOrderBaseItemVO> itemVOS = entry.getValue();
  285 + InvoiceBillAnalysisExportVO exportVO = buildAnalysisExportVO(invoiceBillOrderDO);
  286 + exportVO.setCustomerCode(customerCode);
  287 + if (CollectionUtils.isEmpty(itemVOS)) {
  288 + exportVO.setCustomerTotalPrice(new BigDecimal(Constant.ZERO));
  289 + } else {
  290 + BigDecimal customerTotalPrice = new BigDecimal(Constant.ZERO);
  291 + for (InvoiceOrderBaseItemVO itemVO : itemVOS) {
  292 + customerTotalPrice = customerTotalPrice.add(Objects.nonNull(itemVO.getCustomerTotalPrice()) ? itemVO.getCustomerTotalPrice() : new BigDecimal(Constant.ZERO));
  293 + }
  294 + exportVO.setCustomerTotalPrice(customerTotalPrice);
  295 + }
  296 + results.add(exportVO);
  297 + }
  298 + }
  299 + return results;
  300 + }
  301 +
  302 + /**
  303 + * @param invoiceBillOrderDO
  304 + * @return
  305 + */
  306 + private InvoiceBillAnalysisExportVO buildAnalysisExportVO(InvoiceBillOrderDO invoiceBillOrderDO) {
  307 + InvoiceBillAnalysisExportVO exportVO = new InvoiceBillAnalysisExportVO();
  308 + BeanUtils.copyProperties(invoiceBillOrderDO, exportVO);
  309 + BigDecimal actualPayedAmount = new BigDecimal(Constant.ZERO);
  310 + if (Objects.nonNull(invoiceBillOrderDO.getActualPayedAmount1())) {
  311 + actualPayedAmount = actualPayedAmount.add(invoiceBillOrderDO.getActualPayedAmount1());
  312 + }
  313 + if (Objects.nonNull(invoiceBillOrderDO.getActualPayedAmount2())) {
  314 + actualPayedAmount = actualPayedAmount.add(invoiceBillOrderDO.getActualPayedAmount2());
  315 + }
  316 + if (Objects.nonNull(invoiceBillOrderDO.getActualPayedAmount3())) {
  317 + actualPayedAmount = actualPayedAmount.add(invoiceBillOrderDO.getActualPayedAmount3());
  318 + }
  319 + exportVO.setActualPayedAmount(actualPayedAmount);
  320 + BigDecimal otherAmount = (Objects.nonNull(invoiceBillOrderDO.getActualReceivableAmount()) ? invoiceBillOrderDO.getActualReceivableAmount() : new BigDecimal(Constant.ZERO))
  321 + .subtract(exportVO.getActualPayedAmount());
  322 + exportVO.setOtherAmount(otherAmount);
  323 + BigDecimal otherTotalAmount = (Objects.nonNull(invoiceBillOrderDO.getActualReceivableAmount()) ? invoiceBillOrderDO.getActualReceivableAmount() : new BigDecimal(Constant.ZERO))
  324 + .subtract(exportVO.getActualPayedAmount()).subtract(otherAmount);
  325 + exportVO.setOtherTotalAmount(otherTotalAmount);
  326 + return exportVO;
  327 + }
  328 +
  329 + /**
  330 + * @param mappingDOMap
  331 + * @return
  332 + */
  333 + private List<InvoiceOrderBaseItemVO> getInvoiceOrderBaseItems(Map<Long, InvoiceBillMappingDO> mappingDOMap) {
  334 + Set<Long> orderIds = mappingDOMap.keySet();
  335 + List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.listByIds(orderIds);
  336 + List<OrderProfitAnalysisDO> profitAnalysisDOS = profitAnalysisService.list(new LambdaQueryWrapper<OrderProfitAnalysisDO>().eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN).in(OrderProfitAnalysisDO::getOrderId, orderIds));
  337 + Map<Long, OrderBaseInfoDO> orderBaseInfoDOMap = orderBaseInfoDOList.stream().collect(Collectors.toMap(OrderBaseInfoDO::getId, Function.identity(), (x, y) -> x));
  338 + Map<Long, OrderProfitAnalysisDO> profitAnalysisDOMap = profitAnalysisDOS.stream().collect(Collectors.toMap(OrderProfitAnalysisDO::getOrderId, Function.identity(), (x, y) -> x));
  339 + List<InvoiceOrderBaseItemVO> baseItemVOS = new ArrayList<>();
  340 + for (Map.Entry<Long, OrderBaseInfoDO> entry : orderBaseInfoDOMap.entrySet()) {
  341 + Long orderId = entry.getKey();
  342 + OrderBaseInfoDO baseInfoDO = entry.getValue();
  343 + InvoiceOrderBaseItemVO itemVO = InvoiceOrderBaseItemVO.builder()
  344 + .orderId(orderId)
  345 + .customerCode(baseInfoDO.getCustomerCode())
  346 + .build();
  347 + if (profitAnalysisDOMap.containsKey(orderId)) {
  348 + OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisDOMap.get(orderId);
  349 + itemVO.setCustomerTotalPrice(Objects.isNull(profitAnalysisDO.getCustomerTotalPrice()) ? new BigDecimal(Constant.ZERO) : new BigDecimal(profitAnalysisDO.getCustomerTotalPrice()));
  350 + } else {
  351 + itemVO.setCustomerTotalPrice(new BigDecimal(Constant.ZERO));
  352 + }
  353 +
  354 + if (mappingDOMap.containsKey(orderId)) {
  355 + InvoiceBillMappingDO mappingDO = mappingDOMap.get(orderId);
  356 + itemVO.setInvoiceCode(mappingDO.getInvoiceNo());
  357 + }
  358 + baseItemVOS.add(itemVO);
  359 + }
  360 + return baseItemVOS;
  361 + }
  362 +
  363 + /**
  364 + * @param queryVO
  365 + * @return
  366 + */
  367 + private Set<Long> filterBillOrderIdsBy(InvoiceBillOrderQueryVO queryVO) {
  368 + List<Long> orderIds = filterOrderIdsBy(queryVO);
  369 + if (CollectionUtils.isEmpty(orderIds)) {
  370 + return null;
  371 + }
  372 + List<InvoiceBillMappingDO> mappingDOS = invoiceBillMappingService.list(new LambdaQueryWrapper<InvoiceBillMappingDO>().eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  373 + .in(CollectionUtils.isNotEmpty(orderIds), InvoiceBillMappingDO::getOrderId, orderIds));
  374 + if (CollectionUtils.isEmpty(mappingDOS)) {
  375 + Set<Long> ids = new HashSet<>();
  376 + ids.add(-1L);
  377 + return ids;
  378 + }
  379 + return mappingDOS.stream().map(InvoiceBillMappingDO::getInvoiceBillId).collect(Collectors.toSet());
  380 + }
  381 +
  382 + /**
  383 + * @param queryVO
  384 + * @return
  385 + */
  386 + private List<Long> filterOrderIdsBy(InvoiceBillOrderQueryVO queryVO) {
  387 + Boolean flag = false;
  388 + if (StringUtils.isNotBlank(queryVO.getCustomerCode())) {
  389 + flag = flag | true;
  390 + }
  391 + if (StringUtils.isNotBlank(queryVO.getProductionDepartment())) {
  392 + flag = flag | true;
  393 + }
  394 + if (StringUtils.isNotBlank(queryVO.getCustomerPo())) {
  395 + flag = flag | true;
  396 + }
  397 + if (StringUtils.isNotBlank(queryVO.getInnerNo())) {
  398 + flag = flag | true;
  399 + }
  400 + if (StringUtils.isNotBlank(queryVO.getProjectNo())) {
  401 + flag = flag | true;
  402 + }
  403 + if (!flag) {
  404 + return null;
  405 + }
  406 + LambdaQueryWrapper<OrderBaseInfoDO> queryWrapper = new LambdaQueryWrapper<OrderBaseInfoDO>()
  407 + .eq(OrderBaseInfoDO::getEnableFlag, Constant.ENABLE_TEN)
  408 + .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode())
  409 + .eq(StringUtils.isNotBlank(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment())
  410 + .eq(StringUtils.isNotBlank(queryVO.getCustomerPo()), OrderBaseInfoDO::getCustomerPo, queryVO.getCustomerPo())
  411 + .eq(StringUtils.isNotBlank(queryVO.getInnerNo()), OrderBaseInfoDO::getInnerNo, queryVO.getInnerNo())
  412 + .eq(StringUtils.isNotBlank(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo());
  413 + List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.list(queryWrapper);
  414 + if (CollectionUtils.isEmpty(orderBaseInfoDOList)) {
  415 + List<Long> orderIds = new ArrayList<>();
  416 + orderIds.add(-1L);
  417 + return orderIds;
  418 + }
  419 + return orderBaseInfoDOList.stream().map(OrderBaseInfoDO::getId).collect(Collectors.toList());
  420 + }
  421 +
  422 + /**
  423 + * 创建invoice单据
  424 + *
  425 + * @param createVO 实例对象
  426 + * @return 实例对象
  427 + */
  428 + @Override
  429 + public ServerResult create(InvoiceBillCreateVO createVO) {
  430 + if (Objects.nonNull(createVO.getId())) {
  431 + createVO.setId(null);
  432 + }
  433 +
  434 + validaBillOrder(createVO);
  435 +
  436 + InvoiceBillOrderDO invoiceBillOrderDO = buildInvoiceBillOrderDO(createVO);
  437 +
  438 + transactionHelper.run(() -> {
  439 + save(invoiceBillOrderDO);
  440 +
  441 + invoiceBillMappingService.saveBatch(buildInvoiceBillMappingDOS(createVO, invoiceBillOrderDO));
  442 + });
  443 +
  444 + return ServerResult.success();
  445 + }
  446 +
  447 + @Override
  448 + public ServerResult getBackRefundDate(InvoiceBillCreateVO createVO) {
  449 + List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.listByIds(createVO.getOrderIds());
  450 + if (CollectionUtils.isEmpty(orderBaseInfoDOList)) {
  451 + throw new BusinessException("勾选的订单信息不存在!");
  452 + }
  453 +
  454 + InvoiceHoldTimeItemVO invoiceHoldTimeItemVO = getCustomerHoldTime(orderBaseInfoDOList);
  455 +
  456 + return ServerResult.success(calculateBackRefundDate(invoiceHoldTimeItemVO));
  457 + }
  458 +
  459 + /**
  460 + * @param invoiceHoldTimeItemVO
  461 + * @return
  462 + */
  463 + private String calculateBackRefundDate(InvoiceHoldTimeItemVO invoiceHoldTimeItemVO) {
  464 + Integer holdDays = getHoldTimeByCustomerCode(invoiceHoldTimeItemVO.getCustomerCode());
  465 + LocalDateTime holdTime = DateUtils.parse(invoiceHoldTimeItemVO.getHoldTime(), DateUtils.DATE_TIME).plusDays(holdDays);
  466 + return DateUtils.format(holdTime, DateUtils.DATE);
  467 + }
  468 +
  469 + /**
  470 + * @param customerCode
  471 + * @return
  472 + */
  473 + private Integer getHoldTimeByCustomerCode(String customerCode) {
  474 + SystemSettingDO systemSettingDO = systemSettingService.getOne(new LambdaQueryWrapper<SystemSettingDO>().eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  475 + .eq(SystemSettingDO::getSettingCode, "customerCode").eq(SystemSettingDO::getSettingValue, customerCode)
  476 + .eq(SystemSettingDO::getRelationCode, "orderHodTime").last("limit 1"));
  477 + String holdTime = systemSettingDO.getRelationValue();
  478 + return StringUtils.isBlank(holdTime) ? Constant.ZERO : Integer.parseInt(holdTime);
  479 + }
  480 +
  481 + /**
  482 + * @param orderBaseInfoDOList
  483 + * @return
  484 + */
  485 + private InvoiceHoldTimeItemVO getCustomerHoldTime(List<OrderBaseInfoDO> orderBaseInfoDOList) {
  486 + if (CollectionUtils.isEmpty(orderBaseInfoDOList)) {
  487 + return null;
  488 + }
  489 +
  490 + Map<String, OrderBaseInfoDO> holdTimeMap = new HashMap<String, OrderBaseInfoDO>();
  491 + String maxHoldTime = null;
  492 + for (OrderBaseInfoDO baseInfoDO : orderBaseInfoDOList) {
  493 + if (StringUtils.isNotBlank(baseInfoDO.getOrderHodTime())) {
  494 + holdTimeMap.put(baseInfoDO.getOrderHodTime(), baseInfoDO);
  495 + if (StringUtils.isBlank(maxHoldTime)) {
  496 + maxHoldTime = baseInfoDO.getOrderHodTime();
  497 + } else if (maxHoldTime.compareTo(baseInfoDO.getOrderHodTime()) <= 0) {
  498 + maxHoldTime = baseInfoDO.getOrderHodTime();
  499 + }
  500 + }
  501 + }
  502 + if (StringUtils.isBlank(maxHoldTime)) {
  503 + return null;
  504 + }
  505 + InvoiceHoldTimeItemVO itemVO = new InvoiceHoldTimeItemVO();
  506 + if (holdTimeMap.containsKey(maxHoldTime)) {
  507 + OrderBaseInfoDO baseInfoDO = holdTimeMap.get(maxHoldTime);
  508 + itemVO.setCustomerCode(baseInfoDO.getCustomerCode());
  509 + itemVO.setHoldTime(maxHoldTime);
  510 + itemVO.setBaseInfoDO(baseInfoDO);
  511 + }
  512 + return itemVO;
  513 + }
  514 +
  515 + /**
  516 + * @param createVO
  517 + * @return
  518 + */
  519 + private InvoiceBillOrderDO buildInvoiceBillOrderDO(InvoiceBillCreateVO createVO) {
  520 + return InvoiceBillOrderDO.builder()
  521 + .invoiceNo(createVO.getInvoiceNo())
  522 + .bgUrl(createVO.getBgUrl())
  523 + .backRefundDate(createVO.getBackRefundDate())
  524 + .status(ApplyStatusEnum.NO_COMMIT.getStatus())
  525 + .build();
  526 + }
  527 +
  528 + /**
  529 + * @param createVO
  530 + * @param invoiceBillOrderDO
  531 + * @return
  532 + */
  533 + private List<InvoiceBillMappingDO> buildInvoiceBillMappingDOS(InvoiceBillCreateVO createVO, InvoiceBillOrderDO invoiceBillOrderDO) {
  534 + return createVO.getOrderIds().stream().map(x -> {
  535 + return InvoiceBillMappingDO.builder()
  536 + .orderId(x)
  537 + .invoiceBillId(invoiceBillOrderDO.getId())
  538 + .invoiceNo(invoiceBillOrderDO.getInvoiceNo())
  539 + .build();
  540 + }).collect(Collectors.toList());
  541 + }
  542 +
  543 + /**
  544 + * @param createVO
  545 + */
  546 + private void validaBillOrder(InvoiceBillCreateVO createVO) {
  547 + if (CollectionUtils.isEmpty(createVO.getOrderIds())) {
  548 + throw new BusinessException("请勾选订单!");
  549 + }
  550 +
  551 + List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.listByIds(createVO.getOrderIds());
  552 + if (CollectionUtils.isEmpty(orderBaseInfoDOList)) {
  553 + throw new BusinessException("勾选的订单信息不存在!");
  554 + }
  555 +
  556 + if (orderBaseInfoDOList.size() != createVO.getOrderIds().size()) {
  557 + throw new BusinessException("勾选的订单信息有误!");
  558 + }
  559 +
  560 + String invoiceNo = createVO.getInvoiceNo();
  561 +
  562 + List<InvoiceBillOrderDO> invoiceBillOrderDOS = list(new LambdaQueryWrapper<InvoiceBillOrderDO>()
  563 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  564 + .eq(InvoiceBillOrderDO::getInvoiceNo, invoiceNo));
  565 + if (CollectionUtils.isNotEmpty(invoiceBillOrderDOS)) {
  566 + throw new BusinessException("存在相同的invoice订单!");
  567 + }
  568 +
  569 + List<InvoiceBillMappingDO> invoiceBillMappingDOList = invoiceBillMappingService.list(new LambdaQueryWrapper<InvoiceBillMappingDO>().eq(BaseDO::getEnableFlag,Constant.ENABLE_TEN).in(InvoiceBillMappingDO::getOrderId,createVO.getOrderIds()));
  570 + if (CollectionUtils.isNotEmpty(invoiceBillMappingDOList)) {
  571 + throw new BusinessException("该勾选的订单已经绑定其他账单了!");
  572 + }
  573 + }
  574 +
  575 + /**
  576 + * 修改数据
  577 + *
  578 + * @param deductInfoVO 实例对象
  579 + * @return 实例对象
  580 + */
  581 + @Override
  582 + public ServerResult updateDeductInfo(InvoiceBillDeductInfoVO deductInfoVO) {
  583 + if (Objects.isNull(deductInfoVO.getId())) {
  584 + throw new BusinessException("id 不能为空");
  585 + }
  586 + InvoiceBillOrderDO invoiceBillOrderDo = getById(deductInfoVO.getId());
  587 + if (Objects.isNull(invoiceBillOrderDo)) {
  588 + throw new BusinessException("应收款单据不存在");
  589 + }
  590 +
  591 + checkCommitApply(invoiceBillOrderDo.getId());
  592 +
  593 + invoiceBillOrderDo.setDeductUrl(deductInfoVO.getDeductUrl());
  594 + invoiceBillOrderDo.setDeductAmount(deductInfoVO.getDeductAmount());
  595 + updateById(invoiceBillOrderDo);
  596 + return ServerResult.success();
  597 + }
  598 +
  599 + @Override
  600 + public ServerResult updateAmountInfo(InvoiceBillAmountInfoVO amountInfoVO) {
  601 + if (Objects.isNull(amountInfoVO.getId())) {
  602 + throw new BusinessException("id 不能为空");
  603 + }
  604 + InvoiceBillOrderDO invoiceBillOrderDo = getById(amountInfoVO.getId());
  605 + if (Objects.isNull(invoiceBillOrderDo)) {
  606 + throw new BusinessException("应收款单据不存在");
  607 + }
  608 +
  609 + checkCommitApply(invoiceBillOrderDo.getId());
  610 +
  611 + invoiceBillOrderDo.setBgUrl(amountInfoVO.getBgUrl());
  612 + invoiceBillOrderDo.setActualReceivableAmount(amountInfoVO.getActualReceivableAmount());
  613 + invoiceBillOrderDo.setActualPayedAmount1(amountInfoVO.getActualPayedAmount1());
  614 + invoiceBillOrderDo.setActualPayedAmount2(amountInfoVO.getActualPayedAmount2());
  615 + invoiceBillOrderDo.setActualPayedAmount3(amountInfoVO.getActualPayedAmount3());
  616 + invoiceBillOrderDo.setOtherAmount(amountInfoVO.getOtherAmount());
  617 + updateById(invoiceBillOrderDo);
  618 + return ServerResult.success();
  619 + }
  620 +
  621 + /**
  622 + * @param id
  623 + */
  624 + private void checkCommitApply(Long id) {
  625 + OrderFieldLockApplyDO applyDO = orderFieldLockApplyService.getOne(new LambdaQueryWrapper<OrderFieldLockApplyDO>()
  626 + .eq(OrderFieldLockApplyDO::getEnableFlag, Constant.ENABLE_TEN)
  627 + .eq(OrderFieldLockApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus())
  628 + .eq(OrderFieldLockApplyDO::getOrderId, id).last("limit 1"));
  629 + if (Objects.nonNull(applyDO)) {
  630 + throw new BusinessException("该账单还在审批中,请联系总经理审批后操作!");
  631 + }
  632 + }
  633 +
  634 + @Override
  635 + public ServerResult commitApply(InvoiceBillCommitApplyVO commitApplyVO) {
  636 + InvoiceBillOrderDO invoiceBillOrderDO = getById(commitApplyVO.getId());
  637 + if (Objects.isNull(invoiceBillOrderDO)) {
  638 + throw new BusinessException("账单不存在!");
  639 + }
  640 + Long userId = dataScope.getLoginUserId();
  641 + checkApply(commitApplyVO, userId);
  642 +
  643 + OrderFieldLockApplyDO applyDO = initOrderFieldLockApplyDO(invoiceBillOrderDO, userId);
  644 + transactionHelper.run(() -> {
  645 + orderFieldLockApplyService.save(applyDO);
  646 + invoiceBillOrderDO.setStatus(ApplyStatusEnum.WAIT_AUDIT.getStatus());
  647 + invoiceBillOrderDO.setActualRefundDate(DateUtils.format(LocalDateTime.now(), DateUtils.DATE));
  648 + updateById(invoiceBillOrderDO);
  649 + });
  650 + return ServerResult.success();
  651 + }
  652 +
  653 + /**
  654 + * @param commitApplyVO
  655 + * @param userId
  656 + */
  657 + private void checkApply(InvoiceBillCommitApplyVO commitApplyVO, Long userId) {
  658 + List<OrderFieldLockApplyDO> applyDOS = orderFieldLockApplyService.list(new LambdaQueryWrapper<OrderFieldLockApplyDO>()
  659 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  660 + .eq(OrderFieldLockApplyDO::getOrderId, commitApplyVO.getId())
  661 + .eq(OrderFieldLockApplyDO::getApplyUserId, userId)
  662 + .eq(OrderFieldLockApplyDO::getType, ApplyTypeEnum.INVOICE_BILL_APPLY.getType())
  663 + .eq(OrderFieldLockApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus()));
  664 + if (CollectionUtils.isNotEmpty(applyDOS)) {
  665 + throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST);
  666 + }
  667 + }
  668 +
  669 + /**
  670 + * @param invoiceBillOrderDO
  671 + * @param userId
  672 + * @return
  673 + */
  674 + private OrderFieldLockApplyDO initOrderFieldLockApplyDO(InvoiceBillOrderDO invoiceBillOrderDO, Long userId) {
  675 + OrderLockFieldVO lockFieldVO = new OrderLockFieldVO();
  676 + BeanUtils.copyProperties(invoiceBillOrderDO, lockFieldVO);
  677 + return OrderFieldLockApplyDO.builder()
  678 + .applyUserId(userId)
  679 + .auditUserId(null)
  680 + .fields(JSONObject.toJSONString(lockFieldVO))
  681 + .orderId(invoiceBillOrderDO.getId())
  682 + .type(ApplyTypeEnum.INVOICE_BILL_APPLY.getType())
  683 + .remark(ApplyTypeEnum.INVOICE_BILL_APPLY.getDesc())
  684 + .status(ApplyStatusEnum.WAIT_AUDIT.getStatus())
  685 + .auditRoleCodes(RoleEnum.BUSINESS_USER.getCode() + Constant.COMMA_CHARACTER + RoleEnum.ADMIN.getCode())
  686 + .build();
  687 + }
  688 +
  689 + /**
  690 + * 通过主键删除数据
  691 + *
  692 + * @param invoiceBillOrderQueryVO 筛选条件
  693 + * @return 是否成功
  694 + */
  695 + @Override
  696 + public ServerResult deleteById(InvoiceBillOrderQueryVO invoiceBillOrderQueryVO) {
  697 + List<Long> ids = invoiceBillOrderQueryVO.getIds();
  698 + if (CollUtil.isEmpty(ids)) {
  699 + return ServerResult.fail("ids 参数不能为空");
  700 + }
  701 + List<InvoiceBillOrderDO> invoiceBillOrderList = listByIds(ids);
  702 + if (CollUtil.isEmpty(invoiceBillOrderList)) {
  703 + return ServerResult.success();
  704 + }
  705 + transactionHelper.run(() -> {
  706 + removeByIds(ids);
  707 + invoiceBillMappingService.remove(new LambdaQueryWrapper<InvoiceBillMappingDO>().in(InvoiceBillMappingDO::getInvoiceBillId, ids));
  708 + });
  709 +
  710 + return ServerResult.success();
  711 + }
  712 +}
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
@@ -117,6 +117,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -117,6 +117,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
117 @Resource 117 @Resource
118 private OrderOpinionLogService orderOpinionLogService; 118 private OrderOpinionLogService orderOpinionLogService;
119 119
  120 + @Resource
  121 + private InvoiceBillMappingService invoiceBillMappingService;
  122 +
120 /** 123 /**
121 * 通过ID查询单条数据 124 * 通过ID查询单条数据
122 * <p> 125 * <p>
@@ -198,6 +201,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -198,6 +201,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
198 // 填充质检信息 201 // 填充质检信息
199 fillInspectionStageInfo(resultVOList); 202 fillInspectionStageInfo(resultVOList);
200 203
  204 + // 填充发票信息
  205 + fillInvoiceNo(resultVOList);
  206 +
201 if (locked) { 207 if (locked) {
202 // 填充字段锁定信息 208 // 填充字段锁定信息
203 fillLockFields(resultVOList); 209 fillLockFields(resultVOList);
@@ -834,6 +840,30 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -834,6 +840,30 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
834 /** 840 /**
835 * @param orderInfoResultVOList 841 * @param orderInfoResultVOList
836 */ 842 */
  843 + private void fillInvoiceNo(List<OrderInfoResultVO> orderInfoResultVOList) {
  844 + if (CollectionUtils.isEmpty(orderInfoResultVOList)) {
  845 + return;
  846 + }
  847 +
  848 + Set<Long> orderIds = orderInfoResultVOList.stream().map(OrderInfoResultVO::getId).collect(Collectors.toSet());
  849 + List<InvoiceBillMappingDO> invoiceBillMappingDOS = invoiceBillMappingService.list(new LambdaQueryWrapper<InvoiceBillMappingDO>()
  850 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  851 + .in(InvoiceBillMappingDO::getOrderId, orderIds));
  852 + if (CollectionUtils.isEmpty(invoiceBillMappingDOS)) {
  853 + return;
  854 + }
  855 + Map<Long, InvoiceBillMappingDO> invoiceBillMappingDOMap = invoiceBillMappingDOS.stream().collect(Collectors.toMap(InvoiceBillMappingDO::getOrderId, Function.identity(), (v1, v2) -> v1));
  856 + orderInfoResultVOList.forEach(result -> {
  857 + if (invoiceBillMappingDOMap.containsKey(result.getId())) {
  858 + InvoiceBillMappingDO invoiceBillMappingDO = invoiceBillMappingDOMap.get(result.getId());
  859 + result.setInvoiceNo(invoiceBillMappingDO.getInvoiceNo());
  860 + }
  861 + });
  862 + }
  863 +
  864 + /**
  865 + * @param orderInfoResultVOList
  866 + */
837 private void fillReportInfo(List<OrderInfoResultVO> orderInfoResultVOList) { 867 private void fillReportInfo(List<OrderInfoResultVO> orderInfoResultVOList) {
838 if (CollectionUtils.isEmpty(orderInfoResultVOList)) { 868 if (CollectionUtils.isEmpty(orderInfoResultVOList)) {
839 return; 869 return;
src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java
@@ -72,6 +72,9 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -72,6 +72,9 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
72 @Resource 72 @Resource
73 private OrderInspectionStageService inspectionStageService; 73 private OrderInspectionStageService inspectionStageService;
74 74
  75 + @Resource
  76 + private InvoiceBillOrderService invoiceBillOrderService;
  77 +
75 /** 78 /**
76 * 通过ID查询单条数据 79 * 通过ID查询单条数据
77 * <p> 80 * <p>
@@ -336,7 +339,7 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -336,7 +339,7 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
336 .in(CollectionUtils.isNotEmpty(orderIds), OrderFieldLockApplyDO::getOrderId, orderIds); 339 .in(CollectionUtils.isNotEmpty(orderIds), OrderFieldLockApplyDO::getOrderId, orderIds);
337 if (Objects.isNull(roleSelect)) { 340 if (Objects.isNull(roleSelect)) {
338 queryWrapper.like(Objects.nonNull(roleEnum), OrderFieldLockApplyDO::getAuditRoleCodes, roleEnum.getCode()); 341 queryWrapper.like(Objects.nonNull(roleEnum), OrderFieldLockApplyDO::getAuditRoleCodes, roleEnum.getCode());
339 - }else { 342 + } else {
340 queryWrapper.eq(Objects.nonNull(roleSelect), OrderFieldLockApplyDO::getAuditRoleCodes, roleSelect.getCode()); 343 queryWrapper.eq(Objects.nonNull(roleSelect), OrderFieldLockApplyDO::getAuditRoleCodes, roleSelect.getCode());
341 344
342 } 345 }
@@ -395,7 +398,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -395,7 +398,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
395 } else if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType().equals(applyDO.getType())) { 398 } else if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType().equals(applyDO.getType())) {
396 orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_REFUSE.getStatus()); 399 orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_REFUSE.getStatus());
397 orderBaseInfoService.updateById(orderBaseInfoDO); 400 orderBaseInfoService.updateById(orderBaseInfoDO);
  401 + } else if (ApplyTypeEnum.INVOICE_BILL_APPLY.getType().equals(applyDO.getType())) {
  402 + InvoiceBillOrderDO invoiceBillOrderDO = JSONObject.parseObject(applyDO.getFields(), InvoiceBillOrderDO.class);
  403 + invoiceBillOrderDO.setStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus());
  404 + invoiceBillOrderService.updateById(invoiceBillOrderDO);
398 } 405 }
  406 +
399 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build(); 407 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build();
400 408
401 applyService.updateById(applyDO); 409 applyService.updateById(applyDO);
@@ -516,6 +524,10 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -516,6 +524,10 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
516 } 524 }
517 orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_PASS.getStatus()); 525 orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_PASS.getStatus());
518 orderBaseInfoService.updateById(orderBaseInfoDO); 526 orderBaseInfoService.updateById(orderBaseInfoDO);
  527 + } else if (ApplyTypeEnum.INVOICE_BILL_APPLY.getType().equals(applyDO.getType())) {
  528 + InvoiceBillOrderDO invoiceBillOrderDO = JSONObject.parseObject(applyDO.getFields(), InvoiceBillOrderDO.class);
  529 + invoiceBillOrderDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
  530 + invoiceBillOrderService.updateById(invoiceBillOrderDO);
519 } 531 }
520 532
521 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build(); 533 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build();
src/main/java/com/order/erp/service/order/impl/ProducePaymentCheckBillOrderServiceImpl.java 0 → 100644
  1 +package com.order.erp.service.order.impl;
  2 +
  3 +import cn.hutool.core.bean.BeanUtil;
  4 +import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6 +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10 +import com.order.erp.common.constant.Constant;
  11 +import com.order.erp.common.constant.ServerResult;
  12 +import com.order.erp.common.utils.PageUtils;
  13 +import com.order.erp.domain.dto.order.ProducePaymentCheckBillOrderDO;
  14 +import com.order.erp.domain.vo.order.ProducePaymentCheckBillOrderQueryVO;
  15 +import com.order.erp.domain.vo.order.ProducePaymentCheckBillOrderVO;
  16 +import com.order.erp.mapper.order.ProducePaymentCheckBillOrderMapper;
  17 +import com.order.erp.service.order.ProducePaymentCheckBillOrderService;
  18 +import lombok.extern.slf4j.Slf4j;
  19 +import org.springframework.stereotype.Service;
  20 +
  21 +import java.util.List;
  22 +import java.util.Objects;
  23 +
  24 +/**
  25 + * 生产科对账单应收账单(ProducePaymentCheckBillOrder)表服务实现类
  26 + *
  27 + * @author makejava
  28 + * @since 2024-08-05 16:26:35
  29 + */
  30 +@Slf4j
  31 +@Service
  32 +public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl<ProducePaymentCheckBillOrderMapper, ProducePaymentCheckBillOrderDO> implements ProducePaymentCheckBillOrderService {
  33 +
  34 +
  35 + /**
  36 + * 通过ID查询单条数据
  37 + * <p>
  38 + * producePaymentCheckBillOrderQueryVO 主键
  39 + *
  40 + * @return 实例对象
  41 + */
  42 + @Override
  43 + public ServerResult queryById(ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO) {
  44 + if (Objects.isNull(producePaymentCheckBillOrderQueryVO.getId())) {
  45 + return ServerResult.fail("id 不能为空");
  46 + }
  47 + ProducePaymentCheckBillOrderDO ProducePaymentCheckBillOrderDo = getById(producePaymentCheckBillOrderQueryVO.getId());
  48 + if (Objects.isNull(ProducePaymentCheckBillOrderDo)) {
  49 + return ServerResult.success(null);
  50 + }
  51 + return ServerResult.success(BeanUtil.copyProperties(ProducePaymentCheckBillOrderDo, ProducePaymentCheckBillOrderVO.class));
  52 + }
  53 +
  54 + /**
  55 + * 分页查询
  56 + *
  57 + * @param producePaymentCheckBillOrderQueryVO 筛选条件
  58 + * @return 查询结果
  59 + */
  60 + @Override
  61 + public ServerResult list(ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO) {
  62 +
  63 + LambdaQueryWrapper<ProducePaymentCheckBillOrderDO> queryWapper = new LambdaQueryWrapper<ProducePaymentCheckBillOrderDO>()
  64 + .eq(ProducePaymentCheckBillOrderDO::getEnableFlag, Constant.ENABLE_TEN)
  65 + .orderByDesc(ProducePaymentCheckBillOrderDO::getId);
  66 + Page page = new Page<>(producePaymentCheckBillOrderQueryVO.getPage(), producePaymentCheckBillOrderQueryVO.getPageSize());
  67 + IPage<ProducePaymentCheckBillOrderDO> iPage = page(page, queryWapper);
  68 + producePaymentCheckBillOrderQueryVO.setTotal(Long.valueOf(iPage.getTotal()).intValue());
  69 + return ServerResult.success(PageUtils.getPageReturn(null, producePaymentCheckBillOrderQueryVO));
  70 + }
  71 +
  72 + /**
  73 + * 新增数据
  74 + *
  75 + * @param producePaymentCheckBillOrderVO 实例对象
  76 + * @return 实例对象
  77 + */
  78 + @Override
  79 + public ServerResult add(ProducePaymentCheckBillOrderVO producePaymentCheckBillOrderVO) {
  80 + //todo 校验
  81 + if (Objects.nonNull(producePaymentCheckBillOrderVO.getId())) {
  82 + producePaymentCheckBillOrderVO.setId(null);
  83 + }
  84 + ProducePaymentCheckBillOrderDO producePaymentCheckBillOrderDo = BeanUtil.copyProperties(producePaymentCheckBillOrderVO, ProducePaymentCheckBillOrderDO.class);
  85 +
  86 + save(producePaymentCheckBillOrderDo);
  87 +
  88 + return ServerResult.success();
  89 + }
  90 +
  91 + /**
  92 + * 修改数据
  93 + *
  94 + * @param producePaymentCheckBillOrderVO 实例对象
  95 + * @return 实例对象
  96 + */
  97 + @Override
  98 + public ServerResult edit(ProducePaymentCheckBillOrderVO producePaymentCheckBillOrderVO) {
  99 + //todo 校验
  100 + if (Objects.isNull(producePaymentCheckBillOrderVO.getId())) {
  101 + return ServerResult.fail("id 不能为空");
  102 + }
  103 + ProducePaymentCheckBillOrderDO producePaymentCheckBillOrderDo = BeanUtil.copyProperties(producePaymentCheckBillOrderVO, ProducePaymentCheckBillOrderDO.class);
  104 +
  105 + updateById(producePaymentCheckBillOrderDo);
  106 +
  107 + return ServerResult.success();
  108 + }
  109 +
  110 + /**
  111 + * 通过主键删除数据
  112 + *
  113 + * @param producePaymentCheckBillOrderQueryVO 筛选条件
  114 + * @return 是否成功
  115 + */
  116 + @Override
  117 + public ServerResult deleteById(ProducePaymentCheckBillOrderQueryVO producePaymentCheckBillOrderQueryVO) {
  118 + List<Long> ids = producePaymentCheckBillOrderQueryVO.getIds();
  119 + if (CollUtil.isEmpty(ids)) {
  120 + return ServerResult.fail("ids 参数不能为空");
  121 + }
  122 + List<ProducePaymentCheckBillOrderDO> producePaymentCheckBillOrderList = listByIds(ids);
  123 + if (CollUtil.isEmpty(producePaymentCheckBillOrderList)) {
  124 + return ServerResult.success();
  125 + }
  126 + //todo 校验是否可以逻辑删除
  127 + LambdaUpdateWrapper<ProducePaymentCheckBillOrderDO> updateWrapper = new LambdaUpdateWrapper<ProducePaymentCheckBillOrderDO>()
  128 + .in(ProducePaymentCheckBillOrderDO::getId, ids)
  129 + .set(ProducePaymentCheckBillOrderDO::getEnableFlag, Constant.UNABLE_TWENTY);
  130 + update(updateWrapper);
  131 + return ServerResult.success();
  132 + }
  133 +}
src/main/resources/application-pre-prod.yml 0 → 100644
  1 +mybatis-plus:
  2 + configuration:
  3 + cache-enabled: false
  4 + call-setters-on-nulls: true
  5 + jdbc-type-for-null: 'null'
  6 + map-underscore-to-camel-case: true
  7 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  8 + global-config:
  9 + db-config:
  10 + capital-mode: false
  11 + field-strategy: NOT_NULL
  12 + id-type: AUTO
  13 + logic-delete-field: enable_flag
  14 + logic-delete-value: 20
  15 + logic-not-delete-value: 10
  16 + mapper-locations: classpath:/mapper/**.xml
  17 + type-aliases-package: com.order.erp.**.dto
  18 +#spring:
  19 +# datasource:
  20 +# dynamic:
  21 +# primary: overtime #设置默认的数据源或者数据源组,默认值即为master
  22 +# strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
  23 +# datasource:
  24 +# wms_warehouse:
  25 +# url: jdbc:mysql://127.0.0.1:3306/overtime?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&allowMultiQueries=true&useAffectedRows=true&autoReconnectForPools=true&rewriteBatchedStatements=true
  26 +# username: root
  27 +# password: root
  28 +# driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
  29 +# druid:
  30 +# initial-size: 5
  31 +# max-active: 20
  32 +# max-evictable-idle-time-millis: 300000
  33 +# max-wait: 60000
  34 +# min-evictable-idle-time-millis: 300000
  35 +# min-idle: 5
  36 +# time-between-eviction-runs-millis: 60000
  37 +# type: com.alibaba.druid.pool.DruidDataSource
  38 +spring:
  39 + servlet:
  40 + multipart:
  41 + enabled: true
  42 + max-file-size: 100MB
  43 + max-request-size: 20MB
  44 + file-size-threshold: 20MB
  45 + datasource:
  46 + db-type: com.alibaba.druid.pool.DruidDataSource
  47 + driverClassName: com.mysql.cj.jdbc.Driver
  48 + initial-size: 5
  49 + max-active: 30
  50 + max-wait: 30000
  51 + min-idle: 5
  52 + #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  53 + timeBetweenEvictionRunsMillis: 30000
  54 + #配置一个连接在池中最小生存的时间,单位是毫秒,30000=30s
  55 + minEvictableIdleTimeMillis: 30000
  56 + validationQuery: SELECT 'x'
  57 + testWhileIdle: true
  58 + testOnBorrow: true
  59 + testOnReturn: true
  60 + password: Erp@test123456
  61 + time-between-eviction-runs-millis: 1000
  62 + url: jdbc:mysql://47.104.8.35:3307/order-erp-pre-prod?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&allowMultiQueries=true&useAffectedRows=true&autoReconnectForPools=true
  63 + username: root
  64 + redis:
  65 + database: 10
  66 + host: 47.104.8.35
  67 + lettuce:
  68 + pool:
  69 + max-active: 2000
  70 + max-idle: 10
  71 + max-wait: -1
  72 + min-idle: 3
  73 + time-between-eviction-runs: 100
  74 + password: ''
  75 + port: 6380
  76 + timeout: 2000
  77 + mail:
  78 + # 配置 SMTP 服务器地址
  79 + host: xxx
  80 + # 发送者邮箱,已开通POP3/SMTP服务的邮箱,也就是你自己的
  81 + username: xxxx
  82 + # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
  83 + password: xxx
  84 + # 邮件接收者
  85 + mailRecipient: #邮件接收者邮箱
  86 + # 端口号465或587(QQ邮箱发送邮件仅支持587端口协议)
  87 + port: 587
  88 + # 默认的邮件编码为UTF-8
  89 + default-encoding: UTF-8
  90 + # 配置SSL 加密工厂
  91 + properties:
  92 + mail:
  93 + smtp:
  94 + socketFactoryClass: javax.net.ssl.SSLSocketFactory
  95 + #表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
  96 + debug: true
  97 +
  98 + freemarker:
  99 + template-loader-path: classpath:/template/
  100 + suffix: .flt
  101 + enabled: true
  102 + cache: false
  103 + charset: UTF-8
  104 + content-type: text/html
  105 + allow-request-override: false
  106 + check-template-location: true
  107 + expose-request-attributes: false
  108 + expose-session-attributes: false
  109 + expose-spring-macro-helpers: false
  110 +
  111 +
  112 +logging:
  113 + config: classpath:log4j2-prod.xml
  114 +
  115 +#登录图形验证码有效时间/分钟
  116 +loginCode:
  117 + expiration: 2
  118 +
  119 +#密码加密传输,前端公钥加密,后端私钥解密
  120 +rsa:
  121 + private_key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A==
  122 +
  123 +
  124 +#jwt
  125 +jwt:
  126 + header: Authorization
  127 + # 令牌前缀
  128 + token-start-with: Bearer
  129 + # 必须使用最少88位的Base64对该令牌进行编码
  130 + base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
  131 + # 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
  132 + token-validity-in-seconds: 720000000
  133 + # 在线用户key
  134 + online-key: online-token
  135 + # 验证码
  136 + code-key: code-key
  137 +
  138 +outsys:
  139 + sms:
  140 + regionId: cn-hangzhou
  141 + accessKeyId: LTAIZCPI7OaWud0m
  142 + secret: nvtGeScBwRztGeoj8WSp5OWalalgpK
  143 + domain: dysmsapi.aliyuncs.com
  144 + version: 2017-05-25
  145 + action: SendSms
  146 + signName: canrd
  147 + templateCode: SMS_173005236
  148 + email:
  149 + host: xxxx
  150 + passwordRecoverKey: xxxxx
  151 +
  152 +
  153 +
  154 +system:
  155 + isLoginFailureLock: true
  156 + loginFailureLockTime: 5
  157 + loginFailureLockCount: 3
  158 +
  159 +openai:
  160 + token: Bearer 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
  161 +
  162 +# 文件存储路径
  163 +file:
  164 + path: /home/canrd/order-erp/files/
  165 + host: http://47.104.8.35
  166 + avatar: /home/order-erp/avatar/
  167 + # 文件大小 /M
  168 + maxSize: 100
  169 + avatarMaxSize: 5
  170 +
  171 +# 阿里pss图片服务
  172 +oss:
  173 + endpoint: https://oss-cn-qingdao.aliyuncs.com
  174 + accessKeyId: LTAI5t7u1gXR2vm82sd6CkVz
  175 + accessKeySecret: m4NzHZZsZiauKmRO8y7DihmcGNdQk4
  176 + bucket: alterego
  177 +
  178 +
  179 +db:
  180 + mysql:
  181 + ip: 172.17.0.1
  182 + port: 3306
  183 + user: root
  184 + password: 123456
  185 + databaseName: order-erp
  186 + savePath: /home/canrd/order-erp/files/backup/
src/main/resources/application.yml
@@ -3,4 +3,4 @@ server: @@ -3,4 +3,4 @@ server:
3 3
4 spring: 4 spring:
5 profiles: 5 profiles:
6 - active: test  
7 \ No newline at end of file 6 \ No newline at end of file
  7 + active: pre-prod
8 \ No newline at end of file 8 \ No newline at end of file