Browse Source

1.新增评估部人员效率表查询导出
2.新增效率详情列表查询与导出

GouGengquan 11 months ago
parent
commit
84f15e3d3b

+ 45 - 7
biz-base/src/main/java/com/dayou/controller/AssetsStatisticalStatementController.java

@@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.common.RestResponse;
 import com.dayou.dto.AssetsStatisticalSelectDTO;
 import com.dayou.service.IAssetsStatisticalStatementService;
-import com.dayou.vo.AssetsEvaluateDepEfficiencyVO;
-import com.dayou.vo.AssetsLedgerVO;
-import com.dayou.vo.AssetsPerformanceDeductionDetailVO;
-import com.dayou.vo.AssetsPerformanceDeductionVO;
+import com.dayou.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -121,7 +118,7 @@ public class AssetsStatisticalStatementController extends BaseController{
      * @return List<AssetsEvaluateDepEfficiencyVO>
      */
     @GetMapping("/evaluate/dep/getEfficiencyVO")
-    public RestResponse<List<AssetsEvaluateDepEfficiencyVO>> getAssetsEvaluateDepEfficiencyVO(AssetsStatisticalSelectDTO dto) {
+    public RestResponse<List<AssetsEvaluateEfficiencyVO>> getAssetsEvaluateDepEfficiencyVO(AssetsStatisticalSelectDTO dto) {
         return RestResponse.data(assetsStatisticalStatementService.getAssetsEvaluateDepEfficiencyVO(dto));
     }
 
@@ -131,8 +128,49 @@ public class AssetsStatisticalStatementController extends BaseController{
      */
     @GetMapping("/evaluate/dep/getEfficiencyVO/export")
     public void getAssetsEvaluateDepEfficiencyVOExport(AssetsStatisticalSelectDTO dto, HttpServletResponse response) throws IOException {
-        List<AssetsEvaluateDepEfficiencyVO> result = assetsStatisticalStatementService.getAssetsEvaluateDepEfficiencyVO(dto);
-        exportPlus(response, "评估部效率值表", result, AssetsEvaluateDepEfficiencyVO.class);
+        List<AssetsEvaluateEfficiencyVO> result = assetsStatisticalStatementService.getAssetsEvaluateDepEfficiencyVO(dto);
+        exportPlus(response, "评估部效率值表", result, AssetsEvaluateEfficiencyVO.class);
+    }
+
+    /**
+     * 评估人员效率查询
+     * @param dto 查询dto
+     * @return List<AssetsEvaluateDepEfficiencyVO>
+     */
+    @GetMapping("/evaluate/per/getEfficiencyVO")
+    public RestResponse<List<AssetsEvaluateEfficiencyVO>> getAssetsEvaluatePerEfficiencyVO(AssetsStatisticalSelectDTO dto) {
+        return RestResponse.data(assetsStatisticalStatementService.getAssetsEvaluatePerEfficiencyVO(dto));
+    }
+
+    /**
+     * 评估人员效率导出
+     * @param dto 查询dto
+     */
+    @GetMapping("/evaluate/per/getEfficiencyVO/export")
+    public void getAssetsEvaluatePerEfficiencyVOExport(AssetsStatisticalSelectDTO dto, HttpServletResponse response) throws IOException {
+        List<AssetsEvaluateEfficiencyVO> result = assetsStatisticalStatementService.getAssetsEvaluatePerEfficiencyVO(dto);
+        exportPlus(response, "评估人员效率值表", result, AssetsEvaluateEfficiencyVO.class);
+    }
+
+    /**
+     * 效率详情列表查询
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsEvaluateEfficiencyDetailVO>
+     */
+    @GetMapping("/evaluate/getAssetsEvaEffDetailVO")
+    public RestResponse<Page<AssetsEvaluateEfficiencyDetailVO>> getAssetsEvaEffDetailVO(Page page, AssetsStatisticalSelectDTO dto) {
+        return RestResponse.data(assetsStatisticalStatementService.getAssetsEvaEffDetailVO(page, dto));
+    }
+
+    /**
+     * 效率详情列表导出
+     * @param dto 查询dto
+     */
+    @GetMapping("/evaluate/getAssetsEvaEffDetailVO/export")
+    public void assetsEvaEffDetailVOExport(AssetsStatisticalSelectDTO dto, HttpServletResponse response) throws IOException {
+        List<AssetsEvaluateEfficiencyDetailVO> result = assetsStatisticalStatementService.assetsEvaEffDetailVOExport(dto);
+        exportPlus(response, "资产订单列表", result, AssetsEvaluateEfficiencyDetailVO.class);
     }
 
 }

+ 11 - 38
biz-base/src/test/java/TestAssets.java

@@ -1,38 +1,11 @@
-//import java.lang.reflect.Field;
-//
-//public class TestAssets {
-//
-//    public static Object getFieldValueByName(Object obj, String fieldName) {
-//        Object fieldValue = null;
-//        try {
-//            // 获取对象的Class对象
-//            Class<?> clazz = obj.getClass();
-//            // 通过反射获取指定名称的字段
-//            Field field = clazz.getDeclaredField(fieldName);
-//            // 设置字段可访问,以便能够访问私有字段
-//            field.setAccessible(true);
-//            // 获取字段值
-//            fieldValue = field.get(obj);
-//        } catch (NoSuchFieldException e) {
-//            System.out.println("字段 " + fieldName + " 在类 " + obj.getClass().getName() + " 中不存在.");
-//        } catch (IllegalAccessException e) {
-//            System.out.println("无法访问字段 " + fieldName + " 的值.");
-//        }
-//        return fieldValue;
-//    }
-//
-//
-//
-//    public static void main(String[] args) {
-//        Object person = new Object() {
-//            private String name = "John Doe";
-//            private int age = 30;
-//        };
-//
-//        Object nameValue = getFieldValueByName(person, "name");
-//        Object ageValue = getFieldValueByName(person, "age");
-//
-//        System.out.println("name = " + nameValue);
-//        System.out.println("age = " + ageValue);
-//    }
-//}
+import java.lang.reflect.Field;
+
+public class TestAssets {
+
+
+
+
+    public static void main(String[] args) {
+        byte a = 5;
+    }
+}

+ 25 - 5
dao/src/main/java/com/dayou/mapper/AssetsStatisticalStatementMapper.java

@@ -2,10 +2,7 @@ package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.AssetsStatisticalSelectDTO;
-import com.dayou.vo.AssetsEvaluateDepEfficiencyVO;
-import com.dayou.vo.AssetsLedgerVO;
-import com.dayou.vo.AssetsPerformanceDeductionDetailVO;
-import com.dayou.vo.AssetsPerformanceDeductionVO;
+import com.dayou.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -74,5 +71,28 @@ public interface AssetsStatisticalStatementMapper {
      * @param dto 查询dto
      * @return List<AssetsEvaluateDepEfficiencyVO>
      */
-    List<AssetsEvaluateDepEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);
+    List<AssetsEvaluateEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);
+
+    /**
+     * 评估人员效率查询
+     * @param dto 查询dto
+     * @return List<AssetsEvaluateDepEfficiencyVO>
+     */
+    List<AssetsEvaluateEfficiencyVO> getAssetsEvaluatePerEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);
+
+    /**
+     * 效率详情列表查询
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsEvaluateEfficiencyDetailVO>
+     */
+    Page<AssetsEvaluateEfficiencyDetailVO> getAssetsEvaEffDetailVO(@Param("page") Page page, @Param("dto") AssetsStatisticalSelectDTO dto);
+
+    /**
+     * 效率详情列表导出
+     * @param dto 查询dto
+     * @return List<AssetsEvaluateEfficiencyDetailVO>
+     */
+    List<AssetsEvaluateEfficiencyDetailVO> assetsEvaEffDetailVOExport(@Param("dto") AssetsStatisticalSelectDTO dto);
+
 }

