Browse Source

手动打分管理

dev
尹作梅 6 years ago
parent
commit
59d2bf25b9
  1. 29
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java
  2. 60
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UserSysDeptInfoResultDTO.java
  3. 16
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java
  4. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
  5. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  6. 51
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  7. 33
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  8. 132
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java
  9. 156
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java
  10. 25
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/ImportExcelErrorResultDTO.java
  11. 109
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreResultDTO.java
  12. 107
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java
  13. 44
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java
  14. 56
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/utils/StreamUtils.java
  15. 124
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java
  16. 94
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreTempController.java
  17. 11
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiRuleController.java
  18. 38
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java
  19. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreRuleDao.java
  20. 44
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreTempDao.java
  21. 1
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiRuleDao.java
  22. 86
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreEntity.java
  23. 126
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreTempEntity.java
  24. 77
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreExcel.java
  25. 107
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTempExcel.java
  26. 117
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTemplateExcel.java
  27. 26
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  28. 24
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  29. 47
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreRedis.java
  30. 47
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreTempRedis.java
  31. 126
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java
  32. 95
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreTempService.java
  33. 9
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java
  34. 484
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java
  35. 104
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreTempServiceImpl.java
  36. 23
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java
  37. 80
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml
  38. 9
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreRuleDao.xml
  39. 86
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml
  40. 1
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml

29
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java

@ -0,0 +1,29 @@
package com.elink.esua.epdc.dto.epdc.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/4 19:37
*/
@Data
public class UserSysDeptInfoFormDTO implements Serializable {
/**
* 主键集合
*/
// @NotEmpty(message = "deptIdList不能为空")
// @Valid
private List<Long> deptIdList;
/**
* 部门类型键值
*/
// @NotEmpty(message = "部门类型不能为空")
// @Valid
private List<String> typeKeyList;
}

60
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UserSysDeptInfoResultDTO.java

@ -0,0 +1,60 @@
package com.elink.esua.epdc.dto.epdc.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/4 19:40
*/
@Data
public class UserSysDeptInfoResultDTO implements Serializable {
private static final long serialVersionUID = -4240447826256510696L;
/**
* 主键
*/
private Long id;
/**
* 部门名称
*/
private String name;
/**
* 上级ID
*/
private Long pid;
/**
* 上级名称
*/
private String parentName;
/**
* 所有上级ID,用逗号分开
*/
private String pids;
/**
* 所有上级名称,-连接
*/
private String parentNames;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
/**
* 网格
*/
private String grid;
}

16
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java

@ -19,6 +19,8 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.service.SysDeptService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -183,4 +185,18 @@ public class SysDeptController {
public Result<List<String>> getCompleteDeptList(@PathVariable("deptId") Long deptId) {
return sysDeptService.getCompleteDeptList(deptId);
}
/**
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>>
* @Author yinzuomei
* @Description
* @Date 2019/12/4 19:41
**/
@PostMapping("queryUserSysDeptInfo")
public Result<List<UserSysDeptInfoResultDTO>> queryUserSysDeptInfo(@RequestBody UserSysDeptInfoFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<UserSysDeptInfoResultDTO> list = sysDeptService.listUserSysDeptInfoResultDTO(formDTO);
return new Result<List<UserSysDeptInfoResultDTO>>().ok(list);
}
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java

@ -12,6 +12,8 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
@ -125,4 +127,13 @@ public interface SysDeptDao extends BaseDao<SysDeptEntity> {
* @date 2019/11/27 19:32
*/
List<SysDeptEntity> selectChildrenDeptNode(@Param("dataScopeDeptList") List<Long> dataScopeDeptList, @Param("parentDeptIdList") List<Long> parentDeptIdList);
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>
* @Author yinzuomei
* @Description
* @Date 2019/12/4 20:22
**/
List<UserSysDeptInfoResultDTO> selectListUserSysDeptInfo(UserSysDeptInfoFormDTO formDTO);
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -11,6 +11,8 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
@ -159,4 +161,13 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* @date 2019/11/28 11:13
*/
Result<DeptOption> getUserDeptOption();
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>
* @Author yinzuomei
* @Description
* @Date 2019/12/4 19:43
**/
List<UserSysDeptInfoResultDTO> listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO);
}

51
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -30,6 +30,8 @@ import com.elink.esua.epdc.commons.tools.utils.TreeUtils;
import com.elink.esua.epdc.dao.SysDeptDao;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import com.elink.esua.epdc.feign.GroupFeignClient;
import com.elink.esua.epdc.service.SysDeptService;
@ -336,6 +338,55 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return new Result<DeptOption>().ok((DeptOption) obj);
}
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>
* @Author yinzuomei
* @Description
* @Date 2019/12/4 19:43
**/
@Override
public List<UserSysDeptInfoResultDTO> listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO) {
if(CollUtil.isEmpty(formDTO.getDeptIdList())){
Long userId = SecurityUser.getUserId();
// 查询当前用户所具有的的数据权限
UserDetail userDetail = userDetailRedis.get(userId);
// 用户拥有的所有部门权限
List<Long> dataScopeDeptList=userDetail.getDeptIdList();
formDTO.setDeptIdList(dataScopeDeptList);
}
List<UserSysDeptInfoResultDTO> list = baseDao.selectListUserSysDeptInfo(formDTO);
// 处理记录,赋值parentNames
for (UserSysDeptInfoResultDTO resultDTO : list) {
if (resultDTO.getPid() != 0) {
String parentNames = "";
String street = "";
String community = "";
String grid = "";
String[] pids = resultDTO.getPids().split(",");
for (String id : pids) {
SysDeptEntity deptEntity = baseDao.getById(Long.valueOf(id));
parentNames += deptEntity.getName() + "-";
if (("street_party").equals(deptEntity.getTypeKey())) {
street = deptEntity.getName();
} else if (("community_party").equals(deptEntity.getTypeKey())) {
community = deptEntity.getName();
} else if (("grid_party").equals(deptEntity.getTypeKey())) {
grid = deptEntity.getName();
}
}
parentNames = parentNames.substring(0, parentNames.length() - 1);
resultDTO.setParentNames(parentNames);
resultDTO.setStreet(street);
resultDTO.setCommunity(community);
if (StringUtils.isNotBlank(grid)) {
resultDTO.setGrid(grid);
}
}
}
return list;
}
@Override
public void packageUserDeptOption(Long userId) {
UserDetail userDetail = userDetailRedis.get(userId);

33
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -157,4 +157,37 @@
ORDER BY tem2.create_date ASC
</select>
<select id="selectListUserSysDeptInfo" parameterType="com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO"
resultType="com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO">
SELECT
sd.id,
sd.NAME,
sd.pid,
p.NAME AS parentName,
sd.pids,
NULL AS parentNames,
null as street,
null as community,
(case
when sd.type_key='grid_party' then sd.name
else null
end) as grid
FROM
sys_dept sd
LEFT JOIN sys_dept p ON ( sd.pid = p.id )
WHERE
sd.del_flag = '0'
<if test="typeKeyList!=null and typeKeyList.size()>0">
AND sd.type_key in
<foreach collection="typeKeyList" item="typeKey" index="index" open="(" close=")" separator=",">
#{typeKey}
</foreach>
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
AND sd.id IN
<foreach collection="deptIdList" item="deptId" index="index" open="(" close=")" separator=",">
#{deptId}
</foreach>
</if>
</select>
</mapper>

132
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java

@ -0,0 +1,132 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@Data
public class KpiManualScoreDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* epdc_kpi_rule表主键
*/
@NotBlank(message = "规则id不能为空")
private String ruleId;
/**
* 被打分的部门id
*/
@NotBlank(message = "考核部门id不能为空")
private String deptId;
/**
* 得分
*/
@NotBlank(message = "得分不能为空")
@Min(0)
private Integer score;
/**
* 考核起止日期
*/
private Date scoreStartDate;
/**
* 考核终止日期
*/
private Date scoreEndDate;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 考核周期起始月
*/
@NotBlank(message = "考核周期起始月不能为空")
@JSONField(format = "yyyy-MM")
private Date scoreStartMonth;
}

