Explorar o código

自动审核修改

785834757 %!s(int64=2) %!d(string=hai) anos
pai
achega
c95c8f1c46

+ 15 - 0
src/main/java/com/ydtech/modules/admin/service/SysDeptAccountHistoryService.java

@@ -5,7 +5,22 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysDeptAccountHistory;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
 
+import java.math.BigDecimal;
+
 
 public interface SysDeptAccountHistoryService extends IService<SysDeptAccountHistory> {
     IPage<SysDeptAccountHistoryDto> selectList(SysDeptAccountHistoryDto sysDeptAccountHistoryDto);
+
+    /**
+     * 添加历史记录
+     * @param deptId         部门ID
+     * @param amount        金额
+     * @param surplusAmount 剩余金额
+     * @param documentary   提现/收入 1提现 2收入
+     * @param subOrder      来源订单
+     * @param userId        提交人
+     * @param remark        备注
+     * @return
+     */
+    boolean addHistory(String deptId, BigDecimal amount,BigDecimal surplusAmount,String documentary,String subOrder,String userId,String remark);
 }

+ 33 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountHistoryServiceImpl.java

@@ -8,9 +8,14 @@ import com.ydtech.modules.admin.dao.SysDeptAccountHistoryMapper;
 import com.ydtech.modules.admin.model.SysDeptAccountHistory;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
 import com.ydtech.modules.admin.service.SysDeptAccountHistoryService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 
 @Service
 public class SysDeptAccountHistoryServiceImpl extends ServiceImpl<SysDeptAccountHistoryMapper, SysDeptAccountHistory> implements SysDeptAccountHistoryService {
@@ -28,4 +33,32 @@ public class SysDeptAccountHistoryServiceImpl extends ServiceImpl<SysDeptAccount
         Page<SysDeptAccountHistoryDto> deptHistoryList = sysDeptAccountHistoryMapper.getDeptHistory(page,sysDeptAccountHistoryDto);
         return deptHistoryList;
     }
+
+    /**
+     * 添加历史记录
+     * @param deptId         部门ID
+     * @param amount        金额
+     * @param surplusAmount 剩余金额
+     * @param documentary   提现/收入 1提现 2收入
+     * @param subOrder      来源订单
+     * @param userId        提交人
+     * @param remark        备注
+     * @return
+     */
+    @Override
+    public boolean addHistory(String deptId, BigDecimal amount, BigDecimal surplusAmount, String documentary, String subOrder, String userId, String remark) {
+        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
+        sysDeptAccountHistory.setId(IdGenerate.nextId());
+        sysDeptAccountHistory.setDeptId(deptId);
+        sysDeptAccountHistory.setAmount(amount);
+        sysDeptAccountHistory.setSurplusAmount(surplusAmount);
+        sysDeptAccountHistory.setDocumentary(documentary); //收入
+        sysDeptAccountHistory.setSuborder(subOrder);
+        sysDeptAccountHistory.setFromBankCard(null);
+        sysDeptAccountHistory.setToBankCard(null);
+        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
+        sysDeptAccountHistory.setCreateTime(new Date());
+        sysDeptAccountHistory.setRemark(remark);
+        return save(sysDeptAccountHistory);
+    }
 }

+ 0 - 1
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -287,7 +287,6 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
         //endregion
 
-
         //region 设置机构管理费
 
         //交强机构管理费

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -96,7 +96,7 @@ public class CarSettleController extends BaseController {
                     String userId = getUserId();
                     feeRuleSchemeService.compareAndUpdateFeeOrderInfo( areaList.get(0).getId(),auditOrderFeeVo.getJqCostsProportionStr(),auditOrderFeeVo.getSyCostsProportionStr(),userId);
                 }
