Commit 0f226e9d9b92ca2f82b13d3e977e316e96292e4a

Authored by chenhang4442024
1 parent b3efa9a2

fix:1.修复业务研发净利润与内部生产净利润在锁定表中由于对prefix进行了唯一索引,所以在查询时不能再判断userid申请,无论谁申请都能查到才不会出现唯一索引出错的情况。

2.修复应收款应付款管理,由于数据幂等性,造成利润表插入多条相同orderId数据,在应收款查询出来多条应收应付数据的问题。
src/main/java/com/order/erp/service/order/impl/ProjectBaseInfoServiceImpl.java
@@ -112,7 +112,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe @@ -112,7 +112,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe
112 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>() 112 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>()
113 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 113 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
114 .eq(ProjectFieldLockRecord::getProjectNoPrefix, projectNoPrefix) 114 .eq(ProjectFieldLockRecord::getProjectNoPrefix, projectNoPrefix)
115 - .eq(ProjectFieldLockRecord::getUserId, dataScope.getLoginUserId()) 115 +// .eq(ProjectFieldLockRecord::getUserId, dataScope.getLoginUserId())
116 .orderByDesc(ProjectFieldLockRecord::getId) 116 .orderByDesc(ProjectFieldLockRecord::getId)
117 .last("limit 1")); 117 .last("limit 1"));
118 if (Objects.isNull(recordDO)) { 118 if (Objects.isNull(recordDO)) {
@@ -251,7 +251,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe @@ -251,7 +251,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
251 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>() 251 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>()
252 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 252 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
253 .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix()) 253 .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix())
254 - .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId()) 254 +// .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId())
255 .orderByDesc(ProjectFieldLockRecord::getId) 255 .orderByDesc(ProjectFieldLockRecord::getId)
256 .last("limit 1")); 256 .last("limit 1"));
257 if (Objects.isNull(recordDO)) { 257 if (Objects.isNull(recordDO)) {
src/main/resources/mapper/InvoiceBillOrderMapper.xml
@@ -123,8 +123,14 @@ @@ -123,8 +123,14 @@
123 ON o.id = i.order_id AND i.enable_flag = 10 123 ON o.id = i.order_id AND i.enable_flag = 10
124 LEFT JOIN produce_payment_check_bill_order AS p 124 LEFT JOIN produce_payment_check_bill_order AS p
125 ON o.id = p.order_id AND p.enable_flag = 10 125 ON o.id = p.order_id AND p.enable_flag = 10
126 - LEFT JOIN order_profit_analysis AS a  
127 - ON o.id = a.order_id AND a.enable_flag = 10 126 + LEFT JOIN ( -- 子查询,当时存储利润数据时,可能幂等性问题造成一个orderId创建了两条或者多条利润数据,现在需要对利润数据进行保留一条,一一对应。
  127 + SELECT * FROM (
  128 + SELECT *,
  129 + ROW_NUMBER() OVER(PARTITION BY order_id ORDER BY id ASC) AS rn
  130 + FROM order_profit_analysis
  131 + WHERE enable_flag = 10
  132 + ) AS temp WHERE temp.rn = 1) AS a
  133 + ON o.id = a.order_id
128 WHERE o.enable_flag = 10 134 WHERE o.enable_flag = 10
129 <if test="queryVO.invoiceNo != null and queryVO.invoiceNo != ''"> 135 <if test="queryVO.invoiceNo != null and queryVO.invoiceNo != ''">
130 AND i.invoice_no LIKE CONCAT('%', #{queryVO.invoiceNo}, '%') 136 AND i.invoice_no LIKE CONCAT('%', #{queryVO.invoiceNo}, '%')