File diff suppressed because it is too large
+ 139 - 7
dao/src/main/resources/mapper/AssetsStatisticalStatementMapper.xml


+ 5 - 0
domain/src/main/java/com/dayou/dto/AssetsStatisticalSelectDTO.java

@@ -60,4 +60,9 @@ public class AssetsStatisticalSelectDTO {
      */
     private String mistakeType;
 
+    /**
+     * 效率类型(接单:order、预评:statement、报告:report、应收款:should、实收款:real)
+     */
+    private String efficiencyType;
+
 }

+ 121 - 0
domain/src/main/java/com/dayou/vo/AssetsEvaluateEfficiencyDetailVO.java

@@ -0,0 +1,121 @@
+package com.dayou.vo;
+
+import com.dayou.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class AssetsEvaluateEfficiencyDetailVO {
+
+    private Integer id;
+
+    /**
+     * 项目编号
+     */
+    @Excel(name = "项目编号")
+    private String orderId;
+
+    /**
+     * 项目名称
+     */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /**
+     * 客户名称
+     */
+    @Excel(name = "客户名称")
+    private String customerName;
+
+    /**
+     * 业务来源(客户子级名称)
+     */
+    @Excel(name = "业务来源")
+    private String customerSubName;
+
+    /**
+     * 客户联系人名
+     */
+    @Excel(name = "客户联系人名")
+    private String linkmanName;
+
+    /**
+     * 委托人
+     */
+    @Excel(name = "委托人")
+    private String bailor;
+
+    /**
+     * 报告号
+     */
+    @Excel(name = "报告号")
+    private String reportNo;
+
+    /**
+     * 项目负责人名
+     */
+    @Excel(name = "项目负责人")
+    private String principalName;
+
+    /**
+     * 项目参与人
+     */
+    @Excel(name = "项目参与人")
+    private String members;
+
+    /**
+     * 客户经理名
+     */
+    @Excel(name = "客户经理名")
+    private String clientManagerName;
+
+    /**
+     * 评估金额(万元)(审核定价)
+     */
+    @Excel(name = "评估金额(万元)")
+    private BigDecimal checkValueSum;
+
+    /**
+     * 实勘时间
+     */
+    @Excel(name = "实勘时间")
+    private LocalDate reconnaissanceDate;
+
+    /**
+     * 出意见书时间
+     */
+    @Excel(name = "出意见书时间")
+    private LocalDate writeStatementDate;
+
+    /**
+     * 出报告时间
+     */
+    @Excel(name = "出报告时间")
+    private LocalDate writeReportDate;
+
+    /**
+     * 订单应收款(元)
+     */
+    @Excel(name = "订单应收款(元)")
+    private Double shouldAmount;
+
+    /**
+     * 订单实收款(元)
+     */
+    @Excel(name = "订单实收款(元)")
+    private Double realAmount;
+
+    /**
+     * 当前实例节点名称
+     */
+    @Excel(name = "当前实例节点名称")
+    private String currentNodeName;
+
+    /**
+     * 当前节点处理人
+     */
+    @Excel(name = "当前节点处理人")
+    private String handlerName;
+}

