From 47e43fb296ca45cac16842fd8ce2476084f63bf0 Mon Sep 17 00:00:00 2001 From: kingsfighter Date: Fri, 11 Sep 2020 20:49:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=98=9F=E5=88=97=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dfm/controller/ProjectController.java | 162 +++++++---- .../src/main/resources/application.yml | 8 +- .../src/main/resources/static/img/down.gif | Bin 0 -> 578 bytes .../src/main/resources/static/img/up.gif | Bin 0 -> 561 bytes .../main/resources/static/ruoyi/js/ry-ui.js | 51 +++- .../resources/templates/dfm/queueManage.html | 257 ++++++++++++++++++ .../core/controller/BaseController.java | 5 + .../java/com/ruoyi/dfm/dao/ProjectDAO.java | 14 +- .../main/java/com/ruoyi/dfm/pojo/Project.java | 24 +- 9 files changed, 450 insertions(+), 71 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/static/img/down.gif create mode 100644 ruoyi-admin/src/main/resources/static/img/up.gif create mode 100644 ruoyi-admin/src/main/resources/templates/dfm/queueManage.html 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 0000000000000000000000000000000000000000..8b4108eb3dd6ebfe056b9ddcfcc95d95c030b028 GIT binary patch literal 578 zcmZ?wbhEHb6k_0Kc*ekxb|&rFt7l6dv}`@UZOZkU+5=S!&(EEvMMgn)&X-yXK9} zGcHeC@_6EmyS43Cir2iGFl*ne?o)NSM^k5B?Yi^i&XjvCM{gZnb#6t|!P?nZW;UNI zDm|0+;`NK|k5{j`JuCZY_SMH%*T3yu{=99{@rmm%ubg|kZu`~k{Z}h`j`nPNH}U9= zqf^fI&3n+g^vt4`0}Zn-Pj5b4&oGpM;!hR^c8329Iv`Jg;)H>Hegjt%qcA(WLI+1v zcMq2ekLE;iaWl!@9s>=f+5DX9)225Wu+CQE=byi@NyR})OiWA5WWhoaR&8x9K|x!c z=~f&Z%o@wJ%*}ZO4)#bHOIs^)9y2%9BScE(t5fsEf&zxM6z@^ge19$Q#& z+wSq3$0nPl{15o%ZYU65!j*8=A#k5=@!2TNwW20lOm089J?r3X=cR_l`x4ilT<5q` zA^l*6zyh}D1EvZa72A%qCY}oOUhi}6-nE8%@ro-2Wmd?<9g9g@oiyR#B#*tS8_sUB zU#&X($n4y!7M0IDV^8Z{eRR!ci%ju>;Ba`3db zis?GoNtyIEiHRHYsVittX*Zl9${?WVI=RhPQ^t%z)=|VqVR^H*sk;1HRS_!-6*ut~ zb|tmNyLhFIoP@1gbe;L#Iqi8Zv?Mf48QV;_*aD<&Y?zqmwV7L5*ch-%icNLVvGLa9 gmh^qkVxZ@tZ~ML1+`!|5fMU}m^{GO9Tr3RM0JLAI-T(jq literal 0 HcmV?d00001 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; }