ソースを参照

1.控制台时间条件

wuhp 2 年 前
コミット
6bcbeed6b7

+ 14 - 2
src/main/java/com/ydtech/modules/admin/model/dto/QxFrontlineAgentDto.java

@@ -79,10 +79,10 @@ public class QxFrontlineAgentDto implements Serializable {
     private List<String>  ids;
 
 
-    @ApiModelProperty(value = "开始时间")
+    @ApiModelProperty(value = "结束时间")
     private String createtimeEnd;
 
-    @ApiModelProperty(value = "结束时间")
+    @ApiModelProperty(value = "开始时间")
     private String createtimeStart;
 
     /***
@@ -90,5 +90,17 @@ public class QxFrontlineAgentDto implements Serializable {
      */
     private String roleId;
 
+    @ApiModelProperty(value = "已认证")
+    private String isFactorVerify;
+
+    @ApiModelProperty(value = "未认证")
+    private String isNotFactorVerify;
+
+    @ApiModelProperty(value = "时间筛选开始")
+    private String beginDate;
+
+    @ApiModelProperty(value = "时间筛选结束")
+    private String endDate;
+
 }
 

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/report/profitAnalysis/ProfitAnalysisQueryDto.java

@@ -31,4 +31,7 @@ public class ProfitAnalysisQueryDto {
     @ApiModelProperty("结束时间不用赋值")
     private  String endDate;
 
+    @ApiModelProperty("时间天数")
+    private  String days;
+
 }