+ 21 - 3
domain/src/main/java/com/dayou/vo/AssetsEvaluateDepEfficiencyVO.java

@@ -4,13 +4,11 @@ import com.dayou.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
-import java.math.BigDecimal;
-
 /**
  * 资产评估部门效率 VO
  */
 @Data
-public class AssetsEvaluateDepEfficiencyVO {
+public class AssetsEvaluateEfficiencyVO {
     /**
      * 部门id
      */
@@ -140,6 +138,26 @@ public class AssetsEvaluateDepEfficiencyVO {
     private Double QoQRealAmountSum;
 
     /**
+     * 当期出单率
+     */
+    @Excel(name = "当期出单率")
+    private Double currentPeriodOrderHasReportVolume;
+
+    /**
+     * 同比出单率(报告数/接单数)
+     */
+    @Excel(name = "同比出单率")
+    @JsonProperty("YoYOrderHasReportVolume")
+    private Double YoYOrderHasReportVolume;
+
+    /**
+     * 环比出单率(报告数/接单数)
+     */
+    @Excel(name = "环比出单率")
+    @JsonProperty("QoQOrderHasReportVolume")
+    private Double QoQOrderHasReportVolume;
+
+    /**
      * 平均内控时长
      */
     @Excel(name = "平均内控时长")

+ 24 - 5
service/src/main/java/com/dayou/service/IAssetsStatisticalStatementService.java

@@ -2,10 +2,7 @@ package com.dayou.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.AssetsStatisticalSelectDTO;
-import com.dayou.vo.AssetsEvaluateDepEfficiencyVO;
-import com.dayou.vo.AssetsLedgerVO;
-import com.dayou.vo.AssetsPerformanceDeductionDetailVO;
-import com.dayou.vo.AssetsPerformanceDeductionVO;
+import com.dayou.vo.*;
 
 import java.util.List;
 
@@ -81,6 +78,28 @@ public interface IAssetsStatisticalStatementService {
      * @param dto 查询dto
      * @return List<AssetsEvaluateDepEfficiencyVO>
      */
-    List<AssetsEvaluateDepEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(AssetsStatisticalSelectDTO dto);
+    List<AssetsEvaluateEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(AssetsStatisticalSelectDTO dto);
+
+    /**
+     * 评估人员效率查询
+     * @param dto 查询dto
+     * @return List<AssetsEvaluateDepEfficiencyVO>
+     */
+    List<AssetsEvaluateEfficiencyVO> getAssetsEvaluatePerEfficiencyVO(AssetsStatisticalSelectDTO dto);
+
+    /**
+     * 效率详情列表查询
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsEvaluateEfficiencyDetailVO>
+     */
+    Page<AssetsEvaluateEfficiencyDetailVO> getAssetsEvaEffDetailVO(Page page, AssetsStatisticalSelectDTO dto);
+
+    /**
+     * 效率详情列表查询
+     * @param dto 查询dto
+     * @return Page<AssetsEvaluateEfficiencyDetailVO>
+     */
+    List<AssetsEvaluateEfficiencyDetailVO> assetsEvaEffDetailVOExport(AssetsStatisticalSelectDTO dto);
 
 }

+ 187 - 39
service/src/main/java/com/dayou/service/impl/AssetsStatisticalStatementServiceImpl.java

@@ -12,15 +12,11 @@ import com.dayou.mapper.AssetsEvaluationMethodMapper;
 import com.dayou.mapper.AssetsStatisticalStatementMapper;
 import com.dayou.service.IAssetsStatisticalStatementService;
 import com.dayou.service.IUserService;
-import com.dayou.vo.AssetsEvaluateDepEfficiencyVO;
-import com.dayou.vo.AssetsLedgerVO;
-import com.dayou.vo.AssetsPerformanceDeductionDetailVO;
-import com.dayou.vo.AssetsPerformanceDeductionVO;
+import com.dayou.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -134,6 +130,7 @@ public class AssetsStatisticalStatementServiceImpl implements IAssetsStatistical
 
     /**
      * 评估人员绩效扣分查询
+     *
      * @param dto 查询dto
      * @return List<AssetsPerformanceDeductionVO>
      */
@@ -144,6 +141,7 @@ public class AssetsStatisticalStatementServiceImpl implements IAssetsStatistical
 
     /**
      * 评估人员绩效扣分导出
+     *
      * @param dto 查询dto
      * @return List<AssetsPerformanceDeductionVO>
      */
@@ -154,66 +152,88 @@ public class AssetsStatisticalStatementServiceImpl implements IAssetsStatistical
 
     /**
      * 评估部效率查询
+     *
      * @param dto 查询dto
      * @return List<AssetsEvaluateDepEfficiencyVO>
      */
     @Override
-    public List<AssetsEvaluateDepEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(AssetsStatisticalSelectDTO dto) {
-        List<AssetsEvaluateDepEfficiencyVO> efficiencyVOList = assetsStatisticalStatementMapper.getAssetsEvaluateDepEfficiencyVO(dto);
+    public List<AssetsEvaluateEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(AssetsStatisticalSelectDTO dto) {
+        List<AssetsEvaluateEfficiencyVO> efficiencyVOList = assetsStatisticalStatementMapper.getAssetsEvaluateDepEfficiencyVO(dto);
 
         // 循环计算每个部门的同比、环比
-        for (AssetsEvaluateDepEfficiencyVO efficiencyVO : efficiencyVOList){
+        for (AssetsEvaluateEfficiencyVO efficiencyVO : efficiencyVOList) {
+
+            // 计算当期出单率
+            if (efficiencyVO.getCurrentPeriodReportVolume() > 0) { // 当期出报告书大于0
+                efficiencyVO.setCurrentPeriodOrderHasReportVolume((efficiencyVO.getCurrentPeriodReportVolume().doubleValue() / efficiencyVO.getCurrentPeriodOrderVolume().doubleValue()));
+            } else {
+                efficiencyVO.setCurrentPeriodOrderHasReportVolume(0.0);
+            }
+            // 计算同比出单率
+            if (efficiencyVO.getYoYReportVolume() > 0) {
+                efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume())) / (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume()) * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
+            }
+            // 计算环比出单率
+            if (efficiencyVO.getQoQReportVolume() > 0) {
+                efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume())) / (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume()) * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
+            }
+            efficiencyVO.setCurrentPeriodOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
+
             // 同比计算(同比增长率 = (当期数据 - 去年同期数据) / 去年同期数据 * 100%) (保留两位小数)
-            if (efficiencyVO.getYoYOrderVolume() > 0){
-                efficiencyVO.setYoYOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getYoYOrderVolume()) / efficiencyVO.getYoYOrderVolume() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getYoYOrderVolume() > 0) {
+                efficiencyVO.setYoYOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getYoYOrderVolume()) / efficiencyVO.getYoYOrderVolume() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setYoYOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
             }
-            if (efficiencyVO.getYoYStatementVolume() > 0){
-                efficiencyVO.setYoYStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getYoYStatementVolume()) / efficiencyVO.getYoYStatementVolume() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getYoYStatementVolume() > 0) {
+                efficiencyVO.setYoYStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getYoYStatementVolume()) / efficiencyVO.getYoYStatementVolume() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setYoYStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
             }
