Ver Fonte

绩效考核

lihui007 há 4 anos atrás
pai
commit
55aac6b492

+ 5 - 0
operation_manager/src/main/java/com/huaxu/client/UserCenterClient.java

@@ -4,6 +4,7 @@ import com.huaxu.config.FeignConfig;
 
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.task.entity.UserEntity;
+import com.huaxu.org.Org;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
@@ -34,4 +35,8 @@ public interface UserCenterClient {
      */
     @GetMapping("/user/findUserListByType")
     AjaxMessage<List<UserEntity>> findUserListByType();
+
+    @PostMapping("/org/getAllByTenantId")
+    List<Org> getAllByTenantId();
+
 }

+ 23 - 2
operation_manager/src/main/java/com/huaxu/evaluation/controller/EvaluationResultController.java

@@ -1,8 +1,17 @@
 package com.huaxu.evaluation.controller;
 
+import com.huaxu.evaluation.dto.EvaluationResultDto;
+import com.huaxu.evaluation.service.EvaluationResultService;
+import com.huaxu.evaluation.vo.EvaluationResultVo;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.Pagination;
+import com.huaxu.model.ResultStatus;
 import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
 
 /**
  * @ClassName EvaluationResultController
@@ -15,4 +24,16 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/evaluation/result")
 @Api(tags = "绩效考评结果")
 public class EvaluationResultController {
+
+    @Autowired
+    private EvaluationResultService evaluationResultService;
+
+    @ApiOperation(value = "查询考评结果")
+    @RequestMapping(value = "/findPage", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<EvaluationResultVo>> findPage(@RequestBody @Valid EvaluationResultDto dto) {
+        return new AjaxMessage<>(ResultStatus.OK, new Pagination<>(evaluationResultService.findPage(dto)));
+    }
+
 }
+

+ 16 - 3
operation_manager/src/main/java/com/huaxu/evaluation/dao/EvaluationResultMapper.java

@@ -1,8 +1,11 @@
 package com.huaxu.evaluation.dao;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.huaxu.evaluation.entity.EvaluationResultEntity;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.evaluation.dto.EvaluationResultQueryDto;
+import com.huaxu.evaluation.vo.EvaluationResultVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @ClassName EvaluationResultMapper
@@ -12,5 +15,15 @@ import org.apache.ibatis.annotations.Mapper;
  * @Version V1.0
  **/
 @Mapper
