diff --git a/ruoyi-admin/src/main/java/com/ruoyi/dfm/controller/ProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/dfm/controller/ProjectController.java index efdbee2cd..1e18bdbc9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/dfm/controller/ProjectController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/dfm/controller/ProjectController.java @@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.PageDomain; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.dfm.constant.UserConstants; import com.ruoyi.dfm.pojo.*; import com.ruoyi.dfm.service.FileService; @@ -13,9 +16,11 @@ import com.ruoyi.dfm.util.PropertiesUtils; import com.ruoyi.dfm.util.TimeUtil; import com.ruoyi.framework.util.ShiroUtils; import org.apache.commons.lang.StringUtils; +import org.aspectj.weaver.loadtime.Aj; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -41,9 +46,13 @@ import java.util.Map; @Controller @RequestMapping("/project.do") -public class ProjectController extends BaseController +public class ProjectController extends com.ruoyi.common.core.controller.BaseController { private static final Logger logger = LoggerFactory.getLogger(ProjectController.class); + + @Value("${wait.time:10}") + private Integer waitTime; + @Autowired private ProjectService projectService; @Autowired @@ -239,7 +248,7 @@ public class ProjectController extends BaseController { page.setCurrentPage(Integer.parseInt(currentPage)); } - UserInfo user = getUserInfo(req); + UserInfo user = ShiroUtils.getLoginUser(); List projects = null; Project pre = null; Project next = null; @@ -295,7 +304,7 @@ public class ProjectController extends BaseController users = depUsers; } - Integer waitTime = Integer.parseInt(PropertiesUtils.getProperties().getProperty("wait.time", "10")); +// Integer waitTime = Integer.parseInt(PropertiesUtils.getProperties().getProperty("wait.time", "10")); if(null != projects && !projects.isEmpty()) { //融合实际排序 @@ -316,77 +325,90 @@ public class ProjectController extends BaseController req.setAttribute("projects", projects); req.setAttribute("page", page); req.setAttribute("users", users); - return new ModelAndView("queueManage"); + return new ModelAndView("dfm/queueManage"); } + @RequestMapping("/pause") - public void pause(HttpServletRequest req, HttpServletResponse res) + @ResponseBody + public AjaxResult pause(HttpServletRequest req, HttpServletResponse res) throws Exception { try { - String pid = req.getParameter("pid"); + String pid = req.getParameter("ids"); String[] pids = pid.split(","); - String currentPage = req.getParameter("currentPage"); +// String currentPage = req.getParameter("currentPage"); this.projectService.pauseProject(pids); - outputMsg(res, ""); + return toAjax(1); +// outputMsg(res, ""); } catch (Exception e) { logger.error("暂停项目失败!", e); - outputMsg(res, ""); + return toAjax(0); +// outputMsg(res, ""); } } @RequestMapping("/start") - public void start(HttpServletRequest req, HttpServletResponse res) + @ResponseBody + public AjaxResult start(HttpServletRequest req, HttpServletResponse res) throws Exception { try { - String pid = req.getParameter("pid"); + String pid = req.getParameter("ids"); String[] pids = pid.split(","); - String currentPage = req.getParameter("currentPage"); +// String currentPage = req.getParameter("currentPage"); this.projectService.startProject(pids); - outputMsg(res, ""); +// outputMsg(res, ""); + return toAjax(1); } catch (Exception e) { logger.error("批量开始项目失败!", e); - outputMsg(res, ""); + return toAjax(0); +// outputMsg(res, ""); } } @RequestMapping("/restore") - public void restore(HttpServletRequest req, HttpServletResponse res) throws Exception + @ResponseBody + public AjaxResult restore(HttpServletRequest req, HttpServletResponse res) throws Exception { try { String pid = req.getParameter("pid"); - String currentPage = req.getParameter("currentPage"); +// String currentPage = req.getParameter("currentPage"); this.projectService.restoreProject(pid); - outputMsg(res, ""); + return toAjax(1); +// outputMsg(res, ""); } catch (Exception e) { logger.error("恢复项目失败!", e); - outputMsg(res, ""); +// outputMsg(res, ""); + return toAjax(0); } } @RequestMapping("/delete") - public void delete(HttpServletRequest req, HttpServletResponse res) throws Exception + @ResponseBody + public AjaxResult delete(HttpServletRequest req, HttpServletResponse res) throws Exception { try { - String source = req.getParameter("source"); - String pid = req.getParameter("pid"); +// String source = req.getParameter("source"); + String pid = req.getParameter("ids"); String[] pids = pid.split(","); this.projectService.deleteProject(pids); - String currentPage = req.getParameter("currentPage"); - outputMsg(res, ""); +// String currentPage = req.getParameter("currentPage"); + return toAjax(1); +// outputMsg(res, ""); } catch (Exception e) { logger.error("删除项目失败!", e); - outputMsg(res, ""); +// outputMsg(res, ""); + return toAjax(0); } } @@ -412,7 +434,7 @@ public class ProjectController extends BaseController page.setCurrentPage(Integer.parseInt(currentPage)); } - UserInfo user = getUserInfo(req); + UserInfo user = ShiroUtils.getLoginUser(); List projects = null; List users = null; @@ -594,7 +616,7 @@ public class ProjectController extends BaseController String fid = req.getParameter("fid"); FileInfo fileInfo = fileService.getById(Integer.parseInt(fid)); - UserInfo currentUser = getUserInfo(req); + UserInfo currentUser = ShiroUtils.getLoginUser(); if (currentUser.getGroupId() == UserConstants.USER_LEVEL_NORMAL && currentUser.getId() != fileInfo.getUploadUser()) { outputMsg(response, "{\"success\":false,\"message\":\"该文件没有权限下载,请联系管理员!\"}"); @@ -616,9 +638,11 @@ public class ProjectController extends BaseController @RequestMapping("/queryProject") - public ModelAndView queryProject(HttpServletRequest req, HttpServletResponse res) + @ResponseBody + public TableDataInfo queryProject(HttpServletRequest req, HttpServletResponse res) throws Exception { + startPage(); String queryType = req.getParameter("queryType"); String projectName = req.getParameter("projectName"); String username = req.getParameter("username"); @@ -633,20 +657,26 @@ public class ProjectController extends BaseController queryBean.setState(state); queryBean.setUsername(username); - String currentPage = req.getParameter("currentPage"); +// String currentPage = req.getParameter("currentPage"); Page page = new Page(); - if ((currentPage == null) || ("".equals(currentPage.trim()))) - { - page.setCurrentPage(1); - } - else - { - page.setCurrentPage(Integer.parseInt(currentPage)); - } + PageDomain pageDomain = TableSupport.getPageDomain(); + page.setCurrentPage(pageDomain.getPageNum()); + page.setPageSize(pageDomain.getPageSize()); + + + +// if ((currentPage == null) || ("".equals(currentPage.trim()))) +// { +// page.setCurrentPage(1); +// } +// else +// { +// page.setCurrentPage(Integer.parseInt(currentPage)); +// } String[] states = new String[3]; List projects = null; - UserInfo user = getUserInfo(req); + UserInfo user = ShiroUtils.getLoginUser(); List users = null; if ("resultDownload".equals(queryType)) { @@ -692,7 +722,9 @@ public class ProjectController extends BaseController // req.setAttribute("queryParam", JSONObject.fromObject(queryBean)); req.setAttribute("queryParam", JSON.toJSONString(queryBean)); req.setAttribute("loadType", "query"); - return new ModelAndView("resultDownload"); + //FIXME 修改返回类型 +// return new ModelAndView("resultDownload"); + return null; } if ("queueManage".equals(queryType)) { @@ -704,35 +736,56 @@ public class ProjectController extends BaseController Page tempPage = new Page(); tempPage.setCurrentPage(1); tempPage.setPageSize(999999); + Project pre = null; + Project next = null; //查询所有的项目,按照优先级排序 List totalByStates = projectService.getProjectByStates(states, tempPage, null); if (UserConstants.USER_LEVEL_ADMIN == user.getGroupId()) { projects = this.projectService.getProjectByStates(states, page, queryBean); + if ((projects != null) && (!(projects.isEmpty()))) + { + pre = this.projectService.getByPriState("up", ((Project)projects.get(0)).getId(), null, "待查"); + next = this.projectService.getByPriState("down", ((Project)projects.get(projects.size() - 1)).getId(), null, "待查"); + } users = this.userService.getAllUser(); } else if (UserConstants.USER_LEVEL_NORMAL == user.getGroupId() || UserConstants.USER_LEVEL_SUPER_USER == user.getGroupId()) { projects = this.projectService.getProjectByStates(states, new int[]{user.getId()}, page, queryBean); + if ((projects != null) && (!(projects.isEmpty()))) + { + pre = this.projectService.getByPriState("up", ((Project)projects.get(0)).getId(), new int[]{user.getId()}, "待查"); + next = this.projectService.getByPriState("down", ((Project)projects.get(projects.size() - 1)).getId(), new int[]{user.getId()}, "待查"); + } users = Arrays.asList(user); } //部门管理员可以查看部门所有人的项目 else if (UserConstants.USER_LEVEL_DEP_ADMIN == user.getGroupId()) { String department = user.getDepartment(); + //根据部门查询部门所有用户 List depUsers = userService.getByDepartment(department); int[] uids = new int [depUsers.size()]; for (int i=0;i depUsers = userService.getByDepartment(department); uids = new int [depUsers.size()]; for (int i=0;idocument.location.href='project.do?method=queueManage¤tPage=" + currentPage + "';"); + return toAjax(1); +// outputMsg(res, ""); } catch (Exception e) { logger.error("调整优先级失败!", e); - outputMsg(res, ""); +// outputMsg(res, ""); + return toAjax(0); } } diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 38e4adbf1..425bb8634 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -137,4 +137,10 @@ swagger: enabled: true #上传文件根路径 -FILE_PHYSICAL_ROOT: E:/FileRoot/ \ No newline at end of file +FILE_PHYSICAL_ROOT: E:/FileRoot/ +FILE_WEB_ROOT: http://localhost:8080/FileRoot/uploadfile +wait: + time: 10 +task: + result: + inquire=admin: admin diff --git a/ruoyi-admin/src/main/resources/static/img/down.gif b/ruoyi-admin/src/main/resources/static/img/down.gif new file mode 100644 index 000000000..8b4108eb3 Binary files /dev/null and b/ruoyi-admin/src/main/resources/static/img/down.gif differ diff --git a/ruoyi-admin/src/main/resources/static/img/up.gif b/ruoyi-admin/src/main/resources/static/img/up.gif new file mode 100644 index 000000000..6f0748d05 Binary files /dev/null and b/ruoyi-admin/src/main/resources/static/img/up.gif differ diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js index 07652e0f0..769a48a56 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js @@ -1000,19 +1000,50 @@ var table = { // 删除信息 pauseUser: function(uid, state) { table.set(); - // $.modal.confirm("确定删除该条" + table.options.modalName + "信息吗?", function() { - // var url = $.common.isEmpty(id) ? table.options.removeUrl : table.options.removeUrl.replace("{id}", id); - // if(table.options.type == table_type.bootstrapTreeTable) { - // $.operate.get(url); - // } else { - // var data = { "ids": id }; - // $.operate.submit(url, "post", "json", data); - // } - // }); - var data = { "uid": uid, "state": state }; $.operate.submit(table.options.pauseUrl, "post", "json", data); }, + changeProjectPri: function(pid, change) { + table.set(); + var data = { "pid": pid, "change": change }; + $.operate.submit(table.options.changePriUrl, "post", "json", data); + }, + pauseProject: function(pid) { + if(-1 == pid) { + var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId); + if (rows.length == 0) { + $.modal.alertWarning("请至少选择一条记录"); + return; + } + $.modal.confirm("确认要暂停选中的" + rows.length + "条数据吗?", function() { + var url = table.options.pauseUrl; + var data = { "ids": rows.join() }; + $.operate.submit(url, "post", "json", data); + }); + } else { + table.set(); + var data = { "ids": pid}; + $.operate.submit(table.options.pauseUrl, "post", "json", data); + } + }, + restoreProject: function(pid) { + table.set(); + var data = { "pid": pid}; + $.operate.submit(table.options.restoreUrl, "post", "json", data); + }, + startAllProjects: function() { + table.set(); + var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId); + if (rows.length == 0) { + $.modal.alertWarning("请至少选择一条记录"); + return; + } + $.modal.confirm("确认要开始选中的" + rows.length + "条数据吗?", function() { + var url = table.options.startUrl; + var data = { "ids": rows.join() }; + $.operate.submit(url, "post", "json", data); + }); + }, // 批量删除信息 removeAll: function() { table.set(); diff --git a/ruoyi-admin/src/main/resources/templates/dfm/queueManage.html b/ruoyi-admin/src/main/resources/templates/dfm/queueManage.html new file mode 100644 index 000000000..cefb8b0c1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/dfm/queueManage.html @@ -0,0 +1,257 @@ + + + + + + + + + +
+
+
+
+
+
    +
  • + 项目名: +
  • +
  • + 上传人: + +
  • +
  • + 状态: + +
  • +
  • + 上传时间: +
    + + - + +
    +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index c764e6912..2b29d2de2 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -199,7 +199,9 @@ public class BaseController { PrintWriter out = res.getWriter(); res.setContentType("text/html"); + res.setHeader("Content-Type","text/json;charset=utf8"); res.setCharacterEncoding("utf-8"); + res.setContentType("text/json;charset=utf8"); out.write(msg); out.flush(); out.close(); @@ -209,9 +211,12 @@ public class BaseController { PrintWriter out = res.getWriter(); res.setContentType("text/json"); + res.setHeader("Content-Type","text/json;charset=utf8"); res.setCharacterEncoding("utf-8"); + res.setContentType("text/json;charset=utf8"); out.write(msg); out.flush(); out.close(); } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/dfm/dao/ProjectDAO.java b/ruoyi-system/src/main/java/com/ruoyi/dfm/dao/ProjectDAO.java index d48d16cbe..6d6c389f2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/dfm/dao/ProjectDAO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/dfm/dao/ProjectDAO.java @@ -116,7 +116,7 @@ public class ProjectDAO extends JdbcBaseDao sql = sql + " ORDER BY T.F_END_TIME DESC limit ?,?"; break; } - if (!("在查".equals(state))) + if (!(ProjectConstants.PROJECT_STATE_ZAICHA.equals(state))) { continue; } @@ -127,7 +127,7 @@ public class ProjectDAO extends JdbcBaseDao params.add(Integer.valueOf(start)); params.add(Integer.valueOf(page.getPageSize())); - List list = getJdbcTemplate().queryForList(sql, params.toArray(), Project.class); + List> list = getJdbcTemplate().queryForList(sql, params.toArray()); List rs = null; if ((list == null) || (list.size() <= 0)) { return rs; @@ -135,12 +135,12 @@ public class ProjectDAO extends JdbcBaseDao rs = new ArrayList(); for (int k = 0; k < list.size(); ++k) { - Map map = (Map)list.get(k); - ((List)rs).add(map2Bean(map)); + Map map = list.get(k); + rs.add(map2Bean(map)); } PageUtil.constructPage(page, totalCount); - return ((List)rs); + return rs; } private int getCountByStates(String[] states, ProjectQueryBean queryBean) @@ -199,7 +199,9 @@ public class ProjectDAO extends JdbcBaseDao project.setDirectionBotFs((map.get("F_Direction_Bot_Fs") == null) ? 0 : Integer.parseInt(map.get("F_Direction_Bot_Fs").toString())); project.setDensity((map.get("F_Density") == null) ? "" : map.get("F_Density").toString()); project.setSubmitUser((map.get("F_SUBMIT_USER") == null) ? 0 : Integer.parseInt(map.get("F_SUBMIT_USER").toString())); - project.setSubmitTime((map.get("F_SUBMIT_TIME") == null) ? "" : map.get("F_SUBMIT_TIME").toString()); + String submitTime = (map.get("F_SUBMIT_TIME") == null) ? "" : map.get("F_SUBMIT_TIME").toString(); + //project.setSubmitTime(); + project.setSubmitTime(TimeUtil.getDateStrByFormat(submitTime,"yyyy-MM-dd HH:mm:ss")); project.setEndTime((map.get("F_END_TIME") == null) ? "" : map.get("F_END_TIME").toString()); project.setState((map.get("F_STATE") == null) ? "" : map.get("F_STATE").toString()); project.setTaskNum((map.get("T_TASK_NUM") == null) ? 0 : Integer.parseInt(map.get("T_TASK_NUM").toString())); diff --git a/ruoyi-system/src/main/java/com/ruoyi/dfm/pojo/Project.java b/ruoyi-system/src/main/java/com/ruoyi/dfm/pojo/Project.java index be3afe398..016ba7b27 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/dfm/pojo/Project.java +++ b/ruoyi-system/src/main/java/com/ruoyi/dfm/pojo/Project.java @@ -57,9 +57,27 @@ public class Project implements Serializable { private Integer waitTime; //备注 private String remark; - - - public String getRunTime() { + + private boolean hasPre; + private boolean hasNext; + + public boolean isHasPre() { + return hasPre; + } + + public void setHasPre(boolean hasPre) { + this.hasPre = hasPre; + } + + public boolean isHasNext() { + return hasNext; + } + + public void setHasNext(boolean hasNext) { + this.hasNext = hasNext; + } + + public String getRunTime() { return this.runTime; }