|
|
@@ -3,28 +3,26 @@ package com.ydtech.modules.fnc.service.impl;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
|
|
|
import com.ydtech.constants.enums.dict.ins.InsFeeAuditDistributionStatusEnum;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
-import com.ydtech.modules.admin.model.SysDept;
|
|
|
import com.ydtech.modules.admin.model.SysDeptAccount;
|
|
|
-import com.ydtech.modules.admin.model.SysDeptAccountHistory;
|
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
|
import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
|
|
|
import com.ydtech.modules.admin.service.*;
|
|
|
import com.ydtech.modules.base.controller.BaseController;
|
|
|
import com.ydtech.modules.esm.service.EsmUserReferrerService;
|
|
|
-import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
|
|
|
import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
|
|
|
+import com.ydtech.modules.fnc.dao.InsFeeAuditMapper;
|
|
|
import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
|
|
|
+import com.ydtech.modules.fnc.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.fnc.entity.InsFeeAudit;
|
|
|
-import com.ydtech.modules.fnc.dao.InsFeeAuditMapper;
|
|
|
import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
|
|
|
import com.ydtech.modules.fnc.entity.InsPlyIncome;
|
|
|
import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
|
|
|
import com.ydtech.modules.fnc.service.InsFeeAuditService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ydtech.modules.fnc.service.InsPlyIncomeService;
|
|
|
import com.ydtech.modules.ins.model.InsCommission;
|
|
|
import com.ydtech.modules.ins.model.InsCompanyFee;
|
|
|
@@ -33,11 +31,8 @@ import com.ydtech.modules.ins.service.InsCommissionService;
|
|
|
import com.ydtech.modules.ins.service.InsCompanyFeeService;
|
|
|
import com.ydtech.modules.ins.service.InsDeptFeeService;
|
|
|
import com.ydtech.modules.order.dao.InsOrdersMapper;
|
|
|
-import com.ydtech.modules.fnc.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.order.entity.InsFeeOrder;
|
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
|
-import com.ydtech.modules.order.service.InsFeeOrderService;
|
|
|
-import com.ydtech.modules.protocol.entity.po.PtlAgreement;
|
|
|
import com.ydtech.modules.protocol.service.PtlAgreementService;
|
|
|
import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
|
|
|
import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
|
|
|
@@ -62,7 +57,7 @@ import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
- * 服务实现类
|
|
|
+ * 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
* @author gws
|
|
|
@@ -108,56 +103,59 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
private InsFeeOrderNewDistributionService insFeeOrderNewDistributionService;
|
|
|
|
|
|
|
|
|
-
|
|
|
- public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsDeptFeeService insDeptFeeService, EsmUserReferrerService esmUserReferrerService, SysUserService sysUserService, InsCommissionService insCommissionService, InsCompanyFeeService insCompanyFeeService, InsPlyIncomeMapper insPlyIncomeMapper) {
|
|
|
+ public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper,
|
|
|
+ InsDeptFeeService insDeptFeeService, EsmUserReferrerService esmUserReferrerService,
|
|
|
+ SysUserService sysUserService, InsCommissionService insCommissionService,
|
|
|
+ InsCompanyFeeService insCompanyFeeService, InsPlyIncomeMapper insPlyIncomeMapper) {
|
|
|
this.insAreaCompanyMapper = insAreaCompanyMapper;
|
|
|
this.insOrdersMapper = insOrdersMapper;
|
|
|
- this.insDeptFeeService=insDeptFeeService;
|
|
|
- this.esmUserReferrerService=esmUserReferrerService;
|
|
|
- this.sysUserService=sysUserService;
|
|
|
- this.insCommissionService=insCommissionService;
|
|
|
- this.insCompanyFeeService=insCompanyFeeService;
|
|
|
- this.insPlyIncomeMapper=insPlyIncomeMapper;
|
|
|
+ this.insDeptFeeService = insDeptFeeService;
|
|
|
+ this.esmUserReferrerService = esmUserReferrerService;
|
|
|
+ this.sysUserService = sysUserService;
|
|
|
+ this.insCommissionService = insCommissionService;
|
|
|
+ this.insCompanyFeeService = insCompanyFeeService;
|
|
|
+ this.insPlyIncomeMapper = insPlyIncomeMapper;
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void feeAudit(String orderNo, String insOrderNo, boolean isAutoAudit) {
|
|
|
//添加费用审核表及轨迹信息
|
|
|
- InsFeeAudit insFeeAudit = saveInsFeeAuditAndHistory(orderNo, insOrderNo,isAutoAudit, FeeAuditAuditstatus.PASSED.getCode());
|
|
|
+ InsFeeAudit insFeeAudit = saveInsFeeAuditAndHistory(orderNo, insOrderNo, isAutoAudit, FeeAuditAuditstatus.PASSED.getCode());
|
|
|
|
|
|
- InsOrders order=insOrdersMapper.selectById(orderNo);
|
|
|
- InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
|
|
|
+ InsOrders order = insOrdersMapper.selectById(orderNo);
|
|
|
+ InsAreaCompany insAreaCompany = insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
|
|
|
|
|
|
//获取该订单的费用
|
|
|
InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
|
|
|
.eq(InsFeeOrderNew::getInsOrderNo, insFeeAudit.getInsOrderNo()));
|
|
|
|
|
|
//生成机构费用
|
|
|
- gene_deptfee( order, insFeeOrderNew,insAreaCompany);
|
|
|
+ gene_deptfee(order, insFeeOrderNew, insAreaCompany);
|
|
|
//结算费用生成
|
|
|
- insPlyIncomeService.saveBalanceNew(order,insFeeOrderNew,insAreaCompany);
|
|
|
+ insPlyIncomeService.saveBalanceNew(order, insFeeOrderNew, insAreaCompany);
|
|
|
|
|
|
//生成 用户账户表 数据
|
|
|
- if(StringUtils.isNotEmpty(order.getUserid())){
|
|
|
- //用戶賬戶表
|
|
|
+ if (StringUtils.isNotEmpty(order.getUserid())) {
|
|
|
+ //用戶賬戶表
|
|
|
SysUserAccount sysUserAccount = new SysUserAccount();
|
|
|
//add by hxl 2024-05-07 begin ==========
|
|
|
//判断当前用户是否是出单员,如果是直接给团队长结算 角色id为19为出单员
|
|
|
- String userId="";
|
|
|
+ String userId = "";
|
|
|
SysUserBaseVO sysUserBaseVO = sysUserService.selectUserById(order.getUserid());
|
|
|
- if("19".equals(sysUserBaseVO.getRoleId())){
|
|
|
- //查找该机构的团队长
|
|
|
+ if ("19".equals(sysUserBaseVO.getRoleId())) {
|
|
|
+ //查找该机构的团队长
|
|
|
userId = sysUserService.findTDZUserIdByDeptId(sysUserBaseVO.getDeptId());
|
|
|
- if(userId==null || "".equals(userId)){
|
|
|
- throw new SystemException("出单员"+sysUserBaseVO.getName()+"所在机构缺少团队长,请设置!!!");
|
|
|
+ if (userId == null || "".equals(userId)) {
|
|
|
+ throw new SystemException("出单员" + sysUserBaseVO.getName() + "所在机构缺少团队长,请设置!!!");
|
|
|
}
|
|
|
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
userId = order.getUserid();
|
|
|
}
|
|
|
sysUserAccount.setUserId(userId);
|
|
|
// add by hxl 2024-05-07 end ==================
|
|
|
- if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
|
|
|
+ if (ObjectUtils.isNotEmpty(insFeeOrderNew)) {
|
|
|
|
|
|
//用户出口手续费
|
|
|
BigDecimal totalPremiumAmount = new BigDecimal(0);
|
|
|
@@ -166,14 +164,15 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
|
|
|
//用户出口跟单费
|
|
|
BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
|
|
|
- totalOtherPremiumAmount = totalOtherPremiumAmount.add(insFeeOrderNew.getJqExportOtherCostsPremiums()).add(insFeeOrderNew.getSyExportOtherCostsPremiums()).add(insFeeOrderNew.getNoExportOtherCostsPremiums());
|
|
|
+ totalOtherPremiumAmount =
|
|
|
+ totalOtherPremiumAmount.add(insFeeOrderNew.getJqExportOtherCostsPremiums()).add(insFeeOrderNew.getSyExportOtherCostsPremiums()).add(insFeeOrderNew.getNoExportOtherCostsPremiums());
|
|
|
|
|
|
|
|
|
//用戶
|
|
|
sysUserAccount.setHandlingFee(totalPremiumAmount);
|
|
|
sysUserAccount.setDocumentary(totalOtherPremiumAmount);
|
|
|
//算佣金
|
|
|
- this.countUserAmount(insFeeOrderNew,orderNo);
|
|
|
+ this.countUserAmount(insFeeOrderNew, orderNo);
|
|
|
sysUserAccount.setDocumentaryStatus("2"); // 收入
|
|
|
sysUserAccount.setSuborderId(orderNo); // 订单Id
|
|
|
sysUserAccountService.addOrUpdate(sysUserAccount);
|
|
|
@@ -250,14 +249,18 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
// 记录历史信息
|
|
|
// 拼接备注
|
|
|
- String remark = this.getDeptFeeHistoryLog(i,jqDeptPremiumsLevels,syDeptPremiumsLevels,noDeptPremiumsLevels,distributionFee);
|
|
|
- sysDeptAccountHistoryService.addHistory(levelDeptId, sumManagementFee, levelSysDeptAccount.getManagementFee(), "2", insOrderNo, BaseController.getUser().getId(), remark);
|
|
|
+ String remark = this.getDeptFeeHistoryLog(i, jqDeptPremiumsLevels, syDeptPremiumsLevels, noDeptPremiumsLevels,
|
|
|
+ distributionFee);
|
|
|
+ sysDeptAccountHistoryService.addHistory(levelDeptId, sumManagementFee, levelSysDeptAccount.getManagementFee(), "2",
|
|
|
+ insOrderNo, BaseController.getUser().getId(), remark);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void createInsFeeOrderNewDistribution(InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, InsOrders insOrders, String userId, BigDecimal commissionRate, BigDecimal commissionAmount, String commissionLevel) {
|
|
|
+ private void createInsFeeOrderNewDistribution(InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, InsOrders insOrders,
|
|
|
+ String userId, BigDecimal commissionRate, BigDecimal commissionAmount,
|
|
|
+ String commissionLevel) {
|
|
|
InsFeeOrderNewDistribution insFeeOrderNewDistribution = new InsFeeOrderNewDistribution();
|
|
|
insFeeOrderNewDistribution.setId(IdGenerate.nextId());
|
|
|
insFeeOrderNewDistribution.setOrderNo(insFeeOrderNew.getInsOrderNo());
|
|
|
@@ -276,8 +279,8 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
insFeeOrderNewDistributionService.save(insFeeOrderNewDistribution);
|
|
|
}
|
|
|
|
|
|
- private String getDeptFeeHistoryLog(Integer index,BigDecimal[] jqDeptPremiumsLevels,BigDecimal[] syDeptPremiumsLevels,
|
|
|
- BigDecimal[] noDeptPremiumsLevels,BigDecimal distributionFee){
|
|
|
+ private String getDeptFeeHistoryLog(Integer index, BigDecimal[] jqDeptPremiumsLevels, BigDecimal[] syDeptPremiumsLevels,
|
|
|
+ BigDecimal[] noDeptPremiumsLevels, BigDecimal distributionFee) {
|
|
|
StringBuilder remarkBuilder = new StringBuilder();
|
|
|
if (jqDeptPremiumsLevels[index - 1].compareTo(BigDecimal.ZERO) != 0) {
|
|
|
remarkBuilder.append("交强").append(index).append("级机构管理费:");
|
|
|
@@ -394,26 +397,27 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
|
|
|
/**
|
|
|
* 生成保司费用(应收费用)
|
|
|
+ *
|
|
|
* @param order
|
|
|
* @param insFeeOrder
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- private void gene_orderIncome( InsOrders order, InsFeeOrderNew insFeeOrder,InsAreaCompany plyDto) throws Exception{
|
|
|
+ private void gene_orderIncome(InsOrders order, InsFeeOrderNew insFeeOrder, InsAreaCompany plyDto) throws Exception {
|
|
|
|
|
|
- InsPlyIncome insPlyIncome =new InsPlyIncome();
|
|
|
+ InsPlyIncome insPlyIncome = new InsPlyIncome();
|
|
|
insPlyIncome.setOrderno(order.getOrderno());
|
|
|
insPlyIncome.setDeptId(order.getDeptid());
|
|
|
insPlyIncome.setCompanyId(plyDto.getCompanyId());
|
|
|
insPlyIncome.setAgreementId(String.valueOf(plyDto.getAgreementId()));
|
|
|
insPlyIncome.setLicenseno(order.getLicenseno());
|
|
|
- insPlyIncome.setPayDate(StringUtils.isNullOrEmpty(plyDto.getPayDate())?plyDto.getCreatetime():plyDto.getPayDate());
|
|
|
- insPlyIncome.setSignDate(StringUtils.isNullOrEmpty(plyDto.getInsidePayTime())?plyDto.getPayDate():plyDto.getInsidePayTime());
|
|
|
- insPlyIncome.setCreateTime(LocalDate.now() );
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
|
|
|
+ insPlyIncome.setPayDate(StringUtils.isNullOrEmpty(plyDto.getPayDate()) ? plyDto.getCreatetime() : plyDto.getPayDate());
|
|
|
+ insPlyIncome.setSignDate(StringUtils.isNullOrEmpty(plyDto.getInsidePayTime()) ? plyDto.getPayDate() : plyDto.getInsidePayTime());
|
|
|
+ insPlyIncome.setCreateTime(LocalDate.now());
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
|
|
|
insPlyIncome.setPolicyno(plyDto.getJqpolicyno());
|
|
|
insPlyIncome.setRiskcode("交强");
|
|
|
insPlyIncome.setTaxamount(plyDto.getTaxamount());
|
|
|
- if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
+ if (!ObjectUtils.isEmpty(insFeeOrder)) {
|
|
|
insPlyIncome.setNoTaxPremium(insFeeOrder.getJqNoTaxPremium());
|
|
|
insPlyIncome.setCommissionFeerate(insFeeOrder.getJqSuperviseCostsProportion());
|
|
|
insPlyIncome.setOtherFeerate(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion()));
|
|
|
@@ -423,11 +427,11 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
insPlyIncomeMapper.insert(insPlyIncome);
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
|
|
|
insPlyIncome.setPolicyno(plyDto.getSypolicyno());
|
|
|
insPlyIncome.setRiskcode("商业");
|
|
|
insPlyIncome.setTaxamount(new BigDecimal(0));
|
|
|
- if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
+ if (!ObjectUtils.isEmpty(insFeeOrder)) {
|
|
|
insPlyIncome.setNoTaxPremium(insFeeOrder.getSyNoTaxPremium());
|
|
|
insPlyIncome.setCommissionFeerate(insFeeOrder.getSySuperviseCostsProportion());
|
|
|
insPlyIncome.setOtherFeerate(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion()));
|
|
|
@@ -439,33 +443,35 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 生成机构费用
|
|
|
+ *
|
|
|
* @param order
|
|
|
* @param insFeeOrder
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- private void gene_deptfee( InsOrders order, InsFeeOrderNew insFeeOrder,InsAreaCompany plyDto){
|
|
|
+ private void gene_deptfee(InsOrders order, InsFeeOrderNew insFeeOrder, InsAreaCompany plyDto) {
|
|
|
InsDeptFee deptFee = new InsDeptFee();
|
|
|
deptFee.setOrderno(order.getOrderno());
|
|
|
- if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
+ if (!ObjectUtils.isEmpty(insFeeOrder)) {
|
|
|
deptFee.setQuoteno(insFeeOrder.getInsOrderNo());
|
|
|
}
|
|
|
deptFee.setAgreeid(String.valueOf(plyDto.getAgreementId()));
|
|
|
deptFee.setAuditstatus("1");
|
|
|
deptFee.setSettlestatus("0");
|
|
|
- if(plyDto.getInsidePayTime()!=null){
|
|
|
- deptFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ if (plyDto.getInsidePayTime() != null) {
|
|
|
+ deptFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
|
|
|
}
|
|
|
deptFee.setInscompany(plyDto.getCompanyId());
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
|
|
|
deptFee.setPolicyno(plyDto.getJqpolicyno());
|
|
|
deptFee.setRiskcode("交强");
|
|
|
deptFee.setLicenseno(order.getLicenseno());
|
|
|
geneJqInsDeptFee(order, insFeeOrder, deptFee);
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
|
|
|
deptFee.setPolicyno(plyDto.getSypolicyno());
|
|
|
deptFee.setRiskcode("商业");
|
|
|
deptFee.setLicenseno(order.getLicenseno());
|
|
|
@@ -475,7 +481,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
|
|
|
private void geneJqInsDeptFee(InsOrders order, InsFeeOrderNew insFeeOrder, InsDeptFee deptFee) {
|
|
|
- if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
+ if (!ObjectUtils.isEmpty(insFeeOrder)) {
|
|
|
if (insFeeOrder.getJqDeptPremiumsLevel1().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
|
|
|
deptFee.setComlevel("一级");
|
|
|
@@ -505,7 +511,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
|
|
|
private void geneSyInsDeptFee(InsOrders order, InsFeeOrderNew insFeeOrder, InsDeptFee deptFee) {
|
|
|
- if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
+ if (!ObjectUtils.isEmpty(insFeeOrder)) {
|
|
|
if (insFeeOrder.getSyDeptPremiumsLevel1().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
|
|
|
deptFee.setComlevel("一级");
|
|
|
@@ -540,16 +546,15 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
* @param order
|
|
|
* @return
|
|
|
*/
|
|
|
- public void saveRetail(InsOrders order,InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
|
|
|
- List<String> userlist=new ArrayList<>();
|
|
|
- esmUserReferrerService.getUpUser(order.getUserid(),userlist);
|
|
|
+ public void saveRetail(InsOrders order, InsFeeOrder insFeeOrder, InsAreaCompany plyDto) throws Exception {
|
|
|
+ List<String> userlist = new ArrayList<>();
|
|
|
+ esmUserReferrerService.getUpUser(order.getUserid(), userlist);
|
|
|
|
|
|
//userlist:包括本人在内向上所有人
|
|
|
- if(userlist.size()-1>0){
|
|
|
- if(userlist.size()-1>=1
|
|
|
- &&insFeeOrder.getThirdRetailPremiums().doubleValue()>0)
|
|
|
- {//三级分销
|
|
|
- SysUser user=sysUserService.getById(userlist.get(1));
|
|
|
+ if (userlist.size() - 1 > 0) {
|
|
|
+ if (userlist.size() - 1 >= 1
|
|
|
+ && insFeeOrder.getThirdRetailPremiums().doubleValue() > 0) {//三级分销
|
|
|
+ SysUser user = sysUserService.getById(userlist.get(1));
|
|
|
InsCommission commission = new InsCommission();
|
|
|
commission.setOrderno(order.getOrderno());
|
|
|
commission.setQuoteno(insFeeOrder.getInsOrderNo());
|
|
|
@@ -562,9 +567,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
commission.setLevel("3");
|
|
|
commission.setAuditstatus("1"); //0未审核 1已审核
|
|
|
commission.setSettlestatus("0"); //0未结算 1已结算
|
|
|
- commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
|
|
|
+ commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
|
|
|
commission.setPolicyno(plyDto.getJqpolicyno());
|
|
|
commission.setRiskcode("交强");
|
|
|
commission.setLicenseno(order.getLicenseno());
|
|
|
@@ -572,7 +577,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getThirdRetailProportion()).divide(new BigDecimal(100)).doubleValue());
|
|
|
insCommissionService.insert(commission);
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
|
|
|
commission.setPolicyno(plyDto.getSypolicyno());
|
|
|
commission.setRiskcode("商业");
|
|
|
commission.setLicenseno(order.getLicenseno());
|
|
|
@@ -582,10 +587,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if(userlist.size()-1>=2
|
|
|
- &&insFeeOrder.getSecondRetailPremiums().doubleValue()>0)
|
|
|
- {//二级分销
|
|
|
- SysUser user=sysUserService.getById(userlist.get(2));
|
|
|
+ if (userlist.size() - 1 >= 2
|
|
|
+ && insFeeOrder.getSecondRetailPremiums().doubleValue() > 0) {//二级分销
|
|
|
+ SysUser user = sysUserService.getById(userlist.get(2));
|
|
|
InsCommission commission = new InsCommission();
|
|
|
commission.setOrderno(order.getOrderno());
|
|
|
commission.setQuoteno(insFeeOrder.getInsOrderNo());
|
|
|
@@ -600,9 +604,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
commission.setLevel("2");
|
|
|
commission.setAuditstatus("1"); //0未审核 1已审核
|
|
|
commission.setSettlestatus("0"); //0未结算 1已结算
|
|
|
- commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
|
|
|
+ commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
|
|
|
commission.setPolicyno(plyDto.getJqpolicyno());
|
|
|
commission.setRiskcode("交强");
|
|
|
commission.setLicenseno(order.getLicenseno());
|
|
|
@@ -610,7 +614,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getSecondRetailProportion()).divide(new BigDecimal(100)).doubleValue());
|
|
|
insCommissionService.insert(commission);
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
|
|
|
commission.setPolicyno(plyDto.getSypolicyno());
|
|
|
commission.setRiskcode("商业");
|
|
|
commission.setLicenseno(order.getLicenseno());
|
|
|
@@ -619,10 +623,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
insCommissionService.insert(commission);
|
|
|
}
|
|
|
}
|
|
|
- if(userlist.size()-1>=3
|
|
|
- &&insFeeOrder.getFirstRetailPremiums().doubleValue()>0)
|
|
|
- {//一级分销
|
|
|
- SysUser user=sysUserService.getById(userlist.get(3));
|
|
|
+ if (userlist.size() - 1 >= 3
|
|
|
+ && insFeeOrder.getFirstRetailPremiums().doubleValue() > 0) {//一级分销
|
|
|
+ SysUser user = sysUserService.getById(userlist.get(3));
|
|
|
InsCommission commission = new InsCommission();
|
|
|
commission.setOrderno(order.getOrderno());
|
|
|
commission.setQuoteno(insFeeOrder.getInsOrderNo());
|
|
|
@@ -637,9 +640,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
commission.setLevel("1");
|
|
|
commission.setAuditstatus("1"); //0未审核 1已审核
|
|
|
commission.setSettlestatus("0"); //0未结算 1已结算
|
|
|
- commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
|
|
|
+ commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
|
|
|
commission.setPolicyno(plyDto.getJqpolicyno());
|
|
|
commission.setRiskcode("交强");
|
|
|
commission.setLicenseno(order.getLicenseno());
|
|
|
@@ -647,7 +650,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getFirstRetailProportion()).divide(new BigDecimal(100)).doubleValue());
|
|
|
insCommissionService.insert(commission);
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
|
|
|
commission.setPolicyno(plyDto.getSypolicyno());
|
|
|
commission.setRiskcode("商业");
|
|
|
commission.setLicenseno(order.getLicenseno());
|
|
|
@@ -662,11 +665,12 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
|
|
|
/**
|
|
|
* 生成个代费用
|
|
|
+ *
|
|
|
* @param order
|
|
|
* @param insFeeOrder
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public void saveInsCompanyFee(InsOrders order,InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception {
|
|
|
+ public void saveInsCompanyFee(InsOrders order, InsFeeOrder insFeeOrder, InsAreaCompany plyDto) throws Exception {
|
|
|
|
|
|
InsCompanyFee insCompanyFee = new InsCompanyFee();
|
|
|
insCompanyFee.setOrderno(order.getOrderno());
|
|
|
@@ -680,30 +684,30 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
insCompanyFee.setDeptname(order.getDeptname());
|
|
|
insCompanyFee.setSettletype("B");
|
|
|
insCompanyFee.setSettlestatus("0");
|
|
|
- insCompanyFee.setCreatetime(DateUtil.getDateFormat(new Date(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
- if(plyDto.getInsidePayTime()!=null){
|
|
|
- insCompanyFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ insCompanyFee.setCreatetime(DateUtil.getDateFormat(new Date(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
+ if (plyDto.getInsidePayTime() != null) {
|
|
|
+ insCompanyFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(), DateUtil.FULL_TIME_SPLIT_PATTERN));
|
|
|
}
|
|
|
- if(ObjectUtils.isNotEmpty(insFeeOrder)){
|
|
|
- BigDecimal dept_rate=insFeeOrder.getFirstDeptProportion()
|
|
|
+ if (ObjectUtils.isNotEmpty(insFeeOrder)) {
|
|
|
+ BigDecimal dept_rate = insFeeOrder.getFirstDeptProportion()
|
|
|
.add(insFeeOrder.getSecondDeptProportion())
|
|
|
.add(insFeeOrder.getThirdDeptProportion())
|
|
|
.add(insFeeOrder.getForthDeptProportion())
|
|
|
.add(insFeeOrder.getFifthDeptProportion());
|
|
|
- BigDecimal retail_rate=insFeeOrder.getFirstRetailProportion()
|
|
|
+ BigDecimal retail_rate = insFeeOrder.getFirstRetailProportion()
|
|
|
.add(insFeeOrder.getSecondRetailProportion())
|
|
|
.add(insFeeOrder.getThirdRetailProportion());
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
|
|
|
insCompanyFee.setPolicyno(plyDto.getJqpolicyno());
|
|
|
insCompanyFee.setRiskcode("交强");
|
|
|
//交强费用比例=交强险费用比例-五级机构管理费比例-三级分销比例
|
|
|
insCompanyFee.setFeerate(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
|
|
|
- insCompanyFee.setFeeamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ insCompanyFee.setFeeamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
insCompanyFee.setJqpremium(insFeeOrder.getJqNoTaxPremium().doubleValue());
|
|
|
//保存业务员费用
|
|
|
insCompanyFeeService.insert(insCompanyFee);
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
+ if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
|
|
|
insCompanyFee.setPolicyno(plyDto.getSypolicyno());
|
|
|
insCompanyFee.setRiskcode("商业");
|
|
|
insCompanyFee.setFeerate(0);
|
|
|
@@ -711,7 +715,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
insCompanyFee.setJqpremium(0);
|
|
|
//商业费用比例=商业险费用比例-五级机构管理费比例-三级分销比例
|
|
|
insCompanyFee.setDisrate(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
|
|
|
- insCompanyFee.setDisamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ insCompanyFee.setDisamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
insCompanyFee.setSypremium(insFeeOrder.getSyNoTaxPremium().doubleValue());
|
|
|
//保存业务员费用
|
|
|
insCompanyFeeService.insert(insCompanyFee);
|
|
|
@@ -735,17 +739,20 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
//查询费用审核表
|
|
|
InsFeeAudit insFeeAudit = getOne(new LambdaQueryWrapper<InsFeeAudit>().eq(InsFeeAudit::getOrderno, orderNo));
|
|
|
|
|
|
+ String userId;
|
|
|
+ // 填充审核人
|
|
|
+ if (isAutoAudit) {
|
|
|
+ userId = "自动审核";
|
|
|
+ } else {
|
|
|
+ userId = StpUtil.getLoginId().toString();
|
|
|
+ }
|
|
|
+
|
|
|
//添加审核轨迹表
|
|
|
InsFeeAuditHistory insFeeAuditHistory = new InsFeeAuditHistory();
|
|
|
if (insFeeAudit == null) {
|
|
|
insFeeAudit = new InsFeeAudit();
|
|
|
- // 填充审核人
|
|
|
- if (isAutoAudit) {
|
|
|
- insFeeAudit.setAudituser("自动审核");
|
|
|
- } else {
|
|
|
- insFeeAudit.setAudituser(StpUtil.getLoginId().toString());
|
|
|
- }
|
|
|
// 设置订单号和保险订单号
|
|
|
+ insFeeAudit.setAudituser(userId);
|
|
|
insFeeAudit.setOrderno(orderNo);
|
|
|
insFeeAudit.setInsOrderNo(insOrderNo);
|
|
|
insFeeAudit.setAudittime(LocalDateTime.now());
|
|
|
@@ -754,6 +761,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
} else {
|
|
|
//状态码为已审核且数据不为空,则更新审核状态
|
|
|
insFeeAudit.setAuditstatus(auditstatus);
|
|
|
+ insFeeAudit.setAudituser(userId);
|
|
|
this.update(insFeeAudit, new LambdaUpdateWrapper<InsFeeAudit>().eq(InsFeeAudit::getOrderno, orderNo));
|
|
|
}
|
|
|
//复制审核对象的属性
|