Browse Source

收到打分修改(未测试)

feature/dangjian
yujintao 6 years ago
parent
commit
bd27deb412
  1. 11
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/NumConstant.java
  2. 39
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java
  3. 5
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/DateUtils.java
  4. 46
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/LocalDateUtils.java
  5. 11
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java
  6. 68
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java
  7. 18
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java
  8. 94
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreTempController.java
  9. 30
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java
  10. 44
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreTempDao.java
  11. 5
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreEntity.java
  12. 47
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiManualScoreTempEntity.java
  13. 95
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreTempService.java
  14. 819
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java
  15. 104
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreTempServiceImpl.java
  16. 165
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml
  17. 86
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreTempDao.xml

11
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/NumConstant.java

@ -9,17 +9,20 @@ package com.elink.esua.epdc.commons.tools.constant;
*/
public interface NumConstant {
int TWO_NEG = -2;
int ONE_NEG = -1;
int ZERO = 0;
int ONE = 1;
int TWO = 2;
int THREE = 3;
int FOUR = 4;
int SIX = 6;
int ONE_NEG = -1;
int TWO_NEG = -2;
int SEVEN = 7;
int EIGHT = 8;
int NINE = 9;
int TEN = 10;
int ELEVEN = 11;
int FIFTEEN = 15;
int TWENTY = 20;
int THIRTY = 30;

39
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java

@ -0,0 +1,39 @@
package com.elink.esua.epdc.commons.tools.constant;
import org.apache.commons.codec.CharEncoding;
import org.springframework.http.MediaType;
/**
* 字符串常量
*
* @author work@yujt.net.cn
* @date 2019/12/13 11:19
*/
public interface StrConstant {
String UTF_8 = CharEncoding.UTF_8;
String ISO_8859_1 = CharEncoding.ISO_8859_1;
String APPLICATION_JSON_UTF8_VALUE = MediaType.APPLICATION_JSON_UTF8_VALUE;
String EXCEL_SUFFIX_2003 = ".xls";
String EXCEL_SUFFIX_2007 = ".xlsx";
/**
* 连字符号短杠
*/
String HYPHEN = "-";
/**
* 英文逗号
*/
String COMMA = ",";
/**
* 冒号
*/
String COLON = ":";
}

5
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/DateUtils.java

@ -25,11 +25,16 @@ import java.util.Date;
* @since 1.0.0
*/
public class DateUtils {
/** 时间格式(yyyy-MM-dd) */
public final static String DATE_PATTERN = "yyyy-MM-dd";
/** 时间格式(yyyy-MM-dd HH:mm:ss) */
public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
/** 时间格式(yyyyMMddHHmmss) */
public final static String DATE_TIME_NO_SPLIT = "yyyyMMddHHmmss";
/**
* 日期格式化 日期格式为yyyy-MM-dd
* @param date 日期

46
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/LocalDateUtils.java

@ -0,0 +1,46 @@
package com.elink.esua.epdc.commons.tools.utils;
import java.time.*;
import java.util.Date;
/**
* @author work@yujt.net.cn
* @date 2019/12/13 15:05
*/
public class LocalDateUtils {
public static LocalDateTime DateToLocalDateTime(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
public static LocalDate DateToLocalDate(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
return localDateTime.toLocalDate();
}
public static LocalTime DateToLocalTime(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
return localDateTime.toLocalTime();
}
public static Date LocalDateTimeToDate(LocalDateTime localDateTime) {
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
return Date.from(instant);
}
public static Date LocalDateToDate(LocalDate localDate) {
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
return Date.from(instant);
}
}

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

@ -12,6 +12,7 @@ import java.util.Date;
*/
@Data
public class KpiManualScoreTemplateResultDTO implements Serializable {
private static final long serialVersionUID = 3228442740296126765L;
/**
* 规则名称
@ -43,16 +44,6 @@ public class KpiManualScoreTemplateResultDTO implements Serializable {
*/
private String kpiCycleName;
/**
* 考核起止日期
*/
private String scoreStartTime;
/**
* 考核终止日期
*/
private String scoreEndTime;
/**
* 得分
*/

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

@ -1,44 +1,40 @@
package com.elink.esua.epdc.enums;
/**
* @Auther: yinzuomei
* @author: 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;
}
/**
* 月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 String getName() {
return name;
}
}

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

@ -18,6 +18,7 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
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;
@ -36,7 +37,6 @@ 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;
@ -54,36 +54,35 @@ public class KpiManualScoreController {
@Autowired
private KpiManualScoreService kpiManualScoreService;
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
@GetMapping("page")
public Result<PageData<KpiManualScoreResultDTO>> page(@RequestParam Map<String, Object> params){
// PageData<KpiManualScoreDTO> page = kpiManualScoreService.page(params);
public Result<PageData<KpiManualScoreResultDTO>> page(@RequestParam Map<String, Object> params) {
PageData<KpiManualScoreResultDTO> page = kpiManualScoreService.listKpiManualScoreResultDTO(params);
return new Result<PageData<KpiManualScoreResultDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<KpiManualScoreDTO> get(@PathVariable("id") String id){
public Result<KpiManualScoreDTO> get(@PathVariable("id") String id) {
KpiManualScoreDTO data = kpiManualScoreService.get(id);
return new Result<KpiManualScoreDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody KpiManualScoreDTO dto){
public Result save(@RequestBody KpiManualScoreDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
return kpiManualScoreService.save(dto);
}
@PutMapping
public Result update(@RequestBody KpiManualScoreDTO dto){
public Result update(@RequestBody KpiManualScoreDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
return kpiManualScoreService.update(dto);
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiManualScoreService.delete(ids);
@ -106,7 +105,8 @@ public class KpiManualScoreController {
@GetMapping("exportTemplate")
public void exportTemplate(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiManualScoreTemplateResultDTO> list = kpiManualScoreService.listKpiManualScoreTemplateResultDTO(params);
ExcelUtils.exportExcelToTarget(response, simpleDateFormat.format(new Date()), list, KpiManualScoreTemplateExcel.class);
ExcelUtils.exportExcelToTarget(response,
DateUtils.format(new Date(), DateUtils.DATE_TIME_NO_SPLIT), list, KpiManualScoreTemplateExcel.class);
}

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

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

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

@ -20,7 +20,10 @@ 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 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.List;
import java.util.Map;
@ -34,5 +37,30 @@ import java.util.Map;
@Mapper
public interface KpiManualScoreDao extends BaseDao<KpiManualScoreEntity> {
List<KpiManualScoreResultDTO> selectListKpiManualScoreResultDTO(Map<String, Object> params);
List<KpiManualScoreResultDTO> selectListKpiManualScoreResultDTO(Map<String, Object> params);
/**
* 删除打分临时记录
*
* @param userId 用户id操作人
* @param ruleId 规则id
* @param scoreStartDate 考核周期起始日
* @return int
* @author yinzuomei | modify by work@yujt.net.cn
* @date 2019/12/13 15:35
*/
int deleteManualScoreTemp(@Param("userId") String userId, @Param("ruleId") String ruleId, @Param("scoreStartDate") String scoreStartDate);
List<KpiManualScoreTempEntity> selectListKpiManualScoreTemp(@Param("userId") String userId,
@Param("recordList") List<KpiManualScoreTemplateExcel> recordList);
/**
* 批量插入打分临时表
*
* @param scoreTempList
* @return int
* @author yinzuomei | modify by work@yujt.net.cn
* @date 2019/12/13 14:12
*/
int insertScoreTempBatch(@Param("scoreTempList") List<KpiManualScoreTempEntity> scoreTempList);
}

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

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

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

@ -23,6 +23,7 @@ import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -36,7 +37,7 @@ import java.util.Date;
@TableName("epdc_kpi_manual_score")
public class KpiManualScoreEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = -8994029691874794620L;
/**
* epdc_kpi_rule表主键
@ -51,7 +52,7 @@ public class KpiManualScoreEntity extends BaseEpdcEntity {
/**
* 得分
*/
private Integer score;
private BigDecimal score;
/**
* 考核起止日期

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

@ -17,12 +17,11 @@
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.math.BigDecimal;
import java.util.Date;
/**
@ -32,95 +31,85 @@ import java.util.Date;
* @since v1.0.0 2019-12-06
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_kpi_manual_score_temp")
@EqualsAndHashCode(callSuper = false)
public class KpiManualScoreTempEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = -207911504856288902L;
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
private String deptId;
/**
* 得分
*/
private Integer score;
private BigDecimal score;
/**
* 考核起止日期yyyy-MM-dd
*/
private Date scoreStartDate;
private Date scoreStartDate;
/**
* 考核终止日期yyyy-MM-dd
*/
private Date scoreEndDate;
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
private String parentDeptNames;
/**
* 完整部门名称
*/
private String allDeptNames;
private String allDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
private String allDeptIds;
/**
* 导出用户id
*/
private String userId;
private String userId;
/**
* 街道
*/
private String street;
private String street;
/**
* 社区
*/
private String community;
private String community;
/**
* 网格
*/
private String grid;
private String grid;
/**
* 规则名称
*/
private String ruleName;
private String ruleName;
/**
* 考核周期
*/
private String kpiCycleName;
/**
* 考核起止日期
*/
private String scoreStartTime;
private String kpiCycleName;
/**
* 考核终止日期
*/
private String scoreEndTime;
}

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

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

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

@ -24,16 +24,19 @@ 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.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
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.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils;
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.ParentAndAllDeptDTO;
@ -52,8 +55,8 @@ 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 com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -65,6 +68,8 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.*;
/**
@ -76,411 +81,407 @@ import java.util.*;
@Service
public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao, KpiManualScoreEntity> implements KpiManualScoreService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private KpiManualScoreRedis kpiManualScoreRedis;
@Autowired
private KpiManualScoreRuleDao kpiManualScoreRuleDao;
@Autowired
private KpiRuleDao kpiRuleDao;
@Autowired
private UserDetailRedis userDetailRedis;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private KpiManualScoreTempDao kpiManualScoreTempDao;
@Autowired
private KpiManualScoreTempService kpiManualScoreTempService;
//设置日期格式
private SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-MM");
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public PageData<KpiManualScoreDTO> page(Map<String, Object> params) {
String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null;
String createdTime = params.containsKey("createdTime") ? params.get("createdTime").toString() : null;
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(ruleId), "RULE_ID", ruleId);
wrapper.between(StringUtils.isNotBlank(createdTime), "DATE_FORMAT(CREATED_TIME, '%Y-%m' )", createdTime, createdTime);
IPage<KpiManualScoreEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
wrapper
);
PageData<KpiManualScoreDTO> list = getPageData(page, KpiManualScoreDTO.class);
return list;
}
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO>
* @Author yinzuomei
* @Description 列表查询
* @Date 2019/12/4 17:37
**/
@Override
public PageData<KpiManualScoreResultDTO> listKpiManualScoreResultDTO(Map<String, Object> params) {
IPage<KpiManualScoreResultDTO> page = getPage(params);
List<KpiManualScoreResultDTO> list = baseDao.selectListKpiManualScoreResultDTO(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<KpiManualScoreDTO> list(Map<String, Object> params) {
List<KpiManualScoreEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, KpiManualScoreDTO.class);
}
/**
* @param
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO>
* @Author yinzuomei
* @Description 导出录入模板
* @Date 2019/12/4 18:00
**/
@Override
public List<KpiManualScoreTemplateResultDTO> listKpiManualScoreTemplateResultDTO(Map<String, Object> params) {
List<KpiManualScoreTemplateResultDTO> list = new ArrayList<>();
//用户所选规则
String ruleId = params.get("ruleId").toString();
String scoreStartTime = params.get("scoreStartTime").toString();
Date scoreStartDateMonth = new Date();
try {
scoreStartDateMonth = monthFormat.parse(scoreStartTime);
} catch (ParseException e) {
e.printStackTrace();
}
Date scoreEndDateMonth = new Date();
KpiRuleEntity kpiRuleEntity = kpiRuleDao.selectById(ruleId);
//考核周期赋值
String kpiCycleName = "";
if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_MONTH.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_MONTH.getName();
scoreEndDateMonth = scoreStartDateMonth;
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_QUARTER.getName();
scoreEndDateMonth = stepMonth(scoreStartDateMonth, 2);
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_YEAR.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_YEAR.getName();
scoreEndDateMonth = stepMonth(scoreStartDateMonth, 11);
}
// 用户拥有的所有部门权限
List<Long> dataScopeDeptList = getDataScopeDeptList();
//调用admin模块查询部门信息详情
UserSysDeptInfoFormDTO userSysDeptInfoFormDTO = new UserSysDeptInfoFormDTO();
userSysDeptInfoFormDTO.setDeptIdList(dataScopeDeptList);
List<String> typeKeyList = new ArrayList<>();
typeKeyList.add(kpiRuleEntity.getDeptTypeKey());
userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList);
Result<List<UserSysDeptInfoResultDTO>> result = this.queryUserSysDeptInfo(userSysDeptInfoFormDTO);
if (result.getCode() == 0 && result.getData().size() > 0) {
List<UserSysDeptInfoResultDTO> userSysDeptInfoResultDTOList = result.getData();
for (UserSysDeptInfoResultDTO userSysDeptInfoResultDTO : userSysDeptInfoResultDTOList) {
KpiManualScoreTemplateResultDTO kpiManualScoreTemplateResultDTO = new KpiManualScoreTemplateResultDTO();
kpiManualScoreTemplateResultDTO.setRuleName(kpiRuleEntity.getRuleName());
kpiManualScoreTemplateResultDTO.setStreet(userSysDeptInfoResultDTO.getStreet());
kpiManualScoreTemplateResultDTO.setCommunity(userSysDeptInfoResultDTO.getCommunity());
kpiManualScoreTemplateResultDTO.setGrid(userSysDeptInfoResultDTO.getGrid());
kpiManualScoreTemplateResultDTO.setDeptName(userSysDeptInfoResultDTO.getName());
kpiManualScoreTemplateResultDTO.setKpiCycleName(kpiCycleName);
kpiManualScoreTemplateResultDTO.setScoreStartTime(dateFormat.format(getFirstDayDateOfMonth(scoreStartDateMonth)));
kpiManualScoreTemplateResultDTO.setScoreEndTime(dateFormat.format(getLastDayOfMonth(scoreEndDateMonth)));
kpiManualScoreTemplateResultDTO.setScore(null);
kpiManualScoreTemplateResultDTO.setRuleId(kpiRuleEntity.getId());
kpiManualScoreTemplateResultDTO.setDeptId(userSysDeptInfoResultDTO.getId().toString());
kpiManualScoreTemplateResultDTO.setScoreStartDate(getFirstDayDateOfMonth(scoreStartDateMonth));
kpiManualScoreTemplateResultDTO.setScoreEndDate(getLastDayOfMonth(scoreEndDateMonth));
kpiManualScoreTemplateResultDTO.setParentDeptIds(userSysDeptInfoResultDTO.getPids());
kpiManualScoreTemplateResultDTO.setParentDeptNames(userSysDeptInfoResultDTO.getParentNames());
kpiManualScoreTemplateResultDTO.setAllDeptIds(userSysDeptInfoResultDTO.getPids() + "," + userSysDeptInfoResultDTO.getId());
kpiManualScoreTemplateResultDTO.setAllDeptNames(userSysDeptInfoResultDTO.getParentNames() + "-" + userSysDeptInfoResultDTO.getName());
kpiManualScoreTemplateResultDTO.setUserId(SecurityUser.getUserId().toString());
list.add(kpiManualScoreTemplateResultDTO);
}
//删除临时表数据
kpiManualScoreTempDao.deleteManualScoreTemp(SecurityUser.getUserId().toString(),
kpiRuleEntity.getId(),
dateFormat.format(getFirstDayDateOfMonth(scoreStartDateMonth)));
//插入临时表
List<KpiManualScoreTempEntity> tempEntityList = ConvertUtils.sourceToTarget(list, KpiManualScoreTempEntity.class);
kpiManualScoreTempService.insertBatch(tempEntityList, 200);
}
return list;
}
/**
* @param file
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @Author yinzuomei
* @Description 导入手动打分记录
* @Date 2019/12/5 15:46
**/
@Override
@Transactional(rollbackFor = Exception.class)
public Result importManualScoreExcel(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
try {
//判断上传文件类型
String originalFilename = file.getOriginalFilename();
if (!originalFilename.contains(".xlsx") && !originalFilename.contains(".xls")) {
return new Result().error("请选择.xls或者.xlsx格式文件");
}
ImportParams importParams = new ImportParams();
List<KpiManualScoreTemplateExcel> recordList = ExcelImportUtil.importExcel(f, KpiManualScoreTemplateExcel.class, importParams);
if (CollUtil.isEmpty(recordList)) {
return new Result().error("导入内容不能为空");
}
//校验记录数是否一致
List<ImportExcelErrorResultDTO> errorRecordList = new ArrayList<>();
List<KpiManualScoreTempEntity> tempEntityList = kpiManualScoreTempDao.selectListKpiManualScoreTemp(SecurityUser.getUserId().toString(), recordList);
if (CollUtil.isEmpty(tempEntityList) || tempEntityList.size() != recordList.size()) {
ImportExcelErrorResultDTO excelErrorResultDTO = new ImportExcelErrorResultDTO();
excelErrorResultDTO.setErrorLine("0");
excelErrorResultDTO.setErrorInfo("导入记录条数与导出模板不一致,请核对");
errorRecordList.add(excelErrorResultDTO);
}
if (CollUtil.isNotEmpty(errorRecordList)) {
Result errorResult = new Result();
errorResult.setCode(ErrorCode.INTERNAL_SERVER_ERROR);
return errorResult.ok(errorRecordList);
}
List<KpiManualScoreEntity> kpiManualScoreEntityList = ConvertUtils.sourceToTarget(tempEntityList, KpiManualScoreEntity.class);
//循环插入:如果存在则删除原纪录
for (KpiManualScoreEntity kpiManualScoreEntity : kpiManualScoreEntityList) {
baseDao.delete(getUniqueWrapper(kpiManualScoreEntity));
baseDao.insert(kpiManualScoreEntity);
}
//删除临时表数据
kpiManualScoreTempDao.deleteManualScoreTemp(SecurityUser.getUserId().toString(),
tempEntityList.get(0).getRuleId(),
tempEntityList.get(0).getScoreStartTime());
} finally {
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;
//设置日期格式
private SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-MM");
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public PageData<KpiManualScoreDTO> page(Map<String, Object> params) {
String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null;
String createdTime = params.containsKey("createdTime") ? params.get("createdTime").toString() : null;
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(ruleId), "RULE_ID", ruleId);
wrapper.between(StringUtils.isNotBlank(createdTime), "DATE_FORMAT(CREATED_TIME, '%Y-%m' )", createdTime, createdTime);
IPage<KpiManualScoreEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
wrapper
);
PageData<KpiManualScoreDTO> list = getPageData(page, KpiManualScoreDTO.class);
return list;
}
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO>
* @Author yinzuomei
* @Description 列表查询
* @Date 2019/12/4 17:37
**/
@Override
public PageData<KpiManualScoreResultDTO> listKpiManualScoreResultDTO(Map<String, Object> params) {
IPage<KpiManualScoreResultDTO> page = getPage(params);
List<KpiManualScoreResultDTO> list = baseDao.selectListKpiManualScoreResultDTO(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<KpiManualScoreDTO> list(Map<String, Object> params) {
List<KpiManualScoreEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, KpiManualScoreDTO.class);
}
/**
* @param
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO>
* @Author yinzuomei
* @Description 导出录入模板
* @Date 2019/12/4 18:00
**/
@Override
public List<KpiManualScoreTemplateResultDTO> listKpiManualScoreTemplateResultDTO(Map<String, Object> params) {
//用户所选规则
String ruleId = params.get("ruleId").toString();
// yyyy-MM
String scoreStartMonth = params.get("scoreStartTime").toString();
// 考核周期开始月
YearMonth scoreStartDateMonth = YearMonth.parse(scoreStartMonth);
// 考核规则
KpiRuleEntity kpiRuleEntity = kpiRuleDao.selectById(ruleId);
// 考核周期结束日
LocalDate scoreEndDate;
//考核周期赋值
String kpiCycleName;
if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_MONTH.getValue())) {
kpiCycleName = KpiCycleEnum.KPI_CYCLE_MONTH.getName();
scoreEndDate = scoreStartDateMonth.atEndOfMonth();
} else if (kpiRuleEntity.getKpiCycle().equals(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue())) {
int monthValue = scoreStartDateMonth.getMonthValue();
// 只有1,4,7,10 月份可以进行季度打分
if (monthValue != NumConstant.ONE && monthValue != NumConstant.FOUR
&& monthValue != NumConstant.SEVEN && monthValue != NumConstant.TEN) {
throw new RenException("当前选择的月份无法进行季度考核打分");
}
kpiCycleName = KpiCycleEnum.KPI_CYCLE_QUARTER.getName();
scoreEndDate = scoreStartDateMonth.plusMonths(NumConstant.TWO).atEndOfMonth();
} else {
int monthValue = scoreStartDateMonth.getMonthValue();
// 只有1月份可以进行年度打分
if (monthValue != NumConstant.ONE) {
throw new RenException("当前选择的月份无法进行年度考核打分");
}
kpiCycleName = KpiCycleEnum.KPI_CYCLE_YEAR.getName();
scoreEndDate = scoreStartDateMonth.plusMonths(NumConstant.ELEVEN).atEndOfMonth();
}
// 用户拥有的所有部门权限
List<Long> dataScopeDeptList = SecurityUser.getUser().getDeptIdList();
Result<List<UserSysDeptInfoResultDTO>> result = queryUserSysDeptInfo(dataScopeDeptList, kpiRuleEntity.getDeptTypeKey());
if (!result.success() || CollUtil.isEmpty(result.getData())) {
return Lists.newArrayList();
}
List<KpiManualScoreTemplateResultDTO> list = Lists.newArrayList();
List<UserSysDeptInfoResultDTO> userSysDeptInfoResultDTOList = result.getData();
for (UserSysDeptInfoResultDTO userSysDeptInfoResultDTO : userSysDeptInfoResultDTOList) {
KpiManualScoreTemplateResultDTO kpiManualScoreTemplateResultDTO = new KpiManualScoreTemplateResultDTO();
kpiManualScoreTemplateResultDTO.setRuleName(kpiRuleEntity.getRuleName());
kpiManualScoreTemplateResultDTO.setStreet(userSysDeptInfoResultDTO.getStreet());
kpiManualScoreTemplateResultDTO.setCommunity(userSysDeptInfoResultDTO.getCommunity());
kpiManualScoreTemplateResultDTO.setGrid(userSysDeptInfoResultDTO.getGrid());
kpiManualScoreTemplateResultDTO.setDeptName(userSysDeptInfoResultDTO.getName());
kpiManualScoreTemplateResultDTO.setKpiCycleName(kpiCycleName);
kpiManualScoreTemplateResultDTO.setScore(null);
kpiManualScoreTemplateResultDTO.setRuleId(kpiRuleEntity.getId());
kpiManualScoreTemplateResultDTO.setDeptId(userSysDeptInfoResultDTO.getId().toString());
kpiManualScoreTemplateResultDTO.setScoreStartDate(LocalDateUtils.LocalDateToDate(scoreStartDateMonth.atDay(NumConstant.ONE)));
kpiManualScoreTemplateResultDTO.setScoreEndDate(LocalDateUtils.LocalDateToDate(scoreEndDate));
kpiManualScoreTemplateResultDTO.setParentDeptIds(userSysDeptInfoResultDTO.getPids());
kpiManualScoreTemplateResultDTO.setParentDeptNames(userSysDeptInfoResultDTO.getParentNames());
kpiManualScoreTemplateResultDTO.setAllDeptIds(userSysDeptInfoResultDTO.getPids() + StrConstant.COMMA + userSysDeptInfoResultDTO.getId());
kpiManualScoreTemplateResultDTO.setAllDeptNames(userSysDeptInfoResultDTO.getParentNames() + StrConstant.HYPHEN + userSysDeptInfoResultDTO.getName());
kpiManualScoreTemplateResultDTO.setUserId(SecurityUser.getUserId().toString());
list.add(kpiManualScoreTemplateResultDTO);
}
//删除临时表数据
baseDao.deleteManualScoreTemp(SecurityUser.getUserId().toString(), kpiRuleEntity.getId(), scoreStartDateMonth.atDay(NumConstant.ONE).toString());
//插入临时表
List<KpiManualScoreTempEntity> tempEntityList = ConvertUtils.sourceToTarget(list, KpiManualScoreTempEntity.class);
baseDao.insertScoreTempBatch(tempEntityList);
return list;
}
/**
* 调用admin模块查询部门信息详情
*
* @param dataScopeDeptList 用户数据权限
* @param deptTypeKey 部门类别
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>>
* @author work@yujt.net.cn
* @date 2019/12/13 14:38
*/
private Result<List<UserSysDeptInfoResultDTO>> queryUserSysDeptInfo(List<Long> dataScopeDeptList, String deptTypeKey) {
UserSysDeptInfoFormDTO userSysDeptInfoFormDTO = new UserSysDeptInfoFormDTO();
List<String> typeKeyList = new ArrayList<>();
typeKeyList.add(deptTypeKey);
userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList);
userSysDeptInfoFormDTO.setDeptIdList(dataScopeDeptList);
return adminFeignClient.queryUserSysDeptInfo(userSysDeptInfoFormDTO);
}
/**
* @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.endsWith(StrConstant.EXCEL_SUFFIX_2003) && !originalFilename.endsWith(StrConstant.EXCEL_SUFFIX_2007)) {
return new Result().error("请选择.xls或者.xlsx格式文件");
}
ImportParams importParams = new ImportParams();
List<KpiManualScoreTemplateExcel> recordList = ExcelImportUtil.importExcel(f, KpiManualScoreTemplateExcel.class, importParams);
if (CollUtil.isEmpty(recordList)) {
return new Result().error("导入内容不能为空");
}
//校验记录数是否一致
List<ImportExcelErrorResultDTO> errorRecordList = new ArrayList<>();
List<KpiManualScoreTempEntity> tempEntityList = baseDao.selectListKpiManualScoreTemp(SecurityUser.getUserId().toString(), recordList);
if (CollUtil.isEmpty(tempEntityList) || tempEntityList.size() != recordList.size()) {
ImportExcelErrorResultDTO excelErrorResultDTO = new ImportExcelErrorResultDTO();
excelErrorResultDTO.setErrorLine("0");
excelErrorResultDTO.setErrorInfo("导入记录条数与导出模板不一致,请核对");
errorRecordList.add(excelErrorResultDTO);
}
if (CollUtil.isNotEmpty(errorRecordList)) {
Result errorResult = new Result();
errorResult.setCode(ErrorCode.INTERNAL_SERVER_ERROR);
return errorResult.ok(errorRecordList);
}
List<KpiManualScoreEntity> kpiManualScoreEntityList = ConvertUtils.sourceToTarget(tempEntityList, KpiManualScoreEntity.class);
//循环插入:如果存在则删除原纪录
for (KpiManualScoreEntity kpiManualScoreEntity : kpiManualScoreEntityList) {
baseDao.delete(getUniqueWrapper(kpiManualScoreEntity));
baseDao.insert(kpiManualScoreEntity);
}
//删除临时表数据
baseDao.deleteManualScoreTemp(SecurityUser.getUserId().toString(),
tempEntityList.get(0).getRuleId(),
DateUtils.format(tempEntityList.get(0).getScoreStartDate()));
} 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("得分不能高于满分");
}
// 考核部门基本信息
Result<SysDeptDTO> sysDeptDTOResult=adminFeignClient.getSysDeptDTO(Long.valueOf(dto.getDeptId()));
if(!sysDeptDTOResult.success()){
return new Result().error(sysDeptDTOResult.getMsg());
}
if(!kpiManualScoreRuleEntity.getDeptTypeKey().equals(sysDeptDTOResult.getData().getTypeKey())){
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));
//根据部门ID获取上级所有部门信息
Result<ParentAndAllDeptDTO> parentAndAllDeptDTOResult=adminFeignClient.getParentAndAllDept(dto.getDeptId());
if(!parentAndAllDeptDTOResult.success()){
return new Result().error(parentAndAllDeptDTOResult.getMsg());
}
dto.setAllDeptNames(parentAndAllDeptDTOResult.getData().getAllDeptNames());
dto.setAllDeptIds(parentAndAllDeptDTOResult.getData().getAllDeptIds());
dto.setParentDeptNames(parentAndAllDeptDTOResult.getData().getParentDeptNames());
dto.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds());
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
baseDao.delete(getUniqueWrapper(entity));
insert(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result update(KpiManualScoreDTO dto) {
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
//得分不能大于满分
KpiManualScoreRuleEntity kpiManualScoreRuleEntity = kpiManualScoreRuleDao.selectOneKpiManualScoreRuleByRuleId(dto.getRuleId());
if (null == kpiManualScoreRuleEntity) {
return new Result().error("没有找到关联的手动打分项");
} else if (null != kpiManualScoreRuleEntity && dto.getScore() > kpiManualScoreRuleEntity.getFullMarks()) {
return new Result().error("得分不能高于满分");
}
updateById(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param entity
* @return com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<com.elink.esua.epdc.entity.KpiManualScoreEntity>
* @Author yinzuomei
* @Description
* @Date 2019/12/6 13:58
**/
public QueryWrapper<KpiManualScoreEntity> getUniqueWrapper(KpiManualScoreEntity entity) {
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(entity.getRuleId()), "RULE_ID", entity.getRuleId())
.eq(StringUtils.isNotBlank(entity.getDeptId()), "DEPT_ID", entity.getDeptId())
.eq("score_end_date", entity.getScoreEndDate())
.eq("score_start_date", entity.getScoreStartDate());
return wrapper;
}
/**
* @param userSysDeptInfoFormDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>>
* @Author yinzuomei
* @Description
* @Date 2019/12/6 13:58
**/
public Result<List<UserSysDeptInfoResultDTO>> queryUserSysDeptInfo(UserSysDeptInfoFormDTO userSysDeptInfoFormDTO) {
return adminFeignClient.queryUserSysDeptInfo(userSysDeptInfoFormDTO);
}
/**
* @param
* @return java.util.List<java.lang.Long>
* @Author yinzuomei
* @Description 用户拥有的所有部门权限
* @Date 2019/12/5 16:29
**/
public List<Long> getDataScopeDeptList() {
Long userId = SecurityUser.getUserId();
// 查询当前用户所具有的的数据权限
UserDetail userDetail = userDetailRedis.get(userId);
// 用户拥有的所有部门权限
return userDetail.getDeptIdList();
}
/**
* @param sourceDate
* @param month
* @return java.util.Date
* @Author yinzuomei
* @Description
* @Date 2019/12/5 13:46
**/
public Date stepMonth(Date sourceDate, int month) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.MONTH, month);
return c.getTime();
}
/**
* @param date
* @return java.util.Date
* @Author yinzuomei
* @Description 获取传入日期所在月的第一天
* @Date 2019/12/5 13:46
**/
public Date getFirstDayDateOfMonth(Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
/**
* @param date
* @return java.util.Date
* @Author yinzuomei
* @Description 获取传入日期所在月的最后一天
* @Date 2019/12/5 13:47
**/
public Date getLastDayOfMonth(Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
private QueryWrapper<KpiManualScoreEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
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("得分不能高于满分");
}
// 考核部门基本信息
Result<SysDeptDTO> sysDeptDTOResult = adminFeignClient.getSysDeptDTO(Long.valueOf(dto.getDeptId()));
if (!sysDeptDTOResult.success()) {
return new Result().error(sysDeptDTOResult.getMsg());
}
if (!kpiManualScoreRuleEntity.getDeptTypeKey().equals(sysDeptDTOResult.getData().getTypeKey())) {
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));
//根据部门ID获取上级所有部门信息
Result<ParentAndAllDeptDTO> parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(dto.getDeptId());
if (!parentAndAllDeptDTOResult.success()) {
return new Result().error(parentAndAllDeptDTOResult.getMsg());
}
dto.setAllDeptNames(parentAndAllDeptDTOResult.getData().getAllDeptNames());
dto.setAllDeptIds(parentAndAllDeptDTOResult.getData().getAllDeptIds());
dto.setParentDeptNames(parentAndAllDeptDTOResult.getData().getParentDeptNames());
dto.setParentDeptIds(parentAndAllDeptDTOResult.getData().getParentDeptIds());
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
baseDao.delete(getUniqueWrapper(entity));
insert(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result update(KpiManualScoreDTO dto) {
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
//得分不能大于满分
KpiManualScoreRuleEntity kpiManualScoreRuleEntity = kpiManualScoreRuleDao.selectOneKpiManualScoreRuleByRuleId(dto.getRuleId());
if (null == kpiManualScoreRuleEntity) {
return new Result().error("没有找到关联的手动打分项");
} else if (null != kpiManualScoreRuleEntity && dto.getScore() > kpiManualScoreRuleEntity.getFullMarks()) {
return new Result().error("得分不能高于满分");
}
updateById(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param entity
* @return com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<com.elink.esua.epdc.entity.KpiManualScoreEntity>
* @Author yinzuomei
* @Description
* @Date 2019/12/6 13:58
**/
public QueryWrapper<KpiManualScoreEntity> getUniqueWrapper(KpiManualScoreEntity entity) {
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(entity.getRuleId()), "RULE_ID", entity.getRuleId())
.eq(StringUtils.isNotBlank(entity.getDeptId()), "DEPT_ID", entity.getDeptId())
.eq("score_end_date", entity.getScoreEndDate())
.eq("score_start_date", entity.getScoreStartDate());
return wrapper;
}
/**
* @param sourceDate
* @param month
* @return java.util.Date
* @Author yinzuomei
* @Description
* @Date 2019/12/5 13:46
**/
public Date stepMonth(Date sourceDate, int month) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.MONTH, month);
return c.getTime();
}
/**
* @param date
* @return java.util.Date
* @Author yinzuomei
* @Description 获取传入日期所在月的第一天
* @Date 2019/12/5 13:46
**/
public Date getFirstDayDateOfMonth(Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
/**
* @param date
* @return java.util.Date
* @Author yinzuomei
* @Description 获取传入日期所在月的最后一天
* @Date 2019/12/5 13:47
**/
public Date getLastDayOfMonth(Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
private QueryWrapper<KpiManualScoreEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
}

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

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

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

@ -3,72 +3,58 @@
<mapper namespace="com.elink.esua.epdc.dao.KpiManualScoreDao">
<resultMap type="com.elink.esua.epdc.entity.KpiManualScoreEntity" id="kpiManualScoreMap">
<result property="id" column="ID"/>
<result property="ruleId" column="RULE_ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="score" column="SCORE"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="parentDeptIds" column="PARENT_DEPT_IDS"/>
<result property="parentDeptNames" column="PARENT_DEPT_NAMES"/>
<result property="allDeptIds" column="ALL_DEPT_IDS"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<result property="scoreStartDate" column="score_start_date"/>
<result property="scoreEndDate" column="score_end_date"/>
</resultMap>
<insert id="insertScoreTempBatch">
insert into epdc_kpi_manual_score_temp(rule_name, street, community ,grid ,DEPT_NAME, KPI_CYCLE_NAME, Rule_Id,
dept_id,score_start_date,score_end_date,parent_dept_ids,parent_dept_names,all_dept_ids,all_dept_names,user_id)
values
<foreach collection="scoreTempList" item="item" separator=",">
(
#{item.ruleName,jdbcType=VARCHAR},
#{item.street,jdbcType=VARCHAR},
#{item.community,jdbcType=VARCHAR},
#{item.grid,jdbcType=VARCHAR},
#{item.deptName,jdbcType=VARCHAR},
#{item.kpiCycleName,jdbcType=VARCHAR},
#{item.ruleId,jdbcType=VARCHAR},
#{item.deptId,jdbcType=VARCHAR},
#{item.scoreStartDate,jdbcType=DATE},
#{item.scoreEndDate,jdbcType=DATE},
#{item.parentDeptIds,jdbcType=VARCHAR},
#{item.parentDeptNames,jdbcType=VARCHAR},
#{item.allDeptIds,jdbcType=VARCHAR},
#{item.allDeptNames,jdbcType=VARCHAR},
#{item.userId,jdbcType=VARCHAR}
)
</foreach>
</insert>
<resultMap type="com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO" id="KpiManualScoreResultDTOMap">
<result property="id" column="ID"/>
<result property="ruleId" column="RULE_ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="score" column="SCORE"/>
<result property="parentDeptIds" column="PARENT_DEPT_IDS"/>
<result property="parentDeptNames" column="PARENT_DEPT_NAMES"/>
<result property="allDeptIds" column="ALL_DEPT_IDS"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="ruleName" column="rule_name"/>
<result property="kpiCycle" column="kpi_cycle"/>
<result property="scoreStartDate" column="score_start_date"/>
<result property="scoreEndDate" column="score_end_date"/>
</resultMap>
<select id="selectListKpiManualScoreResultDTO" parameterType="map" resultMap="KpiManualScoreResultDTOMap">
<select id="selectListKpiManualScoreResultDTO" parameterType="map"
resultType="com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO">
SELECT
kmc.id,
kmc.rule_id,
kmc.dept_id,
kmc.score,
kmc.parent_dept_ids,
kmc.parent_dept_names,
kmc.all_dept_ids,
kmc.all_dept_names,
kmc.revision,
kmc.created_by,
kmc.created_time,
kmc.updated_by,
kmc.updated_time,
kmc.del_flag,
kr.rule_name,
kr.kpi_cycle,
kmc.score_start_date,
kmc.score_end_date
kmc.id,
kmc.rule_id,
kmc.dept_id,
kmc.score,
kmc.parent_dept_ids,
kmc.parent_dept_names,
kmc.all_dept_ids,
kmc.all_dept_names,
kmc.revision,
kmc.created_by,
kmc.created_time,
kmc.updated_by,
kmc.updated_time,
kmc.del_flag,
kr.rule_name,
kr.kpi_cycle,
kmc.score_start_date,
kmc.score_end_date
FROM
epdc_kpi_manual_score kmc
left join epdc_kpi_rule kr
on(kmc.RULE_ID=kr.id)
epdc_kpi_manual_score kmc
left join epdc_kpi_rule kr
on(kmc.RULE_ID=kr.id)
WHERE
kmc.del_flag = '0'
kmc.del_flag = '0'
<if test="ruleId!=null and ruleId!=''">
AND kmc.rule_id =#{ruleId}
</if>
@ -77,4 +63,59 @@
</if>
ORDER BY kmc.CREATED_TIME DESC
</select>
<delete id="deleteManualScoreTemp" parameterType="map">
DELETE
FROM
epdc_kpi_manual_score_temp
WHERE
RULE_ID =#{ruleId}
AND user_id = #{userId}
AND score_start_time = STR_TO_DATE( #{scoreStartDate}, '%Y-%m-%d' )
</delete>
<select id="selectListKpiManualScoreTemp" parameterType="map"
resultType="com.elink.esua.epdc.entity.KpiManualScoreTempEntity">
<foreach collection="recordList" item="record" index="index" open="" close="" separator="union">
select temp.ID,
temp.RULE_ID,
temp.DEPT_ID,
#{record.score} as SCORE,
temp.score_start_date,
temp.score_end_date,
temp.PARENT_DEPT_IDS,
temp.PARENT_DEPT_NAMES,
temp.ALL_DEPT_NAMES,
temp.ALL_DEPT_IDS,
temp.REVISION,
temp.CREATED_BY,
temp.CREATED_TIME,
temp.UPDATED_BY,
temp.UPDATED_TIME,
temp.DEL_FLAG,
temp.street,
temp.community,
temp.grid,
temp.rule_name,
temp.kpi_cycle_name,
temp.score_start_time,
temp.score_end_time
from epdc_kpi_manual_score_temp temp,epdc_kpi_rule kr,epdc_kpi_manual_score_rule sr
where temp.DEL_FLAG='0'
and kr.DEL_FLAG='0'
and temp.RULE_ID=kr.id
and temp.USER_ID=#{userId}
and kr.reference_id=sr.id
and temp.rule_name=#{record.ruleName}
and temp.street=#{record.street}
and temp.community=#{record.community}
and temp.grid=#{record.grid}
and temp.kpi_cycle_name=#{record.kpiCycleName}
and temp.score_start_time=#{record.scoreStartTime}
and temp.score_end_time=#{record.scoreEndTime}
and #{record.score} &gt;=0
and #{record.score} &lt;=sr.full_marks
and #{record.score} is not null
</foreach>
</select>
</mapper>

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

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