156
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java

@ -0,0 +1,156 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@Data
public class KpiManualScoreTempDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 得分
*/
private Integer score;
/**
* 考核起止日期yyyy-MM-dd
*/
private Date scoreStartDate;
/**
* 考核终止日期yyyy-MM-dd
*/
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 导出用户id
*/
private String userId;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
/**
* 网格
*/
private String grid;
/**
* 规则名称
*/
private String ruleName;
/**
* 考核周期
*/
private String kpiCycleName;
/**
* 考核起止日期
*/
private String scoreStartTime;
/**
* 考核终止日期
*/
private Date scoreEndTime;
}

25
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/ImportExcelErrorResultDTO.java

@ -0,0 +1,25 @@
package com.elink.esua.epdc.dto.result;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/5 17:27
*/
@Data
public class ImportExcelErrorResultDTO implements Serializable {
private static final long serialVersionUID = -6085396247858232510L;
/**
* 错误数据行数
*/
private String errorLine;
/**
* 错误数据信息
*/
private String errorInfo;
}

109
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreResultDTO.java

@ -0,0 +1,109 @@
package com.elink.esua.epdc.dto.result;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/4 16:44
*/
@Data
public class KpiManualScoreResultDTO implements Serializable {
/**
* 主键
*/
private String id;
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 得分
*/
private Integer score;
/**
* 考核起止日期
*/
@JSONField(format = "yyyy-MM-dd")
private Date scoreStartDate;
/**
* 考核终止日期
*/
@JSONField(format = "yyyy-MM-dd")
private Date scoreEndDate;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 考核规则名称
*/
private String ruleName;
/**
* 考核周期(字典值)
*/
private String kpiCycle;
}

107
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java

@ -0,0 +1,107 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 录入模板
* @Author yinzuomei
* @Date 2019/12/4 17:44
*/
@Data
public class KpiManualScoreTemplateResultDTO implements Serializable {
private static final long serialVersionUID = 3228442740296126765L;
/**
* 规则名称
*/
private String ruleName;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
/**
* 网格
*/
private String grid;
/**
* 部门名称
*/
private String deptName;
/**
* 考核周期
*/
private String kpiCycleName;
/**
* 考核起止日期
*/
private String scoreStartTime;
/**
* 考核终止日期
*/
private String scoreEndTime;
/**
* 得分
*/
private Integer score;
/*********************************************************************************************************/
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 考核起止日期yyyy-MM-dd
*/
private Date scoreStartDate;
/**
* 考核终止日期yyyy-MM-dd
*/
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 导出用户id
*/
private String userId;
}

44
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java

