Browse Source

【绩效考核】案件处理打分后台管理-王公峰-2020-12-22

feature/dangjian
wanggongfeng 5 years ago
parent
commit
0a3104f4fb
  1. 2
      esua-epdc/epdc-admin/epdc-admin-server/pom.xml
  2. 121
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiCaseHandlingDTO.java
  3. 116
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiCaseHandlingController.java
  4. 52
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiCaseHandlingDao.java
  5. 91
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiCaseHandlingEntity.java
  6. 86
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiCaseHandlingExcel.java
  7. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  8. 47
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/redis/KpiCaseHandlingRedis.java
  9. 124
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiCaseHandlingService.java
  10. 378
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiCaseHandlingServiceImpl.java
  11. 91
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiCaseHandlingDao.xml

2
esua-epdc/epdc-admin/epdc-admin-server/pom.xml

@ -157,7 +157,7 @@
<docker.tag>dev</docker.tag>
<spring.redis.index>2</spring.redis.index>
<spring.redis.host>118.190.232.100</spring.redis.host>
<spring.redis.host>114.215.125.123</spring.redis.host>
<spring.redis.port>9603</spring.redis.port>
<spring.redis.password>epdc!redis@master1405</spring.redis.password>

121
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiCaseHandlingDTO.java

@ -0,0 +1,121 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
@Data
public class KpiCaseHandlingDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 部门id
*/
private String deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 部门类别
*/
private String deptTypeKey;
/**
* 年月
*/
private String monthYear;
/**
* 案件处置情况打分
*/
private String caseHandling;
/**
* 案件处置情况打分最终分数
*/
private String caseHandlingScore;
/**
* 上级部门id
*/
private String parentDeptIds;
/**
* 上级部门名称
*/
private String parentDeptNames;
/**
* 所有部门id
*/
private String allDeptIds;
/**
* 所有部门名称
*/
private String allDeptNames;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 逻辑删除标识
*/
private String delFlag;
}

116
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiCaseHandlingController.java

@ -0,0 +1,116 @@
/**
* 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.KpiCaseHandlingDTO;
import com.elink.esua.epdc.dto.KpiPublicOpinionDTO;
import com.elink.esua.epdc.excel.KpiCaseHandlingExcel;
import com.elink.esua.epdc.excel.KpiPublicOpinionExcel;
import com.elink.esua.epdc.service.KpiCaseHandlingService;
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.util.List;
import java.util.Map;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
@RestController
@RequestMapping("kpicasehandling")
public class KpiCaseHandlingController {
@Autowired
private KpiCaseHandlingService kpiCaseHandlingService;
@GetMapping("page")
public Result<PageData<KpiCaseHandlingDTO>> page(@RequestParam Map<String, Object> params){
// PageData<KpiCaseHandlingDTO> page = kpiCaseHandlingService.page(params);
PageData<KpiCaseHandlingDTO> page = kpiCaseHandlingService.getInfoPage(params);
return new Result<PageData<KpiCaseHandlingDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<KpiCaseHandlingDTO> get(@PathVariable("id") String id){
KpiCaseHandlingDTO data = kpiCaseHandlingService.get(id);
return new Result<KpiCaseHandlingDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody KpiCaseHandlingDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
kpiCaseHandlingService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody KpiCaseHandlingDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
kpiCaseHandlingService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiCaseHandlingService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiCaseHandlingDTO> list = kpiCaseHandlingService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, KpiCaseHandlingExcel.class);
}
@GetMapping("exportTemplate")
public void exportTemplate(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiCaseHandlingDTO> list = kpiCaseHandlingService.exportTemplate(params);
ExcelUtils.exportExcelToTarget(response, null, list, KpiCaseHandlingExcel.class);
}
/**
* @Description: 导入治理排行管理-网格化平台案件处置情况打分
* @Param: [file]
* @return: Result
* @Author: wanggongfeng
* @Date: 2020-12-21
*/
@PostMapping("importManualScoreExcel")
public Result importManualScoreExcel(@RequestParam("file") MultipartFile file) {
return kpiCaseHandlingService.importManualScoreExcel(file);
}
}

