| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908 |
- package com.ydtech.modules.fnc.service.impl;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.collection.CollUtil;
- 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.SysUser;
- import com.ydtech.modules.admin.model.po.SysChannelCost;
- 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.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.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.ydtech.modules.fnc.service.InsPlyIncomeService;
- import com.ydtech.modules.ins.model.InsCommission;
- import com.ydtech.modules.ins.model.InsCompanyFee;
- import com.ydtech.modules.ins.model.InsDeptFee;
- 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.order.entity.InsFeeOrder;
- import com.ydtech.modules.order.entity.InsOrders;
- import com.ydtech.modules.protocol.service.PtlAgreementService;
- import com.ydtech.modules.protocol.utils.AssertionUtils;
- import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
- import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
- import com.ydtech.modules.protocols.service.InsFeeOrderNewDistributionService;
- import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
- import com.ydtech.utils.DateUtil;
- import com.ydtech.utils.StringUtils;
- import com.ydtech.utils.idgen.IdGenerate;
- import org.apache.commons.lang3.ObjectUtils;
- import org.redisson.Redisson;
- import org.redisson.api.RLock;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.math.BigDecimal;
- import java.time.LocalDateTime;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.concurrent.TimeUnit;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author gws
- * @since 2023-11-22
- */
- @Service
- public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFeeAudit> implements InsFeeAuditService {
- private final InsOrdersMapper insOrdersMapper;
- private final InsPlyIncomeMapper insPlyIncomeMapper;
- private final FncInsAreaCompanyMapper insAreaCompanyMapper;
- private final InsDeptFeeService insDeptFeeService;
- private final InsCommissionService insCommissionService;
- private final InsCompanyFeeService insCompanyFeeService;
- private final EsmUserReferrerService esmUserReferrerService;
- private final SysUserService sysUserService;
- @Autowired
- private InsFeeOrderNewService insFeeOrderNewService;
- @Autowired
- private SysUserAccountService sysUserAccountService;
- @Autowired
- private SysDeptService sysDeptService;
- @Autowired
- private SysDeptAccountService sysDeptAccountService;
- @Autowired
- private SysDeptAccountHistoryService sysDeptAccountHistoryService;
- @Autowired
- private InsPlyIncomeService insPlyIncomeService;
- @Autowired
- private InsFeeAuditHistoryService insFeeAuditHistoryService;
- @Autowired
- private PtlAgreementService ptlAgreementService;
- @Autowired
- private SysChannelCostService sysChannelCostService;
- @Autowired
- private Redisson redisson;
- @Resource
- private InsFeeOrderNewDistributionService insFeeOrderNewDistributionService;
- 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;
- }
- @Override
- @Transactional
- public void feeAudit(String orderNo, String insOrderNo, boolean isAutoAudit, String auditStatus) {
- RLock locked = redisson.getLock("feeAudit." + insOrderNo);
- try {
- boolean isLock = locked.tryLock(60, 10, TimeUnit.SECONDS);
- if (!isLock) {
- throw new SystemException("当前业务繁忙,请稍后重试\n");
- }
- //添加费用审核表及轨迹信息
- InsFeeAudit insFeeAudit = saveInsFeeAuditAndHistory(orderNo, insOrderNo, isAutoAudit, auditStatus);
- 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);
- //结算费用生成
- insPlyIncomeService.saveBalanceNew(order, insFeeOrderNew, insAreaCompany);
- //生成 用户账户表 数据
- if (StringUtils.isNotEmpty(order.getUserid())) {
- //用戶賬戶表
- SysUserAccount sysUserAccount = new SysUserAccount();
- //add by hxl 2024-05-07 begin ==========
- //判断当前用户是否是出单员,如果是直接给团队长结算 角色id为19为出单员
- String userId = "";
- SysUserBaseVO sysUserBaseVO = sysUserService.selectUserById(order.getUserid());
- SysUser user = sysUserService.getById(order.getUserid());
- SysDept dept = sysDeptService.getById(user.getDeptId());
- //出单员是19 且是渠道的话,给渠道团队长
- if ("19".equals(sysUserBaseVO.getRoleId()) && "1".equals(dept.getManagementSource())) {
- //查找该出单员的的团队长
- //找到上级
- userId = user.getOperatorCode();
- //if (userId == null || "".equals(userId)) {
- // throw new SystemException("出单员" + sysUserBaseVO.getName() + "所在机构缺少团队长,请设置!!!");
- //}
- } else {
- userId = order.getUserid();
- }
- sysUserAccount.setUserId(userId);
- // add by hxl 2024-05-07 end ==================
- if (ObjectUtils.isNotEmpty(insFeeOrderNew)) {
- //用户出口手续费
- BigDecimal totalPremiumAmount = new BigDecimal(0);
- totalPremiumAmount = totalPremiumAmount.add(insFeeOrderNew.getJqExportSuperviseCostsPremiums())
- .add(insFeeOrderNew.getSyExportSuperviseCostsPremiums()).add(insFeeOrderNew.getNoExportSuperviseCostsPremiums());
- //用户出口跟单费
- BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
- totalOtherPremiumAmount =
- totalOtherPremiumAmount.add(insFeeOrderNew.getJqExportOtherCostsPremiums()).add(insFeeOrderNew.getSyExportOtherCostsPremiums()).add(insFeeOrderNew.getNoExportOtherCostsPremiums());
- //用戶
- //算佣金
- this.countUserAmount(insFeeOrderNew, insAreaCompany.getId());
- sysUserAccount.setHandlingFee(totalPremiumAmount);
- sysUserAccount.setDocumentary(totalOtherPremiumAmount);
- sysUserAccount.setDocumentaryStatus("2"); // 收入
- sysUserAccount.setSuborderId(insAreaCompany.getId()); // 订单Id
- sysUserAccountService.addOrUpdate(sysUserAccount);
- if (insFeeOrderNew.getDistributionStatus() != null) {
- createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order, order.getUserid(), BigDecimal.ZERO, BigDecimal.ZERO, "0");
- if (insFeeOrderNew.getFirstLevelUserId() != null) {
- createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order,
- insFeeOrderNew.getFirstLevelUserId(), insFeeOrderNew.getFirstDetailProportion(),
- insFeeOrderNew.getFirstDetailPremiums(), "1");
- }
- if (insFeeOrderNew.getTwoLevelUserId() != null) {
- createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order,
- insFeeOrderNew.getTwoLevelUserId(), insFeeOrderNew.getSecondDetailProportion(),
- insFeeOrderNew.getSecondDetailPremiums(), "2");
- }
- if (insFeeOrderNew.getThreeLevelUserId() != null) {
- createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order,
- insFeeOrderNew.getThreeLevelUserId(), insFeeOrderNew.getThirdDetailProportion(),
- insFeeOrderNew.getThirdDetailPremiums(), "3");
- }
- }
- String deptid = insFeeOrderNew.getDeptId();
- // 定义一个数组来存储各级机构的管理费
- BigDecimal[] jqDeptPremiumsLevels = {insFeeOrderNew.getJqDeptPremiumsLevel1(), insFeeOrderNew.getJqDeptPremiumsLevel2(),
- insFeeOrderNew.getJqDeptPremiumsLevel3(), insFeeOrderNew.getJqDeptPremiumsLevel4(),
- insFeeOrderNew.getJqDeptPremiumsLevel5()};
- BigDecimal[] syDeptPremiumsLevels = {insFeeOrderNew.getSyDeptPremiumsLevel1(), insFeeOrderNew.getSyDeptPremiumsLevel2(),
- insFeeOrderNew.getSyDeptPremiumsLevel3(), insFeeOrderNew.getSyDeptPremiumsLevel4(),
- insFeeOrderNew.getSyDeptPremiumsLevel5()};
- BigDecimal[] noDeptPremiumsLevels = {insFeeOrderNew.getNoDeptPremiumsLevel1(), insFeeOrderNew.getNoDeptPremiumsLevel2(),
- insFeeOrderNew.getNoDeptPremiumsLevel3(), insFeeOrderNew.getNoDeptPremiumsLevel4(),
- insFeeOrderNew.getNoDeptPremiumsLevel5()};
- for (int i = 1; i <= 5; i++) {
- // 根据循环次数确定机构ID的长度,第五级为11
- String levelDeptId = deptid.substring(0, (i == 5) ? 11 : i * 2);
- // 获取对应级别的机构信息
- SysDeptAccount levelSysDeptAccount = sysDeptAccountService.getOne(new LambdaQueryWrapper<SysDeptAccount>()
- .eq(SysDeptAccount::getDeptId, levelDeptId));
- // 初始化管理费总额为0
- BigDecimal sumManagementFee = BigDecimal.ZERO;
- // 根据分销等级和分销用户情况计算分销费用
- BigDecimal distributionFee = BigDecimal.ZERO;
- if (i == 1) {
- if (insFeeOrderNew.getFirstLevelUserId() == null) {
- distributionFee = distributionFee.add(insFeeOrderNew.getFirstDetailPremiums());
- }
- if (insFeeOrderNew.getTwoLevelUserId() == null) {
- distributionFee = distributionFee.add(insFeeOrderNew.getSecondDetailPremiums());
- }
- if (insFeeOrderNew.getThreeLevelUserId() == null) {
- distributionFee = distributionFee.add(insFeeOrderNew.getThirdDetailPremiums());
- }
- }
- // 根据分销等级计算管理费总额
- sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
- .add(syDeptPremiumsLevels[i - 1])
- .add(noDeptPremiumsLevels[i - 1]);
- if (i == 1) {
- sumManagementFee = sumManagementFee.add(distributionFee);
- }
- // 如果机构信息不为空,更新管理费并记录历史
- if (levelSysDeptAccount != null) {
- levelSysDeptAccount.setManagementFee(levelSysDeptAccount.getManagementFee().add(sumManagementFee));
- sysDeptAccountService.updateById(levelSysDeptAccount);
- } else {
- // 如果机构信息为空,新建机构信息并记录历史
- levelSysDeptAccount = new SysDeptAccount();
- levelSysDeptAccount.setDeptId(levelDeptId);
- levelSysDeptAccount.setManagementFee(sumManagementFee);
- levelSysDeptAccount.setCreateTime(new Date());
- sysDeptAccountService.save(levelSysDeptAccount);
- }
- // 记录历史信息
- // 拼接备注
- String remark = this.getDeptFeeHistoryLog(i, jqDeptPremiumsLevels, syDeptPremiumsLevels, noDeptPremiumsLevels,
- distributionFee);
- sysDeptAccountHistoryService.addHistory(levelDeptId, sumManagementFee, levelSysDeptAccount.getManagementFee(), "2",
- insOrderNo, BaseController.getUser().getId(), remark);
- }
- }
- }
- // 获取加投结算数据 并审核通过
- LambdaQueryWrapper<SysChannelCost> costWrapper = new LambdaQueryWrapper<>();
- costWrapper.eq(SysChannelCost::getOrderNo, insOrderNo);
- List<SysChannelCost> costList = sysChannelCostService.list(costWrapper);
- if(CollUtil.isNotEmpty(costList)){
- for (SysChannelCost sysChannelCost : costList) {
- sysChannelCost.setStatus(1); // 审核通过
- sysChannelCost.setPayDate(insAreaCompany.getPayDate());
- sysChannelCost.setSigningTime(insAreaCompany.getSigningTime());
- sysChannelCost.setUpdateTime(LocalDateTime.now());
- sysChannelCost.setUpdateBy(BaseController.getUser().getName());
- }
- sysChannelCostService.updateBatchById(costList);
- }
- } catch (Exception e) {
- throw new SystemException("当前业务繁忙,请稍后重试");
- } finally {
- //释放锁
- if (locked.isHeldByCurrentThread()) {
- locked.unlock();
- }
- }
- }
- 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());
- insFeeOrderNewDistribution.setJqPolicyNo(insAreaCompany.getJqpolicyno());
- insFeeOrderNewDistribution.setSyPolicyNo(insAreaCompany.getSypolicyno());
- insFeeOrderNewDistribution.setOperator(insOrders.getUserid());
- insFeeOrderNewDistribution.setLicenseNo(insOrders.getLicenseno());
- insFeeOrderNewDistribution.setProductId(insAreaCompany.getProductid());
- insFeeOrderNewDistribution.setProduct(insAreaCompany.getProduct());
- insFeeOrderNewDistribution.setSignTime(insAreaCompany.getSigningTime());
- insFeeOrderNewDistribution.setInsCompany(insAreaCompany.getInscompany());
- insFeeOrderNewDistribution.setUserId(userId);
- insFeeOrderNewDistribution.setCommissionRate(commissionRate);
- insFeeOrderNewDistribution.setCommissionAmount(commissionAmount);
- insFeeOrderNewDistribution.setCommissionLevel(commissionLevel);
- insFeeOrderNewDistribution.setCreateTime(new Date());
- // 保存insFeeOrderNewDistribution
- insFeeOrderNewDistributionService.save(insFeeOrderNewDistribution);
- }
- 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("级机构管理费:");
- remarkBuilder.append(jqDeptPremiumsLevels[index - 1]).append(",");
- }
- if (syDeptPremiumsLevels[index - 1].compareTo(BigDecimal.ZERO) != 0) {
- remarkBuilder.append("商业").append(index).append("级机构管理费:");
- remarkBuilder.append(syDeptPremiumsLevels[index - 1]).append(",");
- }
- if (noDeptPremiumsLevels[index - 1].compareTo(BigDecimal.ZERO) != 0) {
- remarkBuilder.append("非车").append(index).append("级机构管理费:");
- remarkBuilder.append(noDeptPremiumsLevels[index - 1]).append(",");
- }
- if (distributionFee.compareTo(BigDecimal.ZERO) != 0) {
- remarkBuilder.append("分销费:").append(distributionFee).append(",");
- }
- String remark = remarkBuilder.toString();
- if (remark.endsWith(",")) {
- remark = remark.substring(0, remark.length() - 1);
- }
- return remark;
- }
- private void countUserAmount(InsFeeOrderNew insFeeOrderNew, String orderNo) {
- String distributionStatus = insFeeOrderNew.getDistributionStatus();
- if (StringUtils.isNotEmpty(distributionStatus)) {
- if (InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus)) {
- BigDecimal totalDept = BigDecimal.ZERO;
- if (StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())) {
- String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
- BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
- this.saveUpdateAccount(firstLevelUserId, firstDetailPremiums, orderNo);
- } else {
- totalDept = totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
- }
- if (StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())) {
- String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
- BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
- this.saveUpdateAccount(twoLevelUserId, secondDetailProportion, orderNo);
- } else {
- totalDept = totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
- }
- if (StringUtils.isNotEmpty(insFeeOrderNew.getThreeLevelUserId())) {
- String threeLevelUserId = insFeeOrderNew.getThreeLevelUserId();
- BigDecimal threeDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
- this.saveUpdateAccount(threeLevelUserId, threeDetailPremiums, orderNo);
- } else {
- totalDept = totalDept.add(insFeeOrderNew.getThirdDetailPremiums());
- }
- // 机构管理 费用给五级交钱机构管理费
- if (totalDept.compareTo(BigDecimal.ZERO) == 0) {
- BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
- jqDeptPremiumsLevel5.add(totalDept);
- insFeeOrderNewService.updateById(insFeeOrderNew);
- }
- } else if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus)) {
- BigDecimal totalDept = BigDecimal.ZERO;
- if (StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())) {
- String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
- BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
- this.saveUpdateAccount(firstLevelUserId, firstDetailPremiums, orderNo);
- } else {
- totalDept = totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
- }
- if (StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())) {
- String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
- BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
- this.saveUpdateAccount(twoLevelUserId, secondDetailProportion, orderNo);
- } else {
- totalDept = totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
- }
- // 机构管理 费用给五级交钱机构管理费
- if (totalDept.compareTo(BigDecimal.ZERO) == 0) {
- BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
- jqDeptPremiumsLevel5.add(totalDept);
- insFeeOrderNewService.updateById(insFeeOrderNew);
- }
- } else {
- // 一级分销
- if (StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())) {
- String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
- BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
- this.saveUpdateAccount(firstLevelUserId, firstDetailPremiums, orderNo);
- } else {
- if (insFeeOrderNew.getFirstDetailPremiums().compareTo(BigDecimal.ZERO) == 0) {
- BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
- jqDeptPremiumsLevel5.add(insFeeOrderNew.getFirstDetailPremiums());
- insFeeOrderNewService.updateById(insFeeOrderNew);
- }
- }
- }
- }
- }
- private void saveUpdateAccount(String userId, BigDecimal amount, String orderNo) {
- SysUserAccount sysUserOldAccount = new SysUserAccount();
- sysUserOldAccount.setUserId(userId);
- sysUserOldAccount.setPromotion(amount);
- sysUserOldAccount.setDocumentaryStatus("2"); // 收入
- sysUserOldAccount.setSuborderId(orderNo);
- sysUserAccountService.addOrUpdate(sysUserOldAccount);
- }
- private BigDecimal zeroBigdecimal(BigDecimal amount) {
- if (amount == null) {
- return amount = BigDecimal.ZERO;
- } else {
- return amount;
- }
- }
- /**
- * 生成保司费用(应收费用)
- *
- * @param order
- * @param insFeeOrder
- * @throws Exception
- */
- private void gene_orderIncome(InsOrders order, InsFeeOrderNew insFeeOrder, InsAreaCompany plyDto) throws Exception {
- 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(LocalDateTime.now());
- if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
- insPlyIncome.setPolicyno(plyDto.getJqpolicyno());
- insPlyIncome.setRiskcode("交强");
- insPlyIncome.setTaxamount(plyDto.getTaxamount());
- if (!ObjectUtils.isEmpty(insFeeOrder)) {
- insPlyIncome.setNoTaxPremium(insFeeOrder.getJqNoTaxPremium());
- insPlyIncome.setCommissionFeerate(insFeeOrder.getJqSuperviseCostsProportion());
- insPlyIncome.setOtherFeerate(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion()));
- insPlyIncome.setCommissionFeevalue(insFeeOrder.getJqSuperviseCostsPremiums());
- insPlyIncome.setOtherFeevalue(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums()));
- insPlyIncome.setAllFeeValue(insFeeOrder.getJqCostsPremiums());
- }
- insPlyIncomeMapper.insert(insPlyIncome);
- }
- if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
- insPlyIncome.setPolicyno(plyDto.getSypolicyno());
- insPlyIncome.setRiskcode("商业");
- insPlyIncome.setTaxamount(new BigDecimal(0));
- if (!ObjectUtils.isEmpty(insFeeOrder)) {
- insPlyIncome.setNoTaxPremium(insFeeOrder.getSyNoTaxPremium());
- insPlyIncome.setCommissionFeerate(insFeeOrder.getSySuperviseCostsProportion());
- insPlyIncome.setOtherFeerate(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion()));
- insPlyIncome.setCommissionFeevalue(insFeeOrder.getSySuperviseCostsPremiums());
- insPlyIncome.setOtherFeevalue(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums()));
- insPlyIncome.setAllFeeValue(insFeeOrder.getSyCostsPremiums());
- }
- insPlyIncomeMapper.insert(insPlyIncome);
- }
- }
- /**
- * 生成机构费用
- *
- * @param order
- * @param insFeeOrder
- * @throws Exception
- */
- private void gene_deptfee(InsOrders order, InsFeeOrderNew insFeeOrder, InsAreaCompany plyDto) {
- InsDeptFee deptFee = new InsDeptFee();
- deptFee.setOrderno(order.getOrderno());
- 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));
- }
- deptFee.setInscompany(plyDto.getCompanyId());
- if (StringUtils.isNotEmpty(plyDto.getJqpolicyno())) {
- deptFee.setPolicyno(plyDto.getJqpolicyno());
- deptFee.setRiskcode("交强");
- deptFee.setLicenseno(order.getLicenseno());
- geneJqInsDeptFee(order, insFeeOrder, deptFee);
- }
- if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
- deptFee.setPolicyno(plyDto.getSypolicyno());
- deptFee.setRiskcode("商业");
- deptFee.setLicenseno(order.getLicenseno());
- geneSyInsDeptFee(order, insFeeOrder, deptFee);
- }
- }
- private void geneJqInsDeptFee(InsOrders order, InsFeeOrderNew insFeeOrder, InsDeptFee deptFee) {
- if (!ObjectUtils.isEmpty(insFeeOrder)) {
- if (insFeeOrder.getJqDeptPremiumsLevel1().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
- deptFee.setComlevel("一级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getJqDeptPremiumsLevel2().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 4)); //99140302M01D01
- deptFee.setComlevel("二级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getJqDeptPremiumsLevel3().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 6)); //99140302M01D01
- deptFee.setComlevel("三级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getJqDeptPremiumsLevel4().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 8)); //99140302M01D01
- deptFee.setComlevel("四级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getJqDeptPremiumsLevel5().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 11)); //99140302M01D01
- deptFee.setComlevel("五级");
- insDeptFeeService.insert(deptFee);
- }
- }
- }
- private void geneSyInsDeptFee(InsOrders order, InsFeeOrderNew insFeeOrder, InsDeptFee deptFee) {
- if (!ObjectUtils.isEmpty(insFeeOrder)) {
- if (insFeeOrder.getSyDeptPremiumsLevel1().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
- deptFee.setComlevel("一级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getSyDeptPremiumsLevel2().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 4)); //99140302M01D01
- deptFee.setComlevel("二级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getSyDeptPremiumsLevel3().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 6)); //99140302M01D01
- deptFee.setComlevel("三级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getSyDeptPremiumsLevel4().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 8)); //99140302M01D01
- deptFee.setComlevel("四级");
- insDeptFeeService.insert(deptFee);
- }
- if (insFeeOrder.getSyDeptPremiumsLevel5().doubleValue() > 0) {
- deptFee.setComcode(order.getDeptid().substring(0, 11)); //99140302M01D01
- deptFee.setComlevel("五级");
- insDeptFeeService.insert(deptFee);
- }
- }
- }
- /**
- * 三级分销费用保存
- *
- * @param order
- * @return
- */
- 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));
- InsCommission commission = new InsCommission();
- commission.setOrderno(order.getOrderno());
- commission.setQuoteno(insFeeOrder.getInsOrderNo());
- commission.setDeptid(order.getDeptid());
- commission.setDeptname(order.getDeptname());
- commission.setInscompany(plyDto.getCompanyId());
- commission.setAgreeid(String.valueOf(plyDto.getAgreementId()));
- commission.setRefereescode(user.getId());
- commission.setRefereesname(user.getName());
- 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.setPolicyno(plyDto.getJqpolicyno());
- commission.setRiskcode("交强");
- commission.setLicenseno(order.getLicenseno());
- commission.setCommissionrate(insFeeOrder.getThirdRetailProportion().doubleValue());
- commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getThirdRetailProportion()).divide(new BigDecimal(100)).doubleValue());
- insCommissionService.insert(commission);
- }
- if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
- commission.setPolicyno(plyDto.getSypolicyno());
- commission.setRiskcode("商业");
- commission.setLicenseno(order.getLicenseno());
- commission.setCommissionrate(insFeeOrder.getThirdRetailProportion().doubleValue());
- commission.setCommissionamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getThirdRetailProportion()).divide(new BigDecimal(100)).doubleValue());
- insCommissionService.insert(commission);
- }
- }
- 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());
- commission.setDeptid(order.getDeptid());
- commission.setDeptname(order.getDeptname());
- commission.setInscompany(plyDto.getCompanyId());
- commission.setAgreeid(String.valueOf(plyDto.getAgreementId()));
- commission.setRefereescode(user.getId());
- commission.setRefereesname(user.getName());
- // commission.setCommissionrate(insFeeOrder.getSecondRetailProportion().doubleValue());
- // commission.setCommissionamount(insFeeOrder.getSecondRetailPremiums().doubleValue());
- 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.setPolicyno(plyDto.getJqpolicyno());
- commission.setRiskcode("交强");
- commission.setLicenseno(order.getLicenseno());
- commission.setCommissionrate(insFeeOrder.getSecondRetailProportion().doubleValue());
- commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getSecondRetailProportion()).divide(new BigDecimal(100)).doubleValue());
- insCommissionService.insert(commission);
- }
- if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
- commission.setPolicyno(plyDto.getSypolicyno());
- commission.setRiskcode("商业");
- commission.setLicenseno(order.getLicenseno());
- commission.setCommissionrate(insFeeOrder.getSecondRetailProportion().doubleValue());
- commission.setCommissionamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSecondRetailProportion()).divide(new BigDecimal(100)).doubleValue());
- insCommissionService.insert(commission);
- }
- }
- 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());
- commission.setDeptid(order.getDeptid());
- commission.setDeptname(order.getDeptname());
- commission.setInscompany(plyDto.getCompanyId());
- commission.setAgreeid(String.valueOf(plyDto.getAgreementId()));
- commission.setRefereescode(user.getId());
- commission.setRefereesname(user.getName());
- // commission.setCommissionrate(insFeeOrder.getFirstRetailProportion().doubleValue());
- // commission.setCommissionamount(insFeeOrder.getFirstRetailPremiums().doubleValue());
- 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.setPolicyno(plyDto.getJqpolicyno());
- commission.setRiskcode("交强");
- commission.setLicenseno(order.getLicenseno());
- commission.setCommissionrate(insFeeOrder.getFirstRetailProportion().doubleValue());
- commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getFirstRetailProportion()).divide(new BigDecimal(100)).doubleValue());
- insCommissionService.insert(commission);
- }
- if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
- commission.setPolicyno(plyDto.getSypolicyno());
- commission.setRiskcode("商业");
- commission.setLicenseno(order.getLicenseno());
- commission.setCommissionrate(insFeeOrder.getFirstRetailProportion().doubleValue());
- commission.setCommissionamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getFirstRetailProportion()).divide(new BigDecimal(100)).doubleValue());
- insCommissionService.insert(commission);
- }
- }
- }
- }
- /**
- * 生成个代费用
- *
- * @param order
- * @param insFeeOrder
- * @throws Exception
- */
- public void saveInsCompanyFee(InsOrders order, InsFeeOrder insFeeOrder, InsAreaCompany plyDto) throws Exception {
- InsCompanyFee insCompanyFee = new InsCompanyFee();
- insCompanyFee.setOrderno(order.getOrderno());
- insCompanyFee.setFrameNo(order.getFrameno());
- insCompanyFee.setLicenseNo(order.getLicenseno());
- insCompanyFee.setInscompany(plyDto.getCompanyId());
- insCompanyFee.setAgreeid(String.valueOf(plyDto.getAgreementId()));
- insCompanyFee.setUserid(order.getUserid());
- insCompanyFee.setUsername(order.getUsername());
- insCompanyFee.setDeptid(order.getDeptid());
- 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));
- }
- 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()
- .add(insFeeOrder.getSecondRetailProportion())
- .add(insFeeOrder.getThirdRetailProportion());
- 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.setJqpremium(insFeeOrder.getJqNoTaxPremium().doubleValue());
- //保存业务员费用
- insCompanyFeeService.insert(insCompanyFee);
- }
- if (StringUtils.isNotEmpty(plyDto.getSypolicyno())) {
- insCompanyFee.setPolicyno(plyDto.getSypolicyno());
- insCompanyFee.setRiskcode("商业");
- insCompanyFee.setFeerate(0);
- insCompanyFee.setFeeamount(0);
- 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.setSypremium(insFeeOrder.getSyNoTaxPremium().doubleValue());
- //保存业务员费用
- insCompanyFeeService.insert(insCompanyFee);
- }
- }
- }
- /**
- * 保存保险费用审核信息及审核历史。
- *
- * @param orderNo 订单号
- * @param insOrderNo 保险订单号
- * @param isAutoAudit 是否自动审核,true表示自动审核,false表示人工审核
- * @param auditstatus 审核状态码
- */
- @Override
- @Transactional
- public InsFeeAudit saveInsFeeAuditAndHistory(String orderNo, String insOrderNo, boolean isAutoAudit, String auditstatus) {
- //查询费用审核表
- InsFeeAudit insFeeAudit = getOne(new LambdaQueryWrapper<InsFeeAudit>().eq(InsFeeAudit::getInsOrderNo, insOrderNo));
- if (insFeeAudit != null && insFeeAudit.getAuditstatus().equals("1")) {
- throw new SystemException("该订单费用已审核,请刷新页面");
- }
- String userId;
- // 填充审核人
- if (isAutoAudit) {
- userId = "自动审核";
- } else {
- userId = StpUtil.getLoginId().toString();
- }
- //添加审核轨迹表
- InsFeeAuditHistory insFeeAuditHistory = new InsFeeAuditHistory();
- if (insFeeAudit == null) {
- insFeeAudit = new InsFeeAudit();
- // 设置订单号和保险订单号
- insFeeAudit.setAudituser(userId);
- insFeeAudit.setOrderno(orderNo);
- insFeeAudit.setInsOrderNo(insOrderNo);
- insFeeAudit.setAudittime(LocalDateTime.now());
- insFeeAudit.setAuditstatus(auditstatus);
- this.save(insFeeAudit);
- } else {
- //状态码为已审核且数据不为空,则更新审核状态
- insFeeAudit.setAuditstatus(FeeAuditAuditstatus.PASSED.getCode());
- insFeeAudit.setAudittime(LocalDateTime.now());
- insFeeAudit.setAudituser(userId);
- boolean update = this.update(insFeeAudit, new LambdaUpdateWrapper<InsFeeAudit>()
- .eq(InsFeeAudit::getAuditstatus, FeeAuditAuditstatus.UNREVICEWED.getCode())
- .eq(InsFeeAudit::getInsOrderNo, insOrderNo)
- );
- AssertionUtils.isSucceed(update, "审核状态异常");
- }
- //复制审核对象的属性
- BeanUtils.copyProperties(insFeeAudit, insFeeAuditHistory);
- InsAreaCompany insAreaCompany = insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
- // 设置操作时间和操作人及保险公司名称
- insFeeAuditHistory.setInsCompany(insAreaCompany.getInscompany());
- insFeeAuditHistory.setOperatorTime(LocalDateTime.now());
- insFeeAuditHistory.setOperator(BaseController.getUser().getName());
- // 保存审核轨迹
- insFeeAuditHistoryService.save(insFeeAuditHistory);
- return insFeeAudit;
- }
- @Override
- public InsFeeAudit saveDefaultInsFeeAuditAndHistory(String orderNo, String insOrderNo, String auditstatus, String rejectInfo) {
- //查询费用审核表
- InsFeeAudit insFeeAudit = getOne(new LambdaQueryWrapper<InsFeeAudit>()
- .eq(InsFeeAudit::getOrderno, orderNo)
- .eq(InsFeeAudit::getInsOrderNo, insOrderNo));
- //添加审核轨迹表
- InsFeeAuditHistory insFeeAuditHistory = new InsFeeAuditHistory();
- if (insFeeAudit == null) {
- insFeeAudit = new InsFeeAudit();
- // 设置订单号和保险订单号
- insFeeAudit.setOrderno(orderNo);
- insFeeAudit.setInsOrderNo(insOrderNo);
- insFeeAudit.setAuditstatus(auditstatus);
- this.save(insFeeAudit);
- } else {
- //状态码为已审核且数据不为空,则更新审核状态
- //如果审核状态为已审核则一直都是已审核
- if (insFeeAudit.getAuditstatus().equals(FeeAuditAuditstatus.PASSED.getCode())) {
- insFeeAudit.setAuditstatus(insFeeAudit.getAuditstatus());
- } else {
- insFeeAudit.setAuditstatus(auditstatus);
- }
- insFeeAudit.setAudituser(BaseController.getUser().getName());
- insFeeAudit.setAudittime(LocalDateTime.now());
- insFeeAudit.setRejectinfo(rejectInfo);
- this.update(insFeeAudit, new LambdaUpdateWrapper<InsFeeAudit>()
- .eq(InsFeeAudit::getOrderno, orderNo)
- .eq(InsFeeAudit::getInsOrderNo, insOrderNo));
- }
- //复制审核对象的属性
- BeanUtils.copyProperties(insFeeAudit, insFeeAuditHistory);
- InsAreaCompany insAreaCompany = insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
- // 设置操作时间和操作人及保险公司名称
- insFeeAuditHistory.setInsCompany(insAreaCompany.getInscompany());
- insFeeAuditHistory.setOperatorTime(LocalDateTime.now());
- insFeeAuditHistory.setOperator(BaseController.getUser().getName());
- // 保存审核轨迹
- insFeeAuditHistoryService.save(insFeeAuditHistory);
- return insFeeAudit;
- }
- /**
- * 获取费用审核 根据子订单id
- *
- * @return
- */
- @Override
- public InsFeeAudit getFeeAuditByInsOrderNo(String insOrderNo) {
- LambdaQueryWrapper<InsFeeAudit> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(InsFeeAudit::getInsOrderNo, insOrderNo);
- return this.getOne(queryWrapper);
- }
- }
|