فهرست منبع

Merge branch 'refs/heads/test-1111' into test

wks 1 سال پیش
والد
کامیت
1cfaf05695

+ 2 - 0
.gitignore

@@ -5,6 +5,8 @@ json
 target
 
 *.iml
+*.ipr
+*.iws
 
 application-dev.yml
 application-local.yml

+ 5 - 2
sql/Online.sql

@@ -74,7 +74,10 @@ CREATE TABLE `sys_partner_time` (
 ALTER TABLE `sys_qy_wechat` ADD COLUMN `support_staff_url` varchar(500) NULL COMMENT '客服URL';
 
 ALTER TABLE `agent`.`sys_user`
-    ADD COLUMN `referrer_id` varchar(30) NULL COMMENT '推荐人id' AFTER `dept_type1`,
-    ADD COLUMN `dept_type` varchar(30) NULL COMMENT '机构类型(股份,直营,加盟)' AFTER `referrer_id`;
+    ADD COLUMN `dept_type` varchar(30) NULL COMMENT '机构类型(股份,直营,加盟)',
+    ADD COLUMN `referrer_id` varchar(30) NULL COMMENT '推荐人id';
+
+
+
 
 

+ 7 - 1
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -225,7 +225,13 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
      */
     List<EmployeeIncreaseReportDto> employeeIncreaseReportDay(HashMap<String,Object> map);
 
-
+    /**
+     * 团队业绩统计
+     * @param userId 用户id
+     * @param startDate 开始时间
+     * @param endDate 结束时间
+     * @return
+     */
     List<EsmUserPolicyForUserVO> queryOrderCountForUser(String userId,String startDate, String endDate);
 
     List<EsmUserReferrerDTO> getbyUserNextLevel(String userId);

+ 62 - 6
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserCountVO.java

@@ -2,7 +2,9 @@ package com.ydtech.modules.esm.model.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.util.List;
@@ -16,18 +18,72 @@ public class EsmUserCountVO implements Serializable {
     private List<EsmTeamPolicyVO> hzList;//汇总信息
     //明细数据
     @ApiModelProperty(value = "明细数据--汇总")
-    private List<EsmUserPolicyVO> userPolicyList ;//汇总详细
+    private AggregateDataList aggregateDataLists ;//汇总详细
+
     @ApiModelProperty(value = "明细数据--本级")
-    private List<EsmUserPolicyVO> userPolicyList0 ;//本级详细
+    private AggregateDataList aggregateDataLists0 ;//本级详细
+
     @ApiModelProperty(value = "明细数据--一级")
-    private List<EsmUserPolicyVO> userPolicyList1 ;//一级详细
+    private AggregateDataList aggregateDataLists1 ;//一级详细
+
     @ApiModelProperty(value = "明细数据--二级")
-    private List<EsmUserPolicyVO> userPolicyList2 ;//二级详细
+    private AggregateDataList aggregateDataLists2 ;//二级详细
+
     @ApiModelProperty(value = "明细数据--三级")
-    private List<EsmUserPolicyVO> userPolicyList3 ;//三级详细
+    private AggregateDataList aggregateDataLists3 ;//三级详细
+
     @ApiModelProperty(value = "明细数据--临时团队")
-    private List<EsmUserPolicyVO> userPolicyList9 ;//临时团队
+    private AggregateDataList aggregateDataLists9 ;//临时团队
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class AggregateDataList implements Serializable{
+
+        private static final long serialVersionUID = -7452147636460212353L;
+
+        @ApiModelProperty(value = "汇总数据")
+        private AggregateData aggregateData;
+
+        @ApiModelProperty("明细数据")
+        private List<EsmUserPolicyVO> userPolicyList;
+
+        public AggregateDataList(List<EsmUserPolicyVO> userPolicyList) {
+            AggregateData aggregateDataO = new AggregateData();
+            userPolicyList.forEach(x->{
+                aggregateDataO.setOrdernum(aggregateDataO.getOrdernum() + aggregateDataO.getOrdernum());
+                aggregateDataO.setPolicynum(aggregateDataO.getPolicynum() + aggregateDataO.getPolicynum());
+                aggregateDataO.setSumpremium(aggregateDataO.getSumpremium() + aggregateDataO.getSumpremium());
+                aggregateDataO.setBjpolicynum(aggregateDataO.getBjpolicynum() + aggregateDataO.getBjpolicynum());
+                aggregateDataO.setBjsumpremium(aggregateDataO.getBjsumpremium() + aggregateDataO.getBjpolicynum());
+            });
+            this.userPolicyList = userPolicyList;
+            this.aggregateData = aggregateDataO;
+        }
+    }
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class AggregateData implements Serializable{
+
+        private static final long serialVersionUID = -176510042680346765L;
+
+        @ApiModelProperty(value = "出单笔数")
+        private int ordernum;
+
+        @ApiModelProperty(value = "核保笔数")
+        private int policynum;
+
+        @ApiModelProperty(value = "签单保费")
+        private double sumpremium;
+
+        @ApiModelProperty(value = "报价次数")
+        private int bjpolicynum;
 
+        @ApiModelProperty(value = "报价金额")
+        private double bjsumpremium;
 
+    }
 
 }

+ 16 - 7
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyForUserVO.java

@@ -12,19 +12,28 @@ public class EsmUserPolicyForUserVO implements Serializable {
 
     private static final long serialVersionUID = 5053893395186078389L;
 
-    private String companyId;//保险公司id
+    @ApiModelProperty("保险公司id")
+    private String companyId;
+
     @ApiModelProperty(value = "保险公司名称")
-    private String companyName;//保险公司名称
+    private String companyName;
+
     @ApiModelProperty(value = "出单笔数")
-    private int ordernum;//出单笔数
+    private int ordernum;
+
     @ApiModelProperty(value = "核保笔数")
-    private int policynum;//核保笔数
+    private int policynum;
+
     @ApiModelProperty(value = "签单保费")
-    private double sumpremium;//签单保费
+    private double sumpremium;
+
     @ApiModelProperty(value = "报价次数")
-    private int bjpolicynum;//报价次数
+    private int bjpolicynum;
+
     @ApiModelProperty(value = "报价金额")
-    private double bjsumpremium;//报价金额
+    private double bjsumpremium;
 
+    @ApiModelProperty(value = "logo")
+    private String logo;
 
 }

+ 6 - 1
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyVO.java

@@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
 
 @Data
 @ApiModel("团队管理展示-明细")
@@ -37,4 +36,10 @@ public class EsmUserPolicyVO implements Serializable {
     @ApiModelProperty(value = "报价金额")
     private double bjsumpremium;
 
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+
+    @ApiModelProperty(value = "平均保费")
+    private double averagePremium;
+
 }

+ 6 - 1
src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java

@@ -74,7 +74,12 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
      **/
     BasePageResult<SysUserTeamDto> getTeamUser(AppCustomerManagementQueryVo managementQueryVo, String userId);
 
-    public List<EsmUserPolicyForUserVO> queryUserCountForUser(TeamUserQryVO record);
+    /**
+     * 团队业绩统计
+     * @param record 查询实体
+     * @return 团队业绩
+     */
+    List<EsmUserPolicyForUserVO> queryUserCountForUser(TeamUserQryVO record);
 }
 
 

