MesRecoverController.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. package com.jeesite.modules.mes.web;
  2. import com.alibaba.druid.util.StringUtils;
  3. import com.jeesite.common.collect.ListUtils;
  4. import com.jeesite.common.collect.MapUtils;
  5. import com.jeesite.common.config.Global;
  6. import com.jeesite.common.entity.Page;
  7. import com.jeesite.common.lang.DateUtils;
  8. import com.jeesite.common.lang.ObjectUtils;
  9. import com.jeesite.common.utils.excel.ExcelExport;
  10. import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
  11. import com.jeesite.common.web.BaseController;
  12. import com.jeesite.modules.file.entity.FileUpload;
  13. import com.jeesite.modules.file.service.FileUploadService;
  14. import com.jeesite.modules.mes.entity.MesProduct;
  15. import com.jeesite.modules.mes.entity.MesProductRecord;
  16. import com.jeesite.modules.mes.entity.MesRecover;
  17. import com.jeesite.modules.mes.resp.CommonResp;
  18. import com.jeesite.modules.mes.service.MesProductRecordService;
  19. import com.jeesite.modules.mes.service.MesProductService;
  20. import com.jeesite.modules.mes.service.MesRecoverService;
  21. import com.jeesite.modules.mes.util.CommonUitl;
  22. import com.jeesite.modules.sys.entity.User;
  23. import com.jeesite.modules.sys.utils.UserUtils;
  24. import org.apache.shiro.authz.annotation.RequiresPermissions;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Controller;
  27. import org.springframework.ui.Model;
  28. import org.springframework.validation.annotation.Validated;
  29. import org.springframework.web.bind.annotation.ModelAttribute;
  30. import org.springframework.web.bind.annotation.PostMapping;
  31. import org.springframework.web.bind.annotation.RequestMapping;
  32. import org.springframework.web.bind.annotation.ResponseBody;
  33. import org.springframework.web.multipart.MultipartFile;
  34. import javax.servlet.http.HttpServletRequest;
  35. import javax.servlet.http.HttpServletResponse;
  36. import javax.transaction.Transactional;
  37. import java.util.List;
  38. import java.util.Map;
  39. /**
  40. * 恢复记录Controller
  41. * @author hzd
  42. * @version 2023-12-14
  43. */
  44. @Controller
  45. @RequestMapping(value = "${adminPath}/mes/mesRecover")
  46. public class MesRecoverController extends BaseController {
  47. @Autowired
  48. private MesRecoverService mesRecoverService;
  49. @Autowired
  50. private MesProductService mesProductService;
  51. @Autowired
  52. private MesProductRecordService mesProductRecordService;
  53. @Autowired
  54. private FileUploadService fileUploadService;
  55. /**
  56. * 获取数据
  57. */
  58. @ModelAttribute
  59. public MesRecover get(String id, boolean isNewRecord) {
  60. return mesRecoverService.get(id, isNewRecord);
  61. }
  62. /**
  63. * 查询列表
  64. */
  65. @RequiresPermissions("mes:mesRecover:view")
  66. @RequestMapping(value = {"list", ""})
  67. public String list(MesRecover mesRecover, Model model) {
  68. model.addAttribute("mesRecover", mesRecover);
  69. return "modules/mes/mesRecoverList";
  70. }
  71. /**
  72. * 查询列表数据
  73. */
  74. @RequiresPermissions("mes:mesRecover:view")
  75. @RequestMapping(value = "listData")
  76. @ResponseBody
  77. public Page<MesRecover> listData(MesRecover mesRecover, HttpServletRequest request, HttpServletResponse response) {
  78. mesRecover.setPage(new Page<>(request, response));
  79. Page<MesRecover> page = mesRecoverService.findPage(mesRecover);
  80. return page;
  81. }
  82. /**
  83. * 查看编辑表单
  84. */
  85. @RequiresPermissions("mes:mesRecover:view")
  86. @RequestMapping(value = "form")
  87. public String form(MesRecover mesRecover, Model model) {
  88. model.addAttribute("mesRecover", mesRecover);
  89. return "modules/mes/mesRecoverForm";
  90. }
  91. /**
  92. * 保存数据
  93. */
  94. @RequiresPermissions("mes:mesRecover:edit")
  95. @PostMapping(value = "save")
  96. @ResponseBody
  97. public String save(@Validated MesRecover mesRecover) {
  98. mesRecoverService.save(mesRecover);
  99. return renderResult(Global.TRUE, text("保存恢复记录成功!"));
  100. }
  101. /**
  102. * 导出数据
  103. */
  104. @RequiresPermissions("mes:mesRecover:view")
  105. @RequestMapping(value = "exportData")
  106. public void exportData(MesRecover mesRecover, HttpServletResponse response) {
  107. List<MesRecover> list = mesRecoverService.findList(mesRecover);
  108. String fileName = "恢复记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  109. try(ExcelExport ee = new ExcelExport("恢复记录", MesRecover.class)){
  110. ee.setDataList(list).write(response, fileName);
  111. }
  112. }
  113. /**
  114. * 下载模板
  115. */
  116. @RequiresPermissions("mes:mesRecover:view")
  117. @RequestMapping(value = "importTemplate")
  118. public void importTemplate(HttpServletResponse response) {
  119. MesRecover mesRecover = new MesRecover();
  120. List<MesRecover> list = ListUtils.newArrayList(mesRecover);
  121. String fileName = "恢复记录模板.xlsx";
  122. try(ExcelExport ee = new ExcelExport("恢复记录", MesRecover.class, Type.IMPORT)){
  123. ee.setDataList(list).write(response, fileName);
  124. }
  125. }
  126. /**
  127. * 导入数据
  128. */
  129. @ResponseBody
  130. @RequiresPermissions("mes:mesRecover:edit")
  131. @PostMapping(value = "importData")
  132. public String importData(MultipartFile file) {
  133. try {
  134. String message = mesRecoverService.importData(file);
  135. return renderResult(Global.TRUE, "posfull:"+message);
  136. } catch (Exception ex) {
  137. return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
  138. }
  139. }
  140. /**
  141. * 删除数据
  142. */
  143. @RequiresPermissions("mes:mesRecover:edit")
  144. @RequestMapping(value = "delete")
  145. @ResponseBody
  146. public String delete(MesRecover mesRecover) {
  147. mesRecoverService.delete(mesRecover);
  148. return renderResult(Global.TRUE, text("删除恢复记录成功!"));
  149. }
  150. @RequiresPermissions("mes:mesRecover:view")
  151. @RequestMapping(value = "detail")
  152. public String detail(MesRecover mesRecover, Model model) {
  153. model.addAttribute("mesRecover", mesRecover);
  154. return "modules/mes/mesRecoverDetail";
  155. }
  156. @RequiresPermissions("mes:mesRecover:api")
  157. @RequestMapping(value = "add")
  158. @ResponseBody
  159. @Transactional
  160. public CommonResp add(MesRecover mesRecover, HttpServletRequest request) {
  161. Map<String, Object> map = MapUtils.newHashMap();
  162. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  163. resp.setResult(Global.FALSE);
  164. if(StringUtils.isEmpty(mesRecover.getSn())){
  165. resp.setMessage("工件码不能为空");
  166. return resp;
  167. }
  168. if(StringUtils.isEmpty(mesRecover.getReason())){
  169. resp.setMessage("恢复原因不能为空!");
  170. return resp;
  171. }
  172. MesProduct mesProduct1 = new MesProduct();
  173. mesProduct1.setSn(mesRecover.getSn());
  174. MesProduct mesProduct = mesProductService.findInfo(mesProduct1);
  175. if(ObjectUtils.isEmpty(mesProduct)){
  176. resp.setMessage("产品信息不存在");
  177. return resp;
  178. }
  179. if(mesProduct.getState().equals("0")){
  180. resp.setMessage("改产品处于生产中,勿重复操作");
  181. return resp;
  182. }
  183. // if(!mesProduct.getState().equals("4")){
  184. // resp.setMessage("只能恢复待处理状态的产品");
  185. // return resp;
  186. // }
  187. MesProductRecord mesProductRecord = new MesProductRecord();
  188. mesProductRecord.setSn(mesRecover.getSn());
  189. mesProductRecord.setCraft("100000");
  190. List<MesProductRecord> records = mesProductRecordService.findList(mesProductRecord);
  191. if(ListUtils.isEmpty(records)){
  192. resp.setMessage("生产记录不存在!");
  193. return resp;
  194. }
  195. // 获取恢复的工位
  196. String oprno = "";
  197. MesProductRecord mesProductRecord2 = new MesProductRecord();
  198. for(MesProductRecord mesProductRecord1:records){
  199. // if(mesProductRecord1.getContent().equals("NG")){
  200. // oprno = CommonUitl.formatOprno(mesProductRecord1.getOprno());
  201. // mesProductRecord2 = mesProductRecord1;
  202. // break;
  203. // }
  204. if(CommonUitl.formatOprno(mesProductRecord1.getOprno()).equals("OP400") && !mesProductRecord1.getContent().equals("UDF")){ // 下线
  205. mesProductRecord1.setContent("UDF");
  206. mesProductRecordService.update(mesProductRecord1);
  207. }
  208. }
  209. // if(StringUtils.isEmpty(oprno)){
  210. // resp.setMessage("无NG工位");
  211. // return resp;
  212. // }
  213. mesRecover.setOprno("");
  214. mesRecover.setProductCate(mesProduct.getCate());
  215. mesRecoverService.save(mesRecover);
  216. if(oprno.equals("OP400")){ // 如果是最后一个下线工位,重置工位结果
  217. // 更新工位总结果
  218. mesProductRecord2.setContent("UDF");
  219. mesProductRecordService.update(mesProductRecord2);
  220. }
  221. mesProduct.setState("0");
  222. mesProductService.update(mesProduct);
  223. resp.setResult(Global.TRUE);
  224. return resp;
  225. }
  226. @RequiresPermissions("mes:mesRecover:api")
  227. @RequestMapping(value = "ulist")
  228. @ResponseBody
  229. public CommonResp ulist(MesRecover mesRecover, HttpServletRequest request, HttpServletResponse response) {
  230. User user = UserUtils.getUser();
  231. mesRecover.setCreateBy(user.getUserCode());
  232. mesRecover.setPage(new Page<>(request, response));
  233. Page<MesRecover> page = mesRecoverService.findPage(mesRecover);
  234. CommonResp<Page> resp = new CommonResp<>();
  235. resp.setData(page);
  236. resp.setResult(Global.TRUE);
  237. return resp;
  238. }
  239. /**
  240. * 详情
  241. */
  242. @RequiresPermissions("mes:mesRecover:api")
  243. @RequestMapping(value = "info")
  244. @ResponseBody
  245. public CommonResp info(MesRecover mesRecover, HttpServletRequest request) {
  246. mesRecover.setId(request.getParameter("id"));
  247. MesRecover info = mesRecoverService.get(mesRecover);
  248. String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/js";
  249. FileUpload fu = new FileUpload();
  250. fu.setBizKey(info.getId());
  251. fu.setBizType("mesRecover_image");
  252. List<FileUpload> finfo = fileUploadService.findList(fu);
  253. List imgList = ListUtils.newArrayList();
  254. for (FileUpload fi:finfo){
  255. Map<String, Object> map1 = MapUtils.newHashMap();
  256. map1.put("id",fi.getFileEntity().getFileId());
  257. map1.put("url",host + fi.getFileUrl());
  258. map1.put("name",fi.getFileName());
  259. map1.put("size",fi.getFileEntity().getFileSize());
  260. imgList.add(map1);
  261. }
  262. info.setImg(imgList);
  263. CommonResp<MesRecover> resp = new CommonResp<>();
  264. resp.setData(info);
  265. return resp;
  266. }
  267. }