Browse Source

1.大中型统计报表新增根据部门id获取部门绩效扣分

GouGengquan 10 months ago
parent
commit
f526525a98

+ 20 - 0
biz-base/src/main/java/com/dayou/controller/MajorStatisticalStatementController.java

@@ -83,6 +83,26 @@ public class MajorStatisticalStatementController extends BaseController{
     }
     }
 
 
     /**
     /**
+     * 根据部门id获取部门绩效扣分
+     * @param dto 查询dto
+     * @return List<MajorPerformanceDeductionVO>
+     */
+    @GetMapping("/depId/getMajorPerformanceDeductionVO")
+    public RestResponse<List<MajorPerformanceDeductionVO>> getMajorPerformanceDeductionVOByDepId(MajorStatisticalSelectDTO dto) {
+        return RestResponse.data(majorStatisticalStatementService.getMajorPerformanceDeductionVOByDepId(dto));
+    }
+
+    /**
+     * 根据部门id导出部门绩效扣分
+     * @param dto 查询dto
+     */
+    @GetMapping("/depId/getMajorPerformanceDeductionVO/export")
+    public void exportMajorPerformanceDeductionVOByDepId(MajorStatisticalSelectDTO dto, HttpServletResponse response) throws IOException {
+        List<MajorPerformanceDeductionVO> result = majorStatisticalStatementService.getMajorPerformanceDeductionVOByDepId(dto);
+        exportPlus(response,"部门内部绩效扣分表数据",result, MajorPerformanceDeductionVO.class);
+    }
+
+    /**
      * 查询错误详情列表
      * 查询错误详情列表
      * @param page 分页
      * @param page 分页
      * @param dto 查询dto
      * @param dto 查询dto

+ 7 - 0
dao/src/main/java/com/dayou/mapper/DepartmentMapper.java

@@ -28,4 +28,11 @@ public interface DepartmentMapper extends CustomBaseMapper<Department> {
      * @return List<Department>
      * @return List<Department>
      */
      */
     List<Department> getAllotDepartmentByBusiness(@Param("businessCode") String businessCode);
     List<Department> getAllotDepartmentByBusiness(@Param("businessCode") String businessCode);
+
+    /**
+     * 通过用户id获取部门信息
+     * @param userId 用户id
+     * @return Long 下单部门id
+     */
+    Long getDepartmentByUserId(@Param("userId") Long userId);
 }
 }

+ 7 - 0
dao/src/main/java/com/dayou/mapper/MajorStatisticalStatementMapper.java