-                insFeeAuditService.feeAudit( orderNo, areaList.get(0).getId());
+                insFeeAuditService.feeAudit( orderNo, areaList.get(0).getId(),false);
             }catch (Exception e){
                 e.printStackTrace();
                 return HttpResult.error("系统异常");

+ 6 - 7
src/main/java/com/ydtech/modules/fnc/service/InsFeeAuditService.java

@@ -13,14 +13,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface InsFeeAuditService extends IService<InsFeeAudit> {
 
-     void feeAudit(String orderNo,String insOrderNo) throws Exception;
-
      /**
-      * 自动审核
-      * @param orderNo
-      * @param insOrderNo
-      * @return
+      * 费用审核
+      * @param orderNo        订单
+      * @param insOrderNo     子订单
+      * @param isAutoAudit    是否自动审核
+      * @throws Exception
       */
-     boolean autoFeeAudit(String orderNo,String insOrderNo) throws Exception;
+     void feeAudit(String orderNo,String insOrderNo,boolean isAutoAudit);
 
 }

+ 48 - 470
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -107,54 +107,37 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     }
     @Override
     @Transactional
-    public void feeAudit(String orderNo, String insOrderNo) throws Exception{
-        //保存审核表
+    public void feeAudit(String orderNo, String insOrderNo,boolean isAutoAudit){
+        //添加审核表
         InsFeeAudit insFeeAudit=new InsFeeAudit();
+        if(isAutoAudit){
+            insFeeAudit.setAudituser("自动审核");
+        }else{
+            insFeeAudit.setAudituser(StpUtil.getLoginId().toString());
+        }
+        //保存审核表
         insFeeAudit.setOrderno(orderNo);
         insFeeAudit.setInsOrderNo(insOrderNo);
         insFeeAudit.setAuditstatus("1");
         insFeeAudit.setAudittime(LocalDateTime.now());
-        insFeeAudit.setAudituser(StpUtil.getLoginId().toString());
         this.save(insFeeAudit);
 
 
         InsOrders order=insOrdersMapper.selectById(orderNo);
-        InsFeeOrderNew insFeeOrder=insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insFeeAudit.getInsOrderNo());
         InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
 
         //获取该订单的费用
         InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
                 .eq(InsFeeOrderNew::getInsOrderNo, insFeeAudit.getInsOrderNo()));
 
-
-        //获取操作人员的机构来源
-        String deptId=order.getDeptid();
-
-        List<SysDept> teamList = sysDeptService.findTeamList(deptId);
-        teamList.forEach(sysDept -> {
-
-            if(StringUtils.isNotEmpty(sysDept.getComlevel()) &&  sysDept.getComlevel().equals("1")){
-                BigDecimal jqDeptPremiumsLevel1 = insFeeOrderNew.getJqDeptPremiumsLevel1();
-            }
-        });
-
-
-        //bigdecimal为null时设置为0
-//        handleBigdecimal(insFeeOrder);
-        //生成保司费用(应收费用)
-//        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
         //生成机构费用
         gene_deptfee( order, insFeeOrderNew,insAreaCompany);
-        //生成分销费用
-//        saveRetail(order,insFeeOrderNew,insAreaCompany);
-        //个代费用生成
-//        saveInsCompanyFee(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为出单员
@@ -173,79 +156,6 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             sysUserAccount.setUserId(userId);
             // add by  hxl   2024-05-07  end ==================
             if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
