From 6738104534d55cc16d367a9331c2bab81534eff8 Mon Sep 17 00:00:00 2001 From: Timer <@> Date: Thu, 16 Apr 2026 01:13:03 +0800 Subject: [PATCH] bug --- .../controller/kpi/KpiPlanController.java | 9 +- .../sparepart/SewageController.java | 15 ++- .../workorder/WorkorderDetailController.java | 93 ++++++++++--------- .../com/sipai/dao/sparepart/SewageDao.java | 9 ++ .../sipai/mapper/sparepart/SewageMapper.xml | 11 +++ .../service/sparepart/SewageService.java | 54 ++++++++++- src/main/webapp/jsp/kpi/kpiPlanList.jsp | 12 ++- src/main/webapp/jsp/sparepart/sewageList.jsp | 12 ++- .../workorderDetailEndMaintainList.jsp | 17 ++-- .../workorderDetailEndRepairList.jsp | 22 ++--- 10 files changed, 179 insertions(+), 75 deletions(-) diff --git a/src/main/java/com/sipai/controller/kpi/KpiPlanController.java b/src/main/java/com/sipai/controller/kpi/KpiPlanController.java index c6db56fe..cd7c030e 100644 --- a/src/main/java/com/sipai/controller/kpi/KpiPlanController.java +++ b/src/main/java/com/sipai/controller/kpi/KpiPlanController.java @@ -104,7 +104,7 @@ public class KpiPlanController { if (StringUtils.isNotBlank(positonTypeList)) { wherestr += " and j.level_type = " + positonTypeList; } - wherestr += "and p.create_user_id ='" + id + "'"; + wherestr += " and p.create_user_id ='" + id + "'"; PageHelper.startPage(page, rows); List list = kpiPlanService.selectListByWhere(wherestr + orderstr); @@ -387,7 +387,8 @@ public class KpiPlanController { @RequestMapping("/export.do") public void export(HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "periodTypeName", required = false) String periodTypeList, - @RequestParam(value = "positionType", required = false) String positonTypeList) throws IOException { + @RequestParam(value = "positionType", required = false) String positonTypeList, + @RequestParam(value = "ids", required = false) String ids) throws IOException { // 摘自列表查询接口 start User cu = (User) request.getSession().getAttribute("cu"); String id = cu.getId(); @@ -399,6 +400,10 @@ public class KpiPlanController { if (StringUtils.isNotBlank(positonTypeList) && !"null".equals(positonTypeList)) { wherestr += " and j.level_type = " + positonTypeList; } + if (StringUtils.isNotBlank(ids)) { + String idstr = ids.replace("'", "").replace(",", "','"); + wherestr += " and p.id in ('" + idstr + "')"; + } wherestr += "and p.create_user_id ='" + id + "'"; List list = kpiPlanService.selectListByWhere(wherestr + orderstr); diff --git a/src/main/java/com/sipai/controller/sparepart/SewageController.java b/src/main/java/com/sipai/controller/sparepart/SewageController.java index 69c3ef0f..7bfee94d 100644 --- a/src/main/java/com/sipai/controller/sparepart/SewageController.java +++ b/src/main/java/com/sipai/controller/sparepart/SewageController.java @@ -134,6 +134,12 @@ public class SewageController { public String dosave(HttpServletRequest request,Model model, @ModelAttribute Sewage sewage) { User cu = (User) request.getSession().getAttribute("cu"); + String contractNumber = sewage.getContractNumber() == null ? null : sewage.getContractNumber().trim(); + sewage.setContractNumber(contractNumber); + if (this.sewageService.existsByContractNumber(contractNumber)) { + model.addAttribute("result", "{\"res\":\"合同编号已存在,不可重复\"}"); + return "result"; + } sewage.setId(CommUtil.getUUID()); int result = this.sewageService.save(sewage); String resultstr = "{\"res\":\""+result+"\",\"id\":\""+sewage.getId()+"\"}"; @@ -193,6 +199,12 @@ public class SewageController { public String doupdate(HttpServletRequest request,Model model, @ModelAttribute Sewage sewage) { User cu = (User) request.getSession().getAttribute("cu"); + String contractNumber = sewage.getContractNumber() == null ? null : sewage.getContractNumber().trim(); + sewage.setContractNumber(contractNumber); + if (this.sewageService.existsByContractNumberExcludeId(contractNumber, sewage.getId())) { + model.addAttribute("result", "{\"res\":\"合同编号已存在,不可重复\"}"); + return "result"; + } int result = this.sewageService.update(sewage); String resstr="{\"res\":\""+result+"\",\"id\":\""+sewage.getId()+"\"}"; model.addAttribute("result", resstr); @@ -348,7 +360,8 @@ public class SewageController { @RequestMapping(value = "downloadExcelFun.do") public ModelAndView downloadExcelFun(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException { - this.sewageService.outExcelFun(response); + String ids = request.getParameter("ids"); + this.sewageService.outExcelFun(response, ids); return null; } diff --git a/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java b/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java index d28d0a71..2c19d4e5 100644 --- a/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java +++ b/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java @@ -1252,21 +1252,14 @@ public class WorkorderDetailController { @RequestMapping("/doExportRepair.do") public ModelAndView doExportRepair(HttpServletRequest request, HttpServletResponse response, Model model, - @RequestParam(value = "ids") String ids, + @RequestParam(value = "ids", required = false) String ids, @RequestParam(value = "type") String type) throws IOException { - if (ids != null && !ids.equals("")) { - String[] id = ids.split(","); - String workorderDetailsIds = ""; - for (String s : id) { - workorderDetailsIds += "'" + s + "',"; - } - String whereStr = "where id in (" + workorderDetailsIds.substring(0, workorderDetailsIds.length() - 1) + ")"; - try { - List workorderDetails = workorderDetailService.selectListByWhere(whereStr); - this.workorderDetailService.doExportRepair(response, workorderDetails, type); - } catch (Exception e) { - e.printStackTrace(); - } + String whereStr = buildExportWhereByIdsAndType(ids, type); + try { + List workorderDetails = workorderDetailService.selectListByWhere(whereStr); + this.workorderDetailService.doExportRepair(response, workorderDetails, type); + } catch (Exception e) { + e.printStackTrace(); } return null; } @@ -1292,21 +1285,14 @@ public class WorkorderDetailController { @RequestMapping("/doExportRepairJS.do") public ModelAndView doExportRepairJS(HttpServletRequest request, HttpServletResponse response, Model model, - @RequestParam(value = "ids") String ids, + @RequestParam(value = "ids", required = false) String ids, @RequestParam(value = "type") String type) throws IOException { - if (ids != null && !ids.equals("")) { - String[] id = ids.split(","); - String workorderDetailsIds = ""; - for (String s : id) { - workorderDetailsIds += "'" + s + "',"; - } - String whereStr = "where id in (" + workorderDetailsIds.substring(0, workorderDetailsIds.length() - 1) + ")"; - try { - List workorderDetails = workorderDetailService.selectListByWhere(whereStr); - this.workorderDetailService.doExportRepairJS(response, workorderDetails, type); - } catch (Exception e) { - e.printStackTrace(); - } + String whereStr = buildExportWhereByIdsAndType(ids, type); + try { + List workorderDetails = workorderDetailService.selectListByWhere(whereStr); + this.workorderDetailService.doExportRepairJS(response, workorderDetails, type); + } catch (Exception e) { + e.printStackTrace(); } return null; } @@ -1332,26 +1318,47 @@ public class WorkorderDetailController { @RequestMapping("/doExportMain.do") public ModelAndView doExportMain(HttpServletRequest request, HttpServletResponse response, Model model, - @RequestParam(value = "ids") String ids, + @RequestParam(value = "ids", required = false) String ids, @RequestParam(value = "type") String type) throws IOException { - if (ids != null && !ids.equals("")) { - String[] id = ids.split(","); - String workorderDetailsIds = ""; - for (String s : id) { - workorderDetailsIds += "'" + s + "',"; - } - String whereStr = "where id in (" + workorderDetailsIds.substring(0, workorderDetailsIds.length() - 1) + ")"; -// System.out.println(whereStr); - try { - List workorderDetails = workorderDetailService.selectListByWhere(whereStr); - this.workorderDetailService.doExportMain(response, workorderDetails, type); - } catch (Exception e) { - e.printStackTrace(); - } + String whereStr = buildExportWhereByIdsAndType(ids, type); + try { + List workorderDetails = workorderDetailService.selectListByWhere(whereStr); + this.workorderDetailService.doExportMain(response, workorderDetails, type); + } catch (Exception e) { + e.printStackTrace(); } return null; } + private String buildExportWhereByIdsAndType(String ids, String type) { + String normalizedIds = normalizeIds(ids); + if (!normalizedIds.isEmpty()) { + String[] idArr = normalizedIds.split(","); + StringBuilder idBuilder = new StringBuilder(); + for (String item : idArr) { + String id = item.trim(); + if (id.isEmpty()) { + continue; + } + if (idBuilder.length() > 0) { + idBuilder.append(","); + } + idBuilder.append("'").append(id).append("'"); + } + if (idBuilder.length() > 0) { + return "where id in (" + idBuilder + ")"; + } + } + return "where type = '" + type + "'"; + } + + private String normalizeIds(String ids) { + if (ids == null || ids.trim().isEmpty()) { + return ""; + } + return ids.replace("'", "").replace(" ", "").replaceAll(",+$", ""); + } + /** * 日历中弹出指定日期的 维修单 * diff --git a/src/main/java/com/sipai/dao/sparepart/SewageDao.java b/src/main/java/com/sipai/dao/sparepart/SewageDao.java index 2494acfc..889701f3 100644 --- a/src/main/java/com/sipai/dao/sparepart/SewageDao.java +++ b/src/main/java/com/sipai/dao/sparepart/SewageDao.java @@ -5,6 +5,7 @@ import com.sipai.entity.sparepart.Sewage; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; @Repository public class SewageDao extends CommDaoImpl { @@ -16,5 +17,13 @@ public class SewageDao extends CommDaoImpl { List list = getSqlSession().selectList(this.getMappernamespace()+"."+Thread.currentThread().getStackTrace()[1].getMethodName(), sewage); return list; } + + public Integer selectCountByContractNumber(String contractNumber) { + return getSqlSession().selectOne(this.getMappernamespace() + "." + Thread.currentThread().getStackTrace()[1].getMethodName(), contractNumber); + } + + public Integer selectCountByContractNumberExcludeId(Map params) { + return getSqlSession().selectOne(this.getMappernamespace() + "." + Thread.currentThread().getStackTrace()[1].getMethodName(), params); + } } diff --git a/src/main/java/com/sipai/mapper/sparepart/SewageMapper.xml b/src/main/java/com/sipai/mapper/sparepart/SewageMapper.xml index 873248a1..3d09833c 100644 --- a/src/main/java/com/sipai/mapper/sparepart/SewageMapper.xml +++ b/src/main/java/com/sipai/mapper/sparepart/SewageMapper.xml @@ -312,6 +312,17 @@ delete from TB_Sewage_Source ${where} + +