-public interface EvaluationResultMapper extends BaseMapper<EvaluationResultEntity> {
+public interface EvaluationResultMapper {
+
+    /**
+    * @Author lihui
+    * @Description 分页查询考评结果
+    * @Date 10:18 2021/5/8
+    * @Param [page :页码, dto :查询条件]
+    * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.huaxu.evaluation.vo.EvaluationResultVo>
+    **/
+    Page<EvaluationResultVo> findPage(@Param("page")IPage<EvaluationResultQueryDto> page, @Param("dto") EvaluationResultQueryDto dto);
+
 }

+ 21 - 0
operation_manager/src/main/java/com/huaxu/evaluation/dto/BasePageDto.java

@@ -0,0 +1,21 @@
+package com.huaxu.evaluation.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName BaseDto
+ * @Description: BasePageDto
+ * @Author lihui
+ * @Date 2021/5/8
+ * @Version V1.0
+ **/
+@Data
+public class BasePageDto {
+
+    @ApiModelProperty(value = "页码")
+    private int pageNum;
+
+    @ApiModelProperty(value = "大小")
+    private int pageSize;
+}

+ 3 - 1
operation_manager/src/main/java/com/huaxu/evaluation/dto/EvaluationResultDto.java

@@ -1,6 +1,7 @@
 package com.huaxu.evaluation.dto;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -12,5 +13,6 @@ import lombok.Data;
  **/
 @Data
 @ApiModel(value = "考评结果")
-public class EvaluationResultDto {
+public class EvaluationResultDto extends  BasePageDto{
+
 }

+ 34 - 0
operation_manager/src/main/java/com/huaxu/evaluation/dto/EvaluationResultQueryDto.java

@@ -0,0 +1,34 @@
+package com.huaxu.evaluation.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.huaxu.model.ProgramItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName EvaluationResultDto
+ * @Description: 考评结果入参
+ * @Author lihui
+ * @Date 2021/5/7
+ * @Version V1.0
+ **/
+@Data
+@ApiModel(value = "考评结果")
+public class EvaluationResultQueryDto extends EvaluationResultDto{
+
+    @ApiModelProperty(value = "页码")
+    private String tenantId;
+
+    @ApiModelProperty(value ="权限",hidden = true)
+    private List<ProgramItem> programItems;
+
+    @ApiModelProperty(value = "用户类型(0 超管 1 普通用户)")
+    private String userType;
+
+    @ApiModelProperty(value="用户权限类型")
+    private Integer permissonType;
+
+}

+ 14 - 0
operation_manager/src/main/java/com/huaxu/evaluation/service/EvaluationResultService.java

@@ -1,6 +1,11 @@
 package com.huaxu.evaluation.service;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.evaluation.dto.EvaluationResultDto;
+import com.huaxu.evaluation.vo.EvaluationResultVo;
+
 /**
  * @ClassName EvaluationResultService
  * @Description: 考评结果业务处理
@@ -9,4 +14,13 @@ package com.huaxu.evaluation.service;
  * @Version V1.0
  **/
 public interface EvaluationResultService {
+
+    /**
+    * @Author lihui
+    * @Description 分页查询
+    * @Date 10:24 2021/5/8
+    * @Param [dto]
+    * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.huaxu.evaluation.vo.EvaluationResultVo>
+    **/
+    IPage<EvaluationResultVo> findPage(EvaluationResultDto dto);
 }

+ 32 - 0
operation_manager/src/main/java/com/huaxu/evaluation/service/impl/EvaluationResultServiceImpl.java

@@ -1,7 +1,18 @@
 package com.huaxu.evaluation.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.evaluation.dao.EvaluationResultMapper;
+import com.huaxu.evaluation.dto.EvaluationResultDto;
+import com.huaxu.evaluation.dto.EvaluationResultQueryDto;
 import com.huaxu.evaluation.service.EvaluationResultService;
+import com.huaxu.evaluation.vo.EvaluationResultVo;
+import com.huaxu.model.LoginUser;
+import com.huaxu.org.OrgInfoUtil;
+import com.huaxu.util.UserUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -14,4 +25,25 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @Service
 public class EvaluationResultServiceImpl implements EvaluationResultService {
+
+    @Autowired
+    private EvaluationResultMapper evaluationResultMapper;
+
+    @Autowired
+    private OrgInfoUtil orgInfoUtil;
+
+    @Override
+    public IPage<EvaluationResultVo> findPage(EvaluationResultDto dto) {
+        EvaluationResultQueryDto queryDto = new EvaluationResultQueryDto();
+        BeanUtils.copyProperties(dto, queryDto);
+        // 获取用户权限
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        queryDto.setTenantId(currentUser.getTenantId());
+        queryDto.setProgramItems(currentUser.getProgramItemList());
+        queryDto.setUserType("3");
+        queryDto.setPermissonType(currentUser.getPermissonType());
+        System.out.println(orgInfoUtil.getOrgName(266));
+        return evaluationResultMapper.findPage(new Page<>(dto.getPageNum(), dto.getPageSize()), queryDto);
+    }
+
 }

+ 37 - 0
operation_manager/src/main/java/com/huaxu/evaluation/vo/EvaluationResultVo.java

@@ -1,7 +1,11 @@
 package com.huaxu.evaluation.vo;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
  * @ClassName EvaluationResultVo
  * @Description: 考核结果出参
@@ -10,5 +14,38 @@ import lombok.Data;
  * @Version V1.0
  **/
 @Data
+@ApiModel(value = "考核结果返回信息")
 public class EvaluationResultVo {
+
+    @ApiModelProperty(value = "主键ID")
+    private String id;
+
+    @ApiModelProperty(value = "被考评人")
+    private String evaluationBe;
+
+    @ApiModelProperty(value = "所属公司ID")
+    private String companyOrgId;
+
+    @ApiModelProperty(value = "所属公司名字")
+    private String companyOrgName;
+
+    @ApiModelProperty(value = "所属部门ID")
+    private String deptOrgId;
+
+    @ApiModelProperty(value = "所属部门名字")
+    private String deptOrgName;
+
+    @ApiModelProperty(value = "考评状态")
+    private String state;
+
+    @ApiModelProperty(value = "考评周期")
+    private String cycle;
+
+    @ApiModelProperty(value = "考评得分")
+    private BigDecimal value;
+
+    @ApiModelProperty(value = "绩效等级")
+    private String evaluationGrade;
+
+
 }

+ 66 - 0
operation_manager/src/main/java/com/huaxu/org/Org.java

@@ -0,0 +1,66 @@
+package com.huaxu.org;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@ApiModel
+public class Org implements Serializable {
+
+    private static final long serialVersionUID = 813791045057448389L;
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+
+    @ApiModelProperty(value = "机构类型")
+    private String orgType;
+
+    @ApiModelProperty(value = "上级机构")
+    private Integer parentOrgId;
+
+    @ApiModelProperty(value = "机构所在区域")
+    private Integer orgAreaId;
+
+    @ApiModelProperty(value = "机构名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "机构状态")
+    private Integer orgState;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "机构负责人名称")
+    private String orgLeaderName;
+
+    @ApiModelProperty(value = "机构负责人手机")
+    private String orgLeaderPhone;
+
+    @ApiModelProperty(value = "机构负责人邮箱")
+    private String orgLeaderEmail;
+
+    @ApiModelProperty(value = "机构负责人性别")
+    private String orgLeaderSex;
+
+    @ApiModelProperty(value = "数据删除标记")
+    private Integer status;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date dateCreate;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date dateUpdate;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+}

+ 59 - 0
operation_manager/src/main/java/com/huaxu/org/OrgInfoUtil.java

@@ -0,0 +1,59 @@
+package com.huaxu.org;
+
+import com.huaxu.client.UserCenterClient;
+import com.huaxu.util.RedisUtil;
+import com.huaxu.util.UserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class OrgInfoUtil {
+
+    private static final String REDIS_CACHE_KEY_ORGINFO = "orgInfo%s";
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private UserCenterClient userCenterClient;
+
+    public String getOrgName(Integer id) {
+        String tenantId = UserUtil.getCurrentUser().getTenantId();
+        if(tenantId == null){
+            return "";
+        }
+        String key = String.format(REDIS_CACHE_KEY_ORGINFO, tenantId);
+        String keysValue = (String) redisUtil.getHashValues(key,id+"");
+        if (keysValue == null) {
+            Map<String,String> keysValues = updateOrgInfo(key);
+            keysValue = keysValues.get(id+"");
+        }
+        return keysValue;
+    };
+    public Map<String,String> getAllOrgName(){
+        String tenantId = UserUtil.getCurrentUser().getTenantId();
+        if (tenantId == null) {
+            return new HashMap<>();
+        }
+        String key = String.format(REDIS_CACHE_KEY_ORGINFO, tenantId);
+        Map<String, String> hashValue = redisUtil.getHashValue(key);
+        if (hashValue.size() == 0) {
+            hashValue = updateOrgInfo(key);
+        }
+        return hashValue;
+    }
+
+    private Map<String,String> updateOrgInfo(String key){
+        Map<String,String> keysValues= new HashMap<>();
+        List<Org> orgs = userCenterClient.getAllByTenantId();
+        for (Org org1 : orgs) {
+            keysValues.put(org1.getId() + "",org1.getOrgName());
+        }
+        redisUtil.putHashValues(key,keysValues);
+        return keysValues;
+    }
+}

+ 53 - 0
operation_manager/src/main/resources/mapper/evaluation/EvaluationResultMapper.xml

@@ -1,4 +1,57 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.huaxu.evaluation.dao.EvaluationResultMapper" >
+
+    <sql id="evaluation_result_list" >
+           a.ID,
+           a.COMPANY_ORG_ID,
+           a.DEPT_ORG_ID,
+           a.EVALUATION_BY,
+           a.EVALUATION_BE,
+           a.STATE,
+           a.CYCLE,
+           a.YEAR,
+           a.MONTH,
+           a.EVALUATION_GRADE,
+           a.VALUE,
+           a.DATE_START,
+           a.DATE_END,
+           a.DATE_EVALUATION
+    </sql>
+
+    <select id="findPage" resultType="com.huaxu.evaluation.vo.EvaluationResultVo">
+        select
+        <include refid="evaluation_result_list"></include>
+        from sc_evaluation_result a
+        <where>
+            a.status = 1 and a.tenant_id = #{dto.tenantId}
+            <if test="dto.userType != null and dto.userType != -999 and dto.userType != -9999 and  dto.programItems != null and dto.programItems.size() > 0">
+                <if test="dto.permissonType == 5 or dto.permissonType == 2">
+                    and ( a.DEPT_ORG_ID in
+                    <foreach collection="dto.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    or
+                    a.COMPANY_ORG_ID in
+                    <foreach collection="dto.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="dto.permissonType == 4 or dto.permissonType == 3">
+                    and a.DEPT_ORG_ID in
+                    <foreach collection="dto.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="dto.permissonType == 1">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="dto.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID = 0)
+                </if>
+            </if>
+        </where>
+    </select>
 </mapper>