|
@@ -26,7 +26,6 @@ import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.*;
|
|
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.PAIDINSTATUS;
|
|
import static com.rongwei.zhsw.system.utils.SaveConstans.billInfo.PENDINGSTATUS;
|
|
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);
|
|
SwBillingRecordDo swBillingRecordDo = addNewBillRecord(paidin,datasource,list);
|
|
swBillingRecordService.save(swBillingRecordDo);
|
|
swBillingRecordService.save(swBillingRecordDo);
|
|
|
|
|
|
- //4.生成已经缴费账单
|
|
|
|
-// List<SwBillManagementPaidDo> paidDos = addNewPaids(list, swBillingRecordDo);
|
|
|
|
-// swBillManagementPaidService.saveBatch(paidDos);
|
|
|
|
|
|
|
|
//5.删除 待收账单数据
|
|
//5.删除 待收账单数据
|
|
swBillManagementUnpaidDao.deleteByIds(ids);
|
|
swBillManagementUnpaidDao.deleteByIds(ids);
|
|
@@ -95,25 +91,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
|
|
return R.ok();
|
|
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();
|
|
SysUserVo currentUser = ZhswCommonUtils.getCurrentUser();
|
|
add.setTollcollectorid(currentUser.getId());
|
|
add.setTollcollectorid(currentUser.getId());
|
|
add.setTollcollectorname(currentUser.getName());
|
|
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 汇总计算
|
|
// list 汇总计算
|
|
BigDecimal allfeewaiver =new BigDecimal(0);
|
|
BigDecimal allfeewaiver =new BigDecimal(0);
|
|
@@ -153,40 +137,58 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
|
|
|
|
|
|
SwBillManagementPaidDo paidDo = new SwBillManagementPaidDo();
|
|
SwBillManagementPaidDo paidDo = new SwBillManagementPaidDo();
|
|
BeanUtils.copyProperties(unpaidDo,paidDo);
|
|
BeanUtils.copyProperties(unpaidDo,paidDo);
|
|
- paidDo.setStatus(PAIDINSTATUS); // 实缴
|
|
|
|
|
|
+ // 新生成的 已缴费账单
|
|
|
|
+ paidDo.setStatus(PAIDINSTATUS);
|
|
paidDo.setPaymentrecordid(add.getId()); //缴费记录ID
|
|
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);
|
|
paidDos.add(paidDo);
|
|
|
|
|
|
}
|
|
}
|
|
//生成已经缴费账单
|
|
//生成已经缴费账单
|
|
swBillManagementPaidService.saveBatch(paidDos);
|
|
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().
|
|
SwUserManagementDo swUserManagement = swUserManagementService.getBaseMapper().
|
|
selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, add.getUsernumber()));
|
|
selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, add.getUsernumber()));
|
|
|
|
+
|
|
// 用户 账户余额
|
|
// 用户 账户余额
|
|
BigDecimal accountbalance = swUserManagement.getAccountbalance()==null?BigDecimal.ZERO:swUserManagement.getAccountbalance();
|
|
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、当 【余额】 >=【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】 时,【余额】字段=【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】
|
|
//1、当 【余额】 >=【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】 时,【余额】字段=【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】
|
|
//2、当 【余额】 <【原应缴(元)】-【总减免(元)】 -【滞纳金(元)】 时,【余额】字段=【账户余额(元)】
|
|
//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 {
|
|
}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()));
|
|
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.isEmpty()) throw new Exception("该户号下待缴账单已全部缴费,请重新选择户号!");
|
|
//个别 被缴费
|
|
//个别 被缴费
|
|
if (list.size() < ids.size()) {
|
|
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("当前账单中存在已缴费的,请重新查询用户最新账单在确认缴费");
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|