@ -0,0 +1,44 @@
package com.elink.esua.epdc.enums;
/**
* @Auther: yinzuomei
* @Date: 2019/12/5 12:41
* @Description: 考核周期枚举
*/
public enum KpiCycleEnum {
/**
* 月month quarter year
*/
KPI_CYCLE_MONTH("month","月"),
/**
*
*/
KPI_CYCLE_QUARTER("quarter","季"),
/**
*
*/
KPI_CYCLE_YEAR("year","年");
private String value;
private String name;
KpiCycleEnum(String value, String name) {
this.value = value;
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

56
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/utils/StreamUtils.java

@ -0,0 +1,56 @@
package com.elink.esua.epdc.utils;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
/**
* 接收文件转化File
* Created by liuhongwei on 2019/6/21.
*/
public class StreamUtils {
public static File conversionFile(MultipartFile file){
File toFile =null;
InputStream ins = null;
try {
// 转化字节流
ins = file.getInputStream();
// 获取文件名字
toFile = new File(file.getOriginalFilename());
// 字节转化文件
inputStreamToFile(ins, toFile);
ins.close();
} catch (IOException e) {
new RenException(500,"文件转化失败");
}
return toFile;
}
/**
* 流转化
* @param ins file
* @return
* @author liuhongwei
* @date 2019/6/14 14:07
*/
public static void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

124
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java

@ -0,0 +1,124 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.KpiManualScoreDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO;
import com.elink.esua.epdc.excel.KpiManualScoreExcel;
import com.elink.esua.epdc.excel.KpiManualScoreTemplateExcel;
import com.elink.esua.epdc.service.KpiManualScoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@RestController
@RequestMapping("kpimanualscore")
public class KpiManualScoreController {
@Autowired
private KpiManualScoreService kpiManualScoreService;
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
@GetMapping("page")
public Result<PageData<KpiManualScoreResultDTO>> page(@RequestParam Map<String, Object> params){
// PageData<KpiManualScoreDTO> page = kpiManualScoreService.page(params);
PageData<KpiManualScoreResultDTO> page = kpiManualScoreService.listKpiManualScoreResultDTO(params);
return new Result<PageData<KpiManualScoreResultDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<KpiManualScoreDTO> get(@PathVariable("id") String id){
KpiManualScoreDTO data = kpiManualScoreService.get(id);
return new Result<KpiManualScoreDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody KpiManualScoreDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
return kpiManualScoreService.save(dto);
}
@PutMapping
public Result update(@RequestBody KpiManualScoreDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
return kpiManualScoreService.update(dto);
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiManualScoreService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiManualScoreDTO> list = kpiManualScoreService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, KpiManualScoreExcel.class);
}
/**
* @param params
* @return void
* @Author yinzuomei
* @Description 导出录入模板
* @Date 2019/12/4 17:46
**/
@GetMapping("exportTemplate")
public void exportTemplate(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiManualScoreTemplateResultDTO> list = kpiManualScoreService.listKpiManualScoreTemplateResultDTO(params);
ExcelUtils.exportExcelToTarget(response, simpleDateFormat.format(new Date()), list, KpiManualScoreTemplateExcel.class);
}
/**
* @param file
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author yinzuomei
* @Description 导入手动打分记录
* @Date 2019/12/5 15:45
**/
@PostMapping("importManualScoreExcel")
public Result importManualScoreExcel(@RequestParam("file") MultipartFile file) {
return kpiManualScoreService.importManualScoreExcel(file);
}
}

94
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreTempController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.KpiManualScoreTempDTO;
import com.elink.esua.epdc.excel.KpiManualScoreTempExcel;
import com.elink.esua.epdc.service.KpiManualScoreTempService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@RestController
@RequestMapping("kpimanualscoretemp")
public class KpiManualScoreTempController {
@Autowired
private KpiManualScoreTempService kpiManualScoreTempService;
@GetMapping("page")
public Result<PageData<KpiManualScoreTempDTO>> page(@RequestParam Map<String, Object> params){
PageData<KpiManualScoreTempDTO> page = kpiManualScoreTempService.page(params);
return new Result<PageData<KpiManualScoreTempDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<KpiManualScoreTempDTO> get(@PathVariable("id") String id){
KpiManualScoreTempDTO data = kpiManualScoreTempService.get(id);
return new Result<KpiManualScoreTempDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody KpiManualScoreTempDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
kpiManualScoreTempService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody KpiManualScoreTempDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
kpiManualScoreTempService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiManualScoreTempService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiManualScoreTempDTO> list = kpiManualScoreTempService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, KpiManualScoreTempExcel.class);
}
}

11
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiRuleController.java

@ -144,4 +144,15 @@ public class KpiRuleController {
ValidatorUtils.validateEntity(dto);
return kpiRuleService.edit(dto);
}
/**
* @return
* @Author yinzuomei
* @Description 已绑定手动打分的考核规则 手动打分下拉框使用
* @Date 2019/12/4 15:52
**/
@GetMapping("getKpiManualRule")
public Result<List<KpiRuleDTO>> getKpiManualRule() {
return kpiRuleService.listKpiRuleDTO();
}
}

38
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java

@ -0,0 +1,38 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO;
import com.elink.esua.epdc.entity.KpiManualScoreEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@Mapper
public interface KpiManualScoreDao extends BaseDao<KpiManualScoreEntity> {
List<KpiManualScoreResultDTO> selectListKpiManualScoreResultDTO(Map<String, Object> params);
}

2
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreRuleDao.java

@ -41,4 +41,6 @@ public interface KpiManualScoreRuleDao extends BaseDao<KpiManualScoreRuleEntity>
* @Date 2019/12/2 14:08
**/
List<KpiManualScoreDictResultDTO> selectListKpiManualScoreDictResultDTO();
KpiManualScoreRuleEntity selectOneKpiManualScoreRuleByRuleId(String ruleId);
}

44
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreTempDao.java

@ -0,0 +1,44 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.entity.KpiManualScoreTempEntity;
import com.elink.esua.epdc.excel.KpiManualScoreTemplateExcel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@Mapper
public interface KpiManualScoreTempDao extends BaseDao<KpiManualScoreTempEntity> {
int deleteManualScoreTemp(@Param("userId") String toString,
@Param("ruleId")String id,
@Param("scoreStartTime")String scoreStartTime);
List<KpiManualScoreTempEntity> selectListKpiManualScoreTemp(@Param("userId") String userId,
@Param("recordList")List<KpiManualScoreTemplateExcel> recordList);
}

1
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiRuleDao.java

@ -61,4 +61,5 @@ public interface KpiRuleDao extends BaseDao<KpiRuleEntity> {
* @Date 2019/11/27 15:19
**/
KpiRuleQueryResultDTO queryDetailInfo(String id);
}

86
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreEntity.java

@ -0,0 +1,86 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_kpi_manual_score")
public class KpiManualScoreEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 得分
*/
private Integer score;
/**
* 考核起止日期
*/
private Date scoreStartDate;
/**
* 考核终止日期
*/
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 完整部门名称
*/
private String allDeptNames;
}

126
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreTempEntity.java

@ -0,0 +1,126 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_kpi_manual_score_temp")
public class KpiManualScoreTempEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 得分
*/
private Integer score;
/**
* 考核起止日期yyyy-MM-dd
*/
private Date scoreStartDate;
/**
* 考核终止日期yyyy-MM-dd
*/
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 导出用户id
*/
private String userId;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
/**
* 网格
*/
private String grid;
/**
* 规则名称
*/
private String ruleName;
/**
* 考核周期
*/
private String kpiCycleName;
/**
* 考核起止日期
*/
private String scoreStartTime;
/**
* 考核终止日期
*/
private String scoreEndTime;
}

77
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreExcel.java

@ -0,0 +1,77 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@Data
public class KpiManualScoreExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "epdc_kpi_rule表主键")
private String ruleId;
@Excel(name = "被打分的部门id")
private String deptId;
@Excel(name = "得分")
private Integer score;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
@Excel(name = "删除标记")
private String delFlag;
@Excel(name = "所有父级部门id")
private String parentDeptIds;
@Excel(name = "所有父级部门名称")
private String parentDeptNames;
@Excel(name = "完整部门id")
private String allDeptIds;
@Excel(name = "完整部门名称")
private String allDeptNames;
}

107
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTempExcel.java

