Explorar el Código

数据报表:人员审核功能开发

lipf hace 1 mes
padre
commit
72d52d72ea

+ 3 - 1
consoleStatistics/src/main/java/com/jzg/console/client/FeeAuditClient.java

@@ -10,6 +10,8 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * 调用 quotation-summary 的订单审核接口 Feign 客户端
  */
@@ -30,6 +32,6 @@ public interface FeeAuditClient {
      * @date 2026/7/24 14:28
      */
     @PostMapping("/feeAudit/queryAuditSummary")
-    HttpResult<Page<FeeAuditSummaryVO>> queryAuditSummary(@RequestBody FeeAuditSummaryParam param);
+    HttpResult<List<FeeAuditSummaryVO>> queryAuditSummary(@RequestBody FeeAuditSummaryParam param);
 
 }

+ 87 - 32
consoleStatistics/src/main/java/com/jzg/console/service/impl/ReportPersonCheckDataServiceImpl.java

@@ -1,32 +1,52 @@
 package com.jzg.console.service.impl;
 
 
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO;
 import com.jzg.commons.entity.report.dto.*;
 import com.jzg.commons.entity.report.vo.ReportSearchCommonVo;
+import com.jzg.commons.entity.user.vo.UserInfoWithPhone;
+import com.jzg.console.client.FeeAuditClient;
+import com.jzg.console.client.OrganizationClient;
 import com.jzg.console.service.ReportPersonCheckDataService;