-            if (efficiencyVO.getYoYReportVolume() > 0){
-                efficiencyVO.setYoYReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getYoYReportVolume()) / efficiencyVO.getYoYReportVolume() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getYoYReportVolume() > 0) {
+                efficiencyVO.setYoYReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getYoYReportVolume()) / efficiencyVO.getYoYReportVolume() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setYoYReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
             }
-            if (efficiencyVO.getYoYShouldAmountSum() > 0){
-                efficiencyVO.setYoYShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getYoYShouldAmountSum()) / efficiencyVO.getYoYShouldAmountSum() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getYoYShouldAmountSum() > 0) {
+                efficiencyVO.setYoYShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getYoYShouldAmountSum()) / efficiencyVO.getYoYShouldAmountSum() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setYoYShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
             }
-            if (efficiencyVO.getYoYRealAmountSum() > 0){
-                efficiencyVO.setYoYRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getYoYRealAmountSum()) / efficiencyVO.getYoYRealAmountSum() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getYoYRealAmountSum() > 0) {
+                efficiencyVO.setYoYRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getYoYRealAmountSum()) / efficiencyVO.getYoYRealAmountSum() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setYoYRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
             }
 
             // 环比计算(环比增长率 = (当期数据 - 前一期数据) / 前一期数据 * 100%) (保留两位小数)