@ -0,0 +1,107 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@Data
public class KpiManualScoreTempExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "epdc_kpi_rule表主键")
private String ruleId;
@Excel(name = "被打分的部门id")
private String deptId;
@Excel(name = "得分")
private Integer score;
@Excel(name = "考核起止日期yyyy-MM-dd")
private Date scoreStartDate;
@Excel(name = "考核终止日期yyyy-MM-dd")
private Date scoreEndDate;
@Excel(name = "所有父级部门id")
private String parentDeptIds;
@Excel(name = "所有父级部门名称")
private String parentDeptNames;
@Excel(name = "完整部门名称")
private String allDeptNames;
@Excel(name = "完整部门id")
private String allDeptIds;
@Excel(name = "导出用户id")
private String userId;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
@Excel(name = "删除标记")
private String delFlag;
@Excel(name = "街道")
private String street;
@Excel(name = "社区")
private String community;
@Excel(name = "网格")
private String grid;
@Excel(name = "规则名称")
private String ruleName;
@Excel(name = "考核周期")
private String kpiCycleName;
@Excel(name = "考核起止日期")
private String scoreStartTime;
@Excel(name = "考核终止日期")
private Date scoreEndTime;
}

117
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTemplateExcel.java

@ -0,0 +1,117 @@
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* @Description 录入模板
* @Author yinzuomei
* @Date 2019/12/4 17:46
*/
@Data
public class KpiManualScoreTemplateExcel {
/**
* 街道
*/
@Excel(name = "街道")
private String street;
/**
* 社区
*/
@Excel(name = "社区")
private String community;
/**
* 网格
*/
@Excel(name = "网格")
private String grid;
/**
* 规则名称
*/
@Excel(name = "规则名称")
private String ruleName;
/**
* 考核周期
*/
@Excel(name = "考核周期")
private String kpiCycleName;
/**
* 考核起止日期
*/
@Excel(name = "考核起止日期")
private String scoreStartTime;
/**
* 考核终止日期
*/
@Excel(name = "考核终止日期")
private String scoreEndTime;
/**
* 得分
*/
@Excel(name = "得分")
private Integer score;
/************************************************ 我 是 一 条 分 割 线 ************************************************************************/
/************************************************ 我 是 一 条 分 割 线 ************************************************************************/
/************************************************ 我 是 一 条 分 割 线 ************************************************************************/
/**
* 部门名称
*
*/
private String deptName;
/************************************************ 组装数据 ************************************************************************/
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 考核起止日期
*/
private Date scoreStartDate;
/**
* 考核终止日期
*/
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 导出用户id
*/
private String userId;
}

26
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java

@ -0,0 +1,26 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
/**
* 管理端接口
*
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/7 9:27
*/
@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class)
public interface AdminFeignClient {
@PostMapping(value = "sys/dept/queryUserSysDeptInfo", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<UserSysDeptInfoResultDTO>> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO);
}

24
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java

@ -0,0 +1,24 @@
package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/5 10:26
*/
@Component
public class AdminFeignClientFallback implements AdminFeignClient {
@Override
public Result<List<UserSysDeptInfoResultDTO>> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "queryUserSysDeptInfo", userSysDeptInfoFormDTO);
}
}

47
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.redis;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@Component
public class KpiManualScoreRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

47
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreTempRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.redis;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@Component
public class KpiManualScoreTempRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

126
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java