+ 5 - 12
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -761,11 +761,8 @@ public class UserReportServiceImpl implements UserReportService {
     @Override
     public HttpResult<List<QxFrontlineAgentDto>> queryChannelDetails(QxFrontlineAgentVo qxFrontlineAgentVo) {
         List<QxFrontlineAgentDto> resultList = new ArrayList<>();
+        HashMap<String, String> map = getDateMapByType(qxFrontlineAgentVo.getDays(), qxFrontlineAgentVo.getCreatetimeStart(), qxFrontlineAgentVo.getCreatetimeEnd());
         String userId = qxFrontlineAgentVo.getUserId();
-//        SysUser sysUserItem = sysUserMapper.getByUserId(userId);
-//        if(sysUserItem.getManagementSource().equals("2")){  //2为代理人
-//            return HttpResult.error("该用户不是渠道");
-//        }
 //      判断是否是团队长
         QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id", userId);
@@ -775,6 +772,9 @@ public class UserReportServiceImpl implements UserReportService {
             wrapper.eq("operatorCode", userId);
             wrapper.eq("status", "1");
             List<SysUser> sysUsers = sysUserMapper.selectList(wrapper);
+            SysUser sysUser = new SysUser();
+            sysUser.setId(userId);
+            sysUsers.add(sysUser);
             if (!sysUsers.isEmpty()) {
                 for (SysUser  itemUser  :sysUsers){
                     QxFrontlineAgentDto qxFrontlineAgentDto = new QxFrontlineAgentDto();
@@ -782,18 +782,11 @@ public class UserReportServiceImpl implements UserReportService {
                     qxFrontlineAgentDto.setCreatetimeEnd(qxFrontlineAgentVo.getCreatetimeEnd());
                     qxFrontlineAgentDto.setCreatetimeStart(qxFrontlineAgentVo.getCreatetimeStart());
                     qxFrontlineAgentDto.getIds().add(itemUser.getId());
-                    QxFrontlineAgentDto taskStatisticsDto = insAreaCompanyMapper.getOrderManpowerNew(qxFrontlineAgentDto);
+                    QxFrontlineAgentDto taskStatisticsDto = insAreaCompanyMapper.getChannelOrderManpowerNew(qxFrontlineAgentDto);
                     resultList.add(taskStatisticsDto);
                 }
             }
         }
-        QxFrontlineAgentDto qxFrontlineAgentDto = new QxFrontlineAgentDto();
-        qxFrontlineAgentDto.setCreatetimeEnd(qxFrontlineAgentVo.getCreatetimeEnd());
-        qxFrontlineAgentDto.setCreatetimeStart(qxFrontlineAgentVo.getCreatetimeStart());
-        qxFrontlineAgentDto.setIds(new ArrayList<>());
-        qxFrontlineAgentDto.getIds().add(userId);
-        QxFrontlineAgentDto taskStatisticsDto = insAreaCompanyMapper.getOrderManpowerNew(qxFrontlineAgentDto);
-        resultList.add(taskStatisticsDto);
         return HttpResult.ok(resultList);
     }
 

+ 1 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -239,6 +239,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
 
     QxFrontlineAgentDto getOrderManpowerNew( @Param("vo") QxFrontlineAgentDto qxFrontlineAgentDto);
 
+    QxFrontlineAgentDto getChannelOrderManpowerNew(@Param("vo") QxFrontlineAgentDto qxFrontlineAgentDto);
 
 }
 

+ 3 - 1
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1366,7 +1366,9 @@
             <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
                 and su.mobile   =#{vo.phoneNumber}
             </if>
-
+            <if test="vo.createTimeStart != null and vo.createTimeEnd != null">
+                and su.create_time BETWEEN #{vo.createTimeStart} AND #{vo.createTimeEnd}
+            </if>
         </where>
     </select>
 

+ 60 - 14
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -871,7 +871,7 @@
                 agree.partner_companies_id = #{vo.parterCompanyId}
             </if>
             <if test="vo.beginDate  != null  and  vo.beginDate!=''  and vo.endDate  != null  and  vo.endDate!=''">
-                AND  iac.signing_time  BETWEEN #{vo.beginDate} AND #{vo.endDate}
+                AND  iac.createtime  BETWEEN #{vo.beginDate} AND #{vo.endDate}
             </if>
             <if test="vo.managementSource  != null  and  vo.managementSource!=''">
                 AND  sd.management_source  =#{vo.managementSource}
@@ -953,10 +953,10 @@
                 AND   DATE_FORMAT( io.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
             </if>
             <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
-                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
+                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
             </if>
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.signing_time >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
+                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
             </if>
 
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
@@ -1072,11 +1072,11 @@
                 AND   DATE_FORMAT( io.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
             </if>
             <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
-                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
+                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
             </if>
 
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.signing_time >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
+                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
             </if>
         </where>
         GROUP BY
@@ -1116,11 +1116,11 @@
                 AND   DATE_FORMAT( io.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
             </if>
             <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
-                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
+                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
             </if>
 
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.signing_time >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
+                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
             </if>
         </where>
         GROUP BY
@@ -1169,11 +1169,11 @@
             </if>
 
             <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
-                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
+                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
             </if>
 
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.signing_time >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
+                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
             </if>
 
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
@@ -1215,11 +1215,11 @@
             </if>
 
             <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
-                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
+                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
             </if>
 
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.signing_time >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
+                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
             </if>
 
             <choose>
@@ -1299,12 +1299,58 @@
     </select>
 
 
+    <select id="getChannelOrderManpowerNew" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
+        SELECT
+        a.userId as "userId",
+        a.orderNumber as "orderNumber",
+        a.underwritingCount as "underwritingCount",
+        a.qutationInsureCount as "qutationInsureCount",
+        IFNULL(a.jqpremium,0) + IFNULL(a.sypremium,0) + IFNULL(a.jypremium,0) as "totalPremium",
+        a.isFactorVerify as "isFactorVerify",
+        a.isNotFactorVerify as "isNotFactorVerify"
+        FROM
+        (
+        SELECT
+        io.userid as "userId",
+        count( iac.orderno ) AS "orderNumber",
+        sum(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium END  ) AS jqpremium,
+        sum(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium END )  AS sypremium,
+        sum(CASE WHEN iac.orderstatus = 3 THEN iac.jypremium END )  AS jypremium,
+        COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
+        COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
+        COUNT( CASE WHEN su.factor_verify = 1 THEN 1 END ) AS isFactorVerify,
+        COUNT( CASE WHEN su.factor_verify = 0 THEN 1 END ) AS isNotFactorVerify
+        FROM
+        `ins_area_company` iac
+        LEFT JOIN ins_orders io ON io.orderno = iac.orderno
+        left join sys_user su  on su.id=io.userid
+        <where>
+            <if test="vo.ids  != null  and  vo.ids.size()>0 ">
+                AND io.userid IN
+                <foreach item="item"  collection="vo.ids" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+                AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
+            </if>
+        <if test="vo.beginDate  != null  and  vo.beginDate!=''  and vo.endDate  != null  and  vo.endDate!=''">
+                AND iac.signing_time BETWEEN #{vo.beginDate} AND #{vo.endDate}
+            </if>
+        </where>
+        GROUP BY
+        io.userid
+        ) a
+        left join sys_user su  on su.id=a.userId
+    </select>
+
+
     <select id="NumberQuotations"  resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
         SELECT
         count(iac.id) as "orderNumber",
         COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
         COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
-        sum( CASE WHEN iac.orderstatus = 3 THEN iac.sumpremium END ) AS totalPremium
+        sum( CASE WHEN iac.orderstatus = 3 THEN IFNULL(iac.jqpremium, 0) + IFNULL(iac.sypremium, 0) + IFNULL(iac.jypremium, 0) END ) AS totalPremium
         FROM
         ins_area_company iac
         left  join   ins_orders  io  on  io.orderno  = iac.orderno
@@ -1410,10 +1456,10 @@
             and agree.partner_companies_id = #{vo.parterCompanyId}
         </if>
         <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
-            AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeStart}
+            AND iac.createtime BETWEEN #{vo.createtimeStart} AND #{vo.createtimeStart}
         </if>
         <if test="vo.days !=null  and vo.days !='' ">
-            and iac.signing_time >= DATE_SUB(NOW(), INTERVAL #{vo.days} DAY)
+            and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{vo.days} DAY)
         </if>
         <if test="vo.provinceId != null and vo.provinceId != ''">
             and io.deptid like "${vo.provinceId}%"