MesProcessCheckGzController.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. package com.jeesite.modules.mes.web;
  2. import java.text.SimpleDateFormat;
  3. import java.util.*;
  4. import java.util.stream.Collectors;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import com.jeesite.common.lang.StringUtils;
  8. import com.jeesite.modules.mes.entity.MesShift;
  9. import com.jeesite.modules.mes.service.MesShiftService;
  10. import com.jeesite.modules.mes.util.CommonUitl;
  11. import com.jeesite.modules.mes.util.CopyUtil;
  12. import org.apache.shiro.authz.annotation.RequiresPermissions;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.validation.annotation.Validated;
  17. import org.springframework.web.bind.annotation.*;
  18. import com.jeesite.common.config.Global;
  19. import com.jeesite.common.collect.ListUtils;
  20. import com.jeesite.common.entity.Page;
  21. import com.jeesite.common.lang.DateUtils;
  22. import com.jeesite.common.utils.excel.ExcelExport;
  23. import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import com.jeesite.common.web.BaseController;
  26. import com.jeesite.modules.mes.entity.MesProcessCheckGz;
  27. import com.jeesite.modules.mes.service.MesProcessCheckGzService;
  28. /**
  29. * 工装点检记录表Controller
  30. * @author mes
  31. * @version 2024-05-17
  32. */
  33. @Controller
  34. @RequestMapping(value = "${adminPath}/mes/mesProcessCheckGz")
  35. public class MesProcessCheckGzController extends BaseController {
  36. @Autowired
  37. private MesShiftService mesShiftService;
  38. @Autowired
  39. private MesProcessCheckGzService mesProcessCheckGzService;
  40. /**
  41. * 获取数据
  42. */
  43. @ModelAttribute
  44. public MesProcessCheckGz get(String id, boolean isNewRecord) {
  45. return mesProcessCheckGzService.get(id, isNewRecord);
  46. }
  47. /**
  48. * 查询列表
  49. */
  50. @RequiresPermissions("mes:mesProcessCheckGz:view")
  51. @RequestMapping(value = {"list", ""})
  52. public String list(MesProcessCheckGz mesProcessCheckGz, Model model) {
  53. model.addAttribute("mesProcessCheckGz", mesProcessCheckGz);
  54. return "modules/mes/mesProcessCheckGzList";
  55. }
  56. /**
  57. * 查询列表数据
  58. */
  59. @RequiresPermissions("mes:mesProcessCheckGz:view")
  60. @RequestMapping(value = "listData")
  61. @ResponseBody
  62. public Page<MesProcessCheckGz> listData(MesProcessCheckGz mesProcessCheckGz, HttpServletRequest request, HttpServletResponse response) {
  63. mesProcessCheckGz.setPage(new Page<>(request, response));
  64. Page<MesProcessCheckGz> page = mesProcessCheckGzService.findPage(mesProcessCheckGz);
  65. return page;
  66. }
  67. /**
  68. * 查看编辑表单
  69. */
  70. @RequiresPermissions("mes:mesProcessCheckGz:view")
  71. @RequestMapping(value = "form")
  72. public String form(MesProcessCheckGz mesProcessCheckGz, Model model) {
  73. model.addAttribute("mesProcessCheckGz", mesProcessCheckGz);
  74. return "modules/mes/mesProcessCheckGzForm";
  75. }
  76. /**
  77. * 保存数据
  78. */
  79. @RequiresPermissions("mes:mesProcessCheckGz:edit")
  80. @PostMapping(value = "save")
  81. @ResponseBody
  82. public String save(@Validated MesProcessCheckGz mesProcessCheckGz) {
  83. mesProcessCheckGzService.save(mesProcessCheckGz);
  84. return renderResult(Global.TRUE, text("保存工装点检记录成功!"));
  85. }
  86. /**
  87. * 导出数据
  88. */
  89. @RequiresPermissions("mes:mesProcessCheckGz:view")
  90. @RequestMapping(value = "exportData")
  91. public void exportData(MesProcessCheckGz mesProcessCheckGz, HttpServletResponse response) {
  92. List<MesProcessCheckGz> list = mesProcessCheckGzService.findList(mesProcessCheckGz);
  93. String fileName = "工装点检记录表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  94. try(ExcelExport ee = new ExcelExport("工装点检记录", MesProcessCheckGz.class)){
  95. ee.setDataList(list).write(response, fileName);
  96. }
  97. }
  98. /**
  99. * 下载模板
  100. */
  101. @RequiresPermissions("mes:mesProcessCheckGz:view")
  102. @RequestMapping(value = "importTemplate")
  103. public void importTemplate(HttpServletResponse response) {
  104. MesProcessCheckGz mesProcessCheckGz = new MesProcessCheckGz();
  105. List<MesProcessCheckGz> list = ListUtils.newArrayList(mesProcessCheckGz);
  106. String fileName = "工装点检记录表模板.xlsx";
  107. try(ExcelExport ee = new ExcelExport("工装点检记录", MesProcessCheckGz.class, Type.IMPORT)){
  108. ee.setDataList(list).write(response, fileName);
  109. }
  110. }
  111. /**
  112. * 导入数据
  113. */
  114. @ResponseBody
  115. @RequiresPermissions("mes:mesProcessCheckGz:edit")
  116. @PostMapping(value = "importData")
  117. public String importData(MultipartFile file) {
  118. try {
  119. String message = mesProcessCheckGzService.importData(file);
  120. return renderResult(Global.TRUE, "posfull:"+message);
  121. } catch (Exception ex) {
  122. return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
  123. }
  124. }
  125. /**
  126. * 删除数据
  127. */
  128. @RequiresPermissions("mes:mesProcessCheckGz:edit")
  129. @RequestMapping(value = "delete")
  130. @ResponseBody
  131. public String delete(MesProcessCheckGz mesProcessCheckGz) {
  132. mesProcessCheckGzService.delete(mesProcessCheckGz);
  133. return renderResult(Global.TRUE, text("删除工装点检记录成功!"));
  134. }
  135. @PostMapping(value = "submit")
  136. @ResponseBody
  137. public String submit(@RequestBody MesProcessCheckGz mesProcessCheckGz) {
  138. if (mesProcessCheckGz == null|| StringUtils.isEmpty(mesProcessCheckGz.getOprno())||StringUtils.isEmpty(mesProcessCheckGz.getLineSn())) {
  139. return renderResult(Global.FALSE, "工装点检记录信息不完整,请重试!");
  140. }
  141. MesShift mesShift = new MesShift();
  142. mesShift.setStatus("0");
  143. List<MesShift> shifts = mesShiftService.findList(mesShift);
  144. String shiftId = "";
  145. // 今天
  146. Date date = new Date();
  147. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  148. String currentDate = formatter.format(date);
  149. Long curTime = date.getTime();
  150. // 明天
  151. Calendar calendar = Calendar.getInstance();
  152. calendar.setTime(date);
  153. calendar.add(Calendar.DAY_OF_MONTH, 1);
  154. Date tomorrow = calendar.getTime();
  155. String tomorrowDate = formatter.format(tomorrow);
  156. // 昨天
  157. Calendar calendar2 = Calendar.getInstance();
  158. calendar2.setTime(date);
  159. calendar2.add(Calendar.DATE, -1);
  160. Date yesrow = calendar2.getTime();
  161. String yesDate = formatter.format(yesrow);
  162. MesShift mesShift2 = new MesShift();
  163. List<MesShift> lists = new ArrayList<>();
  164. // 昨天
  165. for(MesShift mesShift1:shifts){
  166. String st = yesDate+" "+mesShift1.getStart();
  167. String et = mesShift1.getNext() == 1?currentDate+" "+mesShift1.getEnd():yesDate+" "+mesShift1.getEnd();
  168. Long curSt = CommonUitl.convertDateStringToTimestamp(st,"yyyy-MM-dd HH:mm");
  169. Long curEt = CommonUitl.convertDateStringToTimestamp(et,"yyyy-MM-dd HH:mm");
  170. mesShift1.setCurSt(curSt);
  171. mesShift1.setCurEt(curEt);
  172. lists.add(mesShift1);
  173. }
  174. // 今天
  175. for(MesShift mesShift1:shifts){
  176. String st = currentDate+" "+mesShift1.getStart();
  177. String et = mesShift1.getNext() == 1?tomorrowDate+" "+mesShift1.getEnd():currentDate+" "+mesShift1.getEnd();
  178. Long curSt = CommonUitl.convertDateStringToTimestamp(st,"yyyy-MM-dd HH:mm");
  179. Long curEt = CommonUitl.convertDateStringToTimestamp(et,"yyyy-MM-dd HH:mm");
  180. mesShift1.setCurSt(curSt);
  181. mesShift1.setCurEt(curEt);
  182. lists.add(mesShift1);
  183. }
  184. List<MesShift> sortlists = lists.stream().sorted(Comparator.comparing(MesShift::getCurSt)).collect(Collectors.toList());
  185. for(MesShift mesShift1:sortlists){
  186. if(curTime >= mesShift1.getCurSt() && curTime <= mesShift1.getCurEt()){
  187. mesShift2 = CopyUtil.copy(mesShift1,MesShift.class);
  188. break;
  189. }else{
  190. if(curTime - mesShift1.getCurSt() < 0){
  191. mesShift2 = CopyUtil.copy(mesShift1,MesShift.class);
  192. }
  193. }
  194. }
  195. shiftId = mesShift2.getId();
  196. mesProcessCheckGz.setShift(shiftId);
  197. mesProcessCheckGzService.save(mesProcessCheckGz);
  198. return renderResult(Global.TRUE, text("操作成功!"));
  199. }
  200. }