From 59d2bf25b95ad4c60adb453cdd2bbad01a67e839 Mon Sep 17 00:00:00 2001 From: yinzuomei Date: Fri, 6 Dec 2019 15:30:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=89=93=E5=88=86=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/epdc/form/UserSysDeptInfoFormDTO.java | 29 ++ .../epdc/result/UserSysDeptInfoResultDTO.java | 60 +++ .../epdc/controller/SysDeptController.java | 16 + .../com/elink/esua/epdc/dao/SysDeptDao.java | 11 + .../esua/epdc/service/SysDeptService.java | 11 + .../epdc/service/impl/SysDeptServiceImpl.java | 51 ++ .../src/main/resources/mapper/SysDeptDao.xml | 33 ++ .../esua/epdc/dto/KpiManualScoreDTO.java | 132 +++++ .../esua/epdc/dto/KpiManualScoreTempDTO.java | 156 ++++++ .../dto/result/ImportExcelErrorResultDTO.java | 25 + .../dto/result/KpiManualScoreResultDTO.java | 109 ++++ .../KpiManualScoreTemplateResultDTO.java | 107 ++++ .../elink/esua/epdc/enums/KpiCycleEnum.java | 44 ++ .../elink/esua/epdc/utils/StreamUtils.java | 56 ++ .../controller/KpiManualScoreController.java | 124 +++++ .../KpiManualScoreTempController.java | 94 ++++ .../epdc/controller/KpiRuleController.java | 11 + .../esua/epdc/dao/KpiManualScoreDao.java | 38 ++ .../esua/epdc/dao/KpiManualScoreRuleDao.java | 2 + .../esua/epdc/dao/KpiManualScoreTempDao.java | 44 ++ .../com/elink/esua/epdc/dao/KpiRuleDao.java | 1 + .../epdc/entity/KpiManualScoreEntity.java | 86 ++++ .../epdc/entity/KpiManualScoreTempEntity.java | 126 +++++ .../esua/epdc/excel/KpiManualScoreExcel.java | 77 +++ .../epdc/excel/KpiManualScoreTempExcel.java | 107 ++++ .../excel/KpiManualScoreTemplateExcel.java | 117 +++++ .../esua/epdc/feign/AdminFeignClient.java | 26 + .../fallback/AdminFeignClientFallback.java | 24 + .../esua/epdc/redis/KpiManualScoreRedis.java | 47 ++ .../epdc/redis/KpiManualScoreTempRedis.java | 47 ++ .../epdc/service/KpiManualScoreService.java | 126 +++++ .../service/KpiManualScoreTempService.java | 95 ++++ .../esua/epdc/service/KpiRuleService.java | 9 + .../impl/KpiManualScoreServiceImpl.java | 484 ++++++++++++++++++ .../impl/KpiManualScoreTempServiceImpl.java | 104 ++++ .../epdc/service/impl/KpiRuleServiceImpl.java | 23 + .../resources/mapper/KpiManualScoreDao.xml | 80 +++ .../mapper/KpiManualScoreRuleDao.xml | 9 + .../mapper/KpiManualScoreTempDao.xml | 86 ++++ .../src/main/resources/mapper/KpiRuleDao.xml | 1 + 40 files changed, 2828 insertions(+) create mode 100644 esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java create mode 100644 esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UserSysDeptInfoResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/ImportExcelErrorResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/utils/StreamUtils.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreTempController.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreTempDao.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreEntity.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreTempEntity.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreExcel.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTempExcel.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTemplateExcel.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreRedis.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreTempRedis.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreTempService.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreTempServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java new file mode 100644 index 000000000..238a6ea6b --- /dev/null +++ b/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 deptIdList; + + /** + * 部门类型键值 + */ +// @NotEmpty(message = "部门类型不能为空") +// @Valid + private List typeKeyList; +} diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UserSysDeptInfoResultDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/UserSysDeptInfoResultDTO.java new file mode 100644 index 000000000..7bf08545a --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java index cb948dd7d..86d9abd2d 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java +++ b/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> getCompleteDeptList(@PathVariable("deptId") Long deptId) { return sysDeptService.getCompleteDeptList(deptId); } + + /** + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author yinzuomei + * @Description + * @Date 2019/12/4 19:41 + **/ + @PostMapping("queryUserSysDeptInfo") + public Result> queryUserSysDeptInfo(@RequestBody UserSysDeptInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + List list = sysDeptService.listUserSysDeptInfoResultDTO(formDTO); + return new Result>().ok(list); + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java index 99a5f7731..b25078dda 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java +++ b/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 { * @date 2019/11/27 19:32 */ List selectChildrenDeptNode(@Param("dataScopeDeptList") List dataScopeDeptList, @Param("parentDeptIdList") List parentDeptIdList); + + /** + * @param formDTO + * @return java.util.List + * @Author yinzuomei + * @Description + * @Date 2019/12/4 20:22 + **/ + List selectListUserSysDeptInfo(UserSysDeptInfoFormDTO formDTO); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index 0e4627efb..33c5b890c 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/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 { * @date 2019/11/28 11:13 */ Result getUserDeptOption(); + + /** + * @param formDTO + * @return java.util.List + * @Author yinzuomei + * @Description + * @Date 2019/12/4 19:43 + **/ + List listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index f4eaa9579..bcad9ea9e 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/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().ok((DeptOption) obj); } + /** + * @param formDTO + * @return java.util.List + * @Author yinzuomei + * @Description + * @Date 2019/12/4 19:43 + **/ + @Override + public List listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO) { + if(CollUtil.isEmpty(formDTO.getDeptIdList())){ + Long userId = SecurityUser.getUserId(); + // 查询当前用户所具有的的数据权限 + UserDetail userDetail = userDetailRedis.get(userId); + // 用户拥有的所有部门权限 + List dataScopeDeptList=userDetail.getDeptIdList(); + formDTO.setDeptIdList(dataScopeDeptList); + } + List 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); diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml index 5bf4177a1..03fccfdc3 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml @@ -157,4 +157,37 @@ ORDER BY tem2.create_date ASC + diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java new file mode 100644 index 000000000..0626f2f75 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java new file mode 100644 index 000000000..1db797349 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/ImportExcelErrorResultDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/ImportExcelErrorResultDTO.java new file mode 100644 index 000000000..d581645b6 --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreResultDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreResultDTO.java new file mode 100644 index 000000000..30ff72d29 --- /dev/null +++ b/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; + +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java new file mode 100644 index 000000000..cd5d571cb --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java new file mode 100644 index 000000000..476e9196c --- /dev/null +++ b/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; + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/utils/StreamUtils.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/utils/StreamUtils.java new file mode 100644 index 000000000..0d241b19d --- /dev/null +++ b/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(); + } + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java new file mode 100644 index 000000000..9e0763fb8 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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> page(@RequestParam Map params){ +// PageData page = kpiManualScoreService.page(params); + PageData page = kpiManualScoreService.listKpiManualScoreResultDTO(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + KpiManualScoreDTO data = kpiManualScoreService.get(id); + return new Result().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 params, HttpServletResponse response) throws Exception { + List 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 params, HttpServletResponse response) throws Exception { + List 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); + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreTempController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreTempController.java new file mode 100644 index 000000000..2686c98ac --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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> page(@RequestParam Map params){ + PageData page = kpiManualScoreTempService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + KpiManualScoreTempDTO data = kpiManualScoreTempService.get(id); + return new Result().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 params, HttpServletResponse response) throws Exception { + List list = kpiManualScoreTempService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, KpiManualScoreTempExcel.class); + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiRuleController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiRuleController.java index 7aac0becf..1012930b1 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiRuleController.java +++ b/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> getKpiManualRule() { + return kpiRuleService.listKpiRuleDTO(); + } } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java new file mode 100644 index 000000000..48c7be0c8 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + + List selectListKpiManualScoreResultDTO(Map params); +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreRuleDao.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreRuleDao.java index 1fcd3c605..6a9709a79 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreRuleDao.java +++ b/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 * @Date 2019/12/2 14:08 **/ List selectListKpiManualScoreDictResultDTO(); + + KpiManualScoreRuleEntity selectOneKpiManualScoreRuleByRuleId(String ruleId); } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreTempDao.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreTempDao.java new file mode 100644 index 000000000..eeaca7ab1 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + + int deleteManualScoreTemp(@Param("userId") String toString, + @Param("ruleId")String id, + @Param("scoreStartTime")String scoreStartTime); + + List selectListKpiManualScoreTemp(@Param("userId") String userId, + @Param("recordList")List recordList); +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiRuleDao.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiRuleDao.java index a100c7f48..a64fd10f4 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiRuleDao.java +++ b/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 { * @Date 2019/11/27 15:19 **/ KpiRuleQueryResultDTO queryDetailInfo(String id); + } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreEntity.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreEntity.java new file mode 100644 index 000000000..24b7f293f --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreTempEntity.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreTempEntity.java new file mode 100644 index 000000000..7c342660c --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreExcel.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreExcel.java new file mode 100644 index 000000000..04dfca01a --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTempExcel.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTempExcel.java new file mode 100644 index 000000000..961d03279 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTemplateExcel.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiManualScoreTemplateExcel.java new file mode 100644 index 000000000..15376ed2c --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java new file mode 100644 index 000000000..cbfd4aad0 --- /dev/null +++ b/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> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO); +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java new file mode 100644 index 000000000..eb2001373 --- /dev/null +++ b/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> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "queryUserSysDeptInfo", userSysDeptInfoFormDTO); + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreRedis.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreRedis.java new file mode 100644 index 000000000..c996282a7 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreTempRedis.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiManualScoreTempRedis.java new file mode 100644 index 000000000..955b9a2ef --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java new file mode 100644 index 000000000..0fb4ed3f5 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2019-12-04 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2019-12-04 + */ + List list(Map 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 + * @Author yinzuomei + * @Description 列表查询 + * @Date 2019/12/4 17:37 + **/ + PageData listKpiManualScoreResultDTO(Map params); + + /** + * @param params + * @return java.util.List + * @Author yinzuomei + * @Description 构造录入模板excel内容 + * @Date 2019/12/4 19:47 + **/ + List listKpiManualScoreTemplateResultDTO(Map 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); +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreTempService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreTempService.java new file mode 100644 index 000000000..2aa80f771 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2019-12-06 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2019-12-06 + */ + List list(Map 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); +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java index 30051b133..02eefcd39 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java +++ b/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 { * @Date 2019/12/2 14:59 **/ List listKpiRuleEntityByRereferenceId(String[] referenceIds); + + /** + * @param + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author yinzuomei + * @Description 已绑定手动打分的考核规则 手动打分下拉框使用 + * @Date 2019/12/4 15:52 + **/ + Result> listKpiRuleDTO(); } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java new file mode 100644 index 000000000..a03d1fd13 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 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 page(Map params) { + String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null; + String createdTime = params.containsKey("createdTime") ? params.get("createdTime").toString() : null; + QueryWrapper 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 page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + wrapper + ); + PageData list = getPageData(page, KpiManualScoreDTO.class); + return list; + } + + /** + * @param params + * @return com.elink.esua.epdc.commons.tools.page.PageData + * @Author yinzuomei + * @Description 列表查询 + * @Date 2019/12/4 17:37 + **/ + @Override + public PageData listKpiManualScoreResultDTO(Map params) { + IPage page = getPage(params); + List list = baseDao.selectListKpiManualScoreResultDTO(params); + return new PageData<>(list, page.getTotal()); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, KpiManualScoreDTO.class); + } + + /** + * @param + * @return java.util.List + * @Author yinzuomei + * @Description 导出录入模板 + * @Date 2019/12/4 18:00 + **/ + @Override + public List listKpiManualScoreTemplateResultDTO(Map params) { + List 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 dataScopeDeptList = getDataScopeDeptList(); + + //调用admin模块查询部门信息详情 + UserSysDeptInfoFormDTO userSysDeptInfoFormDTO = new UserSysDeptInfoFormDTO(); + userSysDeptInfoFormDTO.setDeptIdList(dataScopeDeptList); + List typeKeyList = new ArrayList<>(); + typeKeyList.add(kpiRuleEntity.getDeptTypeKey()); + userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList); + Result> result = this.queryUserSysDeptInfo(userSysDeptInfoFormDTO); + + if (result.getCode() == 0 && result.getData().size() > 0) { + List 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 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 recordList = ExcelImportUtil.importExcel(f, KpiManualScoreTemplateExcel.class, importParams); + if (CollUtil.isEmpty(recordList)) { + return new Result().error("导入内容不能为空"); + } + //校验记录数是否一致 + List errorRecordList = new ArrayList<>(); + List 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 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 deptIdList = new ArrayList<>(); + deptIdList.add(Long.valueOf(dto.getDeptId())); + userSysDeptInfoFormDTO.setDeptIdList(deptIdList); + List typeKeyList = new ArrayList<>(); + typeKeyList.add(kpiRuleEntity.getDeptTypeKey()); + userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList); + Result> result = this.queryUserSysDeptInfo(userSysDeptInfoFormDTO); + if (result.getCode() == 0 && result.getData().size() > 0) { + List 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 + * @Author yinzuomei + * @Description + * @Date 2019/12/6 13:58 + **/ + public QueryWrapper getUniqueWrapper(KpiManualScoreEntity entity) { + QueryWrapper 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> + * @Author yinzuomei + * @Description + * @Date 2019/12/6 13:58 + **/ + public Result> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO) { + return adminFeignClient.queryUserSysDeptInfo(userSysDeptInfoFormDTO); + } + + /** + * @param + * @return java.util.List + * @Author yinzuomei + * @Description 用户拥有的所有部门权限 + * @Date 2019/12/5 16:29 + **/ + public List 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 getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreTempServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreTempServiceImpl.java new file mode 100644 index 000000000..2fc8daf95 --- /dev/null +++ b/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 + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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 implements KpiManualScoreTempService { + + @Autowired + private KpiManualScoreTempRedis kpiManualScoreTempRedis; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, KpiManualScoreTempDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, KpiManualScoreTempDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper 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)); + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java index e26237c4c..4f242317b 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java +++ b/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 wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(dto.getRuleName()), "rule_name", dto.getRuleName()); + wrapper.ne(StringUtils.isNotBlank(dto.getId()), FieldConstant.ID, dto.getId()); + List 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 kpiRuleEntityList = baseDao.selectList(kpiRuleEntityQueryWrapper); return kpiRuleEntityList; } + + @Override + public Result> listKpiRuleDTO() { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("rule_mode",1); + wrapper.orderByDesc("CREATED_TIME"); + List kpiRuleEntityList=baseDao.selectList(wrapper); + List list= ConvertUtils.sourceToTarget(kpiRuleEntityList, KpiRuleDTO.class); + return new Result().ok(list); + } + } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml new file mode 100644 index 000000000..b64f4b426 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreRuleDao.xml b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreRuleDao.xml index 6a75ea319..3e6e45e4f 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreRuleDao.xml +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreRuleDao.xml @@ -30,4 +30,13 @@ ORDER BY CREATED_TIME DESC + + diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml new file mode 100644 index 000000000..1cd17d684 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE + FROM + epdc_kpi_manual_score_temp + WHERE + RULE_ID =#{ruleId} + AND user_id = #{userId} + AND score_start_time =#{scoreStartTime} + + + + diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml index bf85fca2e..bc84be77b 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml +++ b/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} +