-import com.jzg.console.service.ReportReceivableDataService;
-import io.swagger.v3.oas.annotations.media.Schema;
-import org.springframework.format.annotation.DateTimeFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
- *  @version
- *  @author: hxl
- *  @Date: 2025/9/22 16:45
- *  @Description:  财务数据-人员审核
+ * 财务数据-人员审核
+ *
+ * @author hxl
+ * @Date 2025/9/22 16:45
  */
 @Service
 public class ReportPersonCheckDataServiceImpl extends ReportBaseServiceImpl implements ReportPersonCheckDataService {
+
+    private static final Logger log = LoggerFactory.getLogger(ReportPersonCheckDataServiceImpl.class);
+
+    @Autowired
+    private BaseController baseController;
+
+    @Autowired
+    private OrganizationClient organizationClient;
+
+    @Autowired
+    private FeeAuditClient feeAuditClient;
+
+
     /**
      *  @version
      *  @author: hxl
@@ -35,11 +55,60 @@ public class ReportPersonCheckDataServiceImpl extends ReportBaseServiceImpl impl
      */
     @Override
     public IPage<?> getPageListByParams(ReportSearchCommonVo reportSearchCommonVo) {
-        Page<ReportPersonCheckDataDto> page = new Page<>(reportSearchCommonVo.getPageNo(), reportSearchCommonVo.getPageSize());
+        String systemCode = baseController.getSystemCode();
+        log.info("getPageListByParams. reportSearchCommonVo=[{}].systemCode=[{}]", JSONUtil.toJsonStr(reportSearchCommonVo), systemCode);
+
+        HttpResult<Map<String, UserInfoWithPhone>> mapHttpResult = organizationClient.queryUserInfo(systemCode);
+        Map<String, UserInfoWithPhone> userInfoMap = mapHttpResult.getData();
+
+        FeeAuditSummaryParam feeAuditSummaryParam = new FeeAuditSummaryParam();
+
+        feeAuditSummaryParam.setSystemCode(systemCode);
+        feeAuditSummaryParam.setSignTimeStart(reportSearchCommonVo.getSignTimeBegin());
+        feeAuditSummaryParam.setSignTimeEnd(reportSearchCommonVo.getSignTimeEnd());
+        feeAuditSummaryParam.setPages(reportSearchCommonVo.getPageNo());
+        feeAuditSummaryParam.setSize(reportSearchCommonVo.getPageSize());
+        HttpResult<List<FeeAuditSummaryVO>> pageHttpResult = feeAuditClient.queryAuditSummary(feeAuditSummaryParam);
+        List<FeeAuditSummaryVO> records = pageHttpResult.getData();
+        Map<String, List<FeeAuditSummaryVO>> collect = records.stream().collect(Collectors.groupingBy(FeeAuditSummaryVO::getReceiveUser));
+        List<ReportPersonCheckDataDto> list = new ArrayList<>();
+        for (String s : collect.keySet()) {
+            List<FeeAuditSummaryVO> feeAuditSummaryVOS = collect.get(s);
+            UserInfoWithPhone userInfoWithPhone = userInfoMap.get(s);
+            String deptname = null;
+            String name = null;
+            if(userInfoWithPhone != null){
+                deptname = userInfoWithPhone.getDeptName();
+                name = userInfoWithPhone.getName();
+            }
+            Long checkOrderNum = 0L;
+            Long pendingReviewOrderNum = 0L;
+            Long avgReviewDuration = 0L;
+            Long rejectOrderNum = 0L;
+            Long updateOrderNum = 0L;
+            if(CollUtil.isNotEmpty(feeAuditSummaryVOS)){
+                checkOrderNum = feeAuditSummaryVOS.stream().filter(action-> "2".equals(action.getAuditStatus()) || "1".equals(action.getAuditStatus())).map(FeeAuditSummaryVO::getNum).reduce(Long::sum).orElse(0L);
+                if(checkOrderNum != 0){
+                    avgReviewDuration = feeAuditSummaryVOS.stream().filter(action-> "2".equals(action.getAuditStatus()) || "1".equals(action.getAuditStatus())).map(FeeAuditSummaryVO::getCostTime).reduce(Long::sum).orElse(0L);
+                }
+                pendingReviewOrderNum = feeAuditSummaryVOS.stream().filter(action-> "0".equals(action.getAuditStatus()) && !"0".equals(action.getProblemIdentify())).map(FeeAuditSummaryVO::getNum).reduce(Long::sum).orElse(0L);
+                rejectOrderNum = feeAuditSummaryVOS.stream().filter(action-> "2".equals(action.getAuditStatus())).map(FeeAuditSummaryVO::getNum).reduce(Long::sum).orElse(0L);
+                updateOrderNum = feeAuditSummaryVOS.stream().map(FeeAuditSummaryVO::getCalFee).reduce(Long::sum).orElse(0L);
+            }
+            ReportPersonCheckDataDto dto = ReportPersonCheckDataDto.builder()
+                    .salesmanName(name).salesmanPhone(s).deptName(deptname)
+                    .checkOrderNum(checkOrderNum).pendingReviewOrderNum(pendingReviewOrderNum).avgReviewDuration(avgReviewDuration)
+                    .rejectOrderNum(rejectOrderNum).updateOrderNum(updateOrderNum)
+                    .build();
+            list.add(dto);
+
+        }
+
+        log.info("查询出[{}]个业务员的审核记录",CollUtil.size(list));
+        //Page<ReportPersonCheckDataDto> page = new Page<>(reportSearchCommonVo.getPageNo(), reportSearchCommonVo.getPageSize());
         IPage<ReportPersonCheckDataDto> pageList = new Page<ReportPersonCheckDataDto>();
-        List<ReportPersonCheckDataDto> list = getList();
         pageList.setRecords(list);
-        pageList.setTotal(1l);
+        pageList.setTotal(CollUtil.size(collect));
         pageList.setCurrent(reportSearchCommonVo.getPageNo());
         pageList.setPages(reportSearchCommonVo.getPageNo());
         pageList.setPages(reportSearchCommonVo.getPageSize());
@@ -53,7 +122,8 @@ public class ReportPersonCheckDataServiceImpl extends ReportBaseServiceImpl impl
      */
     @Override
     public void downloadListByParams(ReportSearchCommonVo reportSearchCommonVo) {
-        List<ReportPersonCheckDataDto> list = getList();
+        IPage<?> pageListByParams = getPageListByParams(reportSearchCommonVo);
+        List<ReportPersonCheckDataDto> list = (List<ReportPersonCheckDataDto>)pageListByParams.getRecords();
         upLoadFile(reportSearchCommonVo, ReportPersonCheckDataDto.class,list,"财务数据-人员审核-列表导出-"+ reportSearchCommonVo.getUserId());
     }
     /**
@@ -64,6 +134,8 @@ public class ReportPersonCheckDataServiceImpl extends ReportBaseServiceImpl impl
      */
     @Override
     public IPage<?> getPageDetailListByParams(ReportSearchCommonVo reportSearchCommonVo) {
+        log.info("财务数据-人员审核-明细查询:reportSearchCommonVo=[{}]", JSONUtil.toJsonStr(reportSearchCommonVo));
+
         Page<ReportPersonCheckDataDetailDto> page = new Page<>(reportSearchCommonVo.getPageNo(), reportSearchCommonVo.getPageSize());
         IPage<ReportPersonCheckDataDetailDto> detailPageList = new Page<ReportPersonCheckDataDetailDto>();
         List<ReportPersonCheckDataDetailDto> detailList = getDetailList();
@@ -86,23 +158,6 @@ public class ReportPersonCheckDataServiceImpl extends ReportBaseServiceImpl impl
         upLoadFile(reportSearchCommonVo, ReportPersonCheckDataDetailDto.class,detailList,"财务数据-人员审核-明细导出-"+ reportSearchCommonVo.getUserId());
     }
 
-    /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2025/9/24 10:42
-     *  @Description:  模拟数据
-     */
-    public List<ReportPersonCheckDataDto>  getList(){
-        List<ReportPersonCheckDataDto> list =new ArrayList<>();
-        ReportPersonCheckDataDto reportPersonCheckDataDto = ReportPersonCheckDataDto.builder()
-                .salesmanName("张三").salesmanPhone("18811459985").deptName("众安财险科技营销部")
-                .checkOrderNum(100L).pendingReviewOrderNum(100L).avgReviewDuration(100L)
-                .rejectOrderNum(100L).updateOrderNum(100L)
-                .build();
-        list.add(reportPersonCheckDataDto);
-        return list;
-    }
-
     /**
      *  @version
      *  @author: hxl

+ 2 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -230,9 +230,9 @@ public class InsFeeAuditController {
      * @date 2026/7/24 14:28
      */
     @PostMapping("/queryAuditSummary")
-    HttpResult<Page<FeeAuditSummaryVO>> queryAuditSummary(@RequestBody FeeAuditSummaryParam param){
+    HttpResult<List<FeeAuditSummaryVO>> queryAuditSummary(@RequestBody FeeAuditSummaryParam param){
         log.info("查询费用审核统计数据。 FeeAuditSummaryParam=[{}]",JSONUtil.toJsonStr(param));
-        Page<FeeAuditSummaryVO>  res = insFeeAuditService.queryAuditSummary(param);
+        List<FeeAuditSummaryVO>  res = insFeeAuditService.queryAuditSummary(param);
         return HttpResult.ok(res);
     }
 }

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java

@@ -45,7 +45,7 @@ public interface InsFeeAuditMapper extends BaseMapper<InsFeeAudit> {
      * @author lipf
      * @date 2026/7/24 14:41
      */
-    Page<FeeAuditSummaryVO> queryAuditSummary(@Param("param") FeeAuditSummaryParam param);
+    List<FeeAuditSummaryVO> queryAuditSummary(@Param("param") FeeAuditSummaryParam param);
 }
 
 

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java

@@ -121,5 +121,5 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
      * @author lipf
      * @date 2026/7/24 14:33
      */
-    Page<FeeAuditSummaryVO> queryAuditSummary(FeeAuditSummaryParam param);
+    List<FeeAuditSummaryVO> queryAuditSummary(FeeAuditSummaryParam param);
 }

+ 2 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -1174,7 +1174,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
      * @date 2026/7/24 14:33
      */
     @Override
-    public Page<FeeAuditSummaryVO> queryAuditSummary(FeeAuditSummaryParam param) {
+    public List<FeeAuditSummaryVO> queryAuditSummary(FeeAuditSummaryParam param) {
         if(StrUtil.isNotEmpty(param.getSignTimeStart())){
             LocalDate start = LocalDate.parse(param.getSignTimeStart(), DateTimeFormatter.ISO_DATE);
             param.setSignTimeStartTime(start.atStartOfDay());
@@ -1185,7 +1185,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         }
         // 1. 创建 Page 对象,从 param 中获取分页信息
         // Page<FeeAuditSummaryVO> page = new Page<>(param.getPages(), param.getSize());
-        Page<FeeAuditSummaryVO> res = baseMapper.queryAuditSummary(param);
+        List<FeeAuditSummaryVO> res = baseMapper.queryAuditSummary(param);
         return res;
     }
 }

+ 1 - 1
tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml

@@ -320,7 +320,7 @@
         left join ins_orders io on
         ifa.order_no = io.id
         <where>
-            ifa.receive_user is not null
+            ifa.receive_user is not null and ifa.system_code = #{param.systemCode}
             <if test="param.signTimeStartTime != null">
                 and io.sign_time &gt;= #{param.signTimeStartTime}
             </if>