Просмотр исходного кода

1.钱包渠道过滤离职
2.业务数据添加合计出单合计

wuhp 1 год назад
Родитель
Сommit
f9c92b1c4e

+ 24 - 0
src/main/java/com/ydtech/modules/admin/controller/personnelStatistics/PersonnelStatisticsController.java

@@ -77,6 +77,30 @@ public class PersonnelStatisticsController {
         return result;
     }
 
+    /**
+     * @version
+     * @author: whp
+     * @Date: 2024/8/07
+     * @Description: 人员统计-前线人员-代理人统计
+     */
+    @PostMapping("getIssueNumber")
+    @ApiOperation(value = "人员统计-前线人员-代理人统计")
+    public HttpResult<HashMap<String,Integer>> getIssueNumber(@RequestBody QxFrontlineAgentVo qxFrontlineAgentVo, HttpServletRequest httpServerRequest) {
+        KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+        KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+        if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+            if("1".equals(kztGetDeptUtilsDto.getType())){
+                qxFrontlineAgentVo.setDeptIds(kztGetDeptUtilsDto.getIds());
+            } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                qxFrontlineAgentVo.setUserIds(kztGetDeptUtilsDto.getIds());
+            }
+        }
+        HttpResult<HashMap<String,Integer>> result = userReportService.getIssueNumber(qxFrontlineAgentVo);
+        return result;
+    }
+
+
+
 
     /**
      * @description:   人员统计-前线人员-代理人统计-导出

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/UserReportService.java

@@ -114,6 +114,13 @@ public interface UserReportService {
      **/
     HttpResult agentExcel(QxFrontlineAgentVo qxFrontlineAgentVo);
 
+    /**
+     *
+     * @param qxFrontlineAgentVo
+     * @return  返回出单人数  不出单人数
+     */
+    HttpResult<HashMap<String, Integer>> getIssueNumber(QxFrontlineAgentVo qxFrontlineAgentVo);
+
 }
 
 

+ 41 - 2
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -271,8 +271,8 @@ public class UserReportServiceImpl implements UserReportService {
                 }
                 qxFrontlineAgentVo.setUserId(dto.getUserId());
                 //预期净利润
-                BigDecimal ExpectNetProfit = insAreaCompanyService.getExpectNetProfit(qxFrontlineAgentVo);
-                dto.setEstimatedProfit(ExpectNetProfit);
+//                BigDecimal ExpectNetProfit = insAreaCompanyService.getExpectNetProfit(qxFrontlineAgentVo);
+//                dto.setEstimatedProfit(ExpectNetProfit);
 
             }
             resultPage.setContent(qxFrontlineAgentDtos);
@@ -286,6 +286,41 @@ public class UserReportServiceImpl implements UserReportService {
         }
     }
 
+    @Override
+    public HttpResult<HashMap<String, Integer>> getIssueNumber(QxFrontlineAgentVo qxFrontlineAgentVo) {
+
+        try {
+            HashMap<String, Integer> resultMap = new HashMap<>();
+            HashMap<String, String> map = getDateMapByType(qxFrontlineAgentVo.getDays(), qxFrontlineAgentVo.getCreatetimeStart(), qxFrontlineAgentVo.getCreatetimeEnd());
+            qxFrontlineAgentVo.setCreatetimeStart(map.get("startDate"));
+            qxFrontlineAgentVo.setCreatetimeEnd(map.get("endDate"));
+            List<QxFrontlineAgentDto> getQxFrontlineAgentList = sysUserMapper.getQxFrontlineAgentList(qxFrontlineAgentVo);
+            if (qxFrontlineAgentVo.getManagementSource().equals("1")) {// 渠道
+                this.channelPerson(getQxFrontlineAgentList, qxFrontlineAgentVo);
+            } else if (qxFrontlineAgentVo.getManagementSource().equals("2")) {// 代理人
+                this.agentPerson(getQxFrontlineAgentList, qxFrontlineAgentVo);
+            } else if (qxFrontlineAgentVo.getManagementSource().equals("3")) { //电销
+                this.electricPerson(getQxFrontlineAgentList,qxFrontlineAgentVo);
+            }
+            Integer issueNumber = getQxFrontlineAgentList.stream()
+                    .filter(agent -> new BigDecimal(agent.getTotalPremium()).compareTo(BigDecimal.ZERO) > 0)
+                    .collect(Collectors.toList()).size();   //出单人数
+            Integer notIssueNumber = getQxFrontlineAgentList.stream()
+                    .filter(agent -> new BigDecimal(agent.getTotalPremium()).compareTo(BigDecimal.ZERO) == 0)
+                    .collect(Collectors.toList()).size();
+            Integer allNumber = getQxFrontlineAgentList.size();
+
+            resultMap.put("issueNumber",issueNumber);
+            resultMap.put("notIssueNumber",notIssueNumber);
+            resultMap.put("allNumber",allNumber);
+            return HttpResult.ok(resultMap);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return HttpResult.error("查询异常");
+        }
+
+    }
+
     @Override
     public HttpResult agentExcel(QxFrontlineAgentVo qxFrontlineAgentVo) {
 //        QxFrontlineAgentExcel
@@ -359,6 +394,9 @@ public class UserReportServiceImpl implements UserReportService {
         String fileName = EasyExcelUtils.downExcel(uploadPath, qxFrontlineAgentVo.getManagementSource() .equals("1") ? "人员渠道导出":"人员代理人导出", QxFrontlineAgentExcel.class, resultList);
         return HttpResult.ok("", uploadUrl + "excel/" + fileName);
     }
+
+
+
     /**
      *  @version
      *  @author: hxl
@@ -451,6 +489,7 @@ public class UserReportServiceImpl implements UserReportService {
                 QxFrontlineAgentDto taskStatisticsDto = insAreaCompanyMapper.getOrderManpowerNew(qxFrontlineAgentDto);
                 item.setAveragePremium(taskStatisticsDto.getAveragePremium());
                 item.setTotalPremium(taskStatisticsDto.getTotalPremium());
+
             }else {
                 item.setAveragePremium("0");
                 item.setTotalPremium("0");

+ 12 - 0
src/main/resources/mapper/modules/admin/DeptBalanceMapper.xml

@@ -124,12 +124,24 @@
         left join sys_dept sd on sd.id=su.dept_id
         LEFT JOIN  ins_upload_files   inf on  su.head_sculpture  =inf.id
         LEFT JOIN  sys_user_info suif  on suif.id =su.id
+        LEFT JOIN sys_user_role sur ON sur.user_id = su.id
         <where>
             1=1
             and su.id  LIKE '%M%'
+            and su.status ='1'
             <if test="vo.managementSource !=null  and  vo.managementSource !=''">
               and  sd.management_source =#{vo.managementSource}
             </if>
+            <choose>
+                <when  test='vo.managementSource == "2"'>
+                    and (sur.role_id = 20  or  sur.role_id = 21)
+                </when>
+                <when  test='vo.managementSource == "1"'>
+                    and (sur.role_id = 19  or  sur.role_id = 21)
+                </when>
+                <otherwise>
+                </otherwise>
+            </choose>
             <if test="vo.deptId !=null  and  vo.deptId !=''">
                 and sd.id like  concat('%',#{vo.deptId},'%')
             </if>