MesRecoverController.java 9.6 KB

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