diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ManualScoreDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ManualScoreDTO.java index 5fa2d680e..2000c1721 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ManualScoreDTO.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ManualScoreDTO.java @@ -124,4 +124,35 @@ public class ManualScoreDTO implements Serializable { */ private String delFlag; + //虚拟字段-------------- + + /** + * 所属机构名称 + */ + private String deptName; + + /** + * 被打分的机构类型 + */ + private String deptType; + + /** + * 考核起始日 + */ + private Date scoreStartDate; + + /** + * 得分 String类型 + */ + private String scoreString; + + /** + * 考核月度 String类型 + */ + private String monthString; + + /** + * 得分类型 String类型 + */ + private String manualScore; } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/ManualScoreController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/ManualScoreController.java index 81f1c00df..fd7d93541 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/ManualScoreController.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/ManualScoreController.java @@ -17,7 +17,10 @@ package com.elink.esua.epdc.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; 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; @@ -28,10 +31,23 @@ import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.dto.ManualScoreDTO; import com.elink.esua.epdc.excel.ManualScoreExcel; import com.elink.esua.epdc.service.ManualScoreService; +import org.apache.poi.hssf.usermodel.HSSFDataValidation; +import org.apache.poi.hssf.usermodel.HSSFDataValidationHelper; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.ss.usermodel.DataValidationConstraint; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -51,13 +67,23 @@ public class ManualScoreController { @GetMapping("page") public Result> page(@RequestParam Map params){ - PageData page = manualScoreService.page(params); + PageData page = manualScoreService.listManualScoreResultDTO(params); return new Result>().ok(page); } @GetMapping("{id}") public Result get(@PathVariable("id") String id){ ManualScoreDTO data = manualScoreService.get(id); + if (data.getScore().compareTo(new BigDecimal(100)) == 0){ + data.setManualScore("优"); + } else if (data.getScore().compareTo(new BigDecimal(80)) == 0){ + data.setManualScore("良"); + } else if (data.getScore().compareTo(new BigDecimal(60)) == 0){ + data.setManualScore("中"); + } else if (data.getScore().compareTo(new BigDecimal(40)) == 0){ + data.setManualScore("差"); + } + data.setMonthString(data.getMonth().toString()); return new Result().ok(data); } @@ -91,4 +117,61 @@ public class ManualScoreController { ExcelUtils.exportExcelToTarget(response, null, list, ManualScoreExcel.class); } + /** + * @Description: 导出治理排行管理-手动打分录入模板 + * @Param: [params] + * @return: java.util.List + * @Author: zy + * @Date: 2020-04-13 + */ + @GetMapping("exportTemplate") + public void exportTemplate(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = manualScoreService.listManualScoreExportTemplate(params); + List targetList = new ArrayList<>(list.size()); + for(Object source : list){ + Object target = ManualScoreExcel.class.newInstance(); + BeanUtils.copyProperties(source, target); + targetList.add(target); + } + + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), ManualScoreExcel.class, targetList); + Sheet sheet1 = workbook.getSheetAt(0); + sheet1.setDefaultColumnWidth(50*256); + sheet1.setDefaultRowHeight((short)(2*256)); + + String[] datas = new String[] {"优","良","中", "差"}; + + HSSFDataValidationHelper dataValidationHelper = new HSSFDataValidationHelper((HSSFSheet) sheet1); + DataValidationConstraint dataValidation = dataValidationHelper.createExplicitListConstraint(datas); + + CellRangeAddressList addressList = null; + HSSFDataValidation validation = null; + for (int i = 0; i < list.size(); i++) { + addressList = new CellRangeAddressList(i + 1, i + 1, 4, 4); + validation = (HSSFDataValidation) dataValidationHelper.createValidation( + dataValidation, addressList); + sheet1.addValidationData(validation); + } + + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode("手动打分", "UTF-8") + ".xls"); + ServletOutputStream out = response.getOutputStream(); + workbook.write(out); + out.flush(); + out.close(); + } + + /** + * @Description: 导入治理排行管理-手动打分记录 + * @Param: [file] + * @return: Result + * @Author: zy + * @Date: 2020-04-14 + */ + @PostMapping("importManualScoreExcel") + public Result importManualScoreExcel(@RequestParam("file") MultipartFile file) { + return manualScoreService.importManualScoreExcel(file); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/ManualScoreDao.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/ManualScoreDao.java index 639c7ce70..6983429b7 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/ManualScoreDao.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/ManualScoreDao.java @@ -18,9 +18,13 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.dto.ManualScoreDTO; import com.elink.esua.epdc.entity.ManualScoreEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; +import java.util.Map; + /** * 手动打分表 * @@ -29,5 +33,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ManualScoreDao extends BaseDao { - + + /** + * @Description: 治理排行管理-手动打分列表查询 + * @Param: [params] + * @return: java.util.List + * @Author: zy + * @Date: 2020-04-14 + */ + List selectListManualScoreResultDTO(Map params); + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/ManualScoreExcel.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/ManualScoreExcel.java index 9df19a4b0..38cce8f3d 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/ManualScoreExcel.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/excel/ManualScoreExcel.java @@ -20,7 +20,6 @@ package com.elink.esua.epdc.excel; import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; -import java.math.BigDecimal; import java.util.Date; /** @@ -32,59 +31,19 @@ import java.util.Date; @Data public class ManualScoreExcel { - @Excel(name = "主键") - private String id; + @Excel(name = "所属机构") + private String deptName; - @Excel(name = "被打分的部门ID") - private Long deptId; + @Excel(name = "被打分的机构类型") + private String deptType; - @Excel(name = "考核月度") - private Date month; - - @Excel(name = "考核年度") - private Date year; - - @Excel(name = "考核打分类型 0-月,1-年") + @Excel(name = "考核周期") private String scoreType; - @Excel(name = "打分的部门ID") - private Long creatorDeptId; - - @Excel(name = "打分的部门名称") - private String creatorDeptName; + @Excel(name = "考核起始日", format = "yyyy-MM-dd") + private Date scoreStartDate; @Excel(name = "得分") - private BigDecimal score; - - @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; - + private String score; } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/ManualScoreService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/ManualScoreService.java index 161188b4a..ad7c200c1 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/ManualScoreService.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/ManualScoreService.java @@ -19,8 +19,10 @@ 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.ManualScoreDTO; import com.elink.esua.epdc.entity.ManualScoreEntity; +import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; @@ -92,4 +94,31 @@ public interface ManualScoreService extends BaseService { * @date 2020-04-13 */ void delete(String[] ids); + + /** + * @Description: 导出治理排行管理-手动打分录入模板 + * @Param: [params] + * @return: java.util.List + * @Author: zy + * @Date: 2020-04-13 + */ + List listManualScoreExportTemplate(Map params); + + /** + * @Description: 导入治理排行管理-手动打分记录 + * @Param: [file] + * @return: Result + * @Author: zy + * @Date: 2020-04-14 + */ + Result importManualScoreExcel(MultipartFile file); + + /*** + * @Description: 治理排行管理-手动打分列表查询 + * @Param: [params] + * @return: com.elink.esua.epdc.commons.tools.page.PageData + * @Author: zy + * @Date: 2020-04-14 + */ + PageData listManualScoreResultDTO(Map params); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/ManualScoreServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/ManualScoreServiceImpl.java index 7887a1bc9..e65c9e114 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/ManualScoreServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/ManualScoreServiceImpl.java @@ -17,25 +17,65 @@ package com.elink.esua.epdc.service.impl; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +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.NumConstant; +import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant; +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.LocalDateUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.xss.XssHttpServletRequestWrapper; +import com.elink.esua.epdc.constant.WorkAppMenuConstant; import com.elink.esua.epdc.dao.ManualScoreDao; +import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO; import com.elink.esua.epdc.dto.ManualScoreDTO; +import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO; +import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO; +import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO; +import com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO; +import com.elink.esua.epdc.entity.KpiManualScoreEntity; +import com.elink.esua.epdc.entity.KpiRuleEntity; import com.elink.esua.epdc.entity.ManualScoreEntity; +import com.elink.esua.epdc.enums.KpiCycleEnum; +import com.elink.esua.epdc.excel.KpiManualScoreTemplateExcel; +import com.elink.esua.epdc.excel.ManualScoreExcel; +import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.ManualScoreRedis; +import com.elink.esua.epdc.service.ExplicitConstraint; import com.elink.esua.epdc.service.ManualScoreService; +import com.elink.esua.epdc.utils.DeptUtils; +import com.elink.esua.epdc.utils.StreamUtils; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.DataValidationHelper; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.xssf.usermodel.*; 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.util.Arrays; -import java.util.List; -import java.util.Map; +import java.io.File; +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.YearMonth; +import java.util.*; /** * 手动打分表 @@ -49,6 +89,12 @@ public class ManualScoreServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -83,13 +129,58 @@ public class ManualScoreServiceImpl extends BaseServiceImpl listManualScoreExportTemplate(Map params) { + //用户所选被打分的机构类型 + String deptType = params.get("deptType").toString(); + // yyyy-MM + String month = params.get("month").toString(); + // 考核周期开始月 + YearMonth scoreStartDateMonth = YearMonth.parse(month); + + // 用户拥有的所有部门权限 + List dataScopeDeptList = SecurityUser.getUser().getDeptIdList(); + Result> result = queryUserSysDeptInfo(dataScopeDeptList, deptType); + + if (!result.success() || CollUtil.isEmpty(result.getData())) { + return Lists.newArrayList(); + } + List list = Lists.newArrayList(); + + List userSysDeptInfoResultDTOList = result.getData(); + for (UserSysDeptInfoResultDTO userSysDeptInfoResultDTO : userSysDeptInfoResultDTOList) { + + ManualScoreDTO manualScoreDTO = new ManualScoreDTO(); + + if (OrganizationTypeConstant.ORG_TYPE_STREET_DEPT.equals(params.get("deptType").toString())){ + deptType = "街道"; + manualScoreDTO.setDeptName(userSysDeptInfoResultDTO.getStreet()); + } else if (OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(params.get("deptType").toString())){ + deptType = "社区"; + manualScoreDTO.setDeptName(userSysDeptInfoResultDTO.getStreet() + "-" + + userSysDeptInfoResultDTO.getName()); + } else if (OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(params.get("deptType").toString())){ + deptType = "网格"; + manualScoreDTO.setDeptName(userSysDeptInfoResultDTO.getStreet() + "-" + + userSysDeptInfoResultDTO.getCommunity() + "-" + userSysDeptInfoResultDTO.getGrid()); + } + + manualScoreDTO.setDeptType(deptType); + if ("0".equals(params.get("scoreType").toString())){ + manualScoreDTO.setScoreType("月"); + } else { + manualScoreDTO.setScoreType("年"); + } + + manualScoreDTO.setScoreStartDate(LocalDateUtils.localDateToDate(scoreStartDateMonth.atDay(NumConstant.ONE))); + + manualScoreDTO.setScore(null); + list.add(manualScoreDTO); + } + + return list; + } + + /** + * firstRow 開始行號 根据此项目,默认为2(下标0开始) + * lastRow 根据此项目,默认为最大65535 + * firstCol 区域中第一个单元格的列号 (下标0开始) + * lastCol 区域中最后一个单元格的列号 + * strings 下拉内容 + * */ + public static void selectList(Workbook workbook, int firstCol, int lastCol, String[] strings ){ + Sheet sheet = workbook.getSheetAt(0); + // 生成下拉列表 + // 只对(x,x)单元格有效 + CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol); + // 生成下拉框内容 + DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings); + HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint); + // 对sheet页生效 + sheet.addValidationData(dataValidation); + } + + @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 recordList = ExcelImportUtil.importExcel(f, ManualScoreExcel.class, new ImportParams()); + if (CollUtil.isEmpty(recordList)) { + return new Result().error("导入内容不能为空"); + } + UserDetail user = SecurityUser.getUser(); + // 校验excel数据 +// List checkResult = checkExcelForManualScore(recordList, user.getDeptIdList()); +// if (CollUtil.isNotEmpty(checkResult)) { +// Result result = new Result().error(); +// result.setData(checkResult); +// return result; +// } + for (ManualScoreExcel manualScoreExcel : recordList) { + ManualScoreEntity manualScoreEntity = packageManualScoreByExcelData(manualScoreExcel, user); + baseDao.insert(manualScoreEntity); + } + } catch (Exception e) { + return new Result().error("数据异常,解析excel文件失败"); + } finally { + // 删除文件 + this.deleteAllFilesOfDir(f); + } + return new Result(); + } + + /** + * @Description: 调用admin模块查询部门信息详情 + * @param dataScopeDeptList 用户数据权限 + * @param deptTypeKey 部门类别 + * @return: com.elink.esua.epdc.commons.tools.utils.Result> + * @Author: zy + * @Date: 2020-04-14 + */ + private Result> queryUserSysDeptInfo(List dataScopeDeptList, String deptTypeKey) { + + UserSysDeptInfoFormDTO userSysDeptInfoFormDTO = new UserSysDeptInfoFormDTO(); + + List typeKeyList = new ArrayList<>(); + typeKeyList.add(deptTypeKey); + userSysDeptInfoFormDTO.setTypeKeyList(typeKeyList); + + userSysDeptInfoFormDTO.setDeptIdList(dataScopeDeptList); + + return adminFeignClient.queryUserSysDeptInfo(userSysDeptInfoFormDTO); + } + + /** + * @Description: 组装手动打分实体 + * @Param: [excelData excel中的一条数据 + * @Param: user] 当前用户 + * @return: com.elink.esua.epdc.entity.ManualScoreEntity + * @Author: zy + * @Date: 2020-04-14 + */ + private ManualScoreEntity packageManualScoreByExcelData(ManualScoreExcel excelData, UserDetail user) { + + // 获取用户所有数据权限对应的部门 + List deptList = getDeptListByDateScope(user.getDeptIdList()); + DeptLevelAndLeaderDTO deptByExcelData = getDeptByExcelData(excelData, deptList); + if (null == deptByExcelData) { + throw new RenException("匹配数据权限失败"); + } + + DeptLevelAndLeaderDTO deptLevelInfo = deptUtils.getDeptLevelInfo(deptByExcelData.getDeptId(), YesOrNoEnum.YES); + ManualScoreEntity manualScoreEntity = new ManualScoreEntity(); + manualScoreEntity.setDeptId(deptLevelInfo.getDeptId()); + manualScoreEntity.setAllDeptIds(deptLevelInfo.getAllDeptIds()); + manualScoreEntity.setAllDeptNames(deptLevelInfo.getAllDeptNames()); + manualScoreEntity.setParentDeptIds(deptLevelInfo.getParentDeptIds()); + manualScoreEntity.setParentDeptNames(deptLevelInfo.getParentDeptNames()); + manualScoreEntity.setCreatorDeptId(user.getDeptId()); + manualScoreEntity.setCreatorDeptName(user.getDeptName()); + switch (excelData.getScore()) { + case "优": + manualScoreEntity.setScore(new BigDecimal(100)); + break; + case "良": + manualScoreEntity.setScore(new BigDecimal(80)); + break; + case "中": + manualScoreEntity.setScore(new BigDecimal(60)); + break; + case "差": + manualScoreEntity.setScore(new BigDecimal(40)); + break; + default: + break; + } + + //后期要进一步处理的字段值 + manualScoreEntity.setMonth(excelData.getScoreStartDate()); + manualScoreEntity.setScoreType(excelData.getScoreType()); + return manualScoreEntity; + } + + /** + * @Description: 通过数据权限获取所有部门列表 + * @Param: [deptIdList] + * @return: java.util.List + * @Author: zy + * @Date: 2020-04-14 + */ + private List getDeptListByDateScope(List deptIdList) { + List deptList = Lists.newArrayList(); + DeptLevelAndLeaderDTO deptLevelInfo; + for (Long deptId : deptIdList) { + deptLevelInfo = deptUtils.getDeptLevelInfo(deptId, YesOrNoEnum.NO); + deptList.add(deptLevelInfo); + } + return deptList; + } + + /** + * @Description: 从数据权限的所有部门中,匹配excel中的一行数据 + * @param excelData excel中的某一行 + * @param deptList 用户部门权限中的所有部门 + * @return: com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO + * @Author: zy + * @Date: 2020-04-14 + */ + private DeptLevelAndLeaderDTO getDeptByExcelData(ManualScoreExcel excelData, List deptList) { + String[] deptNameAll = excelData.getDeptName().split("-"); + String allDeptNames = ""; + if (deptNameAll.length == 3) { + allDeptNames = deptNameAll[0].trim() + .concat(StrConstant.HYPHEN).concat(deptNameAll[1].trim()) + .concat(StrConstant.HYPHEN).concat(deptNameAll[2].trim()); + } else if (deptNameAll.length == 2) { + allDeptNames = deptNameAll[0].trim() + .concat(StrConstant.HYPHEN).concat(deptNameAll[1].trim()); + } else if (deptNameAll.length == 1) { + allDeptNames = deptNameAll[0].trim(); + } + for (DeptLevelAndLeaderDTO oneDept : deptList) { + if (oneDept.getAllDeptNames().contains(allDeptNames)) { + return oneDept; + } + } + return null; + } + + /** + * 删除文件夹(强制删除) + * + * @param path + */ + private 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 PageData listManualScoreResultDTO(Map params) { + String allDeptIds = ""; + if (params.get("streetId") != "" && params.get("streetId") != null) { + allDeptIds = params.get("streetId").toString(); //查询条件 街道 + } + if (params.get("communityId") != "" && params.get("communityId") != null) { + allDeptIds = params.get("communityId").toString(); //查询条件 社区 + } + if (params.get("gridId") != "" && params.get("gridId") != null) { + allDeptIds = params.get("gridId").toString(); //查询条件 网格 + } + params.put("allDeptIds", allDeptIds); + IPage page = getPage(params); + List list = baseDao.selectListManualScoreResultDTO(params); + return new PageData<>(list, page.getTotal()); + } + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/ManualScoreDao.xml b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/ManualScoreDao.xml index 7996bc684..3de96dbad 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/ManualScoreDao.xml +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/ManualScoreDao.xml @@ -24,5 +24,25 @@ - + \ No newline at end of file