12.16

  1. Servlet 层(控制层 + 权限校验)
    (1)LoginServlet.java(统一登录入口)
    java
    运行
    package com.company.detection.controller;

import com.company.detection.entity.User;
import com.company.detection.service.UserService;
import com.company.detection.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String userId = request.getParameter("userId");
    String userPwd = request.getParameter("userPwd");

    // 登录验证
    User user = userService.login(userId, userPwd);
    if (user == null) {
        request.setAttribute("errorMsg", "账号或密码错误!");
        request.getRequestDispatcher("/login.jsp").forward(request, response);
        return;
    }

    // 存储登录状态,按角色跳转
    HttpSession session = request.getSession();
    session.setAttribute("loginUser", user);
    int category = user.getUserCategory();
    if (category == 0) { // 检测员
        response.sendRedirect(request.getContextPath() + "/inspector/index.jsp");
    } else if (category == 1) { // 项目经理
        response.sendRedirect(request.getContextPath() + "/manager/index.jsp");
    } else if (category == 2) { // 公司总监
        response.sendRedirect(request.getContextPath() + "/director/index.jsp");
    } else { // 委托客户(默认其他类别为客户)
        response.sendRedirect(request.getContextPath() + "/client/index.jsp");
    }
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

}
(2)ClientServlet.java(委托客户功能)
java
运行
package com.company.detection.controller;

import com.company.detection.entity.Task;
import com.company.detection.entity.User;
import com.company.detection.service.TaskService;
import com.company.detection.service.impl.TaskServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet("/client/*")
public class ClientServlet extends HttpServlet {
private TaskService taskService = new TaskServiceImpl();

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String pathInfo = request.getPathInfo();
    HttpSession session = request.getSession();
    User loginUser = (User) session.getAttribute("loginUser");

    // 权限校验:未登录跳转登录页
    if (loginUser == null) {
        response.sendRedirect(request.getContextPath() + "/login.jsp");
        return;
    }

    // 提交委托申请
    if ("/submitTask".equals(pathInfo)) {
        Task task = new Task();
        task.setClientName(request.getParameter("clientName"));
        task.setItemName(request.getParameter("itemName"));
        task.setItemContent(request.getParameter("itemContent"));

        int result = taskService.addTask(task);
        if (result > 0) {
            request.setAttribute("successMsg", "委托申请提交成功!");
        } else {
            request.setAttribute("errorMsg", "提交失败,请重试!");
        }
        request.getRequestDispatcher("/client/submitTask.jsp").forward(request, response);
    }

    // 查看进度(客户提交的所有任务)
    else if ("/viewProgress".equals(pathInfo)) {
        List<Task> tasks = taskService.queryTasksByRole(loginUser.getUserId(), 3, 0, null);
        request.setAttribute("tasks", tasks);
        request.getRequestDispatcher("/client/viewProgress.jsp").forward(request, response);
    }

    // 查询结果(仅已完成任务)
    else if ("/queryResult".equals(pathInfo)) {
        String taskId = request.getParameter("taskId");
        Task task = taskService.queryTaskDetail(taskId);
        if (task != null && "已完成".equals(task.getState())) {
            request.setAttribute("task", task);
        } else {
            request.setAttribute("errorMsg", "任务未完成,暂无法查看结果!");
        }
        request.getRequestDispatcher("/client/queryResult.jsp").forward(request, response);
    }
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

}
(3)InspectorServlet.java(检测员功能)
java
运行
package com.company.detection.controller;

import com.company.detection.entity.Task;
import com.company.detection.entity.User;
import com.company.detection.service.TaskService;
import com.company.detection.service.impl.TaskServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet("/inspector/*")
public class InspectorServlet extends HttpServlet {
private TaskService taskService = new TaskServiceImpl();

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String pathInfo = request.getPathInfo();
    HttpSession session = request.getSession();
    User loginUser = (User) session.getAttribute("loginUser");

    if (loginUser == null || loginUser.getUserCategory() != 0) {
        response.sendRedirect(request.getContextPath() + "/login.jsp");
        return;
    }

    // 浏览任务
    if ("/browseTasks".equals(pathInfo)) {
        String state = request.getParameter("state");
        List<Task> tasks = taskService.queryTasksByRole(loginUser.getUserId(), 0, loginUser.getGroupNo(), state);
        request.setAttribute("tasks", tasks);
        request.getRequestDispatcher("/inspector/browseTasks.jsp").forward(request, response);
    }

    // 填写检测单
    else if ("/fillTaskForm".equals(pathInfo)) {
        Task task = new Task();
        task.setId(request.getParameter("taskId"));
        task.setClassType(request.getParameter("classType"));
        task.setMethod(request.getParameter("method"));
        task.setSampleName(request.getParameter("sampleName"));
        task.setDryDensity(Double.parseDouble(request.getParameter("dryDensity")));
        task.setMoistDensity(Double.parseDouble(request.getParameter("moistDensity")));

        int result = taskService.updateTaskForm(task);
        if (result > 0) {
            request.setAttribute("successMsg", "检测单填写成功!");
        } else {
            request.setAttribute("errorMsg", "填写失败,请重试!");
        }
        response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
    }

    // 修改检测单
    else if ("/updateTaskForm".equals(pathInfo)) {
        // 逻辑同填写检测单,复用updateTaskForm方法
        fillTaskForm(request, response);
    }

    // 删除检测单
    else if ("/deleteTaskForm".equals(pathInfo)) {
        String taskId = request.getParameter("taskId");
        int result = taskService.deleteTaskForm(taskId);
        if (result > 0) {
            request.setAttribute("successMsg", "检测单删除成功!");
        } else {
            request.setAttribute("errorMsg", "删除失败,请重试!");
        }
        response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
    }

    // 提交审核(状态改为经理待审核)
    else if ("/submitAudit".equals(pathInfo)) {
        String taskId = request.getParameter("taskId");
        taskService.approveTask(taskId, "经理待审核", null);
        response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
    }
}

private void fillTaskForm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Task task = new Task();
    task.setId(request.getParameter("taskId"));
    task.setClassType(request.getParameter("classType"));
    task.setMethod(request.getParameter("method"));
    task.setSampleName(request.getParameter("sampleName"));
    task.setDryDensity(Double.parseDouble(request.getParameter("dryDensity")));
    task.setMoistDensity(Double.parseDouble(request.getParameter("moistDensity")));

    int result = taskService.updateTaskForm(task);
    if (result > 0) {
        request.setAttribute("successMsg", "检测单修改成功!");
    } else {
        request.setAttribute("errorMsg", "修改失败,请重试!");
    }
    response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

}

posted @ 2026-01-14 19:48  muyuxiaxing  阅读(0)  评论(0)    收藏  举报