Przeglądaj źródła

1.控制台业务人员占比

wuhp 1 rok temu
rodzic
commit
25b208b608

+ 1 - 0
src/main/java/com/ydtech/modules/admin/controller/taskStatistics/TaskStatisticsController.java

@@ -273,6 +273,7 @@ public class TaskStatisticsController {
                     taskStatisticsVo.setDeptIds(kztGetDeptUtilsDto.getIds());
                 } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
                     taskStatisticsVo.setUserIds(kztGetDeptUtilsDto.getIds());
+                    taskStatisticsVo.setProportionUserIds(kztGetDeptUtilsDto.getIds());
                 }
             }
             BusinessAgentData result = taskStatisticsService.getBusinessAgentDataTotal(taskStatisticsVo);

+ 2 - 0
src/main/java/com/ydtech/modules/admin/model/vo/TaskStatisticsVo.java

@@ -118,6 +118,8 @@ public class TaskStatisticsVo implements Serializable {
     @ApiModelProperty(value = "总人数")
     private String totalNumber;
 
+    @ApiModelProperty(value = "用户ids")
+    private List<String> proportionUserIds;
 
 
 }

+ 8 - 7
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -373,7 +373,6 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
             }else if ("1".equals(taskStatisticsVo.getTreeType())){
                 taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
                 taskStatisticsVo.setTreeUserId(null);
-                taskStatisticsVo.setUserIds(null);
             }
         }
         PageVo<TaskStatisticsVo> pageVo = new PageVo<>();
@@ -544,7 +543,6 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
             }else if ("1".equals(taskStatisticsVo.getTreeType())){
                 taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
                 taskStatisticsVo.setTreeUserId(null);
-                taskStatisticsVo.setUserIds(null);
             }
         }
 
@@ -552,13 +550,16 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         BusinessAgentData result = this.taskStatisticsMapper.getBusinessAgentDataTotalAdd(taskStatisticsVo);
         Long  total = this.taskStatisticsMapper.getBusinessAgentDataTotal(taskStatisticsVo);
         result.setTotalNumber(total.toString());
+        BigDecimal sumPremium = result.getSumPremium();
         BusinessAgentData allsumPremium = this.taskStatisticsMapper.getAllsumPremium(taskStatisticsVo);
-        if (ObjectUtils.isNotEmpty(allsumPremium) && ObjectUtils.isNotEmpty(result)) {
-            BigDecimal sumPremium = allsumPremium.getSumPremium().compareTo(BigDecimal.ZERO) > 0 ? allsumPremium.getSumPremium() : BigDecimal.ZERO;
-            BigDecimal resultSumPremium = result.getSumPremium().compareTo(BigDecimal.ZERO) > 0 ? result.getSumPremium() : BigDecimal.ZERO;
-            if (!sumPremium.equals(BigDecimal.ZERO)) {
-                result.setSumPremiumProportion(resultSumPremium.divide(sumPremium, 2));
+        BigDecimal sumPremium1 = allsumPremium.getSumPremium();
+        if(ObjectUtils.isNotEmpty(sumPremium)){
+            if(sumPremium.compareTo(BigDecimal.ZERO) ==1){
+                BigDecimal multiply = sumPremium.divide(sumPremium1, 2, BigDecimal.ROUND_DOWN);
+                result.setSumPremiumProportion(multiply);
             }
+        }else {
+            result.setSumPremiumProportion(BigDecimal.ZERO);
         }
         return result;
     }

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

@@ -1763,6 +1763,9 @@
         left join sys_dept sd on sd.id =su.dept_id
         <where>
             su.leader_id is not null
+             <if test="leaderId !=null and  leaderId !=''">
+               and  su.leader_id =#{leaderId}
+             </if>
         </where>
     </select>
 

+ 11 - 16
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -131,8 +131,7 @@
                  left join sys_user su on io.userid =su.id
                  left join sys_dept sd on sd.id =su.dept_id
         <where>
-            iac.orderstatus = '3'
-            and io.orderstatus = '3'
+        iac.orderstatus = '3'
             <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
                 AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d') AND
                 DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
@@ -146,6 +145,9 @@
                 and su.name=#{vo.userName}
             </if>
 
+            <if test="vo.userId !=null  and vo.userId!=''">
+                and su.id=#{vo.userId}
+            </if>
 
             <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
                 and su.id in
@@ -154,23 +156,22 @@
                 </foreach>
             </if>
 
-            <if test="vo.userId !=null  and vo.userId!=''">
-                and su.id=#{vo.userId}
+            <if test="vo.deptId !=null  and vo.deptId!=''">
+                and io.deptid like concat('%',#{vo.deptId},'%')
             </if>
 
             <if test="vo.managementSource !=null  and vo.managementSource!=''">
                 and sd.management_source=#{vo.managementSource}
             </if>
-
             <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
-                AND io.deptid  in
+                AND io.deptid in
                 <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             </if>
 
             <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
-                AND io.userid  in
+                AND io.userid in
                 <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
@@ -188,6 +189,7 @@
                  left join sys_dept sd on sd.id =su.dept_id
         <where>
              1=1
+            and iac.orderstatus ='3'
             <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
                 AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d') AND
                 DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
@@ -201,9 +203,9 @@
                 and su.id=#{vo.userId}
             </if>
 
-            <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
+            <if test="vo.proportionUserIds  !=null  and vo.proportionUserIds!=''  and vo.proportionUserIds.size()>0">
                 and su.id in
-                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
+                <foreach collection="vo.proportionUserIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             </if>
@@ -217,13 +219,6 @@
                     #{item}
                 </foreach>
             </if>
-
-            <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
-                AND io.userid  in
-                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
-            </if>
         </where>
     </select>