فهرست منبع

收费明细记录outTradeNo

lzm 3 سال پیش
والد
کامیت
c95819fd09

+ 2 - 2
sp-server/src/main/java/com/pj/api/wx/service/WxService.java

@@ -209,11 +209,11 @@ public class WxService {
                     tbBusinessService.updateById(business);
                 }
             }
-            tbFeeDetailsService.chargeParkFee(cars, transactionId);//添加cars的收费明细
+            tbFeeDetailsService.chargeParkFee(cars, transactionId, outTradeNo);//添加cars的收费明细
             String businessId = attach.getB();
             if (StrUtil.isNotEmpty(businessId)) {
                 List<TbBusinessItem> items = tbBusinessItemService.findByBusinessId(businessId);
-                tbFeeStatisticsService.countBusinessFee(items, transactionId);//业务费日统计
+                tbFeeStatisticsService.countBusinessFee(items, transactionId, outTradeNo);//业务费日统计
                 items.forEach(tbBusinessItem -> tbBusinessItem.setPayStatus(1).setPayTime(now));
                 tbBusinessItemService.updateBatchById(items);
                 TbBusiness tbBusiness = tbBusinessService.getById(businessId);

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

@@ -141,7 +141,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
     }
 
 
-    public void chargeParkFee(List<PriceBO> cars, String transactionId) {
+    public void chargeParkFee(List<PriceBO> cars, String transactionId, String outTradeNo) {
         for (PriceBO bo1 : cars) {
             if(bo1.getP().compareTo(BigDecimal.valueOf(0)) == 0){
                 continue;
@@ -154,9 +154,11 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             TbFeeDetails nightParkFee = new TbFeeDetails();
             TbFeeDetails dayParkFee = new TbFeeDetails();
             String transactionIdStr = "";
+            String outTradeNoStr = "";
             for (TbFeeDetails oldFee : oldFeeList) {
                 if(!StrUtil.isEmpty(oldFee.getTransactionId())){
                     transactionIdStr = oldFee.getTransactionId();
+                    outTradeNoStr = oldFee.getOutTradeNo();
                 }
                 if(StrUtil.equals(oldFee.getItemTypeName(), "白天停车")){
                     dayParkFee = oldFee;
@@ -166,13 +168,14 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
                 }
             }
             transactionIdStr = transactionIdStr.equals("") ? transactionId : transactionIdStr + "," + transactionId;
+            outTradeNoStr = outTradeNoStr.equals("") ? outTradeNo : outTradeNoStr + "," + outTradeNo;
             BigDecimal baseNightPrice = partConfig.getBasePrice().add(partConfig.getExtraPrice());
             BigDecimal[] qr = paidMoney.divideAndRemainder(baseNightPrice);//商和余数的数组,商为夜间停车次数,余数为白天停车费用。
             BigDecimal nightFeeNum = qr[0];
             if(nightFeeNum.compareTo(BigDecimal.valueOf(0)) > 0){
                 nightParkFee.setNum(nightFeeNum.intValue()).setItemTypeName("夜间停车")
                 .setUnitPrice(baseNightPrice).setItemPrice(baseNightPrice.multiply(nightFeeNum));
-                setFee(nightParkFee, car, business, transactionIdStr);
+                setFee(nightParkFee, car, business, transactionIdStr, outTradeNoStr);
                 saveOrUpdate(nightParkFee);
                 if(qr[1].compareTo(BigDecimal.valueOf(0)) == 0 && dayParkFee.getId() != null){
                     delete(Long.valueOf(dayParkFee.getId()));
@@ -180,14 +183,14 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             }
             if(qr[1].compareTo(BigDecimal.valueOf(0)) > 0){
                 dayParkFee.setNum(1).setItemTypeName("白天停车").setUnitPrice(qr[1]).setItemPrice(qr[1]);
-                setFee(dayParkFee, car, business, transactionIdStr);
+                setFee(dayParkFee, car, business, transactionIdStr, outTradeNoStr);
                 saveOrUpdate(dayParkFee);
             }
 
         }
     }
 
-    private void setFee(TbFeeDetails parkFee, TbBusinessCar car, TbBusiness business, String transactionId){
+    private void setFee(TbFeeDetails parkFee, TbBusinessCar car, TbBusiness business, String transactionId, String outTradeNo){
         Date now = new Date();
         String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
@@ -200,7 +203,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
                 .setFeeType(TbFeeDetails.fee.PARK_FEE.getCode())
                 .setPayDay(toDay).setPayType(3).setCreateTime(now)
                 .setIsSettle(1).setPayMode(1).setPayTime(nowStr)
-                .setTransactionId(transactionId)
+                .setTransactionId(transactionId).setOutTradeNo(outTradeNo)
                 .setBusinessCarNo(car.getNo());
         if (business!=null){
             parkFee.setWeight(business.getNetWeight()).setBusinessNo(business.getNo());

+ 2 - 2
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsService.java

@@ -193,7 +193,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
     }
 
     //@Async
-    public void countBusinessFee(List<TbBusinessItem> items, String transactionId) {
+    public void countBusinessFee(List<TbBusinessItem> items, String transactionId, String outTradeNo) {
         Date now = new Date();
         String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
@@ -265,7 +265,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
                     .setBusinessItemId(item.getId() + "")
                     .setPickCustomerName(item.getPickCustomerName())
                     .setIsSettle(1).setPayMode(1).setPayTime(nowStr).setWeight(business.getNetWeight())
-                    .setTransactionId(transactionId)
+                    .setTransactionId(transactionId).setOutTradeNo(outTradeNo)
                     .setNum(Integer.valueOf(item.getNum()));
             tbFeeDetailsService.saveOrUpdate(businessFeeDetail);
         }