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 112 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>()
113 113 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
114 114 .eq(ProjectFieldLockRecord::getProjectNoPrefix, projectNoPrefix)
115   - .eq(ProjectFieldLockRecord::getUserId, dataScope.getLoginUserId())
  115 +// .eq(ProjectFieldLockRecord::getUserId, dataScope.getLoginUserId())
116 116 .orderByDesc(ProjectFieldLockRecord::getId)
117 117 .last("limit 1"));
118 118 if (Objects.isNull(recordDO)) {
... ... @@ -251,7 +251,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
251 251 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>()
252 252 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
253 253 .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix())
254   - .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId())
  254 +// .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId())
255 255 .orderByDesc(ProjectFieldLockRecord::getId)
256 256 .last("limit 1"));
257 257 if (Objects.isNull(recordDO)) {
... ...
src/main/resources/mapper/InvoiceBillOrderMapper.xml
... ... @@ -123,8 +123,14 @@
123 123 ON o.id = i.order_id AND i.enable_flag = 10
124 124 LEFT JOIN produce_payment_check_bill_order AS p
125 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 134 WHERE o.enable_flag = 10
129 135 <if test="queryVO.invoiceNo != null and queryVO.invoiceNo != ''">
130 136 AND i.invoice_no LIKE CONCAT('%', #{queryVO.invoiceNo}, '%')
... ...