@ -0,0 +1,126 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.KpiManualScoreDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO;
import com.elink.esua.epdc.entity.KpiManualScoreEntity;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
public interface KpiManualScoreService extends BaseService<KpiManualScoreEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<KpiManualScoreDTO>
* @author generator
* @date 2019-12-04
*/
PageData<KpiManualScoreDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<KpiManualScoreDTO>
* @author generator
* @date 2019-12-04
*/
List<KpiManualScoreDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return KpiManualScoreDTO
* @author generator
* @date 2019-12-04
*/
KpiManualScoreDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2019-12-04
*/
Result save(KpiManualScoreDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2019-12-04
*/
Result update(KpiManualScoreDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2019-12-04
*/
void delete(String[] ids);
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO>
* @Author yinzuomei
* @Description 列表查询
* @Date 2019/12/4 17:37
**/
PageData<KpiManualScoreResultDTO> listKpiManualScoreResultDTO(Map<String, Object> params);
/**
* @param params
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO>
* @Author yinzuomei
* @Description 构造录入模板excel内容
* @Date 2019/12/4 19:47
**/
List<KpiManualScoreTemplateResultDTO> listKpiManualScoreTemplateResultDTO(Map<String, Object> params);
/**
* @param file
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author yinzuomei
* @Description 导入手动打分记录
* @Date 2019/12/5 15:46
**/
Result importManualScoreExcel(MultipartFile file);
}

95
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreTempService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.KpiManualScoreTempDTO;
import com.elink.esua.epdc.entity.KpiManualScoreTempEntity;
import java.util.List;
import java.util.Map;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
public interface KpiManualScoreTempService extends BaseService<KpiManualScoreTempEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<KpiManualScoreTempDTO>
* @author generator
* @date 2019-12-06
*/
PageData<KpiManualScoreTempDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<KpiManualScoreTempDTO>
* @author generator
* @date 2019-12-06
*/
List<KpiManualScoreTempDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return KpiManualScoreTempDTO
* @author generator
* @date 2019-12-06
*/
KpiManualScoreTempDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2019-12-06
*/
void save(KpiManualScoreTempDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2019-12-06
*/
void update(KpiManualScoreTempDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2019-12-06
*/
void delete(String[] ids);
}

9
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java

@ -140,4 +140,13 @@ public interface KpiRuleService extends BaseService<KpiRuleEntity> {
* @Date 2019/12/2 14:59
**/
List<KpiRuleEntity> listKpiRuleEntityByRereferenceId(String[] referenceIds);
/**
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.KpiRuleDTO>>
* @Author yinzuomei
* @Description 已绑定手动打分的考核规则 手动打分下拉框使用
* @Date 2019/12/4 15:52
**/
Result<List<KpiRuleDTO>> listKpiRuleDTO();
}

484
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java

@ -0,0 +1,484 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.redis.UserDetailRedis;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.KpiManualScoreDao;
import com.elink.esua.epdc.dao.KpiManualScoreRuleDao;
import com.elink.esua.epdc.dao.KpiManualScoreTempDao;
import com.elink.esua.epdc.dao.KpiRuleDao;
import com.elink.esua.epdc.dto.KpiManualScoreDTO;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.dto.result.ImportExcelErrorResultDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO;
import com.elink.esua.epdc.entity.KpiManualScoreEntity;
import com.elink.esua.epdc.entity.KpiManualScoreRuleEntity;
import com.elink.esua.epdc.entity.KpiManualScoreTempEntity;
import com.elink.esua.epdc.entity.KpiRuleEntity;
import com.elink.esua.epdc.enums.KpiCycleEnum;
import com.elink.esua.epdc.excel.KpiManualScoreTemplateExcel;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.redis.KpiManualScoreRedis;
import com.elink.esua.epdc.service.KpiManualScoreService;
import com.elink.esua.epdc.service.KpiManualScoreTempService;
import com.elink.esua.epdc.utils.StreamUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-04
*/
@Service
public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao, KpiManualScoreEntity> implements KpiManualScoreService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private KpiManualScoreRedis kpiManualScoreRedis;
@Autowired
private KpiManualScoreRuleDao kpiManualScoreRuleDao;
@Autowired
private KpiRuleDao kpiRuleDao;
@Autowired
private UserDetailRedis userDetailRedis;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private KpiManualScoreTempDao kpiManualScoreTempDao;
@Autowired
private KpiManualScoreTempService kpiManualScoreTempService;
//设置日期格式
private SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-MM");
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public PageData<KpiManualScoreDTO> page(Map<String, Object> params) {
String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null;
String createdTime = params.containsKey("createdTime") ? params.get("createdTime").toString() : null;
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(ruleId), "RULE_ID", ruleId);
wrapper.between(StringUtils.isNotBlank(createdTime), "DATE_FORMAT(CREATED_TIME, '%Y-%m' )", createdTime, createdTime);
IPage<KpiManualScoreEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
wrapper
);
PageData<KpiManualScoreDTO> list = getPageData(page, KpiManualScoreDTO.class);
return list;
}
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO>
* @Author yinzuomei
* @Description 列表查询
* @Date 2019/12/4 17:37
**/
@Override
public PageData<KpiManualScoreResultDTO> listKpiManualScoreResultDTO(Map<String, Object> params) {
IPage<KpiManualScoreResultDTO> page = getPage(params);
List<KpiManualScoreResultDTO> list = baseDao.selectListKpiManualScoreResultDTO(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<KpiManualScoreDTO> list(Map<String, Object> params) {
List<KpiManualScoreEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, KpiManualScoreDTO.class);
}
/**
* @param
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO>
* @Author yinzuomei
* @Description 导出录入模板
* @Date 2019/12/4 18:00
**/
@Override
public List<KpiManualScoreTemplateResultDTO> listKpiManualScoreTemplateResultDTO(Map<String, Object> params) {
List<KpiManualScoreTemplateResultDTO> list = new ArrayList<>();
//用户所选规则
String ruleId = params.get("ruleId").toString();
String scoreStartTime = params.get("scoreStartTime").toString();
Date scoreStartDateMonth = new Date();
try {
scoreStartDateMonth = monthFormat.parse(scoreStartTime);
} catch (ParseException e) {
e.printStackTrace();
}
Date scoreEndDateMonth = new Date();
KpiRuleEntity kpiRuleEntity = kpiRuleDao.selectById(ruleId);
//考核周期赋值
String kpiCycleName = "";
if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_MONTH.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_MONTH.getName();
scoreEndDateMonth = scoreStartDateMonth;
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_QUARTER.getName();
scoreEndDateMonth = stepMonth(scoreStartDateMonth, 2);
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_YEAR.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_YEAR.getName();
scoreEndDateMonth = stepMonth(scoreStartDateMonth, 11);
}
// 用户拥有的所有部门权限
List<Long> dataScopeDeptList = getDataScopeDeptList();
//调用admin模块查询部门信息详情
UserSysDeptInfoFormDTO userSysDeptInfoFormDTO = new UserSysDeptInfoFormDTO();
userSysDeptInfoFormDTO.setDeptIdList(dataScopeDeptList);
List<String> typeKeyList = new ArrayList<>();
typeKeyList.add(kpiRuleEntity.getDeptTypeKey());
userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList);
Result<List<UserSysDeptInfoResultDTO>> result = this.queryUserSysDeptInfo(userSysDeptInfoFormDTO);
if (result.getCode() == 0 && result.getData().size() > 0) {
List<UserSysDeptInfoResultDTO> userSysDeptInfoResultDTOList = result.getData();
for (UserSysDeptInfoResultDTO userSysDeptInfoResultDTO : userSysDeptInfoResultDTOList) {
KpiManualScoreTemplateResultDTO kpiManualScoreTemplateResultDTO = new KpiManualScoreTemplateResultDTO();
kpiManualScoreTemplateResultDTO.setRuleName(kpiRuleEntity.getRuleName());
kpiManualScoreTemplateResultDTO.setStreet(userSysDeptInfoResultDTO.getStreet());
kpiManualScoreTemplateResultDTO.setCommunity(userSysDeptInfoResultDTO.getCommunity());
kpiManualScoreTemplateResultDTO.setGrid(userSysDeptInfoResultDTO.getGrid());
kpiManualScoreTemplateResultDTO.setDeptName(userSysDeptInfoResultDTO.getName());
kpiManualScoreTemplateResultDTO.setKpiCycleName(kpiCycleName);
kpiManualScoreTemplateResultDTO.setScoreStartTime(dateFormat.format(getFirstDayDateOfMonth(scoreStartDateMonth)));
kpiManualScoreTemplateResultDTO.setScoreEndTime(dateFormat.format(getLastDayOfMonth(scoreEndDateMonth)));
kpiManualScoreTemplateResultDTO.setScore(null);
kpiManualScoreTemplateResultDTO.setRuleId(kpiRuleEntity.getId());
kpiManualScoreTemplateResultDTO.setDeptId(userSysDeptInfoResultDTO.getId().toString());
kpiManualScoreTemplateResultDTO.setScoreStartDate(getFirstDayDateOfMonth(scoreStartDateMonth));
kpiManualScoreTemplateResultDTO.setScoreEndDate(getLastDayOfMonth(scoreEndDateMonth));
kpiManualScoreTemplateResultDTO.setParentDeptIds(userSysDeptInfoResultDTO.getPids());
kpiManualScoreTemplateResultDTO.setParentDeptNames(userSysDeptInfoResultDTO.getParentNames());
kpiManualScoreTemplateResultDTO.setAllDeptIds(userSysDeptInfoResultDTO.getPids() + "," + userSysDeptInfoResultDTO.getId());
kpiManualScoreTemplateResultDTO.setAllDeptNames(userSysDeptInfoResultDTO.getParentNames() + "-" + userSysDeptInfoResultDTO.getName());
kpiManualScoreTemplateResultDTO.setUserId(SecurityUser.getUserId().toString());
list.add(kpiManualScoreTemplateResultDTO);
}
//删除临时表数据
kpiManualScoreTempDao.deleteManualScoreTemp(SecurityUser.getUserId().toString(),
kpiRuleEntity.getId(),
dateFormat.format(getFirstDayDateOfMonth(scoreStartDateMonth)));
//插入临时表
List<KpiManualScoreTempEntity> tempEntityList = ConvertUtils.sourceToTarget(list, KpiManualScoreTempEntity.class);
kpiManualScoreTempService.insertBatch(tempEntityList, 200);
}
return list;
}
/**
* @param file
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author yinzuomei
* @Description 导入手动打分记录
* @Date 2019/12/5 15:46
**/
@Override
@Transactional(rollbackFor = Exception.class)
public Result importManualScoreExcel(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
try {
//判断上传文件类型
String originalFilename = file.getOriginalFilename();
if (!originalFilename.contains(".xlsx") && !originalFilename.contains(".xls")) {
return new Result().error("请选择.xls或者.xlsx格式文件");
}
ImportParams importParams = new ImportParams();
List<KpiManualScoreTemplateExcel> recordList = ExcelImportUtil.importExcel(f, KpiManualScoreTemplateExcel.class, importParams);
if (CollUtil.isEmpty(recordList)) {
return new Result().error("导入内容不能为空");
}
//校验记录数是否一致
List<ImportExcelErrorResultDTO> errorRecordList = new ArrayList<>();
List<KpiManualScoreTempEntity> tempEntityList = kpiManualScoreTempDao.selectListKpiManualScoreTemp(SecurityUser.getUserId().toString(), recordList);
if (CollUtil.isEmpty(tempEntityList) || tempEntityList.size() != recordList.size()) {
ImportExcelErrorResultDTO excelErrorResultDTO = new ImportExcelErrorResultDTO();
excelErrorResultDTO.setErrorLine("0");
excelErrorResultDTO.setErrorInfo("导入记录条数与导出模板不一致,请核对");
errorRecordList.add(excelErrorResultDTO);
}
if (CollUtil.isNotEmpty(errorRecordList)) {
Result errorResult = new Result();
errorResult.setCode(ErrorCode.INTERNAL_SERVER_ERROR);
return errorResult.ok(errorRecordList);
}
List<KpiManualScoreEntity> kpiManualScoreEntityList = ConvertUtils.sourceToTarget(tempEntityList, KpiManualScoreEntity.class);
//循环插入:如果存在则删除原纪录
for (KpiManualScoreEntity kpiManualScoreEntity : kpiManualScoreEntityList) {
baseDao.delete(getUniqueWrapper(kpiManualScoreEntity));
baseDao.insert(kpiManualScoreEntity);
}
//删除临时表数据
kpiManualScoreTempDao.deleteManualScoreTemp(SecurityUser.getUserId().toString(),
tempEntityList.get(0).getRuleId(),
tempEntityList.get(0).getScoreStartTime());
} finally {
// logger.info("记得删除文件哦");
this.deleteAllFilesOfDir(f);
}
return new Result();
}
/**
* 删除文件夹强制删除
*
* @param path
*/
public void deleteAllFilesOfDir(File path) {
if (null != path) {
if (!path.exists())
return;
if (path.isFile()) {
boolean result = path.delete();
int tryCount = 0;
while (!result && tryCount++ < 10) {
System.gc(); // 回收资源
result = path.delete();
}
}
File[] files = path.listFiles();
if (null != files) {
for (int i = 0; i < files.length; i++) {
deleteAllFilesOfDir(files[i]);
}
}
path.delete();
}
}
@Override
public KpiManualScoreDTO get(String id) {
KpiManualScoreEntity entity = baseDao.selectById(id);
KpiManualScoreDTO kpiManualScoreDTO = ConvertUtils.sourceToTarget(entity, KpiManualScoreDTO.class);
try {
kpiManualScoreDTO.setScoreStartMonth(monthFormat.parse(monthFormat.format(kpiManualScoreDTO.getScoreStartDate())));
} catch (ParseException e) {
e.printStackTrace();
}
return kpiManualScoreDTO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result save(KpiManualScoreDTO dto) {
KpiRuleEntity kpiRuleEntity = kpiRuleDao.selectById(dto.getRuleId());
//得分不能大于满分
KpiManualScoreRuleEntity kpiManualScoreRuleEntity = kpiManualScoreRuleDao.selectOneKpiManualScoreRuleByRuleId(kpiRuleEntity.getId());
if (null == kpiManualScoreRuleEntity) {
return new Result().error("没有找到关联的手动打分项");
} else if (null != kpiManualScoreRuleEntity && dto.getScore() > kpiManualScoreRuleEntity.getFullMarks()) {
return new Result().error("得分不能高于满分");
}
Date scoreEndDateMonth = new Date();
if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_MONTH.getValue())) {
scoreEndDateMonth = dto.getScoreStartMonth();
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue())) {
scoreEndDateMonth = stepMonth(dto.getScoreStartMonth(), 2);
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_YEAR.getValue())) {
scoreEndDateMonth = stepMonth(dto.getScoreStartMonth(), 11);
}
dto.setScoreStartDate(getFirstDayDateOfMonth(dto.getScoreStartMonth()));
dto.setScoreEndDate(getLastDayOfMonth(scoreEndDateMonth));
//调用admin模块查询部门信息详情
UserSysDeptInfoFormDTO userSysDeptInfoFormDTO = new UserSysDeptInfoFormDTO();
List<Long> deptIdList = new ArrayList<>();
deptIdList.add(Long.valueOf(dto.getDeptId()));
userSysDeptInfoFormDTO.setDeptIdList(deptIdList);
List<String> typeKeyList = new ArrayList<>();
typeKeyList.add(kpiRuleEntity.getDeptTypeKey());
userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList);
Result<List<UserSysDeptInfoResultDTO>> result = this.queryUserSysDeptInfo(userSysDeptInfoFormDTO);
if (result.getCode() == 0 && result.getData().size() > 0) {
List<UserSysDeptInfoResultDTO> userSysDeptInfoResultDTOList = result.getData();
UserSysDeptInfoResultDTO userSysDeptInfoResultDTO = userSysDeptInfoResultDTOList.get(0);
dto.setParentDeptIds(userSysDeptInfoResultDTO.getPids());
dto.setParentDeptNames(userSysDeptInfoResultDTO.getParentNames());
dto.setAllDeptIds(userSysDeptInfoResultDTO.getPids() + "," + userSysDeptInfoResultDTO.getId());
dto.setAllDeptNames(userSysDeptInfoResultDTO.getParentNames() + "-" + userSysDeptInfoResultDTO.getName());
} else {
return new Result().error("获取部门相关信息失败");
}
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
baseDao.delete(getUniqueWrapper(entity));
insert(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result update(KpiManualScoreDTO dto) {
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
//得分不能大于满分
KpiManualScoreRuleEntity kpiManualScoreRuleEntity = kpiManualScoreRuleDao.selectOneKpiManualScoreRuleByRuleId(dto.getRuleId());
if (null == kpiManualScoreRuleEntity) {
return new Result().error("没有找到关联的手动打分项");
} else if (null != kpiManualScoreRuleEntity && dto.getScore() > kpiManualScoreRuleEntity.getFullMarks()) {
return new Result().error("得分不能高于满分");
}
updateById(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param entity
* @return com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<com.elink.esua.epdc.entity.KpiManualScoreEntity>
* @Author yinzuomei
* @Description
* @Date 2019/12/6 13:58
**/
public QueryWrapper<KpiManualScoreEntity> getUniqueWrapper(KpiManualScoreEntity entity) {
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(entity.getRuleId()), "RULE_ID", entity.getRuleId())
.eq(StringUtils.isNotBlank(entity.getDeptId()), "DEPT_ID", entity.getDeptId())
.eq("score_end_date", entity.getScoreEndDate())
.eq("score_start_date", entity.getScoreStartDate());
return wrapper;
}
/**
* @param userSysDeptInfoFormDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>>
* @Author yinzuomei
* @Description
* @Date 2019/12/6 13:58
**/
public Result<List<UserSysDeptInfoResultDTO>> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO) {
return adminFeignClient.queryUserSysDeptInfo(userSysDeptInfoFormDTO);
}
/**
* @param
* @return java.util.List<java.lang.Long>
* @Author yinzuomei
* @Description 用户拥有的所有部门权限
* @Date 2019/12/5 16:29
**/
public List<Long> getDataScopeDeptList() {
Long userId = SecurityUser.getUserId();
// 查询当前用户所具有的的数据权限
UserDetail userDetail = userDetailRedis.get(userId);
// 用户拥有的所有部门权限
return userDetail.getDeptIdList();
}
/**
* @param sourceDate
* @param month
* @return java.util.Date
* @Author yinzuomei
* @Description
* @Date 2019/12/5 13:46
**/
public Date stepMonth(Date sourceDate, int month) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.MONTH, month);
return c.getTime();
}
/**
* @param date
* @return java.util.Date
* @Author yinzuomei
* @Description 获取传入日期所在月的第一天
* @Date 2019/12/5 13:46
**/
public Date getFirstDayDateOfMonth(Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
/**
* @param date
* @return java.util.Date
* @Author yinzuomei
* @Description 获取传入日期所在月的最后一天
* @Date 2019/12/5 13:47
**/
public Date getLastDayOfMonth(Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
private QueryWrapper<KpiManualScoreEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
}

104
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreTempServiceImpl.java

@ -0,0 +1,104 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.dao.KpiManualScoreTempDao;
import com.elink.esua.epdc.dto.KpiManualScoreTempDTO;
import com.elink.esua.epdc.entity.KpiManualScoreTempEntity;
import com.elink.esua.epdc.redis.KpiManualScoreTempRedis;
import com.elink.esua.epdc.service.KpiManualScoreTempService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 绩效考核手动打分记录
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-06
*/
@Service
public class KpiManualScoreTempServiceImpl extends BaseServiceImpl<KpiManualScoreTempDao, KpiManualScoreTempEntity> implements KpiManualScoreTempService {
@Autowired
private KpiManualScoreTempRedis kpiManualScoreTempRedis;
@Override
public PageData<KpiManualScoreTempDTO> page(Map<String, Object> params) {
IPage<KpiManualScoreTempEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, KpiManualScoreTempDTO.class);
}
@Override
public List<KpiManualScoreTempDTO> list(Map<String, Object> params) {
List<KpiManualScoreTempEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, KpiManualScoreTempDTO.class);
}
private QueryWrapper<KpiManualScoreTempEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<KpiManualScoreTempEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public KpiManualScoreTempDTO get(String id) {
KpiManualScoreTempEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, KpiManualScoreTempDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(KpiManualScoreTempDTO dto) {
KpiManualScoreTempEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreTempEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(KpiManualScoreTempDTO dto) {
KpiManualScoreTempEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreTempEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

23
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java

@ -17,6 +17,7 @@
package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
@ -210,6 +211,17 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
}
public Result checkKpiRuleSaveOrUpdateFormDTO(KpiRuleSaveOrUpdateFormDTO dto) {
if (StringUtils.isNotBlank(dto.getRuleName())) {
QueryWrapper<KpiRuleEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(dto.getRuleName()), "rule_name", dto.getRuleName());
wrapper.ne(StringUtils.isNotBlank(dto.getId()), FieldConstant.ID, dto.getId());
List<KpiRuleEntity> list = baseDao.selectList(wrapper);
if (CollUtil.isNotEmpty(list)) {
return new Result().error("规则名称已存在");
}
}else{
return new Result().error("规则名称不能为空");
}
if (("0").equals(dto.getRuleMode())) {
//是否缺少参数
KpiFormulaEntity kpiFormulaEntity = kpiFormulaDao.selectById(dto.getReferenceId());
@ -246,4 +258,15 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
List<KpiRuleEntity> kpiRuleEntityList = baseDao.selectList(kpiRuleEntityQueryWrapper);
return kpiRuleEntityList;
}
@Override
public Result<List<KpiRuleDTO>> listKpiRuleDTO() {
QueryWrapper<KpiRuleEntity> wrapper = new QueryWrapper<>();
wrapper.eq("rule_mode",1);
wrapper.orderByDesc("CREATED_TIME");
List<KpiRuleEntity> kpiRuleEntityList=baseDao.selectList(wrapper);
List<KpiRuleDTO> list= ConvertUtils.sourceToTarget(kpiRuleEntityList, KpiRuleDTO.class);
return new Result().ok(list);
}
}

80
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml

@ -0,0 +1,80 @@
<?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.elink.esua.epdc.dao.KpiManualScoreDao">
<resultMap type="com.elink.esua.epdc.entity.KpiManualScoreEntity" id="kpiManualScoreMap">
<result property="id" column="ID"/>
<result property="ruleId" column="RULE_ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="score" column="SCORE"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="parentDeptIds" column="PARENT_DEPT_IDS"/>
<result property="parentDeptNames" column="PARENT_DEPT_NAMES"/>
<result property="allDeptIds" column="ALL_DEPT_IDS"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<result property="scoreStartDate" column="score_start_date"/>
<result property="scoreEndDate" column="score_end_date"/>
</resultMap>
<resultMap type="com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO" id="KpiManualScoreResultDTOMap">
<result property="id" column="ID"/>
<result property="ruleId" column="RULE_ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="score" column="SCORE"/>
<result property="parentDeptIds" column="PARENT_DEPT_IDS"/>
<result property="parentDeptNames" column="PARENT_DEPT_NAMES"/>
<result property="allDeptIds" column="ALL_DEPT_IDS"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="ruleName" column="rule_name"/>
<result property="kpiCycle" column="kpi_cycle"/>
<result property="scoreStartDate" column="score_start_date"/>
<result property="scoreEndDate" column="score_end_date"/>
</resultMap>
<select id="selectListKpiManualScoreResultDTO" parameterType="map" resultMap="KpiManualScoreResultDTOMap">
SELECT
kmc.id,
kmc.rule_id,
kmc.dept_id,
kmc.score,
kmc.parent_dept_ids,
kmc.parent_dept_names,
kmc.all_dept_ids,
kmc.all_dept_names,
kmc.revision,
kmc.created_by,
kmc.created_time,
kmc.updated_by,
kmc.updated_time,
kmc.del_flag,
kr.rule_name,
kr.kpi_cycle,
kmc.score_start_date,
kmc.score_end_date
FROM
epdc_kpi_manual_score kmc
left join epdc_kpi_rule kr
on(kmc.RULE_ID=kr.id)
WHERE
kmc.del_flag = '0'
<if test="ruleId!=null and ruleId!=''">
AND kmc.rule_id =#{ruleId}
</if>
<if test="scoreStartDate != null and scoreStartDate != ''">
AND DATE_FORMAT( kmc.score_start_date, '%Y-%m' ) BETWEEN #{scoreStartDate} AND #{scoreStartDate}
</if>
ORDER BY kmc.CREATED_TIME DESC
</select>
</mapper>

9
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreRuleDao.xml

@ -30,4 +30,13 @@
ORDER BY
CREATED_TIME DESC
</select>
<select id="selectOneKpiManualScoreRuleByRuleId" resultMap="kpiManualScoreMap">
SELECT *
FROM epdc_kpi_manual_score_rule
WHERE DEL_FLAG = '0'
AND id = ( SELECT kr.reference_id
FROM epdc_kpi_rule kr
WHERE kr.id=#{ruleId})
</select>
</mapper>

86
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml

@ -0,0 +1,86 @@
<?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.elink.esua.epdc.dao.KpiManualScoreTempDao">
<resultMap type="com.elink.esua.epdc.entity.KpiManualScoreTempEntity" id="kpiManualScoreTempMap">
<result property="id" column="ID"/>
<result property="ruleId" column="RULE_ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="score" column="SCORE"/>
<result property="scoreStartDate" column="score_start_date"/>
<result property="scoreEndDate" column="score_end_date"/>
<result property="parentDeptIds" column="PARENT_DEPT_IDS"/>
<result property="parentDeptNames" column="PARENT_DEPT_NAMES"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<result property="allDeptIds" column="ALL_DEPT_IDS"/>
<result property="userId" column="USER_ID"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="street" column="street"/>
<result property="community" column="community"/>
<result property="grid" column="grid"/>
<result property="ruleName" column="rule_name"/>
<result property="kpiCycleName" column="kpi_cycle_name"/>
<result property="scoreStartTime" column="score_start_time"/>
<result property="scoreEndTime" column="score_end_time"/>
</resultMap>
<delete id="deleteManualScoreTemp" parameterType="map">
DELETE
FROM
epdc_kpi_manual_score_temp
WHERE
RULE_ID =#{ruleId}
AND user_id = #{userId}
AND score_start_time =#{scoreStartTime}
</delete>
<select id="selectListKpiManualScoreTemp" parameterType="map" resultMap="kpiManualScoreTempMap">
<foreach collection="recordList" item="record" index="index" open="" close="" separator="union">
select temp.ID,
temp.RULE_ID,
temp.DEPT_ID,
#{record.score} as SCORE,
temp.score_start_date,
temp.score_end_date,
temp.PARENT_DEPT_IDS,
temp.PARENT_DEPT_NAMES,
temp.ALL_DEPT_NAMES,
temp.ALL_DEPT_IDS,
temp.REVISION,
temp.CREATED_BY,
temp.CREATED_TIME,
temp.UPDATED_BY,
temp.UPDATED_TIME,
temp.DEL_FLAG,
temp.street,
temp.community,
temp.grid,
temp.rule_name,
temp.kpi_cycle_name,
temp.score_start_time,
temp.score_end_time
from epdc_kpi_manual_score_temp temp,epdc_kpi_rule kr,epdc_kpi_manual_score_rule sr
where temp.DEL_FLAG='0'
and kr.DEL_FLAG='0'
and temp.RULE_ID=kr.id
and temp.USER_ID=#{userId}
and kr.reference_id=sr.id
and temp.rule_name=#{record.ruleName}
and temp.street=#{record.street}
and temp.community=#{record.community}
and temp.grid=#{record.grid}
and temp.kpi_cycle_name=#{record.kpiCycleName}
and temp.score_start_time=#{record.scoreStartTime}
and temp.score_end_time=#{record.scoreEndTime}
and #{record.score} &gt;=0
and #{record.score} &lt;=sr.full_marks
and #{record.score} is not null
</foreach>
</select>
</mapper>

1
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml

@ -128,4 +128,5 @@
ekr.DEL_FLAG = '0'
and ekr.id=#{id}
</select>
</mapper>

Loading…
Cancel
Save