-//                手续非佣金  =  交强监管费用 + 商业监管费用 + 非车监管费用
-//                非跟单费用  = 交强非跟单费用 + 商业非跟单费用 + 非车非跟单费用
-                //手续费入口费用
-//                BigDecimal jqPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getJqSuperviseCostsPremiums());//交强监管费
-//                BigDecimal syPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getSySuperviseCostsPremiums());//商业监管费
-//                BigDecimal noPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getNoSuperviseCostsPremiums());//非车监管费用
-//                BigDecimal totalPremiumAmount = jqPremiumAmount.add(syPremiumAmount).add(noPremiumAmount);    // 手续非佣金
-//                //其他费用入口费用
-//                BigDecimal jqOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getJqOtherCostsPremiums());//交强其他费用
-//                BigDecimal syOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getSyOtherCostsPremiums()); //商业其他费用
-//                BigDecimal noOtherCostsProportion = this.zeroBigdecimal(insFeeOrderNew.getNoOtherCostsPremiums());//非车其他费用
-//                BigDecimal totalOtherPremiumAmount = jqOtherCostsPremiums.add(syOtherCostsPremiums).add(noOtherCostsProportion);  //非跟单费用
-
-                //总机构 交强管理比例
-                BigDecimal sumJqDeptProportion = insFeeOrderNew.getJqDeptProportionLevel1()
-                        .add(insFeeOrderNew.getJqDeptProportionLevel2())
-                        .add(insFeeOrderNew.getJqDeptProportionLevel3())
-                        .add(insFeeOrderNew.getJqDeptProportionLevel4())
-                        .add(insFeeOrderNew.getJqDeptProportionLevel5());
-
-                //总机构 商业管理比例
-                BigDecimal sumSyDeptProportion = insFeeOrderNew.getSyDeptProportionLevel1()
-                        .add(insFeeOrderNew.getSyDeptProportionLevel2())
-                        .add(insFeeOrderNew.getSyDeptProportionLevel3())
-                        .add(insFeeOrderNew.getSyDeptProportionLevel4())
-                        .add(insFeeOrderNew.getSyDeptProportionLevel5());
-
-                //总机构 非车管理比例
-                BigDecimal sumNoDeptProportion = insFeeOrderNew.getNoDeptProportionLevel1()
-                        .add(insFeeOrderNew.getNoDeptProportionLevel2())
-                        .add(insFeeOrderNew.getNoDeptProportionLevel3())
-                        .add(insFeeOrderNew.getNoDeptProportionLevel4())
-                        .add(insFeeOrderNew.getNoDeptProportionLevel5());
-
-                //总分销比例
-                BigDecimal sumRetail = insFeeOrderNew.getFirstDetailProportion().add(insFeeOrderNew.getSecondDetailProportion()).add(insFeeOrderNew.getThirdDetailProportion());
-
-                //交强出口比例
-                BigDecimal jqExportProceduresProportion = new BigDecimal(0);
-                if(insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail))>0){
-                    jqExportProceduresProportion = insFeeOrderNew.getJqCostsProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
-                }
-                //商业出口比例
-                BigDecimal syExportProceduresProportion = new BigDecimal(0);
-                if(insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail))>0){
-                    syExportProceduresProportion = insFeeOrderNew.getSyCostsProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
-                }
-                //非车出口比例
-                BigDecimal noExportProceduresProportion = new BigDecimal(0);
-                if(insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail))>0){
-                    noExportProceduresProportion = insFeeOrderNew.getNoCostsProportion().subtract(sumNoDeptProportion).subtract(sumRetail);
-                }
-
-                //交强手续费出口比例
-                BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-                //交强跟单出口费用
-                BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
-                        .multiply(jqExportProceduresProportion
-                                .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-
-                //商业手续费出口比例
-                BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-                //商业跟单出口比例
-                BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
-                        .multiply(syExportProceduresProportion
-                                .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-
-                //非车手续费出口比例
-                BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-                //非车跟单出口比例
-                BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
-                        .multiply(noExportProceduresProportion
-                                .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
 
                 //用户出口手续费
                 BigDecimal totalPremiumAmount = new BigDecimal(0);
@@ -268,7 +178,6 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
 
                 String deptid = insFeeOrderNew.getDeptId();
-                String distributionStatus = insFeeOrderNew.getDistributionStatus();
                 // 定义一个数组来存储各级机构的管理费
                 BigDecimal[] jqDeptPremiumsLevels = {insFeeOrderNew.getJqDeptPremiumsLevel1(), insFeeOrderNew.getJqDeptPremiumsLevel2(),
                         insFeeOrderNew.getJqDeptPremiumsLevel3(), insFeeOrderNew.getJqDeptPremiumsLevel4(),
@@ -293,68 +202,26 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                     // 根据分销等级和分销用户情况计算分销费用
                     BigDecimal distributionFee = BigDecimal.ZERO;
                     if (i == 5) {
-                        if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus) && insFeeOrderNew.getTwoLevelUserId() == null) {
+                        if (insFeeOrderNew.getTwoLevelUserId() == null) {
                             distributionFee = insFeeOrderNew.getSecondDetailPremiums();
-                        } else if (InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus) && insFeeOrderNew.getThreeLevelUserId() == null) {
+                        }
+                        if (insFeeOrderNew.getThreeLevelUserId() == null) {
                             distributionFee = insFeeOrderNew.getThirdDetailPremiums();
                         }
                     }
 
                     // 根据分销等级计算管理费总额
+                    sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
+                            .add(syDeptPremiumsLevels[i - 1])
+                            .add(noDeptPremiumsLevels[i - 1]);
                     if (i == 5) {
-                        sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
-                                .add(syDeptPremiumsLevels[i - 1])
-                                .add(noDeptPremiumsLevels[i - 1])
-                                .add(distributionFee);
-                    } else {
-                        sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
-                                .add(syDeptPremiumsLevels[i - 1])
-                                .add(noDeptPremiumsLevels[i - 1]);
+                        sumManagementFee = sumManagementFee.add(distributionFee);
                     }
 
                     // 如果机构信息不为空,更新管理费并记录历史
                     if (levelSysDeptAccount != null) {
                         levelSysDeptAccount.setManagementFee(levelSysDeptAccount.getManagementFee().add(sumManagementFee));
                         sysDeptAccountService.updateById(levelSysDeptAccount);
-                        // 记录历史信息
-                        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
-                        sysDeptAccountHistory.setId(IdGenerate.nextId());
-                        sysDeptAccountHistory.setDeptId(levelDeptId);
-                        sysDeptAccountHistory.setAmount(sumManagementFee);
-                        sysDeptAccountHistory.setSurplusAmount(levelSysDeptAccount.getManagementFee());
-                        sysDeptAccountHistory.setDocumentary("2"); //收入
-                        sysDeptAccountHistory.setSuborder(orderNo);
-                        sysDeptAccountHistory.setFromBankCard(null);
-                        sysDeptAccountHistory.setToBankCard(null);
-                        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
-                        sysDeptAccountHistory.setCreateTime(new Date());
-                        // 拼接备注
-                        StringBuilder remarkBuilder = new StringBuilder();
-                        if (jqDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("交强").append(i).append("级机构管理费:");
-                            remarkBuilder.append(jqDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (syDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("商业").append(i).append("级机构管理费:");
-                            remarkBuilder.append(syDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (noDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("非车").append(i).append("级机构管理费:");
-                            remarkBuilder.append(noDeptPremiumsLevels[i - 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);
-                        }
-                        sysDeptAccountHistory.setRemark(remark);
-//                        sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
-//                                ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
-//                                ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
-//                                ",分销费:" + distributionFee);
-                        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
                     } else {
                         // 如果机构信息为空,新建机构信息并记录历史
                         SysDeptAccount sysDeptAccount = new SysDeptAccount();
@@ -362,331 +229,42 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                         sysDeptAccount.setManagementFee(sumManagementFee);
                         sysDeptAccount.setCreateTime(new Date());
                         sysDeptAccountService.save(sysDeptAccount);
-                        // 记录历史信息
-                        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
-                        sysDeptAccountHistory.setId(IdGenerate.nextId());
-                        sysDeptAccountHistory.setDeptId(levelDeptId);
-                        sysDeptAccountHistory.setAmount(sumManagementFee);
-                        sysDeptAccountHistory.setSurplusAmount(sumManagementFee);
-                        sysDeptAccountHistory.setDocumentary("2"); //收入
-                        sysDeptAccountHistory.setSuborder(orderNo);
-                        sysDeptAccountHistory.setFromBankCard(null);
-                        sysDeptAccountHistory.setToBankCard(null);
-                        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
-                        sysDeptAccountHistory.setCreateTime(new Date());
-                        // 拼接备注信息
-                        StringBuilder remarkBuilder = new StringBuilder();
-                        if (jqDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("交强").append(i).append("级机构管理费:");
-                            remarkBuilder.append(jqDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (syDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("商业").append(i).append("级机构管理费:");
-                            remarkBuilder.append(syDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (noDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("非车").append(i).append("级机构管理费:");
-                            remarkBuilder.append(noDeptPremiumsLevels[i - 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);
-                        }
-                        sysDeptAccountHistory.setRemark(remark);
-//                        sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
-//                                ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
-//                                ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
-//                                ",分销费:" + distributionFee);
-                        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
                     }
+                    // 记录历史信息
+                    // 拼接备注
+                    String remark = this.getDeptFeeHistoryLog(i,jqDeptPremiumsLevels,syDeptPremiumsLevels,noDeptPremiumsLevels,distributionFee);
+                    if (remark.endsWith(",")) {
+                        remark = remark.substring(0, remark.length() - 1);
+                    }
+                    sysDeptAccountHistoryService.addHistory(levelDeptId, sumManagementFee, levelSysDeptAccount.getManagementFee(), "2", orderNo, BaseController.getUser().getId(), remark);
                 }
             }
         }
     }
 
-    @Override
-    public boolean autoFeeAudit(String orderNo, String insOrderNo) throws Exception {
-        //保存审核表
-        InsFeeAudit insFeeAudit=new InsFeeAudit();
-        insFeeAudit.setOrderno(orderNo);
-        insFeeAudit.setInsOrderNo(insOrderNo);
-        insFeeAudit.setAuditstatus("1");
-        insFeeAudit.setAudittime(LocalDateTime.now());
-        insFeeAudit.setAudituser("自动审核");
-        this.save(insFeeAudit);
-
-
-        InsOrders order=insOrdersMapper.selectById(orderNo);
-        InsFeeOrderNew insFeeOrder=insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insFeeAudit.getInsOrderNo());
-        InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
-
-        //获取该订单的费用
-        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
-                .eq(InsFeeOrderNew::getInsOrderNo, insFeeAudit.getInsOrderNo()));
-
-
-        //获取操作人员的机构来源
-        String deptId=order.getDeptid();
-
-        List<SysDept> teamList = sysDeptService.findTeamList(deptId);
-        teamList.forEach(sysDept -> {
-
-            if(StringUtils.isNotEmpty(sysDept.getComlevel()) &&  sysDept.getComlevel().equals("1")){
-                BigDecimal jqDeptPremiumsLevel1 = insFeeOrderNew.getJqDeptPremiumsLevel1();
-            }
-        });
-
-
-        //bigdecimal为null时设置为0
-//        handleBigdecimal(insFeeOrder);
-        //生成保司费用(应收费用)
-        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
-        //生成机构费用
-        gene_deptfee( order, insFeeOrderNew,insAreaCompany);
-        //生成分销费用
-//        saveRetail(order,insFeeOrderNew,insAreaCompany);
-        //个代费用生成
-//        saveInsCompanyFee(order,insFeeOrderNew,insAreaCompany);
-
-
-//      生成  用户账户表  数据
-        if(StringUtils.isNotEmpty(order.getUserid())){
-//            用戶賬戶表
-            SysUserAccount sysUserAccount = new SysUserAccount();
-
-            sysUserAccount.setUserId(order.getUserid());
-            if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
-//                手续非佣金  =  交强监管费用 + 商业监管费用 + 非车监管费用
-//                非跟单费用  = 交强非跟单费用 + 商业非跟单费用 + 非车非跟单费用
-                PtlAgreement ptlAgreement = ptlAgreementService.getById(insAreaCompany.getAgreementId());
-                BigDecimal taxRadio = new BigDecimal("1.00");
-                if (ptlAgreement.getWithTax().equals("否")) {
-                    taxRadio = new BigDecimal("1.06");
-                }
-
-                
-                //总机构 交强管理比例
-                BigDecimal sumJqDeptProportion = insFeeOrderNew.getJqDeptProportionLevel1()
-                        .add(insFeeOrderNew.getJqDeptProportionLevel2())
-                        .add(insFeeOrderNew.getJqDeptProportionLevel3())
-                        .add(insFeeOrderNew.getJqDeptProportionLevel4())
-                        .add(insFeeOrderNew.getJqDeptProportionLevel5());
-
-                //总机构 商业管理比例
-                BigDecimal sumSyDeptProportion = insFeeOrderNew.getSyDeptProportionLevel1()
-                        .add(insFeeOrderNew.getSyDeptProportionLevel2())
-                        .add(insFeeOrderNew.getSyDeptProportionLevel3())
-                        .add(insFeeOrderNew.getSyDeptProportionLevel4())
-                        .add(insFeeOrderNew.getSyDeptProportionLevel5());
-
-                //总机构 非车管理比例
-                BigDecimal sumNoDeptProportion = insFeeOrderNew.getNoDeptProportionLevel1()
-                        .add(insFeeOrderNew.getNoDeptProportionLevel2())
-                        .add(insFeeOrderNew.getNoDeptProportionLevel3())
-                        .add(insFeeOrderNew.getNoDeptProportionLevel4())
-                        .add(insFeeOrderNew.getNoDeptProportionLevel5());
-
-                //总分销比例
-                BigDecimal sumRetail = insFeeOrderNew.getFirstDetailProportion().add(insFeeOrderNew.getSecondDetailProportion()).add(insFeeOrderNew.getThirdDetailProportion());
-
-                //交强出口比例
-                BigDecimal jqExportProceduresProportion = new BigDecimal(0);
-                if(insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail))>0){
-                    jqExportProceduresProportion = insFeeOrderNew.getJqCostsProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
-                }
-                //商业出口比例
-                BigDecimal syExportProceduresProportion = new BigDecimal(0);
-                if(insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail))>0){
-                    syExportProceduresProportion = insFeeOrderNew.getSyCostsProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
-                }
-                //非车出口比例
-                BigDecimal noExportProceduresProportion = new BigDecimal(0);
-                if(insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail))>0){
-                    noExportProceduresProportion = insFeeOrderNew.getNoCostsProportion().subtract(sumNoDeptProportion).subtract(sumRetail);
-                }
-
-                //交强手续费出口比例
-                BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-                //交强跟单出口费用
-                BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
-                        .multiply(jqExportProceduresProportion
-                                .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-
-                //商业手续费出口比例
-                BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-                //商业跟单出口比例
-                BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
-                        .multiply(syExportProceduresProportion
-                                .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-
-                //非车手续费出口比例
-                BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-                //非车跟单出口比例
-                BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
-                        .multiply(noExportProceduresProportion
-                                .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-
-                //用户出口手续费
-                BigDecimal totalPremiumAmount = new BigDecimal(0);
-                totalPremiumAmount = totalPremiumAmount.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
-
-                //用户出口跟单费
-                BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
-                totalOtherPremiumAmount = totalOtherPremiumAmount.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
-
-
-//              用戶
-                sysUserAccount.setHandlingFee(totalPremiumAmount);
-                sysUserAccount.setDocumentary(totalOtherPremiumAmount);
-//              算佣金
-                this.countUserAmount(insFeeOrderNew,orderNo);
-                sysUserAccount.setDocumentaryStatus("2");  // 收入
-                sysUserAccount.setSuborderId(orderNo);  // 订单Id
-                sysUserAccountService.addOrUpdate(sysUserAccount);
-
-
-                String deptid = insFeeOrderNew.getDeptId();
-                String distributionStatus = insFeeOrderNew.getDistributionStatus();
-                // 定义一个数组来存储各级机构的管理费
-                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 == 5) {
-                        if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus) && insFeeOrderNew.getTwoLevelUserId() == null) {
-                            distributionFee = insFeeOrderNew.getSecondDetailPremiums();
-                        } else if (InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus) && insFeeOrderNew.getThreeLevelUserId() == null) {
-                            distributionFee = insFeeOrderNew.getThirdDetailPremiums();
-                        }
-                    }
-
-                    // 根据分销等级计算管理费总额
-                    if (i == 5) {
-                        sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
-                                .add(syDeptPremiumsLevels[i - 1])
-                                .add(noDeptPremiumsLevels[i - 1])
-                                .add(distributionFee);
-                    } else {
-                        sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
-                                .add(syDeptPremiumsLevels[i - 1])
-                                .add(noDeptPremiumsLevels[i - 1]);
-                    }
-
-                    // 如果机构信息不为空,更新管理费并记录历史
-                    if (levelSysDeptAccount != null) {
-                        levelSysDeptAccount.setManagementFee(levelSysDeptAccount.getManagementFee().add(sumManagementFee));
-                        sysDeptAccountService.updateById(levelSysDeptAccount);
-                        // 记录历史信息
-                        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
-                        sysDeptAccountHistory.setId(IdGenerate.nextId());
-                        sysDeptAccountHistory.setDeptId(levelDeptId);
-                        sysDeptAccountHistory.setAmount(sumManagementFee);
-                        sysDeptAccountHistory.setSurplusAmount(levelSysDeptAccount.getManagementFee());
-                        sysDeptAccountHistory.setDocumentary("2"); //收入
-                        sysDeptAccountHistory.setSuborder(orderNo);
-                        sysDeptAccountHistory.setFromBankCard(null);
-                        sysDeptAccountHistory.setToBankCard(null);
-                        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
-                        sysDeptAccountHistory.setCreateTime(new Date());
-                        // 拼接备注信息
-                        StringBuilder remarkBuilder = new StringBuilder();
-                        if (jqDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("交强").append(i).append("级机构管理费:");
-                            remarkBuilder.append(jqDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (syDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("商业").append(i).append("级机构管理费:");
-                            remarkBuilder.append(syDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (noDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("非车").append(i).append("级机构管理费:");
-                            remarkBuilder.append(noDeptPremiumsLevels[i - 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);
-                        }
-                        sysDeptAccountHistory.setRemark(remark);
-//                        sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
-//                                ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
-//                                ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
-//                                ",分销费:" + distributionFee);
-                        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
-                    } else {
-                        // 如果机构信息为空,新建机构信息并记录历史
-                        SysDeptAccount sysDeptAccount = new SysDeptAccount();
-                        sysDeptAccount.setDeptId(levelDeptId);
-                        sysDeptAccount.setManagementFee(sumManagementFee);
-                        sysDeptAccount.setCreateTime(new Date());
-                        sysDeptAccountService.save(sysDeptAccount);
-                        // 记录历史信息
-                        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
-                        sysDeptAccountHistory.setId(IdGenerate.nextId());
-                        sysDeptAccountHistory.setDeptId(levelDeptId);
-                        sysDeptAccountHistory.setAmount(sumManagementFee);
-                        sysDeptAccountHistory.setSurplusAmount(sumManagementFee);
-                        sysDeptAccountHistory.setDocumentary("2"); //收入
-                        sysDeptAccountHistory.setSuborder(orderNo);
-                        sysDeptAccountHistory.setFromBankCard(null);
-                        sysDeptAccountHistory.setToBankCard(null);
-                        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
-                        sysDeptAccountHistory.setCreateTime(new Date());
-                        // 拼接备注信息
-                        StringBuilder remarkBuilder = new StringBuilder();
-                        if (jqDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("交强").append(i).append("级机构管理费:");
-                            remarkBuilder.append(jqDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (syDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("商业").append(i).append("级机构管理费:");
-                            remarkBuilder.append(syDeptPremiumsLevels[i - 1]).append(",");
-                        }
-                        if (noDeptPremiumsLevels[i - 1].compareTo(BigDecimal.ZERO) != 0) {
-                            remarkBuilder.append("非车").append(i).append("级机构管理费:");
-                            remarkBuilder.append(noDeptPremiumsLevels[i - 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);
-                        }
-                        sysDeptAccountHistory.setRemark(remark);
-//                        sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
-//                                ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
-//                                ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
-//                                ",分销费:" + distributionFee);
-                        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
-                    }
-                }
-            }
+    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 true;
+        return remark;
     }
 
     private void countUserAmount(InsFeeOrderNew insFeeOrderNew, String orderNo) {
@@ -833,7 +411,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
      * @param insFeeOrder
      * @throws Exception
      */
-    private void gene_deptfee( InsOrders order, InsFeeOrderNew insFeeOrder,InsAreaCompany plyDto) throws Exception{
+    private void gene_deptfee( InsOrders order, InsFeeOrderNew insFeeOrder,InsAreaCompany plyDto){
         InsDeptFee deptFee = new InsDeptFee();
         deptFee.setOrderno(order.getOrderno());
         if(!ObjectUtils.isEmpty(insFeeOrder)){

+ 1 - 8
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -807,14 +807,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     //更新订单状态
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-//                    生成结算
-                    //判断协议是否为人工还是自动审核
-                    PtlAgreement ptlAgreement = ptlAgreementService.getById(insAreaCompany.getAgreementId());
-                    if(ptlAgreement.getAuditType() == 2)
-                    {
-                        //如果为自动审核 则自动进行审核
-                        insFeeAuditService.autoFeeAudit( insAreaCompany.getOrderno(),insAreaCompany.getId());
-                    }
+
                 }
             }
             return HttpResult.ok("查询订单状态成功");

+ 17 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.ins.model.vo.RiskInfoVo;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
@@ -20,6 +21,8 @@ import com.ydtech.modules.order.service.InsAreaCompanyAccidentalDrivingService;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.InsOrdersTrackService;
+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.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.StringUtils;
@@ -54,6 +57,12 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     @Autowired
     private InsOrdersMapper insOrdersMapper;
 
+    @Autowired
+    private PtlAgreementService ptlAgreementService;
+
+    @Autowired
+    private InsFeeAuditService insFeeAuditService;
+
     public InsAreaCompanyServiceImpl(@Lazy InsOrdersService insOrdersService, InsOrdersTrackService insOrdersTrackService) {
         this.insOrdersService = insOrdersService;
         this.insOrdersTrackService = insOrdersTrackService;
@@ -77,6 +86,14 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     @Transactional
     public void updateCompanyAndOrders(InsAreaCompany insAreaCompany) {
         baseMapper.updateById(insAreaCompany);
+        //生成结算
+        //判断协议是否为人工还是自动审核
+        PtlAgreement ptlAgreement = ptlAgreementService.getById(insAreaCompany.getAgreementId());
+        if(ptlAgreement.getAuditType() == 2)
+        {
+            //如果为自动审核 则自动进行审核
+            insFeeAuditService.feeAudit( insAreaCompany.getOrderno(),insAreaCompany.getId(), true);
+        }
         insOrdersTrackService.addingTrajectories(insAreaCompany);
         insOrdersService.updateByOrderStatus(insAreaCompany);
     }