Преглед на файлове

Merge remote-tracking branch 'origin/test' into test

wks преди 2 години
родител
ревизия
32ec03eff8

+ 4 - 2
src/main/java/com/ydtech/constants/enums/dict/agreement/ValidStatus.java

@@ -15,8 +15,10 @@ import lombok.Getter;
 public enum ValidStatus {
 
 
-    VS_1("1", "有效", 1, 0),
-    VS_2("0", "无效", 2, 0);
+    VS_2("0", "无效", 1, 0),
+    VS_1("1", "有效", 2, 0),
+    VS_3("2", "待审核", 3, 0);
+
 
     // 编号
     private final String code;

+ 34 - 0
src/main/java/com/ydtech/modules/admin/constants/QuMarks.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.admin.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 金钱属性
+ * @author: tz
+ * @date: 2024-4-11 17:36:15
+ **/
+@Getter
+@AllArgsConstructor
+public enum QuMarks {
+
+    COMPANY_MARK(1, "保险公司"),
+    USER_MARK(2,"用户");
+
+    private final Integer code;
+
+    private final String desc;
+
+    public static QuMarks getQuMarks(Integer code) {
+        for (QuMarks quMarks : QuMarks.values()) {
+            if (quMarks.getCode().equals(code)) {
+                return quMarks;
+            }
+        }
+        return null;
+    }
+
+
+}

+ 3 - 2
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -713,18 +713,19 @@ public class SysUserController extends BaseController {
         return HttpResult.ok(list);
     }
 
-    @ApiOperation(value = "区域数据管理")
+    @ApiOperation(value = "区域业绩管理")
     @PostMapping(value = "/quUserNum")
     public HttpResult quUserNum(@RequestBody QuUserNumDto quUserNumDto) {
         return HttpResult.ok("", sysUserService.quUserNum(quUserNumDto));
     }
 
-    @ApiOperation(value = "区域数据管理详情")
+    @ApiOperation(value = "区域业绩地区管理详情")
     @PostMapping(value = "/quUserNumDetail")
     public HttpResult quUserNumDetail(@RequestBody QuUserNumDto quUserNumDto) {
         return HttpResult.ok("", sysUserService.getQuUserByCompany(quUserNumDto));
     }
 
+
     /**
      *  @version
      *  @author: hxl

+ 11 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -169,7 +169,18 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     List<QuUserNum> getUserNum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
 
+    List<QuUserNum> getMainOrderDetails(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+
     List<QuUserNum> getUserByCompany(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    List<QuUserNum> getComMainWaitAuditSum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    List<QuUserNum> getComMainWaitPaySum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    List<QuUserNum> getComMainAcceptInsuranceSum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+
+    List<QuUserNum> getUserDetail(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    List<QuUserNum> getUserMainWaitAuditSum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    List<QuUserNum> getUserMainWaitPaySum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    List<QuUserNum> getUserMainAcceptInsuranceSum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+
     /**
      *  @version
      *  @author: hxl

+ 36 - 1
src/main/java/com/ydtech/modules/admin/model/QuUserNum.java

@@ -16,13 +16,31 @@ public class QuUserNum {
     @ApiModelProperty(value = "订单状态")
     private String orderStatus;
 
+    @ApiModelProperty(value = "主订单待核保总数")
+    private String mainWaitAuditSum;
+
+    @ApiModelProperty(value = "主订单已核保总数")
+    private String mainWaitPaySum;
+
+    @ApiModelProperty(value = "主订单已承包总数")
+    private String mainAcceptInsuranceSum;
+
+    @ApiModelProperty(value = "子订单待核保总数")
+    private String subWaitAuditSum;
+
+    @ApiModelProperty(value = "子订单已核保总数")
+    private String subWaitPaySum;
+
+    @ApiModelProperty(value = "子订单已承包总数")
+    private String subAcceptInsuranceSum;
+
     @ApiModelProperty(value = "保险公司编号")
     private String companyId;
 
     @ApiModelProperty(value = "保险公司名称")
     private String insCompany;
 
-    @ApiModelProperty(value = "该订单状态下次数")
+    @ApiModelProperty(value = "订单总数")
     private String count;
 
     @ApiModelProperty(value = "报价次数")
@@ -52,4 +70,21 @@ public class QuUserNum {
     @ApiModelProperty(value = "省市区名称")
     private String areaName;
 
+
+    public QuUserNum() {
+        this.mainWaitAuditSum = "0";
+        this.mainWaitPaySum = "0";
+        this.mainAcceptInsuranceSum = "0";
+        this.subWaitAuditSum = "0";
+        this.subWaitPaySum = "0";
+        this.subAcceptInsuranceSum = "0";
+        this.count = "0";
+        this.quoteNum = "0";
+        this.submitNum = "0";
+        this.hasInsuredNum = "0";
+        this.totalSumpremium = "0";
+        this.jqPremiumSum = "0";
+        this.syPremiumSum = "0";
+        this.taxaMountSum = "0";
+    }
 }

+ 3 - 2
src/main/java/com/ydtech/modules/admin/model/dto/QuUserNumDto.java

@@ -38,10 +38,11 @@ public class QuUserNumDto {
     @ApiModelProperty(value = "下属ID")
     private List<String> userIds;
 
-    @TableField(exist = false)
+    @ApiModelProperty(value = "查询标示")
+    private Integer quMarks;
+
     private int pageNum;
 
-    @TableField(exist = false)
     private int pageSize;
 
 }

+ 72 - 15
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -11,6 +11,7 @@ import com.ydtech.constants.SysConstants;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.constants.QuMarks;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.model.*;
@@ -813,7 +814,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             // 根据查询条件获取用户数量统计信息
             quUserNumDto.setUserIds(strIds);
             List<QuUserNum> userNums = sysUserMapper.getUserNum(quUserNumDto);
-
+            List<QuUserNum> orderDetails = sysUserMapper.getMainOrderDetails(quUserNumDto);
             // 根据区域名称匹配用户数量统计信息,并构造最终返回的结果列表
             for (QuUserNum quUserNum : userNums) {
                 for (SysArea sysArea : areaList) {
@@ -822,27 +823,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                         String substring = sysArea.getAreaCode().substring(0, quUserNumDto.getGrouping());
                         if (quUserNum.getAreaCode().equals(substring)) {
                             quUserNum.setAreaName(sysArea.getAreaCname());
-                            quUserNums.add(quUserNum);
                         }
                     }
                 }
+                for (QuUserNum orderDetail : orderDetails) {
+                    if (quUserNum.getAreaCode().equals(orderDetail.getAreaCode())) {
+                        quUserNum.setMainAcceptInsuranceSum(orderDetail.getMainAcceptInsuranceSum());
+                        quUserNum.setMainWaitAuditSum(orderDetail.getMainWaitAuditSum());
+                        quUserNum.setMainWaitPaySum(orderDetail.getMainWaitPaySum());
+                    }
+                }
+                quUserNums.add(quUserNum);
             }
         }
 
-
         // 为每个区域生成未匹配到的统计信息
         for (SysArea sysArea : areaList) {
             if (exists(quUserNums, sysArea)) {
                 QuUserNum userNum = new QuUserNum();
                 // 设置未匹配到的区域的默认统计信
                 userNum.setAreaName(sysArea.getAreaCname());
-                userNum.setQuoteNum("0");
-                userNum.setSubmitNum("0");
-                userNum.setHasInsuredNum("0");
-                userNum.setTotalSumpremium("0");
-                userNum.setJqPremiumSum("0");
-                userNum.setSyPremiumSum("0");
-                userNum.setTaxaMountSum("0");
                 quUserNums.add(userNum);
             }
         }
@@ -895,8 +895,65 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         // 设置查询条件中的用户ID列表
         quUserNumDto.setUserIds(strIds);
 
-        // 根据公司和用户ID列表查询用户数量统计信息
-        List<QuUserNum> deptByCompany = sysUserMapper.getUserByCompany(quUserNumDto);
+        List<QuUserNum> deptByCompany = new ArrayList<>();
+
+        if (quUserNumDto.getQuMarks().equals(QuMarks.COMPANY_MARK.getCode())) {
+            // 根据公司和用户ID列表查询用户数量统计信息
+            deptByCompany = sysUserMapper.getUserByCompany(quUserNumDto);
+            // 获取公司主订单待核保订单数量
+            List<QuUserNum> mainWaitAuditSums = sysUserMapper.getComMainWaitAuditSum(quUserNumDto);
+            // 获取公司主订单已核保待缴费订单数量
+            List<QuUserNum> mainWaitPaySums = sysUserMapper.getComMainWaitPaySum(quUserNumDto);
+            // 获取公司主订单已承包订单数量
+            List<QuUserNum> mainAcceptInsuranceSums = sysUserMapper.getComMainAcceptInsuranceSum(quUserNumDto);
+
+            for (QuUserNum quUserNum : deptByCompany) {
+                for (QuUserNum mainWaitAuditSum : mainWaitAuditSums) {
+                    if (quUserNum.getCompanyId().equals(mainWaitAuditSum.getCompanyId())) {
+                        quUserNum.setMainWaitAuditSum(mainWaitAuditSum.getMainWaitAuditSum());
+                    }
+                }
+                for (QuUserNum mainWaitPaySum : mainWaitPaySums) {
+                    if (quUserNum.getCompanyId().equals(mainWaitPaySum.getCompanyId())) {
+                        quUserNum.setMainWaitPaySum(mainWaitPaySum.getMainWaitPaySum());
+                    }
+                }
+                for (QuUserNum mainAcceptInsuranceSum : mainAcceptInsuranceSums) {
+                    if (quUserNum.getCompanyId().equals(mainAcceptInsuranceSum.getCompanyId())) {
+                        quUserNum.setMainAcceptInsuranceSum(mainAcceptInsuranceSum.getMainAcceptInsuranceSum());
+                    }
+                }
+            }
+
+        } else if (quUserNumDto.getQuMarks().equals(QuMarks.USER_MARK.getCode())) {
+            // 根据公司和用户ID列表查询用户数量统计信息
+            deptByCompany = sysUserMapper.getUserDetail(quUserNumDto);
+
+            // 获取用户主订单待核保订单数量
+            List<QuUserNum> mainWaitAuditSums = sysUserMapper.getUserMainWaitAuditSum(quUserNumDto);
+            // 获取用户主订单已核保待缴费订单数量
+            List<QuUserNum> mainWaitPaySums = sysUserMapper.getUserMainWaitPaySum(quUserNumDto);
+            // 获取用户主订单已承包订单数量
+            List<QuUserNum> mainAcceptInsuranceSums = sysUserMapper.getUserMainAcceptInsuranceSum(quUserNumDto);
+
+            for (QuUserNum quUserNum : deptByCompany) {
+                for (QuUserNum mainWaitAuditSum : mainWaitAuditSums) {
+                    if (quUserNum.getUserId().equals(mainWaitAuditSum.getUserId()) && quUserNum.getCompanyId().equals(mainWaitAuditSum.getCompanyId())) {
+                        quUserNum.setMainWaitAuditSum(mainWaitAuditSum.getMainWaitAuditSum());
+                    }
+                }
+                for (QuUserNum mainWaitPaySum : mainWaitPaySums) {
+                    if (quUserNum.getUserId().equals(mainWaitPaySum.getUserId()) && quUserNum.getCompanyId().equals(mainWaitPaySum.getCompanyId())) {
+                        quUserNum.setMainWaitPaySum(mainWaitPaySum.getMainWaitPaySum());
+                    }
+                }
+                for (QuUserNum mainAcceptInsuranceSum : mainAcceptInsuranceSums) {
+                    if (quUserNum.getUserId().equals(mainAcceptInsuranceSum.getUserId()) && quUserNum.getCompanyId().equals(mainAcceptInsuranceSum.getCompanyId())) {
+                        quUserNum.setMainAcceptInsuranceSum(mainAcceptInsuranceSum.getMainAcceptInsuranceSum());
+                    }
+                }
+            }
+        }
 
         List<QuUserNum> paginate = paginate(deptByCompany, quUserNumDto.getPageNum(), quUserNumDto.getPageSize());
 
@@ -990,9 +1047,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      */
     @Override
     public List<SysUserBaseVO> getAllUsersByHospitality(SysUserVOExt sysUserVOExt) {
-        if(StringUtils.isNotEmpty(sysUserVOExt.getUserId()) || StringUtils.isNotEmpty(sysUserVOExt.getIdentity()) ||
-                StringUtils.isNotEmpty(sysUserVOExt.getMobile()) || StringUtils.isNotEmpty(sysUserVOExt.getName())){
-            return  super.baseMapper.getAllUsersByHospitality(sysUserVOExt);
+        if (StringUtils.isNotEmpty(sysUserVOExt.getUserId()) || StringUtils.isNotEmpty(sysUserVOExt.getIdentity()) ||
+                StringUtils.isNotEmpty(sysUserVOExt.getMobile()) || StringUtils.isNotEmpty(sysUserVOExt.getName())) {
+            return super.baseMapper.getAllUsersByHospitality(sysUserVOExt);
         }
         return new ArrayList<SysUserBaseVO>();
     }

+ 10 - 0
src/main/java/com/ydtech/modules/order/entity/vo/InsOrdersEditingVo.java

@@ -14,6 +14,7 @@ import lombok.EqualsAndHashCode;
 import org.apache.commons.lang3.ObjectUtils;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -140,6 +141,15 @@ public class InsOrdersEditingVo extends InsOrders implements Serializable {
         @TableField(value = "紫金能源车(鼎然-车辆风险评分)")
         private String ubiPredictedInfoScore;
 
+        @ApiModelProperty("交强出口费用")
+        private BigDecimal jqExportFee;
+
+        @ApiModelProperty("商业出口费用")
+        private BigDecimal syExportFee;
+
+        @ApiModelProperty("非车出口费用")
+        private BigDecimal noExportFee;
+
         public InsAreaCompanyEditingDto(InsAreaCompanyQueryDto insAreaCompany) {
             this.orderno = insAreaCompany.getOrderno();
             this.orderstatus = insAreaCompany.getOrderstatus();

+ 20 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -31,6 +31,7 @@ import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import com.ydtech.modules.fee.service.CostsCalcService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
@@ -136,6 +137,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private SysUserLinkAreaMapper sysUserLinkAreaMapper;
 
+    @Autowired
+    private CostsCalcService costsCalcService;
+
 
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService,
@@ -718,6 +722,22 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         List<InsOrdersEditingVo.InsAreaCompanyEditingDto> insAreaCompanyEditingDtos =
                 insAreaCompanyQueryDtos.stream().map(InsOrdersEditingVo.InsAreaCompanyEditingDto::new).collect(Collectors.toList());
 
+        List<String> companyIds = insAreaCompanyEditingDtos.stream().map(x -> x.getCompanyId()).collect(Collectors.toList());
+
+        List<InsFeeOrderNew> insFeeOrderNews = insFeeOrderNewService.getInsFeeOrderNewListByCompanyId(companyIds);
+
+        //计算费用
+        insFeeOrderNews.forEach(insFeeOrderNew -> {
+            SubOrderExportFeeVo subOrderExportFeeVo = costsCalcService.getExportFee(insFeeOrderNew);
+            insAreaCompanyEditingDtos.stream().filter(x -> x.getCompanyId().equals(insFeeOrderNew.getInsOrderNo())).findFirst().ifPresent(result -> {
+                result.setJqExportFee(subOrderExportFeeVo.getJqExportCosts());
+                result.setSyExportFee(subOrderExportFeeVo.getSyExportCosts());
+                result.setNoExportFee(subOrderExportFeeVo.getNoExportCosts());
+            });
+
+        });
+
+
         insOrdersEditingVo.setInsAreaCompanyEditingDtos(insAreaCompanyEditingDtos);
         return insOrdersEditingVo;
     }

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java

@@ -50,7 +50,7 @@ public class PtlAgreementPageVo extends PageRequest {
     @ApiModelProperty("合作公司id")
     private String partnerCompaniesId;
 
-    @ApiModelProperty("是否有效")
+    @ApiModelProperty("是否有效 0 无效 1 有效 2 待审核")
     private String validStatus;
 
     @ApiModelProperty("审核状态 0 申请审核 1 审核通过 2 审核不通过")

+ 17 - 8
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java

@@ -38,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -363,14 +364,23 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
                 .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getModifiedBy()), PtlAgreement::getModifiedBy, ptlAgreementPageVo.getModifiedBy())
                 // 合作公司
                 .in(!StringUtils.isEmpty(ptlAgreementPageVo.getPartnerCompaniesId()) && !lowerId.isEmpty(), PtlAgreement::getPartnerCompaniesId, lowerId)
-                // 录入时间
-                .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate()), PtlAgreement::getCreateTime, ptlAgreementPageVo.getStartDate(), ptlAgreementPageVo.getEndDate())
-                // 修改时间
-                .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateStarTime()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateEndTime()), PtlAgreement::getUpdateTime, ptlAgreementPageVo.getUpdateStarTime(), ptlAgreementPageVo.getUpdateEndTime())
                 // 协议起期
                 .le(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAgreementStartDate()), PtlAgreement::getStartDate, ptlAgreementPageVo.getAgreementStartDate())
                 // 协议止期
                 .ge(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAgreementEndDate()), PtlAgreement::getEndDate, ptlAgreementPageVo.getAgreementEndDate());