52
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiCaseHandlingDao.java

@ -0,0 +1,52 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.KpiCaseHandlingDTO;
import com.elink.esua.epdc.dto.form.CheckIsScoredFormDTO;
import com.elink.esua.epdc.entity.KpiCaseHandlingEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
@Mapper
public interface KpiCaseHandlingDao extends BaseDao<KpiCaseHandlingEntity> {
/**
* 条件查询
* @param params
* @return
*/
List<KpiCaseHandlingDTO> getInfoPage(Map<String, Object> params);
/**
* 查询已打分部门提示
* @param checkIsScoredFormDTO
* @return
*/
List<KpiCaseHandlingDTO> getDuplicateData(CheckIsScoredFormDTO checkIsScoredFormDTO);
}

91
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/entity/KpiCaseHandlingEntity.java

@ -0,0 +1,91 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_kpi_case_handling")
public class KpiCaseHandlingEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
/**
* 部门id
*/
private String deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 部门类别
*/
private String deptTypeKey;
/**
* 年月
*/
private String monthYear;
/**
* 案件处置情况打分
*/
private String caseHandling;
/**
* 案件处置情况打分最终分数
*/
private String caseHandlingScore;
/**
* 上级部门id
*/
private String parentDeptIds;
/**
* 上级部门名称
*/
private String parentDeptNames;
/**
* 所有部门id
*/
private String allDeptIds;
/**
* 所有部门名称
*/
private String allDeptNames;
}

86
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/KpiCaseHandlingExcel.java

@ -0,0 +1,86 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
@Data
public class KpiCaseHandlingExcel {
// @Excel(name = "主键")
// private String id;
@Excel(name = "部门id")
private String deptId;
@Excel(name = "部门名称")
private String deptName;
@Excel(name = "部门类别")
private String deptTypeKey;
@Excel(name = "年月")
private String monthYear;
@Excel(name = "案件处置情况打分")
private String caseHandling;
// @Excel(name = "案件处置情况打分最终分数")
// private String caseHandlingScore;
// @Excel(name = "上级部门id")
// private String parentDeptIds;
//
// @Excel(name = "上级部门名称")
// private String parentDeptNames;
//
// @Excel(name = "所有部门id")
// private String allDeptIds;
//
// @Excel(name = "所有部门名称")
// private String allDeptNames;
//
// @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;
}

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