@@ -39,6 +39,13 @@ public interface MajorStatisticalStatementMapper {
     List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByEvaluator(@Param("dto") MajorStatisticalSelectDTO dto);
     List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByEvaluator(@Param("dto") MajorStatisticalSelectDTO dto);
 
 
     /**
     /**
+     * 根据部门id获取部门绩效扣分
+     * @param dto 查询dto
+     * @return List<MajorPerformanceDeductionVO>
+     */
+    List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByDepId(@Param("dto") MajorStatisticalSelectDTO dto);
+
+    /**
      * 查询错误详情列表
      * 查询错误详情列表
      * @param page 分页
      * @param page 分页
      * @param dto 查询dto
      * @param dto 查询dto

+ 12 - 0
dao/src/main/resources/mapper/DepartmentMapper.xml

@@ -52,4 +52,16 @@
         AND department.deleted = 0
         AND department.deleted = 0
         AND sorted_department.business_type = #{businessCode}
         AND sorted_department.business_type = #{businessCode}
     </select>
     </select>
+
+    <!--通过用户id获取部门信息-->
+    <select id="getDepartmentByUserId" resultType="java.lang.Long">
+        SELECT department_id
+        FROM user,user_post,post
+        WHERE user.id = user_post.user_id
+          AND user_post.post_id = post.id
+          AND user_post.deleted = 0
+          AND post.deleted = 0
+          AND user.id = #{userId}
+        LIMIT 1
+    </select>
 </mapper>
 </mapper>

+ 60 - 0
dao/src/main/resources/mapper/MajorStatisticalStatementMapper.xml

@@ -244,6 +244,66 @@
         GROUP BY user.id
         GROUP BY user.id
     </select>
     </select>
 
 
+    <!--根据部门id获取部门绩效扣分-->
+    <select id="getMajorPerformanceDeductionVOByDepId" resultType="com.dayou.vo.MajorPerformanceDeductionVO">
+        SELECT user.id AS userId,
+        user.userName,
+        user.departmentId,
+        user.departmentName,
+        COALESCE ( SUM( checkPer.normal_mistake ), 0 ) * 3 AS checkNormalMistakeScore,
+        COALESCE ( SUM( checkPer.hard_mistake ), 0 ) * 8 AS checkHardMistakeScore,
+        COALESCE ( SUM( checkPer.fatal_mistake ), 0 ) * 41 AS checkFatalMistakeScore,
+        COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) * 3 AS reCheckNormalMistakeScore,
+        COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) * 8 AS reCheckHardMistakeScore,
+        COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) * 41 AS reCheckFatalMistakeScore,
+        COALESCE ( (COALESCE ( SUM( checkPer.normal_mistake ), 0 ) * 3) + (COALESCE ( SUM( checkPer.hard_mistake ), 0 ) * 8) + (COALESCE ( SUM( checkPer.fatal_mistake ), 0 ) * 41) + (COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) *3 ) + (COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) * 8) + (COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) * 41) , 0) AS allMistakeScore
+        FROM (SELECT user.id AS id,
+        user.`name` AS userName,
+        department.name AS departmentName,
+        department.id AS departmentId
+        FROM user,post,user_post,sorted_department,department
+        WHERE `user`.id = user_post.user_id
+        AND user_post.post_id = post.id
+        AND post.department_id = sorted_department.department_id
+        AND sorted_department.department_id = department.id
+        AND sorted_department.deleted = 0
+        AND user_post.deleted = 0
+        AND sorted_department.business_type = 'MAJOR_BUSINESS'
+        GROUP BY user.id
+        ) AS user
+        LEFT JOIN (
+        SELECT
+        principal_id,
+        major.created,
+        major_production.id AS production_id
+        FROM
+        major
+        LEFT JOIN major_production ON major_production.major_id = major.id
+        AND major_production.deleted = 0
+        ) AS orderInfo ON user.id = orderInfo.principal_id
+        LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
+        business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND check_loop = '初审'
+        <if test="dto != null and dto.startTime != null and dto.endTime!= null">
+            AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
+        </if>
+        ) AS checkPer ON checkPer.production_id = orderInfo.production_id
+        LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
+        business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND check_loop = '复审'
+        <if test="dto != null and dto.startTime != null and dto.endTime!= null">
+            AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
+        </if>
+        ) AS reCheckPer ON reCheckPer.production_id = orderInfo.production_id
+        <where>
+            <if test="dto != null and dto.departmentId != null">
+                AND user.departmentId = #{dto.departmentId}
+            </if>
+            <if test="dto != null and dto.userName != null">
+                AND user.userName LIKE CONCAT('%',#{dto.userName},'%')
+            </if>
+        </where>
+        GROUP BY user.id
+    </select>
+
     <!--查询错误详情SQL-->
     <!--查询错误详情SQL-->
     <sql id="majorPerformanceDeductionDetailQuery">
     <sql id="majorPerformanceDeductionDetailQuery">
         SELECT performance.id,
         SELECT performance.id,

+ 18 - 0
domain/src/main/java/com/dayou/vo/MajorPerformanceDeductionVO.java

@@ -29,6 +29,24 @@ public class MajorPerformanceDeductionVO {
     private String departmentName;
     private String departmentName;
 
 
     /**
     /**
+     * 审核一般错误扣分(初审)
+     */
+    @Excel(name = "部门审核一般错误")
+    private Integer checkNormalMistakeScore;
+
+    /**
+     * 审核较大错误扣分(初审)
+     */
+    @Excel(name = "部门审核较大错误")
+    private Integer checkHardMistakeScore;
+
+    /**
+     * 审核严重错误扣分(初审)
+     */
+    @Excel(name = "部门审核严重错误")
+    private Integer checkFatalMistakeScore;
+
+    /**
      * 复审一般错误扣分
      * 复审一般错误扣分
      */
      */
     @Excel(name = "复审一般错误")
     @Excel(name = "复审一般错误")

+ 7 - 0
service/src/main/java/com/dayou/service/IMajorStatisticalStatementService.java

@@ -38,6 +38,13 @@ public interface IMajorStatisticalStatementService {
     List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByEvaluator(MajorStatisticalSelectDTO dto);
     List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByEvaluator(MajorStatisticalSelectDTO dto);
 
 
     /**
     /**
+     * 根据部门id获取部门绩效扣分
+     * @param dto 查询dto
+     * @return List<MajorPerformanceDeductionVO>
+     */
+    List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByDepId(MajorStatisticalSelectDTO dto);
+
+    /**
      * 查询错误详情列表
      * 查询错误详情列表
      * @param page 分页
      * @param page 分页
      * @param dto 查询dto
      * @param dto 查询dto

+ 16 - 0
service/src/main/java/com/dayou/service/impl/MajorStatisticalStatementServiceImpl.java

@@ -7,9 +7,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.MajorStatisticalSelectDTO;
 import com.dayou.dto.MajorStatisticalSelectDTO;
 import com.dayou.entity.User;
 import com.dayou.entity.User;
+import com.dayou.mapper.DepartmentMapper;
 import com.dayou.mapper.MajorStatisticalStatementMapper;
 import com.dayou.mapper.MajorStatisticalStatementMapper;
 import com.dayou.service.IUserService;
 import com.dayou.service.IUserService;
 import com.dayou.service.IMajorStatisticalStatementService;
 import com.dayou.service.IMajorStatisticalStatementService;
+import com.dayou.utils.LoginContext;
 import com.dayou.vo.*;
 import com.dayou.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -23,6 +25,9 @@ public class MajorStatisticalStatementServiceImpl implements IMajorStatisticalSt
     private IUserService userService;
     private IUserService userService;
 
 
     @Autowired
     @Autowired
+    private DepartmentMapper departmentMapper;
+
+    @Autowired
     private MajorStatisticalStatementMapper majorStatisticalStatementMapper;
     private MajorStatisticalStatementMapper majorStatisticalStatementMapper;
 
 
     /**
     /**
@@ -71,6 +76,17 @@ public class MajorStatisticalStatementServiceImpl implements IMajorStatisticalSt
     }
     }
 
 
     /**
     /**
+     * 根据部门id获取部门绩效扣分
+     * @param dto 查询dto
+     * @return List<MajorPerformanceDeductionVO>
+     */
+    @Override
+    public List<MajorPerformanceDeductionVO> getMajorPerformanceDeductionVOByDepId(MajorStatisticalSelectDTO dto) {
+        dto.setDepartmentId(departmentMapper.getDepartmentByUserId(LoginContext.getCurrentUserId()));
+        return majorStatisticalStatementMapper.getMajorPerformanceDeductionVOByDepId(dto);
+    }
+
+    /**
      * 查询错误详情列表
      * 查询错误详情列表
      * @param page 分页
      * @param page 分页
      * @param dto 查询dto
      * @param dto 查询dto