当前位置: 首页 > news >正文

冲刺博客4

1.昨天的成就
完成检测计划管理和检测工单管理的开发
2.遇到的困难
设备状态选项无法随着用户的操作正常更新
3.今天的任务
对设备故障管理和维修工单管理添加语音助手
4.代码嵌入
package com.yunwei.servlet;

import com.yunwei.model.InspectionOrder;
import com.yunwei.util.DBUtil;
import com.yunwei.util.ImageUtil;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.MultipartConfig;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.;
import java.io.File;
import java.io.IOException;
import java.sql.
;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

@MultipartConfig(maxFileSize = 5 * 1024 * 1024, maxRequestSize = 20 * 1024 * 1024)
@WebServlet("/inspection/order/*")
public class InspectionOrderServlet extends HttpServlet {
private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String pathInfo = req.getPathInfo();if (pathInfo == null) pathInfo = "/list";switch (pathInfo) {case "/list" -> list(req, resp);case "/add" -> add(req, resp);case "/edit" -> edit(req, resp);case "/detail" -> detail(req, resp);case "/accept" -> accept(req, resp);case "/start" -> start(req, resp);case "/complete" -> complete(req, resp);case "/close" -> close(req, resp);default -> list(req, resp);}
}private void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {if ("GET".equalsIgnoreCase(req.getMethod())) {req.getRequestDispatcher("/WEB-INF/jsp/inspection/orderForm.jsp").forward(req, resp);return;}String orderNo = "XJ" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));String sql = "INSERT INTO inspection_order (order_no, plan_id, device_type, device_name, device_code, location, inspect_date, assign_to, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";try (Connection conn = DBUtil.getConnection();PreparedStatement ps = conn.prepareStatement(sql)) {ps.setString(1, orderNo);ps.setInt(2, req.getParameter("planId") != null && !req.getParameter("planId").isEmpty() ? Integer.parseInt(req.getParameter("planId")) : 0);ps.setString(3, req.getParameter("deviceType"));ps.setString(4, req.getParameter("deviceName"));ps.setString(5, req.getParameter("deviceCode"));ps.setString(6, req.getParameter("location"));ps.setDate(7, Date.valueOf(req.getParameter("inspectDate")));ps.setString(8, req.getParameter("assignTo"));ps.setString(9, "待处理");ps.executeUpdate();resp.sendRedirect(req.getContextPath() + "/inspection/order/list");} catch (SQLException e) {e.printStackTrace();req.setAttribute("error", "添加失败:" + e.getMessage());req.getRequestDispatcher("/WEB-INF/jsp/inspection/orderForm.jsp").forward(req, resp);}
}private void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String keyword = req.getParameter("keyword");String status = req.getParameter("status");int page = 1; String pageStr = req.getParameter("page");if (pageStr != null && !pageStr.isEmpty()) page = Integer.parseInt(pageStr);int pageSize = 10;StringBuilder sql = new StringBuilder("SELECT * FROM inspection_order WHERE 1=1");List<Object> params = new ArrayList<>();if (keyword != null && !keyword.isEmpty()) {sql.append(" AND (order_no LIKE ? OR device_name LIKE ?)");String kw = "%" + keyword + "%"; params.add(kw); params.add(kw);}if (status != null && !status.isEmpty() && !status.equals("全部")) { sql.append(" AND status=?"); params.add(status); }try (Connection conn = DBUtil.getConnection()) {PreparedStatement ps = conn.prepareStatement("SELECT COUNT(*) FROM ("+sql+") t");for(int i=0;i<params.size();i++) ps.setObject(i+1,params.get(i));ResultSet rs=ps.executeQuery();int total=rs.next()?rs.getInt(1):0;int totalPages=(int)Math.ceil((double)total/pageSize);sql.append(" ORDER BY create_time DESC LIMIT ?,?");params.add((page-1)*pageSize);params.add(pageSize);PreparedStatement ps2=conn.prepareStatement(sql.toString());for(int i=0;i<params.size();i++) ps2.setObject(i+1,params.get(i));ResultSet rs2=ps2.executeQuery();List<InspectionOrder> orders=new ArrayList<>();while(rs2.next()){InspectionOrder o=new InspectionOrder();o.setId(rs2.getInt("id"));o.setOrderNo(rs2.getString("order_no"));o.setPlanId(rs2.getInt("plan_id"));o.setDeviceType(rs2.getString("device_type"));o.setDeviceName(rs2.getString("device_name"));o.setDeviceCode(rs2.getString("device_code"));o.setLocation(rs2.getString("location"));o.setInspectDate(rs2.getDate("inspect_date").toLocalDate());o.setAssignTo(rs2.getString("assign_to"));o.setStatus(rs2.getString("status"));o.setDeviceStatus(rs2.getString("device_status"));o.setPhotoPath(rs2.getString("photo_path"));Timestamp ct=rs2.getTimestamp("create_time");if(ct!=null)o.setCreateTime(ct.toLocalDateTime());orders.add(o);}req.setAttribute("orders",orders);req.setAttribute("currentPage",page);req.setAttribute("totalPages",totalPages);req.setAttribute("total",total);req.setAttribute("keyword",keyword);req.setAttribute("status",status);}catch(SQLException e){e.printStackTrace();}req.getRequestDispatcher("/WEB-INF/jsp/inspection/orderList.jsp").forward(req,resp);
}private void detail(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{String id=req.getParameter("id");try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("SELECT * FROM inspection_order WHERE id=?")){ps.setInt(1,Integer.parseInt(id));ResultSet rs=ps.executeQuery();if(rs.next()){InspectionOrder o=new InspectionOrder();o.setId(rs.getInt("id"));o.setOrderNo(rs.getString("order_no"));o.setPlanId(rs.getInt("plan_id"));o.setDeviceType(rs.getString("device_type"));o.setDeviceName(rs.getString("device_name"));o.setDeviceCode(rs.getString("device_code"));o.setLocation(rs.getString("location"));o.setInspectDate(rs.getDate("inspect_date").toLocalDate());o.setAssignTo(rs.getString("assign_to"));o.setStatus(rs.getString("status"));o.setInspectResult(rs.getString("inspect_result"));o.setDeviceStatus(rs.getString("device_status"));o.setAbnormalDesc(rs.getString("abnormal_desc"));o.setPhotoPath(rs.getString("photo_path"));o.setStayDuration(rs.getInt("stay_duration"));o.setRemark(rs.getString("remark"));Timestamp ct=rs.getTimestamp("create_time");if(ct!=null)o.setCreateTime(ct.toLocalDateTime());Timestamp at=rs.getTimestamp("accept_time");if(at!=null)o.setAcceptTime(at.toLocalDateTime());Timestamp st=rs.getTimestamp("start_time");if(st!=null)o.setStartTime(st.toLocalDateTime());Timestamp cpt=rs.getTimestamp("complete_time");if(cpt!=null)o.setCompleteTime(cpt.toLocalDateTime());req.setAttribute("order",o);}}catch(SQLException e){e.printStackTrace();}req.getRequestDispatcher("/WEB-INF/jsp/inspection/orderDetail.jsp").forward(req,resp);
}private void edit(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{String idStr=req.getParameter("id");if("GET".equalsIgnoreCase(req.getMethod())){try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("SELECT * FROM inspection_order WHERE id=?")){ps.setInt(1,Integer.parseInt(idStr));ResultSet rs=ps.executeQuery();if(rs.next()){InspectionOrder o=new InspectionOrder();o.setId(rs.getInt("id"));o.setOrderNo(rs.getString("order_no"));o.setPlanId(rs.getInt("plan_id"));o.setDeviceType(rs.getString("device_type"));o.setDeviceName(rs.getString("device_name"));o.setDeviceCode(rs.getString("device_code"));o.setLocation(rs.getString("location"));o.setInspectDate(rs.getDate("inspect_date").toLocalDate());o.setAssignTo(rs.getString("assign_to"));o.setStatus(rs.getString("status"));o.setInspectResult(rs.getString("inspect_result"));o.setDeviceStatus(rs.getString("device_status"));o.setAbnormalDesc(rs.getString("abnormal_desc"));o.setPhotoPath(rs.getString("photo_path"));o.setStayDuration(rs.getInt("stay_duration"));o.setRemark(rs.getString("remark"));req.setAttribute("order",o);}}catch(SQLException e){e.printStackTrace();}req.getRequestDispatcher("/WEB-INF/jsp/inspection/orderForm.jsp").forward(req,resp);return;}try(Connection conn=DBUtil.getConnection()){String newPhotoPath = req.getParameter("oldPhotoPath");Part photoPart = req.getPart("photoPath");if (photoPart != null && photoPart.getSize() > 0) {String uploadDir = getServletContext().getRealPath("") + "uploads";File dir = new File(uploadDir);if (!dir.exists()) dir.mkdirs();ImageUtil.UploadResult result = ImageUtil.uploadImage(photoPart, uploadDir);if (!result.success) {req.setAttribute("error", result.message);try(PreparedStatement ps=conn.prepareStatement("SELECT * FROM inspection_order WHERE id=?")){ps.setInt(1,Integer.parseInt(idStr));ResultSet rs=ps.executeQuery();if(rs.next()){InspectionOrder o=new InspectionOrder();o.setId(rs.getInt("id"));o.setOrderNo(rs.getString("order_no"));o.setPlanId(rs.getInt("plan_id"));o.setDeviceType(rs.getString("device_type"));o.setDeviceName(rs.getString("device_name"));o.setDeviceCode(rs.getString("device_code"));o.setLocation(rs.getString("location"));o.setInspectDate(rs.getDate("inspect_date").toLocalDate());o.setAssignTo(rs.getString("assign_to"));o.setStatus(rs.getString("status"));o.setInspectResult(rs.getString("inspect_result"));o.setDeviceStatus(rs.getString("device_status"));o.setAbnormalDesc(rs.getString("abnormal_desc"));o.setPhotoPath(rs.getString("photo_path"));o.setStayDuration(rs.getInt("stay_duration"));o.setRemark(rs.getString("remark"));req.setAttribute("order",o);}}req.getRequestDispatcher("/WEB-INF/jsp/inspection/orderForm.jsp").forward(req,resp);return;}newPhotoPath = result.filePath;if (req.getParameter("oldPhotoPath") != null && !req.getParameter("oldPhotoPath").isEmpty()) {String oldPath = getServletContext().getRealPath("") + req.getParameter("oldPhotoPath");File oldFile = new File(oldPath);if (oldFile.exists()) oldFile.delete();}}String sql="UPDATE inspection_order SET status=?,inspect_result=?,device_status=?,abnormal_desc=?,stay_duration=?,remark=?,photo_path=? WHERE id=?";try(PreparedStatement ps=conn.prepareStatement(sql)){String newStatus = req.getParameter("status");String oldStatus = null;try(PreparedStatement checkPs=conn.prepareStatement("SELECT status FROM inspection_order WHERE id=?")){checkPs.setInt(1,Integer.parseInt(idStr));ResultSet rs=checkPs.executeQuery();if(rs.next()) oldStatus=rs.getString("status");}ps.setString(1,newStatus);ps.setString(2,req.getParameter("inspectResult"));ps.setString(3,req.getParameter("deviceStatus"));ps.setString(4,req.getParameter("abnormalDesc"));ps.setInt(5,req.getParameter("stayDuration")!=null&&!req.getParameter("stayDuration").isEmpty()?Integer.parseInt(req.getParameter("stayDuration")):0);ps.setString(6,req.getParameter("remark"));ps.setString(7,newPhotoPath);ps.setInt(8,Integer.parseInt(idStr));ps.executeUpdate();if (oldStatus != null) {if ("待处理".equals(oldStatus) && "处理中".equals(newStatus)) {try(PreparedStatement updatePs=conn.prepareStatement("UPDATE inspection_order SET accept_time=? WHERE id=?")){updatePs.setTimestamp(1,Timestamp.valueOf(LocalDateTime.now()));updatePs.setInt(2,Integer.parseInt(idStr));updatePs.executeUpdate();}} else if ("处理中".equals(oldStatus) && "已完成".equals(newStatus)) {try(PreparedStatement updatePs=conn.prepareStatement("UPDATE inspection_order SET complete_time=? WHERE id=?")){updatePs.setTimestamp(1,Timestamp.valueOf(LocalDateTime.now()));updatePs.setInt(2,Integer.parseInt(idStr));updatePs.executeUpdate();}}}}resp.sendRedirect(req.getContextPath()+"/inspection/order/list");}catch(SQLException e){e.printStackTrace();}
}private void accept(HttpServletRequest req,HttpServletResponse resp)throws IOException{String id=req.getParameter("id");try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("UPDATE inspection_order SET status='处理中',accept_time=? WHERE id=?")){ps.setTimestamp(1,Timestamp.valueOf(LocalDateTime.now()));ps.setInt(2,Integer.parseInt(id));ps.executeUpdate();}catch(SQLException e){e.printStackTrace();}resp.sendRedirect(req.getContextPath()+"/inspection/order/detail?id="+id);
}private void start(HttpServletRequest req,HttpServletResponse resp)throws IOException{String id=req.getParameter("id");try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("UPDATE inspection_order SET start_time=? WHERE id=?")){ps.setTimestamp(1,Timestamp.valueOf(LocalDateTime.now()));ps.setInt(2,Integer.parseInt(id));ps.executeUpdate();}catch(SQLException e){e.printStackTrace();}resp.sendRedirect(req.getContextPath()+"/inspection/order/detail?id="+id);
}private void complete(HttpServletRequest req,HttpServletResponse resp)throws IOException{String id=req.getParameter("id");try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("UPDATE inspection_order SET status='已完成',complete_time=? WHERE id=?")){ps.setTimestamp(1,Timestamp.valueOf(LocalDateTime.now()));ps.setInt(2,Integer.parseInt(id));ps.executeUpdate();}catch(SQLException e){e.printStackTrace();}resp.sendRedirect(req.getContextPath()+"/inspection/order/detail?id="+id);
}private void close(HttpServletRequest req,HttpServletResponse resp)throws IOException{String id=req.getParameter("id");try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("UPDATE inspection_order SET status='已关闭' WHERE id=?")){ps.setInt(1,Integer.parseInt(id));ps.executeUpdate();}catch(SQLException e){e.printStackTrace();}resp.sendRedirect(req.getContextPath()+"/inspection/order/list");
}

}