-            if (efficiencyVO.getQoQOrderVolume() > 0){
-                efficiencyVO.setQoQOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getQoQOrderVolume()) / efficiencyVO.getQoQOrderVolume() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getQoQOrderVolume() > 0) {
+                efficiencyVO.setQoQOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getQoQOrderVolume()) / efficiencyVO.getQoQOrderVolume() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setQoQOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
             }
-            if (efficiencyVO.getQoQStatementVolume() > 0){
-                efficiencyVO.setQoQStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getQoQStatementVolume()) / efficiencyVO.getQoQStatementVolume() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getQoQStatementVolume() > 0) {
+                efficiencyVO.setQoQStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getQoQStatementVolume()) / efficiencyVO.getQoQStatementVolume() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setQoQStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
             }
-            if (efficiencyVO.getQoQReportVolume() > 0){
-                efficiencyVO.setQoQReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getQoQReportVolume()) / efficiencyVO.getQoQReportVolume() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getQoQReportVolume() > 0) {
+                efficiencyVO.setQoQReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getQoQReportVolume()) / efficiencyVO.getQoQReportVolume() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setQoQReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
             }
-            if (efficiencyVO.getQoQShouldAmountSum() > 0){
-                efficiencyVO.setQoQShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getQoQShouldAmountSum()) / efficiencyVO.getQoQShouldAmountSum() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getQoQShouldAmountSum() > 0) {
+                efficiencyVO.setQoQShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getQoQShouldAmountSum()) / efficiencyVO.getQoQShouldAmountSum() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setQoQShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
             }