@ -27,7 +27,7 @@ import java.util.List;
* @email yujintao@elink-cn.com
* @date 2019/9/7 9:27
*/
@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class)
@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class,url = "http://127.0.0.1:9092")
public interface AdminFeignClient {
/**

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

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

124
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiCaseHandlingService.java

@ -0,0 +1,124 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.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.KpiCaseHandlingDTO;
import com.elink.esua.epdc.entity.KpiCaseHandlingEntity;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
public interface KpiCaseHandlingService extends BaseService<KpiCaseHandlingEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<KpiCaseHandlingDTO>
* @author generator
* @date 2020-12-21
*/
PageData<KpiCaseHandlingDTO> page(Map<String, Object> params);
/**
* 分页条件查询
* @param params
* @return
*/
PageData<KpiCaseHandlingDTO> getInfoPage(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<KpiCaseHandlingDTO>
* @author generator
* @date 2020-12-21
*/
List<KpiCaseHandlingDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return KpiCaseHandlingDTO
* @author generator
* @date 2020-12-21
*/
KpiCaseHandlingDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-12-21
*/
void save(KpiCaseHandlingDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-12-21
*/
void update(KpiCaseHandlingDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-12-21
*/
void delete(String[] ids);
/**
* 网格化平台案件处置情况导出模板
*
* @param params
* @return java.util.List<KpiCommunityBuildingDTO>
* @author wanggongfeng
* @date 2020-12-21
*/
List<KpiCaseHandlingDTO> exportTemplate(Map<String, Object> params);
/**
* 网格化平台案件处置情况打分导入
*
* @param file
* @return Result
* @author wanggongfeng
* @date 2020-12-21
*/
Result importManualScoreExcel(MultipartFile file);
}

378
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiCaseHandlingServiceImpl.java

@ -0,0 +1,378 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
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.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.constant.FieldConstant;
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.dao.KpiCaseHandlingDao;
import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
import com.elink.esua.epdc.dto.KpiCaseHandlingDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.epdc.form.ExportTemplateInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.ExportKpiResultDTO;
import com.elink.esua.epdc.dto.form.CheckIsScoredFormDTO;
import com.elink.esua.epdc.entity.KpiCaseHandlingEntity;
import com.elink.esua.epdc.excel.KpiCaseHandlingExcel;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.redis.KpiCaseHandlingRedis;
import com.elink.esua.epdc.service.KpiCaseHandlingService;
import com.elink.esua.epdc.utils.DeptUtils;
import com.elink.esua.epdc.utils.StreamUtils;
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 org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 网格化平台案件处置情况打分表
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-12-21
*/
@Service
public class KpiCaseHandlingServiceImpl extends BaseServiceImpl<KpiCaseHandlingDao, KpiCaseHandlingEntity> implements KpiCaseHandlingService {
@Autowired
private KpiCaseHandlingRedis kpiCaseHandlingRedis;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private DeptUtils deptUtils;
@Override
public PageData<KpiCaseHandlingDTO> page(Map<String, Object> params) {
IPage<KpiCaseHandlingEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, KpiCaseHandlingDTO.class);
}
/**
* 条件查询
* @param params
* @return
*/
@Override
public PageData<KpiCaseHandlingDTO> getInfoPage(Map<String, Object> params) {
IPage<KpiCaseHandlingDTO> page = getPage(params);
List<KpiCaseHandlingDTO> list = baseDao.getInfoPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<KpiCaseHandlingDTO> list(Map<String, Object> params) {
List<KpiCaseHandlingEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, KpiCaseHandlingDTO.class);
}
private QueryWrapper<KpiCaseHandlingEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<KpiCaseHandlingEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public KpiCaseHandlingDTO get(String id) {
KpiCaseHandlingEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, KpiCaseHandlingDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(KpiCaseHandlingDTO dto) {
String deptId = dto.getDeptId();
List<String> checkList = new ArrayList<String>();
checkList.add(deptId);
// 判断录入月份是否为当前月或者前一个月
if(!dto.getMonthYear().equals(DateUtils.getLastMonth()) && !dto.getMonthYear().equals(DateUtils.getCurrentMonth())){
throw new RenException("只能对当前月份或者上个月份进行打分,请维护后重试!");
}
// 检测excel中是否存在已打分部门
StringBuffer deptErrorInfo = this.getDuplicateData(checkList,dto.getMonthYear());
if (deptErrorInfo.length() > 0) {
throw new RenException(deptErrorInfo + " 已打分, 不可重复打分!");
}
// 查询机构类型键值
Result<SysDeptDTO> result = adminFeignClient.get(Long.valueOf(deptId));
SysDeptDTO sysDeptDTO = result.getData();
// 设置部门类别
dto.setDeptTypeKey(sysDeptDTO.getTypeKey());
KpiCaseHandlingEntity entity = ConvertUtils.sourceToTarget(dto, KpiCaseHandlingEntity.class);
entity = setScore(entity);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(KpiCaseHandlingDTO dto) {
KpiCaseHandlingEntity entity = ConvertUtils.sourceToTarget(dto, KpiCaseHandlingEntity.class);
entity = setScore(entity);
updateById(entity);
}
/**
* 根据手动打分分数计算实际分数
* @param entity
* @return
*/
public KpiCaseHandlingEntity setScore(KpiCaseHandlingEntity entity){
DecimalFormat df = new DecimalFormat("#.###");
Double caseHandlingDoubleNum = Double.parseDouble(entity.getCaseHandling());
// 100分换算成10分
entity.setCaseHandlingScore(df.format(caseHandlingDoubleNum / 10));
return entity;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* 获取导出模板
*
* @param params
* @return java.util.List<KpiCaseHandlingDTO>
* @author wanggongfeng
* @date 2020-06-15
*/
@Override
public List<KpiCaseHandlingDTO> exportTemplate(Map<String, Object> params) {
List<Long> deptIdList = SecurityUser.getUser().getDeptIdList(); //获取用户权限
ExportTemplateInfoFormDTO exportTemplateInfoFormDTO = new ExportTemplateInfoFormDTO();
exportTemplateInfoFormDTO.setDeptIdList(deptIdList);
exportTemplateInfoFormDTO.setDeptId(params.get("deptId") == null ? "" : params.get("deptId").toString());
exportTemplateInfoFormDTO.setDeptTypeKey(params.get("deptTypeKey") == null ? "" : params.get("deptTypeKey").toString());
exportTemplateInfoFormDTO.setMonthYear(params.get("monthYear") == null ? "" : params.get("monthYear").toString());
Result<List<ExportKpiResultDTO>> result = adminFeignClient.getExportTemplateInfo(exportTemplateInfoFormDTO);
List<ExportKpiResultDTO> resultList = result.getData();
return ConvertUtils.sourceToTarget(resultList, KpiCaseHandlingDTO.class);
}
/**
* @Description: 导入治理排行管理-网格化平台案件处置情况打分
* @Param: [file]
* @return: Result
* @Author: wanggongfeng
* @Date: 2020-12-21
*/
@Override
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格式文件");
}
List<KpiCaseHandlingExcel> recordList = ExcelImportUtil.importExcel(f, KpiCaseHandlingExcel.class, new ImportParams());
if (CollUtil.isEmpty(recordList)) {
return new Result().error("导入内容不能为空");
}
// 存储检测excel是否存在重复ID使用
List<String> checkList = new ArrayList<String>();
StringBuffer checkInfo = new StringBuffer();
String monthYear = "";
for(int i = 0 ; i < recordList.size() ; i++){
KpiCaseHandlingExcel kpiCaseHandlingExcel = recordList.get(i);
// 校验是否存在空单元格
if(checkNullCell(kpiCaseHandlingExcel)){
return new Result().error("导入文件中存在空单元格或模板格式不匹配,请完善表格或核对模板是否正确!");
}
// 校验是否存在分数范围不正确的打分
if(checkScoreCell(kpiCaseHandlingExcel)){
return new Result().error("存在不符合分值范围的分数!");
}
// 校验月份是否不一致
if(i == 0){
monthYear = kpiCaseHandlingExcel.getMonthYear();
}else{
if(!monthYear.equals(kpiCaseHandlingExcel.getMonthYear())){
return new Result().error("导入文件中月份不一致,请修改一致后重试!");
}
monthYear = kpiCaseHandlingExcel.getMonthYear();
}
// 校验ID是否存在重复
if(checkList.contains(kpiCaseHandlingExcel.getDeptId())){
return new Result().error(kpiCaseHandlingExcel.getDeptName() + "ID重复,请维护唯一ID后重试!");
}
checkList.add(kpiCaseHandlingExcel.getDeptId());
// 拼接部门ID不在当前用户权限内的部门名称
checkInfo.append(splicingErrorDeptName(i,kpiCaseHandlingExcel,recordList));
}
// 判断导入月份是否为当前月或者前一个月
if(!monthYear.equals(DateUtils.getLastMonth()) && !monthYear.equals(DateUtils.getCurrentMonth())){
return new Result().error("只能对当前月份或者上个月份进行打分,请维护后重试!");
}
// 校验部门ID是否存在当前用户权限内
if (checkInfo.length() > 0) {
return new Result().error(checkInfo.append("部门ID错误,请维护后重试!").toString());
}
// 检测excel中是否存在已打分部门
StringBuffer deptErrorInfo = this.getDuplicateData(checkList,monthYear);
if (deptErrorInfo.length() > 0) {
return new Result().error(deptErrorInfo + " 已打分, 不可重复打分!");
}
// 插入案件处置情况打分数据(必要时可改为批量插入)
for (KpiCaseHandlingExcel kpiCaseHandlingExcel : recordList) {
KpiCaseHandlingEntity entity = splicingEntity(kpiCaseHandlingExcel);
entity = setScore(entity);
insert(entity);
}
} catch (Exception e) {
return new Result().error("数据异常,解析excel文件失败");
} finally {
// 删除文件
ExcelUtils.deleteAllFilesOfDir(f);
}
return new Result();
}
/**
* 拼接案件处置情况打分实体
* @param kpiCaseHandlingExcel
* @return
*/
private KpiCaseHandlingEntity splicingEntity(KpiCaseHandlingExcel kpiCaseHandlingExcel){
KpiCaseHandlingEntity entity = ConvertUtils.sourceToTarget(kpiCaseHandlingExcel, KpiCaseHandlingEntity.class);
// 查询设置部门类别和部门名称
String deptId = entity.getDeptId();
Result<SysDeptDTO> result = adminFeignClient.get(Long.valueOf(deptId));
SysDeptDTO sysDeptDTO = result.getData();
entity.setDeptTypeKey(sysDeptDTO.getTypeKey());
entity.setDeptName(sysDeptDTO.getName());
// 查询设置上级部门信息
DeptLevelAndLeaderDTO deptLevelInfo = deptUtils.getDeptLevelInfo(Long.valueOf(deptId), YesOrNoEnum.YES);
entity.setAllDeptIds(deptLevelInfo.getAllDeptIds());
entity.setAllDeptNames(deptLevelInfo.getAllDeptNames());
entity.setParentDeptIds(deptLevelInfo.getParentDeptIds());
entity.setParentDeptNames(deptLevelInfo.getParentDeptNames());
return entity;
}
/**
* 校验分数是否规范
* @param kpiCaseHandlingExcel
* @return
*/
private Boolean checkScoreCell(KpiCaseHandlingExcel kpiCaseHandlingExcel){
// 案件处置情况分数(100分)
String caseHandling = kpiCaseHandlingExcel.getCaseHandling();
if(ExcelUtils.checkNumber(caseHandling)){
return true;
}
Double caseHandlingDouble = Double.parseDouble(caseHandling);
if(caseHandlingDouble < 0 || caseHandlingDouble > 100){
return true;
}
return false;
}
/**
* 校验是否存在空单元格
* @param kpiCaseHandlingExcel
* @return
*/
private Boolean checkNullCell(KpiCaseHandlingExcel kpiCaseHandlingExcel){
if(StringUtils.isBlank(kpiCaseHandlingExcel.getDeptId()) || StringUtils.isBlank(kpiCaseHandlingExcel.getDeptName()) || StringUtils.isBlank(kpiCaseHandlingExcel.getMonthYear())
|| StringUtils.isBlank(kpiCaseHandlingExcel.getCaseHandling())){
return true;
}
return false;
}
/**
* 拼接部门ID不在当前用户权限内的部门名称
* @param index
* @param kpiCaseHandlingExcel
* @param recordList
* @return
*/
private String splicingErrorDeptName(int index,KpiCaseHandlingExcel kpiCaseHandlingExcel,List<KpiCaseHandlingExcel> recordList){
UserDetail user = SecurityUser.getUser();
List<Long> deptIdList = user.getDeptIdList();
if(!deptIdList.contains(Long.valueOf(kpiCaseHandlingExcel.getDeptId()))){
if(index == (recordList.size()-1)){
return kpiCaseHandlingExcel.getDeptName();
}else{
return kpiCaseHandlingExcel.getDeptName() + "、";
}
}
return "";
}
/**
* 拼接已打分部门提示信息
* @param checkList
* @return
*/
private StringBuffer getDuplicateData(List<String> checkList ,String monthYear){
CheckIsScoredFormDTO checkIsScoredFormDTO = new CheckIsScoredFormDTO();
checkIsScoredFormDTO.setCheckList(checkList);
checkIsScoredFormDTO.setMonthYear(monthYear);
StringBuffer deptErrorInfo = new StringBuffer();
List<KpiCaseHandlingDTO> list = baseDao.getDuplicateData(checkIsScoredFormDTO);
for(int i = 0 ; i < list.size() ; i++){
KpiCaseHandlingDTO kpiCaseHandlingDTO = list.get(i);
if(i == (list.size()-1)){
deptErrorInfo.append(kpiCaseHandlingDTO.getDeptName());
}else{
deptErrorInfo.append(kpiCaseHandlingDTO.getDeptName()).append("、");
}
}
return deptErrorInfo;
}
}

91
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiCaseHandlingDao.xml

@ -0,0 +1,91 @@
<?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.KpiCaseHandlingDao">
<resultMap type="com.elink.esua.epdc.entity.KpiCaseHandlingEntity" id="kpiCaseHandlingMap">
<result property="id" column="ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="deptName" column="DEPT_NAME"/>
<result property="deptTypeKey" column="DEPT_TYPE_KEY"/>
<result property="monthYear" column="MONTH_YEAR"/>
<result property="caseHandling" column="CASE_HANDLING"/>
<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"/>
</resultMap>
<select id="getInfoPage" resultType="com.elink.esua.epdc.dto.KpiCaseHandlingDTO">
select
sd.ID,
sd.DEPT_ID,
sd.DEPT_NAME,
sd.DEPT_TYPE_KEY,
sd.MONTH_YEAR,
sd.CASE_HANDLING,
sd.CASE_HANDLING_SCORE,
sd.PARENT_DEPT_IDS,
sd.PARENT_DEPT_NAMES,
sd.ALL_DEPT_IDS,
sd.ALL_DEPT_NAMES,
sd.REVISION,
sd.CREATED_BY,
sd.CREATED_TIME,
sd.UPDATED_BY,
sd.UPDATED_TIME,
sd.DEL_FLAG
from epdc_kpi_case_handling sd
where sd.DEL_FLAG = '0'
<if test="deptId != null and deptId != ''">
and FIND_IN_SET(#{deptId},sd.ALL_DEPT_IDS)
</if>
<if test="monthYear != null and monthYear != ''">
and sd.MONTH_YEAR = #{monthYear}
</if>
<if test="deptTypeKey != null and deptTypeKey != ''">
and sd.DEPT_TYPE_KEY = #{deptTypeKey}
</if>
order by sd.UPDATED_TIME desc
</select>
<select id="getDuplicateData" resultType="com.elink.esua.epdc.dto.KpiCaseHandlingDTO" parameterType="com.elink.esua.epdc.dto.form.CheckIsScoredFormDTO">
select
ID,
DEPT_ID,
DEPT_NAME,
DEPT_TYPE_KEY,
MONTH_YEAR,
CASE_HANDLING,
PARENT_DEPT_IDS,
PARENT_DEPT_NAMES,
ALL_DEPT_IDS,
ALL_DEPT_NAMES,
REVISION,
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME,
DEL_FLAG
from epdc_kpi_case_handling
where DEL_FLAG = '0'
<if test="checkList != null and checkList.size() > 0">
AND DEPT_ID IN
<foreach collection="checkList" item="deptId" index="index" open="(" close=")" separator=",">
#{deptId}
</foreach>
</if>
<if test="monthYear != null and monthYear != ''">
and MONTH_YEAR = #{monthYear}
</if>
</select>
</mapper>
Loading…
Cancel
Save