Browse Source

解决重复交费导致存在businessItemId相同的收费明细记录,引起确认账单报错

lzm 3 years ago
parent
commit
a26d972690

+ 6 - 4
sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java

@@ -376,10 +376,12 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                         item.setPickCustomerId(customerId).setPick(1)
                                 .setPickCustomerName(tbCostomer.getName()).setPickTime(now)
                                 .setConfirm(1).setConfirmTime(now);
-                        TbFeeDetails feeDetails = tbFeeDetailsService.getByBusinessItemId(item.getId() + "");
-                        if (feeDetails != null) {
-                            feeDetails.setPickCustomerName(item.getPickCustomerName());
-                            tbFeeDetailsService.updateById(feeDetails);
+                        List<TbFeeDetails> feeDetailsList = tbFeeDetailsService.getByBusinessItemId(item.getId() + "");//重复交费会存在多个businessItemId
+                        if(feeDetailsList!=null) {
+                            for (TbFeeDetails feeDetails : feeDetailsList) {
+                                feeDetails.setPickCustomerName(item.getPickCustomerName());
+                                tbFeeDetailsService.updateById(feeDetails);
+                            }
                         }
                         tbBusinessItemService.updateById(item);
                         List<String> customerMessageType = StrUtil.splitTrim(tbCostomer.getMessageType(), ",");

+ 7 - 4
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemService.java

@@ -136,12 +136,15 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
         tbBusinessItem.setConfirm(1).setConfirmTime(new Date());
         this.updateById(tbBusinessItem);
 
-        TbFeeDetails feeDetails = tbFeeDetailsService.getByBusinessItemId(id + "");
-        if (feeDetails != null) {
-            feeDetails.setPickCustomerName(tbBusinessItem.getPickCustomerName());
-            tbFeeDetailsService.updateById(feeDetails);
+        List<TbFeeDetails> feeDetailsList = tbFeeDetailsService.getByBusinessItemId(id + "");
+        if(feeDetailsList!=null) {
+            for (TbFeeDetails feeDetails : feeDetailsList) {
+                feeDetails.setPickCustomerName(tbBusinessItem.getPickCustomerName());
+                tbFeeDetailsService.updateById(feeDetails);
+            }
         }
 
+
         //todo 通知作业方
         List<SpAdmin> spAdminList = spAdminService.findByCustomerId(tbBusinessItem.getPickCustomerId());
         TbBusiness tbBusiness = tbBusinessService.getById(tbBusinessItem.getBusinessId());

+ 2 - 2
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java

@@ -128,10 +128,10 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
         return tbFeeDetailsMapper.getList(so);
     }
 
-    public TbFeeDetails getByBusinessItemId(String businessItemId) {
+    public List<TbFeeDetails> getByBusinessItemId(String businessItemId) {
         QueryWrapper<TbFeeDetails> qw = new QueryWrapper<>();
         qw.eq("business_item_id", businessItemId);
-        return getOne(qw);
+        return list(qw);
     }
 
     public TbFeeDetails getByBusinessIdAndCarNoAndFeeType(String businessId, String carNo, Integer feeType) {