MesDeviceTaskController.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package com.jeesite.modules.mes.web;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.List;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import com.alibaba.fastjson.JSON;
  10. import com.jeesite.common.codec.DesUtils;
  11. import com.jeesite.common.mybatis.mapper.query.QueryType;
  12. import com.jeesite.modules.mes.entity.*;
  13. import com.jeesite.modules.mes.resp.CommonResp;
  14. import com.jeesite.modules.mes.service.*;
  15. import com.jeesite.modules.sys.utils.UserUtils;
  16. import org.apache.shiro.authz.annotation.RequiresPermissions;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Controller;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import org.springframework.ui.Model;
  21. import org.springframework.validation.annotation.Validated;
  22. import org.springframework.web.bind.annotation.ModelAttribute;
  23. import org.springframework.web.bind.annotation.PostMapping;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.ResponseBody;
  26. import com.jeesite.common.config.Global;
  27. import com.jeesite.common.entity.Page;
  28. import com.jeesite.common.web.BaseController;
  29. /**
  30. * 设备计划Controller
  31. * @author wst
  32. * @version 2023-06-21
  33. */
  34. @Controller
  35. @RequestMapping(value = "${adminPath}/mes/mesDeviceTask")
  36. public class MesDeviceTaskController extends BaseController {
  37. @Autowired
  38. private MesDeviceTaskService mesDeviceTaskService;
  39. @Autowired
  40. private MesDeviceFormService mesDeviceFormService;
  41. @Autowired
  42. private MesDeviceTaskUserService mesDeviceTaskUserService;
  43. @Autowired
  44. private MesDeviceTaskFormService mesDeviceTaskFormService;
  45. @Autowired
  46. private MesDeviceCheckService mesDeviceCheckService;
  47. @Autowired
  48. private MesDeviceRecordService mesDeviceRecordService;
  49. /**
  50. * 获取数据
  51. */
  52. @ModelAttribute
  53. public MesDeviceTask get(String id, boolean isNewRecord) {
  54. return mesDeviceTaskService.get(id, isNewRecord);
  55. }
  56. /**
  57. * 查询列表
  58. */
  59. @RequiresPermissions("mes:mesDeviceTask:view")
  60. @RequestMapping(value = {"list", ""})
  61. public String list(MesDeviceTask mesDeviceTask, Model model) {
  62. model.addAttribute("mesDeviceTask", mesDeviceTask);
  63. return "modules/mes/mesDeviceTaskList";
  64. }
  65. /**
  66. * 查询列表数据
  67. */
  68. @RequiresPermissions("mes:mesDeviceTask:view")
  69. @RequestMapping(value = "listData")
  70. @ResponseBody
  71. public Page<MesDeviceTask> listData(MesDeviceTask mesDeviceTask, HttpServletRequest request, HttpServletResponse response) {
  72. mesDeviceTask.setPage(new Page<>(request, response));
  73. Page<MesDeviceTask> page = mesDeviceTaskService.findPage(mesDeviceTask);
  74. return page;
  75. }
  76. /**
  77. * 查看编辑表单
  78. */
  79. @RequiresPermissions("mes:mesDeviceTask:view")
  80. @RequestMapping(value = "form")
  81. public String form(MesDeviceTask mesDeviceTask, Model model) {
  82. String secretKey = Global.getConfig("shiro.loginSubmit.secretKey");
  83. String username = DesUtils.encode("system", secretKey);
  84. String password = DesUtils.encode("Aa111111", secretKey);
  85. System.out.println("&username=" + username + "&password=" + password);
  86. model.addAttribute("mesDeviceTask", mesDeviceTask);
  87. model.addAttribute("deviceForm", mesDeviceFormService.findList(new MesDeviceForm()));
  88. return "modules/mes/mesDeviceTaskForm";
  89. }
  90. /**
  91. * 保存数据
  92. */
  93. @RequiresPermissions("mes:mesDeviceTask:edit")
  94. @PostMapping(value = "save")
  95. @ResponseBody
  96. @Transactional
  97. public String save(@Validated MesDeviceTask mesDeviceTask, HttpServletRequest request, MesDeviceTaskUser mesDeviceTaskUser,MesDeviceTaskForm mesDeviceTaskForm) throws ParseException {
  98. Date date = new Date();
  99. SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm");
  100. String curTime = dateFormat.format(date);
  101. String startTime = request.getParameter("startTime");
  102. String endTime = request.getParameter("endTime");
  103. int ret = curTime.compareTo(startTime);
  104. if(ret >0){
  105. return renderResult(Global.FALSE, text("开始时间不能小于当前时间!"));
  106. }
  107. if(mesDeviceTask.getStartTime().after(mesDeviceTask.getEndTime())){
  108. return renderResult(Global.FALSE, text("开始时间不能大于结束时间!"));
  109. }
  110. mesDeviceTaskService.save(mesDeviceTask);
  111. String deviceTaskId = mesDeviceTask.getId();
  112. mesDeviceTaskUser.setId("");
  113. mesDeviceTaskUser.setDeviceTaskId(deviceTaskId);
  114. mesDeviceTaskUserService.delete(mesDeviceTaskUser);
  115. String user_code = mesDeviceTask.getUserCode();
  116. String[] split = user_code.split(",");
  117. String task_form = mesDeviceTask.getDeviceCheck();
  118. String[] split1 = task_form.split(",");
  119. if(mesDeviceTask.getDays() >0){
  120. for (int i=1;i<=mesDeviceTask.getDays();i=i+1){
  121. String startTime1 = this.getDayBefore(startTime,i);
  122. String endTime1 = this.getDayBefore(endTime,i);
  123. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  124. Date date1 = format.parse(startTime1);
  125. Date date2 = format.parse(endTime1);
  126. mesDeviceTask.setStartTime(date1);
  127. mesDeviceTask.setEndTime(date2);
  128. mesDeviceTask.setId("");
  129. mesDeviceTaskService.save(mesDeviceTask);
  130. String deviceTaskId1 = mesDeviceTask.getId();
  131. for (int x=0; x<split.length; x++){
  132. mesDeviceTaskUser.setId("");
  133. mesDeviceTaskUser.setUserCode(split[x]);
  134. mesDeviceTaskUser.setDeviceTaskId(deviceTaskId1);
  135. mesDeviceTaskUserService.save(mesDeviceTaskUser);
  136. }
  137. for (int x=0; x<split1.length; x++){
  138. mesDeviceTaskForm.setId("");
  139. mesDeviceTaskForm.setDeviceFormId(split1[x]);
  140. mesDeviceTaskForm.setDeviceTaskId(deviceTaskId1);
  141. mesDeviceTaskFormService.save(mesDeviceTaskForm);
  142. }
  143. }
  144. }
  145. for (int i=0; i<split.length; i++){
  146. mesDeviceTaskUser.setId("");
  147. mesDeviceTaskUser.setUserCode(split[i]);
  148. mesDeviceTaskUser.setDeviceTaskId(deviceTaskId);
  149. mesDeviceTaskUserService.save(mesDeviceTaskUser);
  150. }
  151. for (int i=0; i<split1.length; i++){
  152. mesDeviceTaskForm.setId("");
  153. mesDeviceTaskForm.setDeviceFormId(split1[i]);
  154. mesDeviceTaskForm.setDeviceTaskId(deviceTaskId);
  155. mesDeviceTaskFormService.save(mesDeviceTaskForm);
  156. }
  157. return renderResult(Global.TRUE, text("保存设备计划成功!"));
  158. }
  159. /**
  160. * 指定时间往前或往后推n天
  161. *
  162. * @param specifiedDay 指定时间
  163. * @param x 指定天数
  164. * @return
  165. */
  166. public String getDayBefore(String specifiedDay, int x) {
  167. Calendar c = Calendar.getInstance();
  168. Date date = null;
  169. try {
  170. date = new SimpleDateFormat("yy-MM-dd HH:mm").parse(specifiedDay);
  171. } catch (ParseException e) {
  172. e.printStackTrace();
  173. }
  174. c.setTime(date);
  175. int day = c.get(Calendar.DATE);
  176. //c.set(Calendar.DATE, day - x); //往前推几天
  177. c.set(Calendar.DATE, day + x); //往后推几天
  178. String dayBefore = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(c.getTime());
  179. return dayBefore;
  180. }
  181. /**
  182. * 删除数据
  183. */
  184. @RequiresPermissions("mes:mesDeviceTask:edit")
  185. @RequestMapping(value = "delete")
  186. @ResponseBody
  187. public String delete(MesDeviceTask mesDeviceTask, MesDeviceTaskUser mesDeviceTaskUser, MesDeviceTaskForm mesDeviceTaskForm) {
  188. mesDeviceTaskUser.setDeviceTaskId(mesDeviceTask.getId());
  189. mesDeviceTaskUser.setId("");
  190. mesDeviceTaskUserService.deleteBytaskId(mesDeviceTaskUser);
  191. mesDeviceTaskForm.setId("");
  192. mesDeviceTaskFormService.deleteBytaskId(mesDeviceTaskForm);
  193. mesDeviceTaskService.delete(mesDeviceTask);
  194. return renderResult(Global.TRUE, text("删除设备计划成功!"));
  195. }
  196. /*-------api接口-----*/
  197. /**
  198. * 查询列表数据
  199. */
  200. @RequiresPermissions("mes:mesDeviceTask:view")
  201. @RequestMapping(value = "getList")
  202. @ResponseBody
  203. public CommonResp getList(MesDeviceTask mesDeviceTask, HttpServletRequest request, HttpServletResponse response) {
  204. mesDeviceTask.setUserCode(UserUtils.getUser().getUserCode());
  205. //mesDeviceTask.setUserCode("user11");
  206. mesDeviceTask.setPage(new Page<>(request, response));
  207. Page<MesDeviceTask> list = mesDeviceTaskService.findPage(mesDeviceTask);
  208. CommonResp<Page<MesDeviceTask>> resp = new CommonResp<>();
  209. resp.setData(list);
  210. return resp;
  211. }
  212. /**
  213. * 获取任务检查内容列表
  214. */
  215. @RequiresPermissions("mes:mesDeviceTask:view")
  216. @RequestMapping(value = "getTaskForm")
  217. @ResponseBody
  218. public CommonResp getTaskForm(MesDeviceTaskForm mesDeviceTaskForm, HttpServletRequest request, MesDeviceForm mesDeviceForm,MesDeviceCheck mesDeviceCheck,MesDeviceRecord mesDeviceRecord,MesDeviceTask mesDeviceTask,HttpServletResponse response) {
  219. if(request.getParameter("taskId")==null || request.getParameter("taskId").equals("")){
  220. mesDeviceTaskForm.setDeviceTaskId("-1");
  221. }else {
  222. mesDeviceTaskForm.setDeviceTaskId(request.getParameter("taskId"));
  223. }
  224. List<MesDeviceTaskForm> list = mesDeviceTaskFormService.findList(mesDeviceTaskForm);
  225. for (int i=0;i<list.size();i++){
  226. mesDeviceTask.setId("");
  227. mesDeviceTask.setId(list.get(i).getDeviceTaskId());
  228. MesDeviceTask taskInfo = mesDeviceTaskService.get(mesDeviceTask);
  229. list.get(i).setTaskInfo(taskInfo);
  230. mesDeviceForm.setId(list.get(i).getDeviceFormId());
  231. MesDeviceForm fromInfo = mesDeviceFormService.get(mesDeviceForm);
  232. String[] split = fromInfo.getDeviceCheck().split(",");
  233. mesDeviceCheck.getSqlMap().getWhere().and("id", QueryType.IN,split);
  234. List<MesDeviceCheck> checkList = mesDeviceCheckService.findList(mesDeviceCheck);
  235. fromInfo.setCheckList(checkList);
  236. list.get(i).setFormInfo(fromInfo);
  237. mesDeviceRecord.setTaskId("");
  238. mesDeviceRecord.setFormId("");
  239. mesDeviceRecord.setId("");
  240. mesDeviceRecord.setTaskId(list.get(i).getDeviceTaskId());
  241. mesDeviceRecord.setFormId(list.get(i).getDeviceFormId());
  242. MesDeviceRecord check = mesDeviceRecordService.findByInfo(mesDeviceRecord);
  243. if(check!=null){
  244. fromInfo.setIsExit(check.getId());
  245. }else {
  246. fromInfo.setIsExit("0");
  247. }
  248. }
  249. CommonResp<List<MesDeviceTaskForm>> resp = new CommonResp<>();
  250. resp.setData(list);
  251. return resp;
  252. }
  253. }