+ 4 - 6
src/main/java/com/ydtech/modules/esm/service/impl/EsmInsCompanyServiceImpl.java

@@ -108,18 +108,16 @@ public class EsmInsCompanyServiceImpl extends ServiceImpl<EsmInsCompanyMapper, E
         return exist.get();
     }
 
-
     @Override
     public EsmInsCompany getBySubsidiary(String subsidiaryId) {
-        String code = "000000";
-        String substring = subsidiaryId.substring(0, 5);
-        String companyId = substring + code;
-        EsmInsCompany esmInsCompany = getById(companyId);
+        String companyId = subsidiaryId.replaceAll("[^A-Za-z]", "");
+        String code = "1000000";
+        AssertionUtils.isFail(StringUtils.isEmpty(companyId), "保险公司不存在");
+        EsmInsCompany esmInsCompany = getById(companyId + code);
         AssertionUtils.isEmpty(esmInsCompany, "保险公司不存在");
         return esmInsCompany;
     }
 
-
     @Override
     public List<String> getByLowerId(String companyId) {
         return baseMapper.getByLowerId(companyId);

+ 22 - 17
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -30,10 +30,7 @@ import org.springframework.stereotype.Service;
 import javax.sql.DataSource;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -439,25 +436,33 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
             hzList.add(esmTeamPolicyVO9);
             esmUserCountVO.setHzList(hzList);
 
-            // 设置级别
-            Map<String, String> collect1 = userPolicyList1.stream().collect(Collectors.toMap(EsmUserPolicyVO::getId, x -> "1"));
-            Map<String, String> collect2 = userPolicyList2.stream().collect(Collectors.toMap(EsmUserPolicyVO::getId, x -> "2"));
-            Map<String, String> collect3 = userPolicyList3.stream().collect(Collectors.toMap(EsmUserPolicyVO::getId, x -> "3"));
-            Map<String, String> collect = Stream.of(collect1, collect2, collect3)
-                    .flatMap(map -> map.entrySet().stream())
-                    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+            userPolicyList1.forEach(x-> x.setTeamlevel("1"));
+            userPolicyList2.forEach(x-> x.setTeamlevel("2"));
+            userPolicyList3.forEach(x-> x.setTeamlevel("3"));
+
+            Map<String, String> collect = Stream.of(userPolicyList1, userPolicyList2, userPolicyList3)
+                    .flatMap(List::stream)
+                    .collect(Collectors.toMap(EsmUserPolicyVO::getId, EsmUserPolicyVO::getTeamlevel));
 
             userPolicyList.forEach(x -> {
                 String s = collect.get(x.getId());
                 x.setTeamlevel(s);
             });
 
-            esmUserCountVO.setUserPolicyList(userPolicyList);
-            esmUserCountVO.setUserPolicyList0(userPolicyList0);
-            esmUserCountVO.setUserPolicyList1(userPolicyList1);
-            esmUserCountVO.setUserPolicyList2(userPolicyList2);
-            esmUserCountVO.setUserPolicyList3(userPolicyList3);
-            esmUserCountVO.setUserPolicyList9(userPolicyList9);
+            EsmUserCountVO.AggregateDataList aggregateDataList = new EsmUserCountVO.AggregateDataList(userPolicyList);
+            EsmUserCountVO.AggregateDataList aggregateDataList0 = new EsmUserCountVO.AggregateDataList(userPolicyList0);
+            EsmUserCountVO.AggregateDataList aggregateDataList1 = new EsmUserCountVO.AggregateDataList(userPolicyList1);
+            EsmUserCountVO.AggregateDataList aggregateDataList2 = new EsmUserCountVO.AggregateDataList(userPolicyList2);
+            EsmUserCountVO.AggregateDataList aggregateDataList3 = new EsmUserCountVO.AggregateDataList(userPolicyList3);
+            EsmUserCountVO.AggregateDataList aggregateDataList9 = new EsmUserCountVO.AggregateDataList(userPolicyList9);
+
+            esmUserCountVO.setAggregateDataLists(aggregateDataList);
+            esmUserCountVO.setAggregateDataLists0(aggregateDataList0);
+            esmUserCountVO.setAggregateDataLists1(aggregateDataList1);
+            esmUserCountVO.setAggregateDataLists2(aggregateDataList2);
+            esmUserCountVO.setAggregateDataLists3(aggregateDataList3);
+            esmUserCountVO.setAggregateDataLists9(aggregateDataList9);
+
         } else {
             throw new SystemException("内部错误");
         }