+        // 录入时间
+        if (!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate())) {
+            LocalDateTime startDateTime = ptlAgreementPageVo.getStartDate().atTime(LocalTime.MIN);
+            LocalDateTime endDateTime = ptlAgreementPageVo.getEndDate().atTime(LocalTime.MAX);
+            wrapper.between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate()), PtlAgreement::getCreateTime, startDateTime, endDateTime);
+
+        }
+        // 修改时间
+        if (!ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateStarTime()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateEndTime())) {
+            LocalDateTime startDateTime = ptlAgreementPageVo.getUpdateStarTime().atTime(LocalTime.MIN);
+            LocalDateTime endDateTime = ptlAgreementPageVo.getUpdateEndTime().atTime(LocalTime.MAX);
+            wrapper.between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateStarTime()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateEndTime()), PtlAgreement::getUpdateTime, startDateTime,endDateTime);
+        }
         // 省市县
         if (ptlAgreementPageVo.getAreaCode() != null && !"".equals(ptlAgreementPageVo.getAreaCode()) && ptlAgreementPageVo.getLevel() != null) {
             String area = ptlAgreementPageVo.getAreaCode();
@@ -387,7 +397,7 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
                     prefix = area.substring(0, 4);
                     break;
                 }
-                case "3": {  // 区县级查询逻辑
+                case "3": { // 区县级查询逻辑
                     sign = 6;
                     prefix = area.substring(0, 6);
                     break;
@@ -395,9 +405,8 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
             }
             wrapper.apply("SUBSTRING(partner_companies_id, 6, " + sign + ") =" + prefix);
         }
-
-        Page<PtlAgreement> records = page(page,wrapper);
-        return records;
+        Page<PtlAgreement> agreementPage = page(page, wrapper);
+        return agreementPage;
     }
 
     @Override

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

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
 
+import java.util.List;
+
 /**
 *@author: tz
 *@description: 费用计算表 service
@@ -13,5 +15,7 @@ public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
 
     InsFeeOrderNew getInsFeeOrderNewByCompanyId(String companyId);
 
+    List<InsFeeOrderNew> getInsFeeOrderNewListByCompanyId(List<String> companyIds);
+
     InsFeeOrderNew getInsFeeOrderEntity(String id);
 }

+ 8 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -11,6 +11,8 @@ import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.modules.protocols.service.PtlAgreementProductCostsAttrLinkService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @description 费用结算表 service实现类
  * @createDate 2024-2-22 15:44:29
@@ -26,6 +28,12 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
                 .eq(InsFeeOrderNew::getInsOrderNo, companyId));
     }
 
+    @Override
+    public List<InsFeeOrderNew> getInsFeeOrderNewListByCompanyId(List<String> companyIds) {
+        return baseMapper.selectList(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .in(InsFeeOrderNew::getInsOrderNo, companyIds));
+    }
+
     @Override
     public InsFeeOrderNew getInsFeeOrderEntity(String id) {
         return baseMapper.getInsFeeOrderEntity(id);

+ 224 - 2
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -388,6 +388,9 @@
         COUNT(*) AS quoteNum,
         SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
+        SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
+        SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
@@ -396,7 +399,7 @@
         ins_orders io
         RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
         WHERE
-        iac.orderstatus IN ( 1, 2, 3 )
+        iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
         <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
             and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
         </if>
@@ -410,6 +413,29 @@
         SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
     </select>
 
+    <select id="getMainOrderDetails" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+            SUBSTRING(io.userid, 3, 4) AS areacode,
+            SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum,
+            SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum,
+            SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
+        FROM
+            ins_orders io
+        WHERE
+            io.orderstatus IN (1,2,3)
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+            SUBSTRING(io.userid, 3, 4)
+    </select>
+
     <select id="getUserByCompany" resultType="com.ydtech.modules.admin.model.QuUserNum">
         SELECT
         iac.company_id as companyId,
@@ -417,6 +443,9 @@
         COUNT(*) AS quoteNum,
         SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
+        SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
+        SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
         SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
@@ -425,7 +454,80 @@
         ins_orders io
         RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
         WHERE
-        iac.orderstatus IN ( 1, 2, 3 )
+        iac.orderstatus IN ( 0, 1, 2, 3, 4 )
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        iac.company_id,
+        iac.inscompany
+    </select>
+
+    <select id="getComMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN (1)
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        iac.company_id,
+        iac.inscompany
+    </select>
+
+    <select id="getComMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN (2)
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        iac.company_id,
+        iac.inscompany
+    </select>
+
+
+    <select id="getComMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN (3)
         <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
             and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
         </if>
@@ -440,6 +542,126 @@
         iac.inscompany
     </select>
 
+    <select id="getUserDetail" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        io.userid,
+        io.username,
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        COUNT(*) AS quoteNum,
+        SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
+        SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
+        SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
+        SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        io.userid,
+        iac.company_id,
+        iac.inscompany
+    </select>
+
+    <select id="getUserMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        io.userid,
+        io.username,
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        COUNT(*) AS quoteNum,
+        SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN (1)
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        io.userid,
+        iac.company_id,
+        iac.inscompany
+    </select>
+
+    <select id="getUserMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        io.userid,
+        io.username,
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        COUNT(*) AS quoteNum,
+        SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN (2)
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        io.userid,
+        iac.company_id,
+        iac.inscompany
+    </select>
+
+
+    <select id="getUserMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
+        SELECT
+        io.userid,
+        io.username,
+        iac.company_id as companyId,
+        iac.inscompany as insCompany,
+        COUNT(*) AS quoteNum,
+        SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
+        FROM
+        ins_orders io
+        RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
+        WHERE
+        iac.orderstatus IN (3)
+        <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
+            and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
+        </if>
+        <if test="quUserNumDto.userIds != null">
+            and io.userid IN
+            <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        io.userid,
+        iac.company_id,
+        iac.inscompany
+    </select>
 
     <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
         SELECT