فهرست منبع

账单缴费添加当前用户 -修改人修改时间补充

huangpeng 4 ماه پیش
والد
کامیت
fdd0dcf195
1فایلهای تغییر یافته به همراه40 افزوده شده و 55 حذف شده
  1. 40 55
      zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwBillingRecordServiceImpl.java

+ 40 - 55
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwBillingRecordServiceImpl.java

@@ -26,7 +26,6 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.stream.Collectors;
 
 import static com.rongwei.zhsw.system.utils.SaveConstans.billInfo.PAIDINSTATUS;
 import static com.rongwei.zhsw.system.utils.SaveConstans.billInfo.PENDINGSTATUS;
@@ -85,9 +84,6 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         SwBillingRecordDo swBillingRecordDo = addNewBillRecord(paidin,datasource,list);
         swBillingRecordService.save(swBillingRecordDo);
 
-        //4.生成已经缴费账单
-//        List<SwBillManagementPaidDo> paidDos = addNewPaids(list, swBillingRecordDo);
-//        swBillManagementPaidService.saveBatch(paidDos);
 
         //5.删除 待收账单数据
         swBillManagementUnpaidDao.deleteByIds(ids);
@@ -95,25 +91,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         return R.ok();
     }
 
-    /**
-     * 生成缴费账单
-     *
-     * @param list
-     * @param swBillingRecordDo
-     * @return
-     */
-    private List<SwBillManagementPaidDo> addNewPaids(List<SwBillManagementUnpaidDo> list, SwBillingRecordDo swBillingRecordDo) {
-        List<SwBillManagementPaidDo> paidDos =new ArrayList<>();
-        for (SwBillManagementUnpaidDo unpaidDo : list) {
-            SwBillManagementPaidDo paidDo = new SwBillManagementPaidDo();
-            BeanUtils.copyProperties(unpaidDo,paidDo);
-            paidDo.setStatus(PAIDINSTATUS);  // 实缴
-            paidDo.setPaymentrecordid(swBillingRecordDo.getId()); //缴费记录ID
-            paidDos.add(paidDo);
-        }
-        return paidDos;
 
-    }
 
     /**
      * 生成新的缴费账单
@@ -139,7 +117,13 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         SysUserVo currentUser = ZhswCommonUtils.getCurrentUser();
         add.setTollcollectorid(currentUser.getId());
         add.setTollcollectorname(currentUser.getName());
-        add.setTenantid(currentUser.getTenantid());
+        add.setTenantid(currentUser.getTenantid())
+                .setCreateuserid(currentUser.getId())
+                .setCreateusername(currentUser.getName())
+                .setCreatedate(new Date())
+                .setModifydate(new Date())
+                .setModifyuserid(currentUser.getId())
+                .setModifyusername(currentUser.getName());
 
         // list 汇总计算
         BigDecimal allfeewaiver =new BigDecimal(0);
@@ -153,40 +137,58 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
 
             SwBillManagementPaidDo paidDo = new SwBillManagementPaidDo();
             BeanUtils.copyProperties(unpaidDo,paidDo);
-            paidDo.setStatus(PAIDINSTATUS);  // 实缴
+            // 新生成的 已缴费账单
+            paidDo.setStatus(PAIDINSTATUS);
             paidDo.setPaymentrecordid(add.getId()); //缴费记录ID
+            paidDo.setCreateuserid(currentUser.getId())
+                    .setCreateusername(currentUser.getName())
+                    .setCreatedate(new Date())
+                    .setModifydate(new Date())
+                    .setModifyuserid(currentUser.getId())
+                    .setModifyusername(currentUser.getName());
             paidDos.add(paidDo);
 
         }
         //生成已经缴费账单
         swBillManagementPaidService.saveBatch(paidDos);
 
-        add.setAllfeewaiver(allfeewaiver); //总减免
-        add.setOughttohavepaid(oughttohavepaid); //原应缴
-        add.setLatefees(latefees); //滞纳金
+        //总减免
+        add.setAllfeewaiver(allfeewaiver);
+        //原应缴
+        add.setOughttohavepaid(oughttohavepaid);
+        //滞纳金
+        add.setLatefees(latefees);
 
         //根据户号获取 用户记录
         SwUserManagementDo swUserManagement = swUserManagementService.getBaseMapper().
                 selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, add.getUsernumber()));
+
         // 用户 账户余额
         BigDecimal accountbalance = swUserManagement.getAccountbalance()==null?BigDecimal.ZERO:swUserManagement.getAccountbalance();
+        // 账户余额
+        add.setAccountbalance(accountbalance);
+        //原余额(元)   = 用户表 用户余额
+        add.setOriginalbalance(accountbalance);
 
-        add.setAccountbalance(accountbalance); // 账户余额
-        add.setOriginalbalance(accountbalance);  //原余额(元)   = 用户表 用户余额
+        //实缴
+        add.setPaidin(paidin);
 
-        add.setPaidin(paidin);  //实缴
-
-        add.setActualdue(oughttohavepaid.subtract(allfeewaiver).subtract(latefees));  //实际应缴(元)     =  原应缴 - 总减免 - 滞纳金
-        add.setAfterpaymentbalance(paidin.subtract(add.getActualdue())); //缴费后余额 =  实缴 - 实际应缴(元)
-        add.setDatasource(datasource); //数据来源
         //1、当 【余额】 >=【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】  时,【余额】字段=【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】
         //2、当 【余额】 <【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】  时,【余额】字段=【账户余额(元)】
-        if(add.getAccountbalance().compareTo(add.getAccountbalance())>=0){
-            add.setBalancededuction(add.getAccountbalance());// 余额抵扣
+        if(oughttohavepaid.subtract(allfeewaiver).subtract(latefees).compareTo(accountbalance)<0){
+            add.setBalancededuction(oughttohavepaid.subtract(allfeewaiver).subtract(latefees));// 余额抵扣
         }else {
-            add.setBalancededuction(add.getAccountbalance());// 余额抵扣
+            add.setBalancededuction(accountbalance);// 余额抵扣
         }
 
+        // 【实际应缴(元)】=【原应缴(元)】-【总减免(元)】 +【滞纳金(元)】-【余额抵扣(元)】
+        add.setActualdue(oughttohavepaid.subtract(allfeewaiver).add(latefees).subtract(add.getBalancededuction()));
+
+        //【实缴后余额(元)】=【账户余额】+【本次实缴(元-整)】- 原应缴 + 总减免 - 滞纳金
+        add.setAfterpaymentbalance(paidin.add(accountbalance).subtract(oughttohavepaid).add(allfeewaiver).subtract(latefees));
+        //数据来源
+        add.setDatasource(datasource);
+
         //更新用户表 余额字段
         swUserManagementService.balanceAdd(swUserManagement.getId(),paidin.subtract(add.getActualdue()));
 
@@ -225,24 +227,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         if (list.isEmpty()) throw new Exception("该户号下待缴账单已全部缴费,请重新选择户号!");
         //个别 被缴费
         if (list.size() < ids.size()) {
-            //去缴费账单中查询 已缴费的记录
-            List<SwBillManagementPaidDo> collect = swBillManagementPaidService.listByIds(ids).stream().collect(Collectors.toList());
-            StringBuffer errorMsg = new StringBuffer("账单编号为【");
-
-            for (int i = 0; i < collect.size(); i++) {
-                if (i==collect.size()-1){
-                    errorMsg.append(collect.get(i).getBillnumber());
-                }else {
-                    errorMsg.append(collect.get(i).getBillnumber()+",");
-                }
-            }
-
-            errorMsg.append("]的账单已缴费,请重新选择户号!");
-            throw new Exception(errorMsg.toString());
+            throw new Exception("当前账单中存在已缴费的,请重新查询用户最新账单在确认缴费");
         }
-
-
     }
-
-
 }