Prechádzať zdrojové kódy

1.预收金额调整

wuhp 2 rokov pred
rodič
commit
79b14d0c98

+ 100 - 120
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -7,6 +7,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.constants.MoneyAttrConstants;
 import com.ydtech.modules.admin.constants.WithdrawTypeConstants;
 import com.ydtech.modules.admin.dao.SysUserAccountMapper;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
@@ -63,10 +64,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Autowired
     private InsAreaCompanyService insAreaCompanyService;
     @Autowired
-    private InsFeeOrderNewService  insFeeOrderNewService;
+    private InsFeeOrderNewService insFeeOrderNewService;
 
     @Autowired
-    private InsOrdersMapper  insOrdersMapper;
+    private InsOrdersMapper insOrdersMapper;
 
 
     @Override
@@ -74,13 +75,13 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     public void addOrUpdate(SysUserAccount sysUserAccount) {
         SysUserAccount newSysAccount = baseMapper.getById(sysUserAccount.getUserId());
 //         初始化
-        if(sysUserAccount.getHandlingFee()==null){
+        if (sysUserAccount.getHandlingFee() == null) {
             sysUserAccount.setHandlingFee(BigDecimal.ZERO);
         }
-        if(sysUserAccount.getDocumentary()==null){
+        if (sysUserAccount.getDocumentary() == null) {
             sysUserAccount.setDocumentary(BigDecimal.ZERO);
         }
-        if(sysUserAccount.getPromotion()==null){
+        if (sysUserAccount.getPromotion() == null) {
             sysUserAccount.setPromotion(BigDecimal.ZERO);
         }
 
@@ -127,39 +128,39 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             sysUserAccountHistory.setDocumentary(Integer.valueOf(sysUserAccount.getDocumentaryStatus()));
             sysUserAccountHistory.setSuborder(sysUserAccount.getSuborderId());
             //跟单费
-            if(sysUserAccount.getDocumentary()!=null && sysUserAccount.getDocumentary().compareTo(BigDecimal.ZERO)!=0){
+            if (sysUserAccount.getDocumentary() != null && sysUserAccount.getDocumentary().compareTo(BigDecimal.ZERO) != 0) {
                 sysUserAccountHistory.setAmount(sysUserAccount.getDocumentary());
                 sysUserAccountHistory.setProperty(MoneyAttrConstants.M_2.getCode());
-                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
                     sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getDocumentary());
-                }else {
+                } else {
                     BigDecimal subtract = newSysAccount.getDocumentary().subtract(sysUserAccount.getDocumentary());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
             //手续费
-            if(sysUserAccount.getHandlingFee()!=null  &&  sysUserAccount.getHandlingFee().compareTo(BigDecimal.ZERO) !=0){
+            if (sysUserAccount.getHandlingFee() != null && sysUserAccount.getHandlingFee().compareTo(BigDecimal.ZERO) != 0) {
                 sysUserAccountHistory.setId(null);
                 sysUserAccountHistory.setAmount(sysUserAccount.getHandlingFee());
                 sysUserAccountHistory.setProperty(MoneyAttrConstants.M_1.getCode());
-                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
                     sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getHandlingFee());
-                }else {
+                } else {
                     BigDecimal subtract = newSysAccount.getHandlingFee().subtract(sysUserAccount.getHandlingFee());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
             //推广费
-            if(sysUserAccount.getPromotion() !=null && sysUserAccount.getPromotion().compareTo(BigDecimal.ZERO) !=0){
+            if (sysUserAccount.getPromotion() != null && sysUserAccount.getPromotion().compareTo(BigDecimal.ZERO) != 0) {
                 sysUserAccountHistory.setId(null);
 
                 sysUserAccountHistory.setAmount(sysUserAccount.getPromotion());
                 sysUserAccountHistory.setProperty(MoneyAttrConstants.M_3.getCode());
-                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
                     sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getPromotion());
-                }else {
+                } else {
                     BigDecimal subtract = newSysAccount.getPromotion().subtract(sysUserAccount.getPromotion());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
@@ -194,22 +195,22 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         SysAmountAuditingEntity sysAmountAuditingEntity = new SysAmountAuditingEntity();//审核记录表
         sysAmountAuditingEntity.setUserId(userId);
         sysAmountAuditingEntity.setAmount(sysUserAccountVo.getAmount());
-        SysAmountAuditingEntity   judge =    sysAmountAuditingService.getByUserId(userId,sysUserAccountVo.getAmountStatus());
-        if(ObjectUtils.isNotEmpty(judge)){
+        SysAmountAuditingEntity judge = sysAmountAuditingService.getByUserId(userId, sysUserAccountVo.getAmountStatus());
+        if (ObjectUtils.isNotEmpty(judge)) {
             return HttpResult.ok("有未提现审核单据, 请审核完成之后再提现");
         }
 //      通过银行卡id 查询卡包
         Long fromBankCardId = sysUserAccountVo.getFromBankCardId();
-        if(fromBankCardId!=null){
+        if (fromBankCardId != null) {
             SysUserBankCard byId = sysUserBankCardService.getById(fromBankCardId);
             String bankUserId = byId.getUserId();
-            if(!userId.equals(bankUserId)){
+            if (!userId.equals(bankUserId)) {
                 return HttpResult.ok("非本人提现");
             }
             byId.setIsDefault(1);
 
-            sysAmountAuditingEntity.setBankNumber( byId.getBankNumber());
-            sysUserAccountHistory.setFromBankCard( byId.getBankNumber());
+            sysAmountAuditingEntity.setBankNumber(byId.getBankNumber());
+            sysUserAccountHistory.setFromBankCard(byId.getBankNumber());
             sysUserBankCardService.updateById(byId);
         }
 
@@ -275,37 +276,37 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         SysUserAccount sysUserAccount = baseMapper.getById(userId);
         BeanUtils.copyProperties(sysUserAccount, sysUserAccountVo);
 
-        BigDecimal  willHalding=BigDecimal.ZERO;        //预收手续费佣金
-        BigDecimal  willDocumentary =BigDecimal.ZERO;   //预收 非跟单佣金
-        BigDecimal  willPromotion =BigDecimal.ZERO;   //预收 推广
+        BigDecimal willHalding = BigDecimal.ZERO;        //预收手续费佣金
+        BigDecimal willDocumentary = BigDecimal.ZERO;   //预收 非跟单佣金
+        BigDecimal willPromotion = BigDecimal.ZERO;   //预收 推广
         StringBuffer stringBuffer = new StringBuffer();
 
-        willPromotion =   this.willPromotion(willPromotion,userId);  // 佣金
+        willPromotion = this.willPromotion(willPromotion, userId);  // 佣金
         // add by   hxl  修改sql 添加承保状态和不在审核表中的条件   begin ===============
         //List<InsFeeOrderNew> willList = insFeeOrderNewService.getByUserId(userId);
         List<InsFeeOrderNew> willList = insFeeOrderNewService.getByUserIdAndOrderStatusAndNoCheck(userId);
         //  add by  hxl   end ==========================
-        if(!CollectionUtils.isEmpty(willList)){
-            for (InsFeeOrderNew item : willList){
+        if (!CollectionUtils.isEmpty(willList)) {
+            for (InsFeeOrderNew item : willList) {
                 String quoteno = item.getInsOrderNo();
                 stringBuffer.append(quoteno).append(",");
-                if(ObjectUtils.isNotEmpty(item)){
-                    this.willAmount(item,willHalding,willDocumentary,sysUserAccountVo);  // 推广 非跟单
+                if (ObjectUtils.isNotEmpty(item)) {
+                    this.willAmount(item, willHalding, willDocumentary, sysUserAccountVo);  // 推广 非跟单
                 }
             }
 
         }
 //        提现现中
         HashMap<String, Object> params = new HashMap<>();
-        params.put("auditingStatus","2");  // 待审核
-        params.put("userId",userId);
-        List<SysAmountAuditingEntity>  sysAmountAuditingProgressIng=  sysAmountAuditingService.getProgressIng(params);
-        this.judge(sysAmountAuditingProgressIng,sysUserAccountVo);
+        params.put("auditingStatus", "2");  // 待审核
+        params.put("userId", userId);
+        List<SysAmountAuditingEntity> sysAmountAuditingProgressIng = sysAmountAuditingService.getProgressIng(params);
+        this.judge(sysAmountAuditingProgressIng, sysUserAccountVo);
         params.clear();
-        params.put("auditingStatus","3");  // 已审核审核
-        params.put("userId",userId);
-        List<SysAmountAuditingEntity>  sysAmountAuditingApproved=  sysAmountAuditingService.getProgressIng(params);
-        this.judgeSysAmountAuditing(sysAmountAuditingApproved,sysUserAccountVo);
+        params.put("auditingStatus", "3");  // 已审核审核
+        params.put("userId", userId);
+        List<SysAmountAuditingEntity> sysAmountAuditingApproved = sysAmountAuditingService.getProgressIng(params);
+        this.judgeSysAmountAuditing(sysAmountAuditingApproved, sysUserAccountVo);
         sysUserAccountVo.setWillPromotion(willPromotion);
         String ids = stringBuffer.toString();
         if (ids.endsWith(",")) {
@@ -318,40 +319,45 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Override
     public SysUserAccountVo getInsOrders(SysUserAccountVo sysUserAccountVo) {
         ArrayList<InsFeeOrderNew> resultList = new ArrayList<>();
-        BigDecimal willPromotion = BigDecimal.ZERO;
-        if(StringUtils.isNotEmpty(sysUserAccountVo.getIds())){
-            for (String insOrderNo : sysUserAccountVo.getIds().split(",")) {
-                 //add by hxl  begin   修改查询时间
-                //InsAreaCompany byInsOrderNo = insAreaCompanyService.getByInsOrderNoNew(insOrderNo,sysUserAccountVo.getTimeFiltering());
-                OrderVo byInsOrderNo = insAreaCompanyService.selectEntityByinsOrderNo(insOrderNo, sysUserAccountVo.getTimeFiltering());
-                if(ObjectUtils.isNotEmpty(byInsOrderNo)){
-                    String id = byInsOrderNo.getId();
-                    InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderEntity(id);
-                    insFeeOrderNew.setAmountType(sysUserAccountVo.getAmountType());
-                    //add  by hxl  添加车牌号
-                    insFeeOrderNew.setLicenseno(byInsOrderNo.getLicenseno());
-                    //预收推广
-                    willPromotion =this.getWillPromotion(insFeeOrderNew,willPromotion);
-                    this.getWillAmount(insFeeOrderNew);  // 推广 非跟单
-                    if(StringUtils.isNotEmpty(sysUserAccountVo.getAmountType())  &&  "3".equals(sysUserAccountVo.getAmountType()) ){
-                        insFeeOrderNew.setWillAmount(willPromotion);
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("userId", BaseController.getUser().getId());
+        params.put("timeFiltering", sysUserAccountVo.getTimeFiltering());
+
+        if ("3".equals(sysUserAccountVo.getAmountType())) {
+            List<InsFeeOrderNew> sumWillAmountGeneralization = insFeeOrderNewService.getSumWillAmountGeneralization(params);
+            sysUserAccountVo.setInsFeeOrderNewList(sumWillAmountGeneralization);
+        }else {
+            List<InsFeeOrderNew> resultInsFeeOrderNew = insFeeOrderNewService.getSumWillAmount(params);
+            if (!resultInsFeeOrderNew.isEmpty()) {
+                for (InsFeeOrderNew item : resultInsFeeOrderNew) {
+                    BigDecimal willPromotion = BigDecimal.ZERO;
+                    if ("1".equals(sysUserAccountVo.getAmountType())) {
+                        //手续费出口预收
+                        willPromotion = willPromotion.add(item.getJqExportSuperviseCostsPremiums()).add(item.getSyExportSuperviseCostsPremiums()).add(item.getNoExportSuperviseCostsPremiums());
+                    } else if ("2".equals(sysUserAccountVo.getAmountType())) {
+                        willPromotion = willPromotion.add(item.getJqExportOtherCostsPremiums()).add(item.getSyExportOtherCostsPremiums()).add(item.getNoExportOtherCostsPremiums());
+                    }
+
+                    item.setWillAmount(willPromotion);
+                    if (willPromotion.compareTo(BigDecimal.ZERO) != 0) {
+                        resultList.add(item);
                     }
-                    resultList.add(insFeeOrderNew);
                 }
+                sysUserAccountVo.setInsFeeOrderNewList(resultList);
             }
         }
-        sysUserAccountVo.setInsFeeOrderNewList(resultList);
+
         return sysUserAccountVo;
     }
 
     private void getWillAmount(InsFeeOrderNew insFeeOrderNew) {
-        if(ObjectUtils.isNotEmpty(insFeeOrderNew)){
+        if (ObjectUtils.isNotEmpty(insFeeOrderNew)) {
             //交强手续费出口比例
-            BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+            BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(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 syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(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 noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
 
 
             //非车出口比例
@@ -378,39 +384,39 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             BigDecimal noExportProceduresProportion = new BigDecimal(0);
             //总分销比例
             BigDecimal sumRetail = insFeeOrderNew.getFirstDetailProportion().add(insFeeOrderNew.getSecondDetailProportion()).add(insFeeOrderNew.getThirdDetailProportion());
-            if(insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail))>0){
+            if (insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail)) > 0) {
                 noExportProceduresProportion = insFeeOrderNew.getNoCostsProportion().subtract(sumNoDeptProportion).subtract(sumRetail);
             }
             //商业出口比例
             BigDecimal syExportProceduresProportion = new BigDecimal(0);
-            if(insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail))>0){
+            if (insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail)) > 0) {
                 syExportProceduresProportion = insFeeOrderNew.getSyCostsProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
             }
             //交强出口比例
             BigDecimal jqExportProceduresProportion = new BigDecimal(0);
-            if(insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail))>0){
+            if (insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail)) > 0) {
                 jqExportProceduresProportion = insFeeOrderNew.getJqCostsProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
             }
             //交强跟单出口费用
             BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
                     .multiply(jqExportProceduresProportion
-                            .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+                            .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).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);
+                            .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).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);
+                            .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
 
-            if(StringUtils.isNotEmpty(insFeeOrderNew.getAmountType())){
-                if("1".equals(insFeeOrderNew.getAmountType())){
+            if (StringUtils.isNotEmpty(insFeeOrderNew.getAmountType())) {
+                if ("1".equals(insFeeOrderNew.getAmountType())) {
                     //用户出口手续费
                     insFeeOrderNew.setWillAmount(jqExportProceduresFee.add(syExportProceduresFee).add(noExportProceduresFee));
                 }
-                if("2".equals(insFeeOrderNew.getAmountType())){
+                if ("2".equals(insFeeOrderNew.getAmountType())) {
                     //用户出口跟单费
                     insFeeOrderNew.setWillAmount(jqExportOtherFee.add(syExportOtherFee).add(noExportOtherFee));
                 }
@@ -418,43 +424,29 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         }
     }
 
-    private BigDecimal getWillPromotion(InsFeeOrderNew insFeeOrderNew,BigDecimal  willPromotion) {
-        for (int i = 1; i <4 ; i++) {
-            InsOrders   InsOrders = insAreaCompanyService.selectByInFeeOrderNew(insFeeOrderNew,i);
-            if(ObjectUtils.isNotEmpty(InsOrders)){
-                BigDecimal willFirstPremiums = InsOrders.getWillFirstPremiums();
-                BigDecimal willSecondPremiums = InsOrders.getWillSecondPremiums();
-                BigDecimal willThreePremiums = InsOrders.getWillThreePremiums();
-                if(ObjectUtils.isNotEmpty(InsOrders)){
-                    if(willFirstPremiums==null){
-                        willFirstPremiums=BigDecimal.ZERO;
-                    }
-                    if(willSecondPremiums==null){
-                        willSecondPremiums=BigDecimal.ZERO;
-                    }
-                    if(willThreePremiums==null){
-                        willThreePremiums=BigDecimal.ZERO;
-                    }
-                    return   willPromotion.add(willFirstPremiums).add(willThreePremiums).add(willSecondPremiums);
-                }
-            }
+    private BigDecimal getWillPromotion(InsFeeOrderNew insFeeOrderNew, BigDecimal willPromotion) {
+        InsOrders InsOrders = insAreaCompanyService.selectByInFeeOrderNew(insFeeOrderNew);
+        if (ObjectUtils.isNotEmpty(InsOrders)) {
+            BigDecimal willFirstPremiums = ObjectUtils.defaultIfNull(InsOrders.getWillFirstPremiums(), BigDecimal.ZERO);
+            // 累加保费
+            willPromotion = willPromotion.add(willFirstPremiums);
         }
-        return null;
+        return willPromotion;
     }
 
 
     private void judgeSysAmountAuditing(List<SysAmountAuditingEntity> sysAmountAuditingApproved, SysUserAccountVo sysUserAccountVo) {
-        if(!CollectionUtils.isEmpty(sysAmountAuditingApproved)){
-            for (SysAmountAuditingEntity  item:   sysAmountAuditingApproved){
-                if("1".equals(item.getAmountStatus())){  //手续费
+        if (!CollectionUtils.isEmpty(sysAmountAuditingApproved)) {
+            for (SysAmountAuditingEntity item : sysAmountAuditingApproved) {
+                if ("1".equals(item.getAmountStatus())) {  //手续费
                     BigDecimal amount = item.getAmount();
                     sysUserAccountVo.setApprovedHalding(amount);
                 }
-                if("2".equals(item.getAmountStatus())){  //非跟单
+                if ("2".equals(item.getAmountStatus())) {  //非跟单
                     BigDecimal amount = item.getAmount();
                     sysUserAccountVo.setApprovedDocumentary(amount);
                 }
-                if("3".equals(item.getAmountStatus())){  //推广费
+                if ("3".equals(item.getAmountStatus())) {  //推广费
                     BigDecimal amount = item.getAmount();
                     sysUserAccountVo.setApprovedPromotion(amount);
                 }
@@ -463,18 +455,18 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         }
     }
 
-    private void judge(List<SysAmountAuditingEntity> sysAmountAuditingProgressIng,SysUserAccountVo sysUserAccountVo) {
-        if(!CollectionUtils.isEmpty(sysAmountAuditingProgressIng)){
-            for (SysAmountAuditingEntity  item:   sysAmountAuditingProgressIng){
-                if("1".equals(item.getAmountStatus())){  //手续费
+    private void judge(List<SysAmountAuditingEntity> sysAmountAuditingProgressIng, SysUserAccountVo sysUserAccountVo) {
+        if (!CollectionUtils.isEmpty(sysAmountAuditingProgressIng)) {
+            for (SysAmountAuditingEntity item : sysAmountAuditingProgressIng) {
+                if ("1".equals(item.getAmountStatus())) {  //手续费
                     BigDecimal amount = item.getAmount();
                     sysUserAccountVo.setWithdrawalHalding(amount);
                 }
-                if("2".equals(item.getAmountStatus())){  //非跟单
+                if ("2".equals(item.getAmountStatus())) {  //非跟单
                     BigDecimal amount = item.getAmount();
                     sysUserAccountVo.setWithdrawalDocumentary(amount);
                 }
-                if("3".equals(item.getAmountStatus())){  //推广费
+                if ("3".equals(item.getAmountStatus())) {  //推广费
                     BigDecimal amount = item.getAmount();
                     sysUserAccountVo.setWithdrawalPromotion(amount);
                 }
@@ -485,27 +477,15 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     }
 
     private BigDecimal willPromotion(BigDecimal willPromotion, String userId) {
-        for (int i = 1; i <4 ; i++) {
-            InsOrders   InsOrders = insAreaCompanyService.selectPromotionBy(userId,i);
-            if(ObjectUtils.isNotEmpty(InsOrders)){
-                BigDecimal willFirstPremiums = InsOrders.getWillFirstPremiums();
-                BigDecimal willSecondPremiums = InsOrders.getWillSecondPremiums();
-                BigDecimal willThreePremiums = InsOrders.getWillThreePremiums();
-                if(ObjectUtils.isNotEmpty(InsOrders)){
-                    if(willFirstPremiums==null){
-                        willFirstPremiums=BigDecimal.ZERO;
-                    }
-                    if(willSecondPremiums==null){
-                        willSecondPremiums=BigDecimal.ZERO;
-                    }
-                    if(willThreePremiums==null){
-                        willThreePremiums=BigDecimal.ZERO;
-                    }
-                    return   willPromotion.add(willFirstPremiums).add(willThreePremiums).add(willSecondPremiums);
-                }
-            }
+        InsFeeOrderNew insFeeOrderNew = new InsFeeOrderNew();
+        insFeeOrderNew.setUserId(userId);
+        InsOrders InsOrders = insAreaCompanyService.selectByInFeeOrderNew(insFeeOrderNew);
+        if (ObjectUtils.isNotEmpty(InsOrders)) {
+            BigDecimal willFirstPremiums = ObjectUtils.defaultIfNull(InsOrders.getWillFirstPremiums(), BigDecimal.ZERO);
+            // 累加保费
+            willPromotion = willPromotion.add(willFirstPremiums);
         }
-        return null;
+        return willPromotion;
     }
 
     private void willAmount(InsFeeOrderNew insFeeOrderNew, BigDecimal willHalding, BigDecimal willDocumentary, SysUserAccountVo sysUserAccountVo) {

+ 0 - 2
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java

@@ -426,8 +426,6 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
             params.put("pageNum",insPlyIncomeVo.getPageNum());
             params.put("pageSize",insPlyIncomeVo.getPageSize());
             params =this.saveParams(insPlyIncomeVo,params);
-
-
             List<InsPlyIncome> list= this.baseMapper.queryNew(params);
             pageHelper=new PageInfo(list);
             BasePageResult<InsPlyIncome> pageResult=new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -105,7 +105,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
 
     InsAreaCompany getByInsOrderNoNew(String insOrderNo, String timeFiltering);
 
-    InsOrders selectByInFeeOrderNew(InsFeeOrderNew insFeeOrderNew, int i);
+    InsOrders selectByInFeeOrderNew(InsFeeOrderNew insFeeOrderNew);
     /**
      *  @version
      *  @author: hxl

+ 6 - 19
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -244,27 +244,14 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     }
 
     @Override
-    public InsOrders selectByInFeeOrderNew(InsFeeOrderNew insFeeOrderNew, int i) {
+    public InsOrders selectByInFeeOrderNew(InsFeeOrderNew insFeeOrderNew) {
         HashMap<String, Object> params = new HashMap<>();
-        if (!ObjectUtils.isEmpty(insFeeOrderNew)) {
-            String userId = insFeeOrderNew.getUserId();
-            params.put("id", insFeeOrderNew.getId());
-            if (i == 1) {
-                params.put("firstUserId", userId);
-                return baseMapper.selectFirstPromotionBy(params);
-
-            }
-            if (i == 2) {
-                params.put("secondUserId", userId);
-                return baseMapper.selectSecondPromotionBy(params);
-
-            }
-            if (i == 3) {
-                params.put("thirdUserId", userId);
-                return baseMapper.selectThirdPromotionBy(params);
-            }
+        String userId = insFeeOrderNew.getUserId();
+        params.put("userId", userId);
+        if(StringUtils.isNotEmpty(insFeeOrderNew.getIsDetail())){
+                params.put("id",insFeeOrderNew.getId());
         }
-        return null;
+        return baseMapper.selectSecondPromotionBy(params);
     }
 
     /**

+ 5 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 
@@ -24,6 +25,10 @@ public interface InsFeeOrderNewMapper extends BaseMapper<InsFeeOrderNew> {
      *  @Description: 预收金额查询
      */
     List<InsFeeOrderNew> getByUserIdAndOrderStatusAndNoCheck(@Param("userId") String userId);
+
+    List<InsFeeOrderNew> getSumWillAmount(HashMap<String, Object> params);
+
+    List<InsFeeOrderNew> getSumWillAmountGeneralization(HashMap<String, Object> params);
 }
 
 

+ 4 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNew.java

@@ -420,6 +420,10 @@ public class InsFeeOrderNew {
     @TableField(exist = false)
     private String amountType;
 
+    @ApiModelProperty(value = "是否是预收明细")
+    @TableField(exist = false)
+    private String isDetail;
+
     public BigDecimal getSecondDetailPremiums() {
         return ObjectUtils.isEmpty(secondDetailPremiums) ? BigDecimal.ZERO : secondDetailPremiums;
     }

+ 11 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -37,4 +38,14 @@ public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
      */
     boolean updateLevelDeptManager(String insOrderNo, BigDecimal jqPremium, BigDecimal syPremium, BigDecimal noPremium);
 
+    /**
+     *
+     * @param params    用户id   时间过滤
+     * @return
+     */
+    List<InsFeeOrderNew> getSumWillAmount(HashMap<String, Object> params);
+
+
+    List<InsFeeOrderNew> getSumWillAmountGeneralization(HashMap<String, Object> params);
+
 }

+ 19 - 4
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -8,6 +8,7 @@ import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -40,11 +41,12 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
     public List<InsFeeOrderNew> getByUserId(String userId) {
         return baseMapper.getByUserId(userId);
     }
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/5/8 15:55
-     *  @Description:  预收金额列表查询
+     * @version
+     * @author: hxl
+     * @Date: 2024/5/8 15:55
+     * @Description: 预收金额列表查询
      */
     @Override
     public List<InsFeeOrderNew> getByUserIdAndOrderStatusAndNoCheck(String userId) {
@@ -53,6 +55,7 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
 
     /**
      * 更新一级机构管理费用
+     *
      * @param insOrderNo
      * @param jqPremium
      * @return
@@ -67,4 +70,16 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
         baseMapper.updateById(insFeeOrderNew);
         return true;
     }
+
+    @Override
+    public List<InsFeeOrderNew> getSumWillAmount(HashMap<String, Object> params) {
+        return baseMapper.getSumWillAmount(params);
+
+    }
+
+    @Override
+    public List<InsFeeOrderNew> getSumWillAmountGeneralization(HashMap<String, Object> params) {
+        return baseMapper.getSumWillAmountGeneralization(params);
+
+    }
 }

+ 123 - 0
src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

@@ -204,4 +204,127 @@
           and  ins.orderstatus ='3'
           and a.ins_order_no  not in (select ins_order_no from ins_fee_audit)
     </select>
+
+    <select id="getSumWillAmount"  resultType="com.ydtech.modules.protocols.entity.po.InsFeeOrderNew">
+        select
+        a.id as "id",
+        a.user_id as "userId",
+        ins.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums"
+        from
+        ins_fee_order_new a  left join ins_area_company ins  on  a.ins_order_no=ins.id
+        left join  ins_orders o ON o.orderno=ins.orderno
+        <where>
+            <if test="userId !=null  and  userId !=''">
+                a.user_id = #{userId}
+            </if>
+            and  ins.orderstatus ='3'
+            and a.ins_order_no  not in (select ins_order_no from ins_fee_audit)
+            <if test="timeFiltering!= null  and  timeFiltering  !=''">
+                AND DATE_FORMAT(ins.signing_time, '%Y-%m' ) = #{timeFiltering}
+            </if>
+            <if test="amountType !=null  and amountType !=''  and amountType == 3 ">
+                and  (a.first_level_user_id is not  null   or  a.two_level_user_id is not null  or  a.three_level_user_id is  not  null )
+            </if>
+        </where>
+    </select>
+
+
+    <select id="getSumWillAmountGeneralization"  resultType="com.ydtech.modules.protocols.entity.po.InsFeeOrderNew">
+        SELECT
+        fee.id,
+        fee.userId,
+        fee.signingTime,
+        fee.licenseno,
+        fee.jqExportSuperviseCostsPremiums,
+        fee.syExportSuperviseCostsPremiums,
+        fee.noExportSuperviseCostsPremiums,
+        fee.jqExportOtherCostsPremiums,
+        fee.syExportOtherCostsPremiums,
+        fee.noExportOtherCostsPremiums,
+        fee.willAmount
+        FROM
+        (
+        SELECT
+        a.id as "id",
+        a.user_id as "userId",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums",
+        a.first_detail_premiums as "willAmount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        <where>
+            a.ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.first_level_user_id = #{userId}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.id as "id",
+        a.user_id as "userId",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums",
+        a.third_detail_premiums as "willAmount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        <where>
+            a.ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.three_level_user_id = #{userId}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.id as "id",
+        a.user_id as "userId",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.jq_export_supervise_costs_premiums as "jqExportSuperviseCostsPremiums",
+        a.sy_export_supervise_costs_premiums as "syExportSuperviseCostsPremiums",
+        a.no_export_supervise_costs_premiums as "noExportSuperviseCostsPremiums",
+        a.jq_export_other_costs_premiums as "jqExportOtherCostsPremiums",
+        a.sy_export_other_costs_premiums as "syExportOtherCostsPremiums",
+        a.no_export_other_costs_premiums as "noExportOtherCostsPremiums",
+        a.second_detail_premiums as "willAmount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        <where>
+            a.ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.two_level_user_id = #{userId}
+            </if>
+        </where>
+        ) AS fee
+    </select>
+
+
+
 </mapper>

+ 47 - 22
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -332,32 +332,57 @@
     </select>
     <select id="selectSecondPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.second_detail_premiums) as "willSecondPremiums"
+        sum( fee.p ) as  "willFirstPremiums"
+        FROM
+        (
+        SELECT
+        sum( a.first_detail_premiums ) AS p
         FROM
         ins_fee_order_new a
-        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
-        WHERE
-        a.ins_order_no NOT IN (
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        <where>
+            a.ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.first_level_user_id = #{userId}
+            </if>
+            <if test="id  != null  and  id!=''">
+                AND  a.id =#{id}
+            </if>
+        </where>
+        UNION
         SELECT
-        ins_order_no
+        sum( a.third_detail_premiums ) AS p
         FROM
-        ins_fee_audit
-        )
-        AND iac.orderstatus =3
-        <if test="firstUserId != null and firstUserId != ''">
-            AND a.first_level_user_id = #{firstUserId}
-        </if>
-        <if test="secondUserId != null and secondUserId != ''">
-            AND a.two_level_user_id = #{secondUserId}
-        </if>
-
-        <if test="thirdUserId != null and thirdUserId != ''">
-            AND a.three_level_user_id = #{thirdUserId}
-        </if>
-        <if test="id != null and id != ''">
-            AND a.id = #{id}
-        </if>
-
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        <where>
+            a.ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.three_level_user_id = #{userId}
+            </if>
+            <if test="id  != null  and  id!=''">
+                AND  a.id =#{id}
+            </if>
+        </where>
+        UNION
+        SELECT
+        sum( a.second_detail_premiums ) AS p
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        <where>
+            a.ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit )
+            and iac.orderstatus = '3'
+            <if test="userId!=null and  userId!= ''">
+                AND a.two_level_user_id = #{userId}
+            </if>
+            <if test="id  != null  and  id!=''">
+                AND  a.id =#{id}
+            </if>
+        </where>
+        ) AS fee
     </select>
     <select id="selectThirdPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT