MesRepairController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708
  1. package com.jeesite.modules.mes.web;
  2. import com.jeesite.common.collect.ListUtils;
  3. import com.jeesite.common.collect.MapUtils;
  4. import com.jeesite.common.config.Global;
  5. import com.jeesite.common.entity.Page;
  6. import com.jeesite.common.lang.DateUtils;
  7. import com.jeesite.common.lang.ObjectUtils;
  8. import com.jeesite.common.lang.StringUtils;
  9. import com.jeesite.common.mybatis.mapper.query.QueryType;
  10. import com.jeesite.common.utils.excel.ExcelExport;
  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.*;
  15. import com.jeesite.modules.mes.resp.CommonResp;
  16. import com.jeesite.modules.mes.service.*;
  17. import com.jeesite.modules.mes.util.CommonUitl;
  18. import com.jeesite.modules.sys.entity.User;
  19. import com.jeesite.modules.sys.utils.UserUtils;
  20. import org.apache.shiro.authz.annotation.RequiresPermissions;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Controller;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import org.springframework.ui.Model;
  25. import org.springframework.validation.annotation.Validated;
  26. import org.springframework.web.bind.annotation.ModelAttribute;
  27. import org.springframework.web.bind.annotation.PostMapping;
  28. import org.springframework.web.bind.annotation.RequestMapping;
  29. import org.springframework.web.bind.annotation.ResponseBody;
  30. import javax.servlet.http.HttpServletRequest;
  31. import javax.servlet.http.HttpServletResponse;
  32. import java.util.ArrayList;
  33. import java.util.HashMap;
  34. import java.util.List;
  35. import java.util.Map;
  36. /**
  37. * 返工记录表Controller
  38. * @author mes
  39. * @version 2023-12-04
  40. */
  41. @Controller
  42. @RequestMapping(value = "${adminPath}/mes/mesRepair")
  43. public class MesRepairController extends BaseController {
  44. @Autowired
  45. private MesRepairService mesRepairService;
  46. @Autowired
  47. private MesProductService mesProductService;
  48. @Autowired
  49. private MesProductRecordService mesProductRecordService;
  50. @Autowired
  51. private MesRepairOprnoService mesRepairOprnoService;
  52. @Autowired
  53. private MesRepairSopService mesRepairSopService;
  54. @Autowired
  55. private FileUploadService fileUploadService;
  56. @Autowired
  57. private MesDeviceService mesDeviceService;
  58. @Autowired
  59. private MesQualityService mesQualityService;
  60. @Autowired
  61. private MesRepairItemsService mesRepairItemsService;
  62. @Autowired
  63. private MesRepairQualityService mesRepairQualityService;
  64. @Autowired
  65. private MesLineProcessService mesLineProcessService;
  66. @Autowired
  67. private MesLineService mesLineService;
  68. /**
  69. * 获取数据
  70. */
  71. @ModelAttribute
  72. public MesRepair get(String id, boolean isNewRecord) {
  73. return mesRepairService.get(id, isNewRecord);
  74. }
  75. /**
  76. * 查询列表
  77. */
  78. @RequiresPermissions("mes:mesRepair:view")
  79. @RequestMapping(value = {"list", ""})
  80. public String list(MesRepair mesRepair, Model model) {
  81. model.addAttribute("mesRepair", mesRepair);
  82. return "modules/mes/mesRepairList";
  83. }
  84. /**
  85. * 查询列表数据
  86. */
  87. @RequiresPermissions("mes:mesRepair:view")
  88. @RequestMapping(value = "listData")
  89. @ResponseBody
  90. public Page<MesRepair> listData(MesRepair mesRepair, HttpServletRequest request, HttpServletResponse response) {
  91. mesRepair.setPage(new Page<>(request, response));
  92. Page<MesRepair> page = mesRepairService.findPage(mesRepair);
  93. return page;
  94. }
  95. @RequestMapping(value = {"fx1", ""})
  96. public String fx1() {
  97. return "modules/mes/mesRepairFx1";
  98. }
  99. @RequestMapping(value = {"fx2", ""})
  100. public String fx2() {
  101. return "modules/mes/mesRepairFx2";
  102. }
  103. @RequestMapping(value = {"fx3", ""})
  104. public String fx3() {
  105. return "modules/mes/mesRepairFx3";
  106. }
  107. @RequestMapping(value = {"fx4", ""})
  108. public String fx4() {
  109. return "modules/mes/mesRepairFx4";
  110. }
  111. /**
  112. * 查看编辑表单
  113. */
  114. @RequiresPermissions("mes:mesRepair:view")
  115. @RequestMapping(value = "form")
  116. public String form(MesRepair mesRepair, Model model) {
  117. model.addAttribute("mesRepair", mesRepair);
  118. return "modules/mes/mesRepairForm";
  119. }
  120. @RequiresPermissions("mes:mesRepair:view")
  121. @RequestMapping(value = "detail")
  122. public String detail(MesRepair mesRepair, Model model, HttpServletRequest req) {
  123. if(!StringUtils.isEmpty(mesRepair.getSops())){
  124. MesRepairSop mesRepairSop = new MesRepairSop();
  125. String[] ids = mesRepair.getSops().split(",");
  126. mesRepairSop.getSqlMap().getWhere().and("id", QueryType.IN,ids);
  127. List<MesRepairSop> sopLists = mesRepairSopService.findList(mesRepairSop);
  128. String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js";
  129. for (MesRepairSop sp:sopLists){
  130. FileUpload fu = new FileUpload();
  131. fu.setBizKey(sp.getId());
  132. fu.setBizType("mesRepairSop_image");
  133. List<FileUpload> finfo = fileUploadService.findList(fu);
  134. List imgList = ListUtils.newArrayList();
  135. for (FileUpload fi:finfo){
  136. // Map<String, Object> map1 = MapUtils.newHashMap();
  137. // map1.put("id",fi.getFileEntity().getFileId());
  138. // map1.put("url",host + fi.getFileUrl());
  139. // map1.put("name",fi.getFileName());
  140. // map1.put("size",fi.getFileEntity().getFileSize());
  141. imgList.add(host + fi.getFileUrl());
  142. }
  143. sp.setImgList(imgList);
  144. }
  145. mesRepair.setSopList(sopLists);
  146. }
  147. MesRepairQuality mesRepairQuality = new MesRepairQuality();
  148. mesRepairQuality.setRepairId(mesRepair.getId());
  149. MesRepairQuality quality = mesRepairQualityService.findInfo(mesRepairQuality);
  150. model.addAttribute("mesRepair", mesRepair);
  151. model.addAttribute("quality", quality);
  152. return "modules/mes/mesRepairInfo";
  153. }
  154. /**
  155. * 导出数据
  156. */
  157. @RequiresPermissions("mes:mesRepair:view")
  158. @RequestMapping(value = "exportData")
  159. public void exportData(MesRepair mesRepair, HttpServletResponse response) {
  160. List<MesRepair> list = mesRepairService.findList(mesRepair);
  161. String fileName = "返修记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  162. try(ExcelExport ee = new ExcelExport("返修记录", MesRepair.class)){
  163. ee.setDataList(list).write(response, fileName);
  164. }
  165. }
  166. /**
  167. * 保存数据
  168. */
  169. @RequiresPermissions("mes:mesRepair:edit")
  170. @PostMapping(value = "save")
  171. @ResponseBody
  172. public String save(@Validated MesRepair mesRepair) {
  173. mesRepairService.save(mesRepair);
  174. return renderResult(Global.TRUE, text("保存返工记录表成功!"));
  175. }
  176. /**
  177. * 删除数据
  178. */
  179. @RequiresPermissions("mes:mesRepair:edit")
  180. @RequestMapping(value = "delete")
  181. @ResponseBody
  182. public String delete(MesRepair mesRepair) {
  183. mesRepairService.delete(mesRepair);
  184. return renderResult(Global.TRUE, text("删除返工记录表成功!"));
  185. }
  186. @RequestMapping(value = "getRepair")
  187. @ResponseBody
  188. public CommonResp getRepair(MesDevice mesDevice, MesRepairSop mesRepairSop, MesRepairOprno mesRepairOprno, MesRepair mesRepair, MesProductRecord mesProductRecord, MesProduct mesProduct, HttpServletRequest req) {
  189. CommonResp<Map<String, Object>> resp1 = new CommonResp<>();
  190. resp1.setResult(Global.FALSE);
  191. String sn = req.getParameter("sn");
  192. String fxOprno = req.getParameter("fxOprno");
  193. if(StringUtils.isEmpty(sn)){
  194. resp1.setMessage("参数错误");
  195. return resp1;
  196. }
  197. if(StringUtils.isEmpty(fxOprno)){
  198. resp1.setMessage("参数错误");
  199. return resp1;
  200. }
  201. mesProduct.setSn(sn);
  202. MesProduct pd = mesProductService.findInfo(mesProduct);
  203. if(ObjectUtils.isEmpty(pd)){
  204. resp1.setMessage("产品信息不存在");
  205. return resp1;
  206. }
  207. if(!pd.getState().equals("0") && !pd.getState().equals("2")){
  208. resp1.setMessage("当前工件不能返修");
  209. return resp1;
  210. }
  211. mesRepair.setSn(sn);
  212. mesRepair.setFxOprno(fxOprno);
  213. mesRepair.getSqlMap().getWhere().and("a.state",QueryType.NE,3); // 排除已修复的
  214. CommonResp<MesRepair> resp = new CommonResp<>();
  215. MesRepair mesRepair1 = mesRepairService.findInfo(mesRepair);
  216. mesProductRecord.setSn(sn);
  217. mesProductRecord.setContent("NG");
  218. if (mesRepair1!=null){
  219. mesProductRecord.setOprno(mesRepair1.getOprno());
  220. }
  221. MesProductRecord ngInfo = mesProductRecordService.findInfo(mesProductRecord);
  222. if(ObjectUtils.isEmpty(ngInfo)){
  223. resp1.setMessage("当前工件不需要返修");
  224. return resp1;
  225. }
  226. // mesRepairOprno.setSn(fxOprno);
  227. // MesRepairOprno rno = mesRepairOprnoService.findInfo(mesRepairOprno);
  228. // if(ObjectUtils.isEmpty(rno)){
  229. // resp1.setMessage("请先设置返修管理工位");
  230. // return resp1;
  231. // }
  232. // String[] rnos = rno.getOprnos().split(",");
  233. // Boolean qx = false;
  234. // for (String value : rnos) {
  235. // if(value.equals(CommonUitl.formatOprno(ngInfo.getOprno()))){
  236. // qx = true;
  237. // }
  238. // }
  239. // if(!qx){
  240. // resp1.setMessage("没有返修项");
  241. // return resp1;
  242. // }
  243. // MesDevice deviceInfo = mesDeviceService.findInfoBySn(ngInfo.getLineSn()+ngInfo.getOprno());
  244. MesLineProcess mpl = new MesLineProcess();
  245. mpl.setLineSn(ngInfo.getLineSn());
  246. mpl.setOprno(ngInfo.getOprno());
  247. MesLineProcess lpinfo = mesLineProcessService.findInfo(mpl);
  248. if(ObjectUtils.isEmpty(lpinfo)){
  249. resp1.setMessage("参数错误");
  250. return resp1;
  251. }
  252. if(ObjectUtils.isEmpty(mesRepair1)){
  253. // mesRepair.setState("1");
  254. // mesRepair.setOprno(ngInfo.getOprno());
  255. // MesProductRecord mesProductRecord_1 = new MesProductRecord();
  256. // mesProductRecord_1.setSn(sn);
  257. // MesProductRecord oneP = mesProductRecordService.findInfo(mesProductRecord_1);
  258. // mesRepair.setLineSn(oneP.getLineSn());
  259. //// mesRepairService.save(mesRepair);
  260. // mesRepair.setSn(sn);
  261. // mesRepair.setFxOprno(fxOprno);
  262. // MesRepair new_mesRepair1 = mesRepairService.findInfo(mesRepair);
  263. // new_mesRepair1.setTitle(lpinfo.getTitle());
  264. // pd.setState("2");
  265. resp1.setMessage("当前工件"+ngInfo.getOprno()+"工位需要先进行不良处理!");
  266. return resp1;
  267. // mesProductService.save(pd);
  268. // resp.setData(new_mesRepair1);
  269. }else {
  270. if(!StringUtils.isEmpty(mesRepair1.getSops())){
  271. String[] ids = mesRepair1.getSops().split(",");
  272. mesRepairSop.getSqlMap().getWhere().and("id", QueryType.IN,ids);
  273. List<MesRepairSop> sopLists = mesRepairSopService.findList(mesRepairSop);
  274. String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js";
  275. for (MesRepairSop sp:sopLists){
  276. FileUpload fu = new FileUpload();
  277. fu.setBizKey(sp.getId());
  278. fu.setBizType("mesRepairSop_image");
  279. List<FileUpload> finfo = fileUploadService.findList(fu);
  280. List imgList = ListUtils.newArrayList();
  281. for (FileUpload fi:finfo){
  282. // Map<String, Object> map1 = MapUtils.newHashMap();
  283. // map1.put("id",fi.getFileEntity().getFileId());
  284. // map1.put("url",host + fi.getFileUrl());
  285. // map1.put("name",fi.getFileName());
  286. // map1.put("size",fi.getFileEntity().getFileSize());
  287. imgList.add(host + fi.getFileUrl());
  288. }
  289. sp.setImgList(imgList);
  290. }
  291. mesRepair1.setSopList(sopLists);
  292. }
  293. mesRepair1.setTitle(lpinfo.getTitle());
  294. resp.setData(mesRepair1);
  295. }
  296. resp.setResult(Global.TRUE);
  297. return resp;
  298. }
  299. @RequestMapping(value = "infoByRepair")
  300. @ResponseBody
  301. public CommonResp infoByRepair(HttpServletRequest req) {
  302. String sn = req.getParameter("sn");
  303. String oprno = CommonUitl.formatOprno(req.getParameter("oprno"));
  304. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  305. if(StringUtils.isEmpty(sn)){
  306. resp.setResult(Global.FALSE);
  307. resp.setMessage("参数错误");
  308. return resp;
  309. }
  310. if(sn.length() != 28) { // 不是箱体
  311. MesProductRecord mpr = mesProductRecordService.findSnByMsn(sn);
  312. if(!org.springframework.util.ObjectUtils.isEmpty(mpr)){
  313. sn = mpr.getSn();
  314. }
  315. }
  316. MesProduct mesProduct1 = new MesProduct();
  317. mesProduct1.setSn(sn);
  318. MesProduct mesProduct = mesProductService.findInfo(mesProduct1);
  319. if(ObjectUtils.isEmpty(mesProduct)){
  320. resp.setResult(Global.FALSE);
  321. resp.setMessage("产品记录不存在");
  322. return resp;
  323. }
  324. MesProductRecord mesProductRecord = new MesProductRecord();
  325. mesProductRecord.setSn(sn);
  326. mesProductRecord.setOprno(oprno);
  327. // mesProductRecord.setCraft("100000");
  328. // mesProductRecord.getSqlMap().getWhere().and("content", QueryType.NE,"UDF");
  329. List<MesProductRecord> lists = mesProductRecordService.findList(mesProductRecord);
  330. // List<String> oprnos = new ArrayList<>();
  331. // List<Object> records = new ArrayList<>();
  332. List<MesProductRecord> nlists = new ArrayList<>();
  333. for(MesProductRecord mesProductRecord1:lists){
  334. String op = mesProductRecord1.getCraft().substring(0,1).trim();
  335. if(op.equals("1") || op.equals("5")){
  336. nlists.add(mesProductRecord1);
  337. }
  338. }
  339. Map<String, Object> map = MapUtils.newHashMap();
  340. map.put("lists", nlists);
  341. resp.setData(map);
  342. resp.setResult(Global.TRUE);
  343. return resp;
  344. }
  345. @RequestMapping(value = "cjjl")
  346. @ResponseBody
  347. public CommonResp cjjl(MesRepairItems mesRepairItems, MesQuality mesQuality, HttpServletRequest req) {
  348. String sn = req.getParameter("sn");
  349. String oprno = CommonUitl.formatOprno(req.getParameter("oprno"));
  350. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  351. if(StringUtils.isEmpty(sn)){
  352. resp.setResult(Global.FALSE);
  353. resp.setMessage("参数错误");
  354. return resp;
  355. }
  356. if(sn.length() != 28) { // 不是箱体
  357. MesProductRecord mpr = mesProductRecordService.findSnByMsn(sn);
  358. if(!org.springframework.util.ObjectUtils.isEmpty(mpr)){
  359. sn = mpr.getSn();
  360. }
  361. }
  362. MesProduct mesProduct1 = new MesProduct();
  363. mesProduct1.setSn(sn);
  364. MesProduct mesProduct = mesProductService.findInfo(mesProduct1);
  365. if(ObjectUtils.isEmpty(mesProduct)){
  366. resp.setResult(Global.FALSE);
  367. resp.setMessage("产品记录不存在");
  368. return resp;
  369. }
  370. mesQuality.setSn(sn);
  371. mesQuality.setOprno(oprno);
  372. MesQuality qualityInfo = mesQualityService.findInfo(mesQuality);
  373. if(!ObjectUtils.isEmpty(qualityInfo)){
  374. String[] itemsId = qualityInfo.getItems().split(",");
  375. mesRepairItems.getSqlMap().getWhere().and("id", QueryType.IN,itemsId);
  376. List<MesRepairItems> itemsList = mesRepairItemsService.findList(mesRepairItems);
  377. qualityInfo.setMesRepairItemsList(itemsList);
  378. }
  379. Map<String, Object> map = MapUtils.newHashMap();
  380. map.put("lists", qualityInfo);
  381. resp.setData(map);
  382. resp.setResult(Global.TRUE);
  383. return resp;
  384. }
  385. @RequestMapping(value = "sopList")
  386. @ResponseBody
  387. public CommonResp sopList(MesRepairSop mesRepairSop, HttpServletRequest req) {
  388. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  389. List<MesRepairSop> sopLists = mesRepairSopService.findList(mesRepairSop);
  390. String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js";
  391. for (MesRepairSop sp:sopLists){
  392. FileUpload fu = new FileUpload();
  393. fu.setBizKey(sp.getId());
  394. fu.setBizType("mesRepairSop_image");
  395. List<FileUpload> finfo = fileUploadService.findList(fu);
  396. List imgList = ListUtils.newArrayList();
  397. for (FileUpload fi:finfo){
  398. // Map<String, Object> map1 = MapUtils.newHashMap();
  399. // map1.put("id",fi.getFileEntity().getFileId());
  400. // map1.put("url",host + fi.getFileUrl());
  401. // map1.put("name",fi.getFileName());
  402. // map1.put("size",fi.getFileEntity().getFileSize());
  403. imgList.add(host + fi.getFileUrl());
  404. }
  405. sp.setImgList(imgList);
  406. }
  407. Map<String, Object> map = MapUtils.newHashMap();
  408. map.put("lists", sopLists);
  409. resp.setData(map);
  410. resp.setResult(Global.TRUE);
  411. return resp;
  412. }
  413. @PostMapping(value = "editRepair1")
  414. @ResponseBody
  415. public String editRepair1(@Validated MesRepair mesRepair, HttpServletRequest req) {
  416. mesRepairService.save(mesRepair);
  417. return renderResult(Global.TRUE, text("修改成功!"));
  418. }
  419. @PostMapping(value = "editRepair")
  420. @ResponseBody
  421. public String editRepair(@Validated MesRepair mesRepair, HttpServletRequest req) {
  422. MesRepairQuality mesRepairQuality= new MesRepairQuality();
  423. mesRepairQuality.setRepairId(mesRepair.getId());
  424. MesRepairQuality rq = mesRepairQualityService.findById(mesRepairQuality);
  425. if (ObjectUtils.isEmpty(rq)) {
  426. return renderResult(Global.FALSE, text("返修质量未检查"));
  427. }
  428. mesRepairService.save(mesRepair);
  429. MesProductRecord mesProductRecord = new MesProductRecord();
  430. mesProductRecord.setSn(mesRepair.getSn());
  431. mesProductRecord.setOprno(mesRepair.getOprno());
  432. mesProductRecord.setCraft("100000");
  433. MesProductRecord pp = mesProductRecordService.findInfo(mesProductRecord);
  434. MesProduct mesProduct = new MesProduct();
  435. mesProduct.setSn(mesRepair.getSn());
  436. MesProduct pt = mesProductService.findInfo(mesProduct);
  437. if(mesRepair.getResult().equals("1")){
  438. pp.setContent("OK");
  439. if(mesRepair.getLineSn().equals("XT")){
  440. if(mesRepair.getOprno().equals("OP400")){
  441. pt.setState("0"); // 框架自OP250后的返修,需要再次做总成气密
  442. }
  443. ArrayList<String> oprnos = new ArrayList<String>();
  444. oprnos.add("OP260");
  445. oprnos.add("OP270");
  446. oprnos.add("OP280");
  447. oprnos.add("OP290");
  448. oprnos.add("OP300");
  449. oprnos.add("OP310");
  450. // oprnos.add("OP320");
  451. String oprno = CommonUitl.formatOprno(mesRepair.getOprno());
  452. if(oprnos.contains(oprno)){ // 重置总成气密结果为未过站
  453. String cateSn = mesLineService.findInfoCate(mesRepair.getLineSn()).trim();
  454. MesProductRecord mesProductRecord1 = new MesProductRecord();
  455. mesProductRecord1.setSn(mesRepair.getSn());
  456. mesProductRecord1.setOprno("OP400");
  457. mesProductRecord1.setCateSn(cateSn);
  458. List<MesProductRecord> lists = mesProductRecordService.findList(mesProductRecord1);
  459. for (MesProductRecord mesProductRecord2:lists){
  460. mesProductRecord2.setContent("UDF");
  461. mesProductRecordService.update(mesProductRecord2);
  462. }
  463. }
  464. }else{
  465. if(mesRepair.getOprno().equals("OP220")){
  466. pt.setState("1");
  467. }else {
  468. pt.setState("0");
  469. }
  470. }
  471. if(CommonUitl.formatOprno(mesRepair.getOprno()).equals("OP310")){ // GP12要重新检查
  472. pp.setContent("UDF");
  473. }
  474. mesProductRecordService.update(pp);
  475. }else if (mesRepair.getResult().equals("2")){
  476. if(mesRepair.getLineSn().equals("XT")){
  477. if(mesRepair.getOprno().equals("OP310")){
  478. pt.setState("4");
  479. }
  480. }else{
  481. if(mesRepair.getOprno().equals("OP220")){
  482. pt.setState("4");
  483. }
  484. }
  485. }
  486. mesProductService.save(pt);
  487. return renderResult(Global.TRUE, text("修改成功!"));
  488. }
  489. // 不良品处理记录
  490. @RequestMapping(value = "ulist")
  491. @ResponseBody
  492. public CommonResp ulist(HttpServletRequest request, HttpServletResponse response) {
  493. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  494. Map<String, Object> map = MapUtils.newHashMap();
  495. User user = UserUtils.getUser();
  496. MesRepair mesRepair = new MesRepair();
  497. mesRepair.setCreateBy(user.getUserCode());
  498. mesRepair.setPage(new Page<>(request, response));
  499. Page<MesRepair> list = mesRepairService.findPage(mesRepair);
  500. // 填充责任工位名称
  501. fillOprnoTitle(list.getList());
  502. map.put("lists", list);
  503. resp.setData(map);
  504. resp.setResult(Global.TRUE);
  505. return resp;
  506. }
  507. private void fillOprnoTitle(List<MesRepair> list) {
  508. if (ListUtils.isEmpty(list)) {
  509. return;
  510. }
  511. Map<String, String> oprnoTitleMap = new HashMap<>();
  512. for (MesRepair record : list) {
  513. if (StringUtils.isBlank(record.getLineSn()) || StringUtils.isBlank(record.getOprno())) {
  514. record.setOprnoTitle("");
  515. continue;
  516. }
  517. String oprno = CommonUitl.formatOprno(record.getOprno());
  518. String key = record.getLineSn() + "|" + oprno;
  519. if (!oprnoTitleMap.containsKey(key)) {
  520. MesLineProcess mesLineProcess = new MesLineProcess();
  521. mesLineProcess.setLineSn(record.getLineSn());
  522. mesLineProcess.setOprno(oprno);
  523. MesLineProcess mesLineProcess1 = mesLineProcessService.findInfo(mesLineProcess);
  524. oprnoTitleMap.put(key, ObjectUtils.isEmpty(mesLineProcess1) ? "" : mesLineProcess1.getTitle());
  525. }
  526. record.setOprnoTitle(oprnoTitleMap.get(key));
  527. }
  528. }
  529. @RequestMapping(value = "info")
  530. @ResponseBody
  531. public CommonResp info(HttpServletRequest request, HttpServletResponse response) {
  532. CommonResp<MesRepair> resp = new CommonResp<>();
  533. String id = request.getParameter("id");
  534. if(StringUtils.isEmpty(id)){
  535. resp.setResult(Global.FALSE);
  536. resp.setMessage("参数错误");
  537. return resp;
  538. }
  539. MesRepair mesRepair = new MesRepair();
  540. mesRepair.setId(id);
  541. MesRepair info = mesRepairService.get(mesRepair);
  542. String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/js";
  543. FileUpload fu = new FileUpload();
  544. fu.setBizKey(mesRepair.getId());
  545. fu.setBizType("mesRepair_image");
  546. List<FileUpload> finfo = fileUploadService.findList(fu);
  547. List imgList = ListUtils.newArrayList();
  548. for (FileUpload fi:finfo){
  549. Map<String, Object> map1 = MapUtils.newHashMap();
  550. map1.put("id",fi.getFileEntity().getFileId());
  551. map1.put("url",host + fi.getFileUrl());
  552. map1.put("name",fi.getFileName());
  553. map1.put("size",fi.getFileEntity().getFileSize());
  554. imgList.add(map1);
  555. }
  556. info.setImgList(imgList);
  557. // 填充责任工位名称
  558. fillOprnoTitle(ListUtils.newArrayList(info));
  559. resp.setData(info);
  560. resp.setResult(Global.TRUE);
  561. return resp;
  562. }
  563. @RequestMapping(value = "saveRepair")
  564. @ResponseBody
  565. @Transactional
  566. public CommonResp saveRepair( HttpServletRequest req) {
  567. CommonResp<MesRepair> resp = new CommonResp<>();
  568. resp.setResult(Global.FALSE);
  569. String sn = req.getParameter("sn");
  570. String fxOprno = req.getParameter("fxOprno");
  571. String oprno = req.getParameter("oprno");
  572. String itemId = req.getParameter("itemId");
  573. String remark = req.getParameter("remark");
  574. String type = req.getParameter("type");
  575. String mesRepair_image = req.getParameter("mesRepair_image");
  576. if(StringUtils.isEmpty(sn) || StringUtils.isEmpty(fxOprno) || StringUtils.isEmpty(itemId)){
  577. resp.setMessage("参数错误");
  578. return resp;
  579. }
  580. if (StringUtils.isEmpty(mesRepair_image)){
  581. resp.setMessage("图片不能为空");
  582. return resp;
  583. }
  584. MesRepairItems mesRepairItems = mesRepairItemsService.get(itemId);
  585. if(ObjectUtils.isEmpty(mesRepairItems)){
  586. resp.setMessage("参数错误");
  587. return resp;
  588. }
  589. MesProduct mesProduct = new MesProduct();
  590. mesProduct.setSn(sn);
  591. MesProduct pd = mesProductService.findInfo(mesProduct);
  592. if(ObjectUtils.isEmpty(pd)){
  593. resp.setMessage("产品信息不存在");
  594. return resp;
  595. }
  596. if(!pd.getState().equals("0") && !pd.getState().equals("2")){
  597. resp.setMessage("当前工件不能返修");
  598. return resp;
  599. }
  600. MesRepair mesRepair = new MesRepair();
  601. mesRepair.setSn(sn);
  602. mesRepair.getSqlMap().getWhere().and("a.state",QueryType.NE,3); // 排除已修复的
  603. MesRepair mesRepair1 = mesRepairService.findInfo(mesRepair);
  604. if(!ObjectUtils.isEmpty(mesRepair1)){
  605. resp.setMessage("该工件返修中");
  606. return resp;
  607. }
  608. MesProductRecord mesProductRecord = new MesProductRecord();
  609. mesProductRecord.setSn(sn);
  610. mesProductRecord.setOprno(oprno);
  611. mesProductRecord.setCraft("100000");
  612. MesProductRecord ngInfo = mesProductRecordService.findInfo(mesProductRecord);
  613. if(ObjectUtils.isEmpty(ngInfo)){
  614. resp.setMessage("当前工件不需要返修");
  615. return resp;
  616. }
  617. if(!ngInfo.getContent().equals("NG")){
  618. ngInfo.setContent("NG");
  619. mesProductRecordService.save(ngInfo);
  620. }
  621. MesRepair mesRepair2 = new MesRepair();
  622. mesRepair2.setSn(sn);
  623. mesRepair2.setFxOprno(fxOprno);
  624. String lineSn = ngInfo.getLineSn();
  625. if (StringUtils.isEmpty(lineSn)) {
  626. lineSn = ngInfo.getCateSn();
  627. }
  628. if (StringUtils.isEmpty(lineSn)) {
  629. lineSn = pd.getCate();
  630. }
  631. mesRepair2.setLineSn(mesProductRecordService.normalizeLineSn(lineSn));
  632. mesRepair2.setItemId(itemId);
  633. mesRepair2.setRemark(remark);
  634. mesRepair2.setOprno(oprno);
  635. mesRepair2.setType(type);
  636. if(type.equals("1")){ // 在线返修
  637. mesRepair2.setState("2");
  638. }else{
  639. mesRepair2.setState("1");
  640. }
  641. mesRepairService.save(mesRepair2);
  642. pd.setState("2");
  643. mesProductService.save(pd);
  644. resp.setResult(Global.TRUE);
  645. return resp;
  646. }
  647. }