From 8cf04475f941d1d46d9e19255c82ec9d5382cf20 Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Thu, 29 May 2025 13:46:39 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EvalSummaryController.java | 4 + .../OutsourcerEvaluateController.java | 243 ++++++++++++++---- .../service/TeamEvaluateServiceImpl.java | 9 + .../mappers/evaluate/EvalSummaryMapper.xml | 8 +- .../outsourceAudit/outsourceAuditList.html | 147 ++++++----- 5 files changed, 283 insertions(+), 128 deletions(-) diff --git a/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/EvalSummaryController.java b/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/EvalSummaryController.java index 18f0513..f54ba15 100644 --- a/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/EvalSummaryController.java +++ b/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/EvalSummaryController.java @@ -8,6 +8,7 @@ import com.bonus.gs.sub.evaluate.manager.controller.BaseController; import com.bonus.gs.sub.evaluate.manager.utils.AjaxRes; import com.bonus.gs.sub.evaluate.manager.utils.GlobalConst; import com.bonus.gs.sub.evaluate.manager.utils.UserUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -84,6 +85,9 @@ public class EvalSummaryController extends BaseController { public AjaxRes evalSummaryList(EvalSummaryBean bean) { AjaxRes ar = getAjaxRes(); try { + if (StringUtils.isNotBlank(bean.getSearchDate())){ + bean.setStartDate(bean.getSearchDate()); + } List list = service.getEvalSummaryList(bean); ar.setListSucceed(list); } catch (Exception e) { diff --git a/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/OutsourcerEvaluateController.java b/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/OutsourcerEvaluateController.java index 22205de..335fe99 100644 --- a/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/OutsourcerEvaluateController.java +++ b/src/main/java/com/bonus/gs/sub/evaluate/evaluate/controller/OutsourcerEvaluateController.java @@ -24,6 +24,10 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.net.URLEncoder; import java.util.*; @Controller @@ -58,6 +62,7 @@ public class OutsourcerEvaluateController extends BaseController list = outsourcerEvaluateService.getEvaluateAuditList(o); @@ -152,6 +159,122 @@ public class OutsourcerEvaluateController extends BaseController list = outsourcerEvaluateService.getEvaluateAuditList(o); + excelOut(response, list, filename, "退场班组评价"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void excelOut(HttpServletResponse response, List registlist, String filename, String sheetname) + throws Exception { + if (registlist != null) { + List> results = new ArrayList>(); + int size = registlist.size(); + for (int i = 0; i < size; i++) { + OutSourceBean bean = registlist.get(i); + Map maps = outVehicleOilBeanMap(i, bean, sheetname); + results.add(maps); + } + List headers = outVehicleOilHeaders(sheetname); + HSSFWorkbook workbook = POIOutputHelperNumBer.excel(results, headers, filename); + OutputStream out = null; + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.addHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(filename, "UTF-8") + ".xls"); + response.setHeader("Pragma", "No-cache"); + out = response.getOutputStream(); + workbook.write(out); + out.flush(); + out.close(); + } + } + + private List outVehicleOilHeaders(String sheetname) { + ArrayList list = new ArrayList(); + list.add("序号"); + + switch (sheetname) { + case "退场班组评价": + list.add("评价事业部"); + list.add("评价标题"); + list.add("评价年月"); + list.add("项目数量"); + list.add("外包商数量"); + list.add("评价状态"); + list.add("审核状态"); + list.add("驳回原因"); + break; + default: + break; + } + return list; + } + + private Map outVehicleOilBeanMap(int i, OutSourceBean bean, String sheetname) { + Map maps = new LinkedHashMap(); + maps.put("id", i + 1); + switch (sheetname) { + case "退场班组评价": + maps.put("evaluateDept", bean.getEvaluateDept()); + maps.put("evaluateTitle", bean.getEvaluateTitle()); + maps.put("evaluateMonth", bean.getEvaluateMonth()); + maps.put("projectNum", bean.getProjectNum()); + maps.put("outsourcerNum", bean.getOutsourcerNum()); + if (bean.getIsApprove() == null) { + bean.setIsApprove("0"); + } + if (bean.getEvaluateNum() == null) { + bean.setEvaluateNum("0"); + } + if (bean.getIsAuditTask() == null) { + bean.setIsAuditTask("0"); + } + + if (Integer.parseInt(bean.getEvaluateNum()) > 0 && StringUtils.isNotBlank(bean.getRejectReason())) { + maps.put("evaluateStatus", "评价驳回"); + } else if (Integer.parseInt(bean.getEvaluateNum()) > 0 && Integer.parseInt(bean.getIsAuditTask()) > 0) { + maps.put("evaluateStatus", "已评价"); + } else if (Integer.parseInt(bean.getEvaluateNum()) > 0 && Integer.parseInt(bean.getIsAuditTask()) == 0) { + maps.put("evaluateStatus", "评价中"); + } else { + maps.put("evaluateStatus", "未评价"); + } + + if (bean.getRejectReason() != null && !bean.getRejectReason().trim().isEmpty()) { + maps.put("auditStatus", "已驳回"); + } else { + if (Integer.parseInt(bean.getIsApprove()) > 0 && StringUtils.isNotBlank(bean.getRejectReason())) { + maps.put("auditStatus", "已驳回"); + } else if (Integer.parseInt(bean.getIsApprove()) == 1) { + maps.put("auditStatus", "已通过"); + } else if (Integer.parseInt(bean.getEvaluateNum()) > 0 && Integer.parseInt(bean.getIsApprove()) == 0) { + maps.put("auditStatus", "待审批"); + } else { + maps.put("auditStatus", "待评价"); + } + } + maps.put("rejectReason", bean.getRejectReason()); + break; + default: + break; + } + return maps; + } + + @RequestMapping(value = "/getAuditTitleData", method = RequestMethod.GET) @ResponseBody public AjaxRes getAuditTitleData(EvaluateSubBean o) { @@ -166,13 +289,13 @@ public class OutsourcerEvaluateController extends BaseController stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7","汇总审批人"); - if(StringUtils.isBlank(o.getEvaluateId())){ + List stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7", "汇总审批人"); + if (StringUtils.isBlank(o.getEvaluateId())) { ar.setFailMsg("评价ID不能为空"); return ar; } - if(stringList==null || stringList.size() == 0){ + if (stringList == null || stringList.size() == 0) { ar.setFailMsg("请先配置汇总审批人"); return ar; @@ -203,19 +326,19 @@ public class OutsourcerEvaluateController extends BaseController dataBeanList = outsourcerEvaluateDao.getEvaluateSubInfo(o); o.setUserName(UserUtil.getLoginUser().getNickname()); dataBeanList.forEach(dataBean -> { - childDataList.forEach(item ->{ - if ( dataBean.getSubId().equals(((JSONObject) item).getString("subId"))) { + childDataList.forEach(item -> { + if (dataBean.getSubId().equals(((JSONObject) item).getString("subId"))) { //取出item中的所有包含total的数据 dataBean.setTotalScore(String.format("%.2f", ((JSONObject) item).getDouble("totalScore"))); dataBean.setTitleName(dataBean.getEvaluateDate() + "对标得分"); @@ -268,20 +393,20 @@ public class OutsourcerEvaluateController extends BaseController stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7","汇总审批人"); - if(StringUtils.isBlank(o.getEvaluateId())){ + List stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7", "汇总审批人"); + if (StringUtils.isBlank(o.getEvaluateId())) { ar.setFailMsg("评价ID不能为空"); return ar; } - if(stringList==null || stringList.size() == 0){ + if (stringList == null || stringList.size() == 0) { ar.setFailMsg("请先配置汇总审批人"); return ar; @@ -317,19 +442,19 @@ public class OutsourcerEvaluateController extends BaseController stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7","专责"); - if(StringUtils.isBlank(o.getEvaluateId())){ + List stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7", "专责"); + if (StringUtils.isBlank(o.getEvaluateId())) { ar.setFailMsg("评价ID不能为空"); return ar; } - if(stringList==null || stringList.size() == 0){ + if (stringList == null || stringList.size() == 0) { ar.setFailMsg("请先配置专责审批人"); return ar; } @@ -468,13 +597,13 @@ public class OutsourcerEvaluateController extends BaseController stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7","专责"); - if(StringUtils.isBlank(o.getEvaluateId())){ + List stringList = outsourcerEvaluateDao.getExaminePersonByDeptAndRoleName("7", "专责"); + if (StringUtils.isBlank(o.getEvaluateId())) { ar.setFailMsg("评价ID不能为空"); return ar; } - if(stringList==null || stringList.size() == 0){ + if (stringList == null || stringList.size() == 0) { ar.setFailMsg("请先配置专责审批人"); return ar; @@ -498,18 +627,18 @@ public class OutsourcerEvaluateController extends BaseController list = null; try { bean.setEvUserId(Integer.parseInt(String.valueOf(UserUtil.getLoginUser().getId()))); + if ("5".equals(UserUtil.getLoginUser().getRoleId()) || Arrays.asList(UserUtil.getLoginUser().getRoleId().split(",")).contains("5")) { + bean.setRoleId("5"); + } else if ("6".equals(UserUtil.getLoginUser().getRoleId()) || Arrays.asList(UserUtil.getLoginUser().getRoleId().split(",")).contains("6")) { + bean.setRoleId("6"); + }else if ("1".equals(UserUtil.getLoginUser().getRoleId()) || Arrays.asList(UserUtil.getLoginUser().getRoleId().split(",")).contains("1")) { + bean.setRoleId("1"); + }else{ + bean.setRoleId("0"); + } list = dao.getTeamEvaluateList(bean); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/resources/mappers/evaluate/EvalSummaryMapper.xml b/src/main/resources/mappers/evaluate/EvalSummaryMapper.xml index 14334f2..4063bb7 100644 --- a/src/main/resources/mappers/evaluate/EvalSummaryMapper.xml +++ b/src/main/resources/mappers/evaluate/EvalSummaryMapper.xml @@ -58,8 +58,8 @@ and per.dept_id = #{evaluateDeptId} - - and per.year_and_month = #{searchDate} + + and per.year_and_month = #{startDate} and per.evaluate_name like concat('%', #{keyWord}, '%' ) @@ -143,8 +143,8 @@ and per.dept_id = #{evaluateDeptId} - - and per.year_and_month = #{searchDate} + + and per.year_and_month = #{startDate} and per.evaluate_name like concat('%', #{keyWord}, '%' ) diff --git a/src/main/resources/static/pages/evaluate/outsourceAudit/outsourceAuditList.html b/src/main/resources/static/pages/evaluate/outsourceAudit/outsourceAuditList.html index 3c80407..05882ad 100644 --- a/src/main/resources/static/pages/evaluate/outsourceAudit/outsourceAuditList.html +++ b/src/main/resources/static/pages/evaluate/outsourceAudit/outsourceAuditList.html @@ -4,7 +4,7 @@ 外包商评价 - + -
-
-
-
- -
-
- -
-
- -
-
- -
-
-
- -
-
- -
- - - +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
- -
-
+ +
+ + + +
+ +
+
- - - - - - - +
+ + + + + + + @@ -121,12 +122,24 @@ keyWord: $("#keyWord").val(), evaluateDeptId: $("#evaluateDeptId").val(), evStatus: $("#evStatus").val(), + auditStatus: $("#auditStatus").val(), startDate: $("#startDate").val(), endDate: $("#endDate").val(), } }); } + function exportData() { + let keyWord = $("#keyWord").val(); + let evaluateDeptId = $("#evaluateDeptId").val(); + let evStatus = $("#evStatus").val(); + let auditStatus = $("#auditStatus").val(); + let token = localStorage.getItem("token") + let startDate = $("#startDate").val(); + let params = "?keyWord=" + keyWord + "&evStatus=" + evStatus + "&auditStatus=" + auditStatus + "&evaluateDeptId=" + evaluateDeptId + "&startDate=" + startDate + '&token=' + token; + $(location).attr("href", ctxPath + '/outsourcer/exportExcelData' + params); + } + function initTable() { let loginUser = localStorage.getItem("loginUser"); let user = JSON.parse(loginUser); @@ -136,18 +149,17 @@ , url: ctxPath + '/outsourcer/getEvaluateAuditList' //数据接口 , method: 'get' //方式默认是get , toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档 - , where: { - } //post请求必须加where ,post请求需要的参数 + , where: {} //post请求必须加where ,post请求需要的参数 , cellMinWidth: 80 , cols: [[ //表头 { field: 'number', width: 80, title: '序号', align: 'center', type: 'numbers' } - , { field: 'evaluateDept', align: 'center', title: '评价事业部' } - , { field: 'evaluateTitle', align: 'center', title: '评价标题' } - , { field: 'evaluateMonth', align: 'center', title: '评价年月' } - , { field: 'projectNum', align: 'center', title: '项目数量' } - , { field: 'outsourcerNum', align: 'center', title: '外包商数量' } + , {field: 'evaluateDept', align: 'center', title: '评价事业部'} + , {field: 'evaluateTitle', align: 'center', title: '评价标题'} + , {field: 'evaluateMonth', align: 'center', title: '评价年月'} + , {field: 'projectNum', align: 'center', title: '项目数量'} + , {field: 'outsourcerNum', align: 'center', title: '外包商数量'} , { field: 'evaluateStatus', align: 'center', title: '评价状态', templet: d => { if (Number(d.evaluateNum) > 0 && d.rejectReason) { @@ -163,15 +175,15 @@ // Number(d.evaluateNum) > 0 && d.rejectReason ? '评价驳回' : (Number(d.evaluateNum) > 0 ? '已评价' : '未评价') } , { - field: 'auditStatus', align: 'center', title: '审核状态', templet:function(d){ - if(d.rejectReason){ + field: 'auditStatus', align: 'center', title: '审核状态', templet: function (d) { + if (d.rejectReason) { return '已驳回' - }else{ - return Number(d.isApprove) > 0 && d.rejectReason ? '已驳回' : (Number(d.isApprove) === 1 ? '已通过' : (Number(d.evaluateNum) > 0 && d.isApprove == 0 ? '待审批' : '待评价')) + } else { + return Number(d.isApprove) > 0 && d.rejectReason ? '已驳回' : (Number(d.isApprove) === 1 ? '已通过' : (Number(d.evaluateNum) > 0 && d.isApprove == 0 ? '待审批' : '待评价')) } } } - , { field: 'rejectReason', align: 'center', title: '驳回原因' } + , {field: 'rejectReason', align: 'center', title: '驳回原因'} , { fixed: 'right', width: 180, title: '操作', align: 'center', templet: d => { let text = ""; @@ -251,7 +263,8 @@ content: url, maxmin: false, area: ['90%', '95%'], - success: function (layero, index) { }, + success: function (layero, index) { + }, end: function () { table.reload('baseTable', { url: ctxPath + '/outsourcer/getEvaluateAuditList',