+ 8 - 7
src/main/java/com/ydtech/modules/order/controller/QrCodeController.java

@@ -76,7 +76,7 @@ public class QrCodeController {
     public ModelAndView getQrCode(String areaCompanyId) {
         InsOrderQrCode insOrderQrCode = insOrderQrCodeService.getOneOrSave(areaCompanyId);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(areaCompanyId);
-        Integer qrCodeType = sysQRCodeRelationService.getQRCodeType(insAreaCompany.getApiType(),insAreaCompany.getCompanyId(),
+        Integer qrCodeType = sysQRCodeRelationService.getQRCodeType(insAreaCompany.getApiType(), insAreaCompany.getCompanyId(),
                 insAreaCompany.getInscompany());
         ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView());
         if (!Objects.isNull(insOrderQrCode)) {
@@ -93,6 +93,7 @@ public class QrCodeController {
             qrCodeVo.setJypremium(insAreaCompany.getJypremium());//驾驭险
             qrCodeVo.setCApplyNme(insOrders.getApplyinfo().getString("name"));//投保人
             qrCodeVo.setCInsuredNme(insOrders.getInsureinfo().getString("name"));//被保人
+            qrCodeVo.setCOwnerNme(insOrders.getOwnerinfo().getString("name"));//车主
             qrCodeVo.setCPlateNo(insOrders.getLicenseno());//车牌号
             qrCodeVo.setJqStartDate(insAreaCompany.getJqStartDate());//交强开始时间
             qrCodeVo.setJqEndDate(insAreaCompany.getJqEndDate());//交强结束时间
@@ -161,16 +162,16 @@ public class QrCodeController {
             return modelAndView;
         }
 
-        if(UserConstants.CONFIG_TYPE_2.equals(configType) || UserConstants.CONFIG_TYPE_1.equals(configType)){
+        if (UserConstants.CONFIG_TYPE_2.equals(configType) || UserConstants.CONFIG_TYPE_1.equals(configType)) {
             InsOrders insOrders = insOrdersService.getById(insOrderQrCode.getOrderno());
             // 获取图标
             EsmInsCompany company = esmInsCompanyService.getById(insAreaCompany.getCompanyId());
             ModelAndView modelAndView = new ModelAndView();
             QrCodeVo qrCodeVo = new QrCodeVo();
             qrCodeVo.setLogo(company.getLogo());
-            if(UserConstants.CONFIG_TYPE_1.equals(configType)){
+            if (UserConstants.CONFIG_TYPE_1.equals(configType)) {
                 modelAndView.setViewName("qrcode1");
-                qrCodeVo.setQrCodeUrl("data:image/png;base64,"+insAreaCompany.getPaymentLink());
+                qrCodeVo.setQrCodeUrl("data:image/png;base64," + insAreaCompany.getPaymentLink());
             } else {
                 modelAndView.setViewName("qrcode");
                 qrCodeVo.setQrCodeUrl(insAreaCompany.getPaymentLink());
@@ -193,11 +194,11 @@ public class QrCodeController {
             qrCodeVo.setSysEndDate(insAreaCompany.getSyEndDate());
             qrCodeVo.setSyStartDate(insAreaCompany.getSyStartDate());
             qrCodeVo.setSysEndDate(insAreaCompany.getSyEndDate());
-            modelAndView.addObject("data",qrCodeVo);
+            modelAndView.addObject("data", qrCodeVo);
             return modelAndView;
-        } else if(UserConstants.CONFIG_TYPE_0.equals(configType)){
+        } else if (UserConstants.CONFIG_TYPE_0.equals(configType)) {
             return "redirect:" + insOrderQrCode.getJumpUrl();
-        }else{
+        } else {
             //重定向到错误页面中
             ModelAndView modelAndView = new ModelAndView("qrcode_error");
             return modelAndView;

+ 11 - 9
src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml

@@ -12,19 +12,20 @@
 
     <select id="queryOrderCount" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyVO">
         select a.id,
-               a.username,
-               a.policynum as ordernum,
-               a.sumpremium as sumpremium,
-               b.policynum as bjpolicynum,
-               b.sumpremium as bjsumpremium,
-               c.policynum as policynum
-
-
+        a.username,
+        a.mobile,
+        a.policynum as ordernum,
+        a.sumpremium as sumpremium,
+        b.policynum as bjpolicynum,
+        b.sumpremium as bjsumpremium,
+        c.policynum as policynum,
+        c.policynum / a.policynum as averagePremium
         from (
 
         SELECT
         su.id,
         su.NAME AS username,
+        su.mobile as mobile,
         COALESCE ( count( iac.id ), 0 ) AS policynum,
         COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
         FROM
@@ -256,7 +257,8 @@
                a.sumpremium as bjsumpremium,
                b.policynum as ordernum,
                b.sumpremium as sumpremium,
-               c.policynum as policynum
+               c.policynum as policynum,
+               (select logo from esm_ins_company where id=a.companyId) as logo
         from (
                  SELECT
                      iac.company_id AS companyId,