-            if (efficiencyVO.getQoQRealAmountSum() > 0){
-                efficiencyVO.setQoQRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getQoQRealAmountSum()) / efficiencyVO.getQoQRealAmountSum() * 100,2).doubleValue());
-            }else {
+            if (efficiencyVO.getQoQRealAmountSum() > 0) {
+                efficiencyVO.setQoQRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getQoQRealAmountSum()) / efficiencyVO.getQoQRealAmountSum() * 100, 2).doubleValue());
+            } else {
                 efficiencyVO.setQoQRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
             }
         }
@@ -221,6 +241,133 @@ public class AssetsStatisticalStatementServiceImpl implements IAssetsStatistical
     }
 
     /**
+     * 评估人员效率查询
+     *
+     * @param dto 查询dto
+     * @return List<AssetsEvaluateDepEfficiencyVO>
+     */
+    @Override
+    public List<AssetsEvaluateEfficiencyVO> getAssetsEvaluatePerEfficiencyVO(AssetsStatisticalSelectDTO dto) {
+        List<AssetsEvaluateEfficiencyVO> efficiencyVOList = assetsStatisticalStatementMapper.getAssetsEvaluatePerEfficiencyVO(dto);
+
+        // 循环计算每个部门的同比、环比
+        for (AssetsEvaluateEfficiencyVO efficiencyVO : efficiencyVOList) {
+
+            // 计算当期出单率
+            if (efficiencyVO.getCurrentPeriodReportVolume() > 0) { // 当期出报告书大于0
+                efficiencyVO.setCurrentPeriodOrderHasReportVolume((efficiencyVO.getCurrentPeriodReportVolume().doubleValue() / efficiencyVO.getCurrentPeriodOrderVolume().doubleValue()));
+            } else {
+                efficiencyVO.setCurrentPeriodOrderHasReportVolume(0.0);
+            }
+            // 计算同比出单率
+            if (efficiencyVO.getYoYReportVolume() > 0) {
+                efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume())) / (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume()) * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
+            }
+            // 计算环比出单率
+            if (efficiencyVO.getQoQReportVolume() > 0) {
+                efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume())) / (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume()) * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
+            }
+            efficiencyVO.setCurrentPeriodOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
+
+            // 同比计算(同比增长率 = (当期数据 - 去年同期数据) / 去年同期数据 * 100%) (保留两位小数)
+            if (efficiencyVO.getYoYOrderVolume() > 0) {
+                efficiencyVO.setYoYOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getYoYOrderVolume()) / efficiencyVO.getYoYOrderVolume() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
+            }
+            if (efficiencyVO.getYoYStatementVolume() > 0) {
+                efficiencyVO.setYoYStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getYoYStatementVolume()) / efficiencyVO.getYoYStatementVolume() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
+            }
+            if (efficiencyVO.getYoYReportVolume() > 0) {
+                efficiencyVO.setYoYReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getYoYReportVolume()) / efficiencyVO.getYoYReportVolume() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
+            }
+            if (efficiencyVO.getYoYShouldAmountSum() > 0) {
+                efficiencyVO.setYoYShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getYoYShouldAmountSum()) / efficiencyVO.getYoYShouldAmountSum() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
+            }
+            if (efficiencyVO.getYoYRealAmountSum() > 0) {
+                efficiencyVO.setYoYRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getYoYRealAmountSum()) / efficiencyVO.getYoYRealAmountSum() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setYoYRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
+            }
+
+            // 环比计算(环比增长率 = (当期数据 - 前一期数据) / 前一期数据 * 100%) (保留两位小数)
+            if (efficiencyVO.getQoQOrderVolume() > 0) {
+                efficiencyVO.setQoQOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getQoQOrderVolume()) / efficiencyVO.getQoQOrderVolume() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
+            }
+            if (efficiencyVO.getQoQStatementVolume() > 0) {
+                efficiencyVO.setQoQStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getQoQStatementVolume()) / efficiencyVO.getQoQStatementVolume() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
+            }
+            if (efficiencyVO.getQoQReportVolume() > 0) {
+                efficiencyVO.setQoQReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getQoQReportVolume()) / efficiencyVO.getQoQReportVolume() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
+            }
+            if (efficiencyVO.getQoQShouldAmountSum() > 0) {
+                efficiencyVO.setQoQShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getQoQShouldAmountSum()) / efficiencyVO.getQoQShouldAmountSum() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
+            }
+            if (efficiencyVO.getQoQRealAmountSum() > 0) {
+                efficiencyVO.setQoQRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getQoQRealAmountSum()) / efficiencyVO.getQoQRealAmountSum() * 100, 2).doubleValue());
+            } else {
+                efficiencyVO.setQoQRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
+            }
+        }
+        return efficiencyVOList;
+    }
+
+    /**
+     * 效率详情列表查询
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<AssetsEvaluateEfficiencyDetailVO>
+     */
+    @Override
+    public Page<AssetsEvaluateEfficiencyDetailVO> getAssetsEvaEffDetailVO(Page page, AssetsStatisticalSelectDTO dto) {
+        Page<AssetsEvaluateEfficiencyDetailVO> detailVOPage = assetsStatisticalStatementMapper.getAssetsEvaEffDetailVO(page, dto);
+        for (AssetsEvaluateEfficiencyDetailVO detailVO : detailVOPage.getRecords()) {
+            if (ObjectUtil.isNotNull(detailVO.getMembers())) {
+                JSONArray jsonArray = JSONArray.parseArray(detailVO.getMembers());
+                List<Long> membersId = jsonArray.toJavaList(Long.class);
+                String names = null;
+                for (Long id : membersId) {
+                    if (ObjectUtil.isNull(names)) {
+                        names = userService.getById(id).getName() + ';';
+                    } else {
+                        names += userService.getById(id).getName() + ';';
+                    }
+                }
+                detailVO.setMembers(names);
+            }
+        }
+        return detailVOPage;
+    }
+
+    /**
+     * 效率详情列表查询
+     * @param dto 查询dto
+     * @return Page<AssetsEvaluateEfficiencyDetailVO>
+     */
+    @Override
+    public List<AssetsEvaluateEfficiencyDetailVO> assetsEvaEffDetailVOExport(AssetsStatisticalSelectDTO dto) {
+        return assetsStatisticalStatementMapper.assetsEvaEffDetailVOExport(dto);
+    }
+
+    /**
      * 设置评估方法与签字人等信息
      *
      * @param assetsLedgerVO       查询出来的VO信息
@@ -336,10 +483,11 @@ public class AssetsStatisticalStatementServiceImpl implements IAssetsStatistical
 
     /**
      * 设置参与人信息
+     *
      * @param detailVOList 查询出来的VO信息
      * @return List<AssetsPerformanceDeductionDetailVO>
      */
-    public List<AssetsPerformanceDeductionDetailVO> setDetailVOJSONInfo(List<AssetsPerformanceDeductionDetailVO> detailVOList){
+    public List<AssetsPerformanceDeductionDetailVO> setDetailVOJSONInfo(List<AssetsPerformanceDeductionDetailVO> detailVOList) {
         for (AssetsPerformanceDeductionDetailVO detailVO : detailVOList) {
             if (ObjectUtil.isNotNull(detailVO.getMembers())) {
                 JSONArray jsonArray = JSONArray.parseArray(detailVO.getMembers());