diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhKhrwResultController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhKhrwResultController.java index aed4af2..1f3d2d2 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhKhrwResultController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhKhrwResultController.java @@ -1,6 +1,8 @@ package com.ruoyi.kaohe.controller; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; @@ -10,6 +12,7 @@ import com.alibaba.fastjson2.JSONObject; import com.ruoyi.kaohe.domain.*; import com.ruoyi.kaohe.service.IKhVoteEmpService; import com.ruoyi.kaohe.service.IKhVoteService; +import com.ruoyi.kaohe.util.EnhancedJsonExporter; import com.ruoyi.kaohe.util.PinYinUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -51,14 +54,16 @@ public class KhKhrwResultController extends BaseController { @PreAuthorize("@ss.hasPermi('kaohe:kh_result:generate')") @PostMapping("/generateResult") public AjaxResult generateResult(KhPingce pc) { //传递参数 id、pcTitle、bkhdxtype + boolean isUpdate=false; //查询是否已经生成结果 KhKhrwResult resultQuery = new KhKhrwResult(); resultQuery.setPcId(pc.getId()); List khKhrwResults = khKhrwResultService.selectKhKhrwResultList(resultQuery); if(khKhrwResults!=null&&khKhrwResults.size()>0){ - return AjaxResult.error("该考核任务已有生成结果!"); + isUpdate=true; + pc.setPcResultId(khKhrwResults.get(0).getId()); } - return khKhrwResultService.generateResult(pc); + return khKhrwResultService.generateResult(pc,isUpdate); } /** @@ -83,6 +88,20 @@ public class KhKhrwResultController extends BaseController { ExcelUtil util = new ExcelUtil(KhKhrwResult.class); util.exportExcel(response, list, "考核结果数据"); } + /** + * 根据考核结果id导出具体考核结果 + */ + @PreAuthorize("@ss.hasPermi('kaohe:kh_result:export')") + @Log(title = "考核结果", businessType = BusinessType.EXPORT) + @PostMapping("/exportById") + public void exportById(HttpServletResponse response, Long id) throws Exception { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("汇总数据.xlsx", "UTF-8")); + KhKhrwResult khrwResult = khKhrwResultService.selectKhKhrwResultById(id); + String tableHeader = khrwResult.getTableHeader(); + String tableData = khrwResult.getTableData(); + EnhancedJsonExporter.exportWithMergedHeader(tableHeader,tableData,response); + } /** * 获取考核结果详细信息 diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhKhrwResultService.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhKhrwResultService.java index 06d5601..699a766 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhKhrwResultService.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhKhrwResultService.java @@ -62,5 +62,5 @@ public interface IKhKhrwResultService */ public int deleteKhKhrwResultById(Long id); - AjaxResult generateResult(KhPingce pc); + AjaxResult generateResult(KhPingce pc,boolean isUpdate); } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhKhrwResultServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhKhrwResultServiceImpl.java index 1ba078a..dae9d48 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhKhrwResultServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhKhrwResultServiceImpl.java @@ -108,7 +108,7 @@ public class KhKhrwResultServiceImpl implements IKhKhrwResultService } @Override - public AjaxResult generateResult(KhPingce pc) { + public AjaxResult generateResult(KhPingce pc,boolean isUpdate) { JSONArray children = new JSONArray(); JSONObject tableColumn = new JSONObject(); tableColumn.put("name", "khdx"); @@ -250,7 +250,12 @@ public class KhKhrwResultServiceImpl implements IKhKhrwResultService pcResult.setPcName(pc.getPcTitle()); pcResult.setTableHeader(children.toJSONString()); pcResult.setTableData(endData.toJSONString()); - this.insertKhKhrwResult(pcResult); + if(isUpdate){ + pcResult.setId(pc.getPcResultId()); + this.updateKhKhrwResult(pcResult); + }else{ + this.insertKhKhrwResult(pcResult); + } return AjaxResult.success(); } }