package com.yunwei.servlet;

import com.yunwei.model.InspectionPlan;
import com.yunwei.util.DBUtil;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.;
import java.io.IOException;
import java.sql.
;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/inspection/plan/*")
public class InspectionPlanServlet extends HttpServlet {
private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String pathInfo = req.getPathInfo();if (pathInfo == null) pathInfo = "/list";switch (pathInfo) {case "/list" -> list(req, resp);case "/add" -> add(req, resp);case "/edit" -> edit(req, resp);case "/delete" -> delete(req, resp);case "/toggleStatus" -> toggleStatus(req, resp);case "/batchToggle" -> batchToggle(req, resp);default -> list(req, resp);}
}private void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String keyword = req.getParameter("keyword");String status = req.getParameter("status");String pageStr = req.getParameter("page");int page = 1; if (pageStr != null && !pageStr.isEmpty()) page = Integer.parseInt(pageStr);int pageSize = 10;StringBuilder sql = new StringBuilder("SELECT * FROM inspection_plan WHERE 1=1");List<Object> params = new ArrayList<>();if (keyword != null && !keyword.isEmpty()) {sql.append(" AND (plan_code LIKE ? OR plan_name LIKE ? OR device_type LIKE ?)");String kw = "%" + keyword + "%"; params.add(kw); params.add(kw); params.add(kw);}if (status != null && !status.isEmpty() && !status.equals("全部")) { sql.append(" AND status=?"); params.add(status); }try (Connection conn = DBUtil.getConnection()) {PreparedStatement ps = conn.prepareStatement("SELECT COUNT(*) FROM ("+sql+") t");for(int i=0;i<params.size();i++) ps.setObject(i+1,params.get(i));ResultSet rs=ps.executeQuery();int total=rs.next()?rs.getInt(1):0;int totalPages=(int)Math.ceil((double)total/pageSize);sql.append(" ORDER BY create_time DESC LIMIT ?,?");params.add((page-1)*pageSize); params.add(pageSize);PreparedStatement ps2=conn.prepareStatement(sql.toString());for(int i=0;i<params.size();i++) ps2.setObject(i+1,params.get(i));ResultSet rs2=ps2.executeQuery();List<InspectionPlan> plans=new ArrayList<>();while(rs2.next()){InspectionPlan p=new InspectionPlan();p.setId(rs2.getInt("id"));p.setPlanCode(rs2.getString("plan_code"));p.setPlanName(rs2.getString("plan_name"));p.setDeviceType(rs2.getString("device_type"));p.setStartDate(rs2.getDate("start_date").toLocalDate());p.setEndDate(rs2.getDate("end_date").toLocalDate());p.setFrequency(rs2.getString("frequency"));p.setAutoGenerate(rs2.getBoolean("auto_generate"));p.setArea(rs2.getString("area"));p.setMinStayTime(rs2.getInt("min_stay_time"));p.setCheckItems(rs2.getString("check_items"));p.setResponsible(rs2.getString("responsible"));p.setStatus(rs2.getString("status"));p.setCreateBy(rs2.getString("create_by"));plans.add(p);}req.setAttribute("plans",plans);req.setAttribute("currentPage",page);req.setAttribute("totalPages",totalPages);req.setAttribute("total",total);req.setAttribute("keyword",keyword);req.setAttribute("status",status);} catch(SQLException e){e.printStackTrace();}req.getRequestDispatcher("/WEB-INF/jsp/inspection/planList.jsp").forward(req,resp);
}private void add(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{if("GET".equalsIgnoreCase(req.getMethod())){req.getRequestDispatcher("/WEB-INF/jsp/inspection/planForm.jsp").forward(req,resp);return;}String planCode="XJ-JH"+System.currentTimeMillis()%100000;String sql="INSERT INTO inspection_plan(plan_code,plan_name,device_type,start_date,end_date,frequency,auto_generate,area,min_stay_time,check_items,responsible,status,create_by)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)";try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement(sql)){ps.setString(1,planCode);ps.setString(2,req.getParameter("planName"));ps.setString(3,req.getParameter("deviceType"));ps.setDate(4,Date.valueOf(req.getParameter("startDate")));ps.setDate(5,Date.valueOf(req.getParameter("endDate")));ps.setString(6,req.getParameter("frequency"));ps.setBoolean(7,"on".equals(req.getParameter("autoGenerate")));ps.setString(8,req.getParameter("area"));ps.setInt(9,Integer.parseInt(req.getParameter("minStayTime")));ps.setString(10,req.getParameter("checkItems"));ps.setString(11,req.getParameter("responsible"));ps.setString(12,req.getParameter("status"));ps.setString(13,req.getParameter("createBy"));ps.executeUpdate();resp.sendRedirect(req.getContextPath()+"/inspection/plan/list");}catch(SQLException e){e.printStackTrace();req.setAttribute("error","添加失败:"+e.getMessage());req.getRequestDispatcher("/WEB-INF/jsp/inspection/planForm.jsp").forward(req,resp);}
}private void edit(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{String idStr=req.getParameter("id");if("GET".equalsIgnoreCase(req.getMethod())){try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("SELECT *FROM inspection_plan WHERE id=?")){ps.setInt(1,Integer.parseInt(idStr));ResultSet rs=ps.executeQuery();if(rs.next()){InspectionPlan p=new InspectionPlan();p.setId(rs.getInt("id"));p.setPlanCode(rs.getString("plan_code"));p.setPlanName(rs.getString("plan_name"));p.setDeviceType(rs.getString("device_type"));p.setStartDate(rs.getDate("start_date").toLocalDate());p.setEndDate(rs.getDate("end_date").toLocalDate());p.setFrequency(rs.getString("frequency"));p.setAutoGenerate(rs.getBoolean("auto_generate"));p.setArea(rs.getString("area"));p.setMinStayTime(rs.getInt("min_stay_time"));p.setCheckItems(rs.getString("check_items"));p.setResponsible(rs.getString("responsible"));p.setStatus(rs.getString("status"));p.setCreateBy(rs.getString("create_by"));req.setAttribute("plan",p);}}catch(SQLException e){e.printStackTrace();}req.getRequestDispatcher("/WEB-INF/jsp/inspection/planForm.jsp").forward(req,resp);return;}String sql="UPDATE inspection_plan SET plan_name=?,device_type=?,start_date=?,end_date=?,frequency=?,auto_generate=?,area=?,min_stay_time=?,check_items=?,responsible=?,status=?,create_by=? WHERE id=?";try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement(sql)){ps.setString(1,req.getParameter("planName"));ps.setString(2,req.getParameter("deviceType"));ps.setDate(3,Date.valueOf(req.getParameter("startDate")));ps.setDate(4,Date.valueOf(req.getParameter("endDate")));ps.setString(5,req.getParameter("frequency"));ps.setBoolean(6,"on".equals(req.getParameter("autoGenerate")));ps.setString(7,req.getParameter("area"));ps.setInt(8,Integer.parseInt(req.getParameter("minStayTime")));ps.setString(9,req.getParameter("checkItems"));ps.setString(10,req.getParameter("responsible"));ps.setString(11,req.getParameter("status"));ps.setString(12,req.getParameter("createBy"));ps.setInt(13,Integer.parseInt(idStr));ps.executeUpdate();resp.sendRedirect(req.getContextPath()+"/inspection/plan/list");}catch(SQLException e){e.printStackTrace();req.setAttribute("error","更新失败:"+e.getMessage());req.getRequestDispatcher("/WEB-INF/jsp/inspection/planForm.jsp").forward(req,resp);}
}private void delete(HttpServletRequest req,HttpServletResponse resp)throws IOException{try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("DELETE FROM inspection_plan WHERE id=?")){ps.setInt(1,Integer.parseInt(req.getParameter("id")));ps.executeUpdate();}catch(SQLException e){e.printStackTrace();}resp.sendRedirect(req.getContextPath()+"/inspection/plan/list");
}private void toggleStatus(HttpServletRequest req,HttpServletResponse resp)throws IOException{String id=req.getParameter("id");String newStatus=req.getParameter("newStatus");try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("UPDATE inspection_plan SET status=?WHERE id=?")){ps.setString(1,newStatus);ps.setInt(2,Integer.parseInt(id));ps.executeUpdate();}catch(SQLException e){e.printStackTrace();}resp.sendRedirect(req.getContextPath()+"/inspection/plan/list");
}private void batchToggle(HttpServletRequest req,HttpServletResponse resp)throws IOException{String[] ids=req.getParameterValues("ids");String action=req.getParameter("action");if(ids!=null&&ids.length>0){try(Connection conn=DBUtil.getConnection();PreparedStatement ps=conn.prepareStatement("UPDATE inspection_plan SET status=?WHERE id=?")){String newStatus="enable".equals(action)?"启用":"停用";for(String id:ids){ps.setString(1,newStatus);ps.setInt(2,Integer.parseInt(id));ps.addBatch();}ps.executeBatch();}catch(SQLException e){e.printStackTrace();}}resp.sendRedirect(req.getContextPath()+"/inspection/plan/list");
}

}

http://www.jsqmd.com/news/847022/

相关文章:

  • Perplexity + Copilot + Obsidian三端协同编程搜索工作流(工业级部署方案·附可运行JSON Schema)
  • 零基础想学挖漏洞?普通人也能看懂的网络安全入门学习路线(建议收藏)
  • T900-MINI数传电台状态灯设计解析:从硬件实现到故障诊断
  • The LYCRA Company与Dukane在INDEX™ 26展会上共同推进无纺布超声波粘合技术
  • 5分钟掌握Cloud Document Converter:飞书文档转Markdown的终极解决方案
  • MathType安装后Word里找不到?可能是Office信任中心在‘捣鬼’,附完整设置流程
  • 2026 兰州黄金回收实测避坑八区县正规门店权威数据全域上门服务指南 - 鑫顺黄金回收
  • 贵州区域热门中职院校排行:聚焦公办与专业适配性 - 奔跑123
  • 为什么你的Perplexity查不到正确代码?——基于127个失败Query的日志审计报告(附修复清单)
  • Visual C++ Redistributable for Visual Studio 2015-2022 安装包下载与 MySQL 8 运行依赖问题解决
  • SubtitleEdit中Whisper模型下载取消操作异常分析与解决方案
  • 2026年主流云游戏平台实测对比:从性能到性价比全维度解析 - 奔跑123
  • 51单片机+DAC0832信号发生器实战:从Proteus仿真到Keil编程的保姆级避坑指南
  • 安全测试入门指南:Web应用常见漏洞及测试方法
  • NCMconverter终极指南:3步轻松解密NCM音频,实现全平台播放自由 [特殊字符]
  • 贵州公办职业院校排行:铁路特色校领衔梯队 - 奔跑123
  • 为ClaudeCode编程助手配置Taotoken解决账号封禁与额度焦虑
  • 虚商注册卡拿货渠道|正规虚商卡哪里可以拿货?注册卡批发平台推荐 - 172号卡
  • SWAT模型高阶十七项案例分析
  • 测试工程师必知的10个Linux命令:提升工作效率的利器
  • 在VMware虚拟机中部署OpenWrt软路由:从镜像获取到网络配置
  • Arm Neoverse N1核心架构解析与性能优化
  • 超越点灯:用JTAG调试深挖Zynq MPSOC XCZU3EG的硬件启动与时钟管理
  • 贵阳公办职业学校排行:5所合规院校实力解析 - 奔跑123
  • 15分钟从零开始!NextCloud私有云盘Docker Compose一键部署终极指南
  • 2026年云游戏平台技术实测:口碑与性能的硬核对比解析 - 奔跑123
  • 手把手教你用Matlab 2020B+Arduino搞定Simulink硬件在环仿真(避坑串口模块)
  • STC89C52与DS1302:从时序解析到可调时钟的嵌入式实践
  • AArch64 TRCIDR寄存器详解与调试实践
  • Windows 10 下 WSL2 的进阶配置与性能调优实战