MesMaterialReportController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. package com.jeesite.modules.mes.web;
  2. import java.text.ParseException;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import com.jeesite.common.lang.ObjectUtils;
  9. import com.jeesite.modules.mes.entity.MesMaterial;
  10. import com.jeesite.modules.mes.entity.MesProductRecord;
  11. import com.jeesite.modules.mes.resp.CommonResp;
  12. import com.jeesite.modules.mes.service.MesMaterialService;
  13. import com.jeesite.modules.utils.DateLocalUtils;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.apache.shiro.authz.annotation.RequiresPermissions;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.ui.Model;
  19. import org.springframework.validation.annotation.Validated;
  20. import org.springframework.web.bind.annotation.*;
  21. import com.jeesite.common.config.Global;
  22. import com.jeesite.common.collect.ListUtils;
  23. import com.jeesite.common.entity.Page;
  24. import com.jeesite.common.lang.DateUtils;
  25. import com.jeesite.common.utils.excel.ExcelExport;
  26. import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
  27. import org.springframework.web.multipart.MultipartFile;
  28. import com.jeesite.common.web.BaseController;
  29. import com.jeesite.modules.mes.entity.MesMaterialReport;
  30. import com.jeesite.modules.mes.service.MesMaterialReportService;
  31. /**
  32. * 来料报检Controller
  33. * @author mes
  34. * @version 2024-05-30
  35. */
  36. @Controller
  37. @RequestMapping(value = "${adminPath}/mes/mesMaterialReport")
  38. public class MesMaterialReportController extends BaseController {
  39. @Autowired
  40. private MesMaterialReportService mesMaterialReportService;
  41. @Autowired
  42. private MesMaterialService mesMaterialService;
  43. /**
  44. * 获取数据
  45. */
  46. @ModelAttribute
  47. public MesMaterialReport get(String id, boolean isNewRecord) {
  48. return mesMaterialReportService.get(id, isNewRecord);
  49. }
  50. /**
  51. * 查询列表
  52. */
  53. @RequiresPermissions("mes:mesMaterialReport:view")
  54. @RequestMapping(value = {"list", ""})
  55. public String list(MesMaterialReport mesMaterialReport, Model model) {
  56. model.addAttribute("mesMaterialReport", mesMaterialReport);
  57. return "modules/mes/mesMaterialReportList";
  58. }
  59. /**
  60. * 查询列表数据
  61. */
  62. @RequiresPermissions("mes:mesMaterialReport:view")
  63. @RequestMapping(value = "listData")
  64. @ResponseBody
  65. public Page<MesMaterialReport> listData(MesMaterialReport mesMaterialReport, HttpServletRequest request, HttpServletResponse response) {
  66. mesMaterialReport.setPage(new Page<>(request, response));
  67. Page<MesMaterialReport> page = mesMaterialReportService.findPage(mesMaterialReport);
  68. return page;
  69. }
  70. /**
  71. * 查看编辑表单
  72. */
  73. @RequiresPermissions("mes:mesMaterialReport:view")
  74. @RequestMapping(value = "form")
  75. public String form(MesMaterialReport mesMaterialReport, Model model) {
  76. model.addAttribute("mesMaterialReport", mesMaterialReport);
  77. return "modules/mes/mesMaterialReportForm";
  78. }
  79. /**
  80. * 保存数据
  81. */
  82. @RequiresPermissions("mes:mesMaterialReport:edit")
  83. @PostMapping(value = "save")
  84. @ResponseBody
  85. public String save(@Validated MesMaterialReport mesMaterialReport) {
  86. mesMaterialReportService.save(mesMaterialReport);
  87. return renderResult(Global.TRUE, text("保存来料报检成功!"));
  88. }
  89. /**
  90. * 导出数据
  91. */
  92. @RequiresPermissions("mes:mesMaterialReport:view")
  93. @RequestMapping(value = "exportData")
  94. public void exportData(MesMaterialReport mesMaterialReport, HttpServletResponse response) {
  95. List<MesMaterialReport> list = mesMaterialReportService.findList(mesMaterialReport);
  96. String fileName = "来料报检" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  97. try(ExcelExport ee = new ExcelExport("来料报检", MesMaterialReport.class)){
  98. ee.setDataList(list).write(response, fileName);
  99. }
  100. }
  101. /**
  102. * 下载模板
  103. */
  104. @RequiresPermissions("mes:mesMaterialReport:view")
  105. @RequestMapping(value = "importTemplate")
  106. public void importTemplate(HttpServletResponse response) {
  107. MesMaterialReport mesMaterialReport = new MesMaterialReport();
  108. List<MesMaterialReport> list = ListUtils.newArrayList(mesMaterialReport);
  109. String fileName = "来料报检模板.xlsx";
  110. try(ExcelExport ee = new ExcelExport("来料报检", MesMaterialReport.class, Type.IMPORT)){
  111. ee.setDataList(list).write(response, fileName);
  112. }
  113. }
  114. /**
  115. * 导入数据
  116. */
  117. @ResponseBody
  118. @RequiresPermissions("mes:mesMaterialReport:edit")
  119. @PostMapping(value = "importData")
  120. public String importData(MultipartFile file) {
  121. try {
  122. String message = mesMaterialReportService.importData(file);
  123. return renderResult(Global.TRUE, "posfull:"+message);
  124. } catch (Exception ex) {
  125. return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
  126. }
  127. }
  128. /**
  129. * 删除数据
  130. */
  131. @RequiresPermissions("mes:mesMaterialReport:edit")
  132. @RequestMapping(value = "delete")
  133. @ResponseBody
  134. public String delete(MesMaterialReport mesMaterialReport) {
  135. mesMaterialReportService.delete(mesMaterialReport);
  136. return renderResult(Global.TRUE, text("删除来料报检成功!"));
  137. }
  138. /**
  139. * PDA扫来料码,反解析出物料信息
  140. */
  141. @RequestMapping(value = "getMaterialInfo")
  142. @RequiresPermissions("mes:mesMaterialReport:api")
  143. @ResponseBody
  144. public CommonResp getMaterialInfo( HttpServletRequest req) {
  145. String materialCode = req.getParameter("materialCode");
  146. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  147. if (StringUtils.isEmpty(materialCode)){
  148. resp.setResult(Global.FALSE);
  149. resp.setMessage("来料码不能为空!");
  150. return resp;
  151. }
  152. String[] parts = materialCode.split("_",-1);
  153. if(parts.length < 3){
  154. resp.setResult(Global.FALSE);
  155. resp.setMessage("二维码规则不正确!");
  156. return resp;
  157. }
  158. String materialId = parts[0];
  159. String faDate = parts[1];
  160. String nums = parts[2];
  161. if (parts.length!= 3||StringUtils.isEmpty(materialId)||StringUtils.isEmpty(faDate)||StringUtils.isEmpty(nums)){
  162. resp.setResult(Global.FALSE);
  163. resp.setMessage("二维码规则不正确!");
  164. return resp;
  165. }
  166. String faDate1=null;
  167. try {
  168. faDate1 = DateLocalUtils.getCurrentDate2(faDate);
  169. } catch (ParseException e) {
  170. resp.setResult(Global.FALSE);
  171. resp.setMessage("二维码规则不正确!");
  172. return resp;
  173. }
  174. MesMaterial mesMaterial = new MesMaterial();
  175. mesMaterial.setErpSn(materialId);
  176. MesMaterial material = mesMaterialService.findInfo(mesMaterial);
  177. if(material==null){
  178. resp.setResult(Global.FALSE);
  179. resp.setMessage("物料不存在!");
  180. return resp;
  181. }
  182. HashMap<String, Object> hashMap = new HashMap<>();
  183. hashMap.put("title", material.getTitle());//物料
  184. hashMap.put("faDate", faDate1);//发货日期
  185. hashMap.put("nums", nums);//数量
  186. resp.setData(hashMap);
  187. resp.setResult(Global.TRUE);
  188. return resp;
  189. }
  190. /**
  191. * PDA提交,添加到mes_material_report表中
  192. */
  193. @RequiresPermissions("mes:mesMaterialReport:api")
  194. @RequestMapping(value = "submit")
  195. @ResponseBody
  196. public CommonResp submit(HttpServletRequest req) {
  197. CommonResp<Map<String, Object>> resp = new CommonResp<>();
  198. String materialCode = req.getParameter("materialCode").trim();
  199. String nums = req.getParameter("nums");
  200. String remark = req.getParameter("remark");
  201. String[] parts = materialCode.split("_",-1);
  202. if(parts.length < 3){
  203. resp.setResult(Global.FALSE);
  204. resp.setMessage("二维码规则不正确!");
  205. return resp;
  206. }
  207. String materialId = parts[0];
  208. String faDate = parts[1];
  209. String faNums = parts[2];
  210. if (parts.length!= 3||StringUtils.isEmpty(materialId)||StringUtils.isEmpty(faDate)||StringUtils.isEmpty(nums)){
  211. resp.setResult(Global.FALSE);
  212. resp.setMessage("二维码规则不正确!");
  213. return resp;
  214. }
  215. String faDate1=null;
  216. try {
  217. faDate1 = DateLocalUtils.getCurrentDate2(faDate);
  218. } catch (ParseException e) {
  219. resp.setResult(Global.FALSE);
  220. resp.setMessage("二维码规则不正确!");
  221. return resp;
  222. }
  223. MesMaterial mesMaterial = new MesMaterial();
  224. mesMaterial.setErpSn(materialId);
  225. MesMaterial material = mesMaterialService.findInfo(mesMaterial);
  226. if(material==null){
  227. resp.setResult(Global.FALSE);
  228. resp.setMessage("物料不存在!");
  229. return resp;
  230. }
  231. //检查物料码是否已报检
  232. MesMaterialReport mesMaterialReport = new MesMaterialReport();
  233. mesMaterialReport.setSn(materialCode);
  234. mesMaterialReport.setStatus("0");
  235. MesMaterialReport mesMaterialReport12 = mesMaterialReportService.findInfo(mesMaterialReport);
  236. if(!ObjectUtils.isEmpty(mesMaterialReport12)){
  237. resp.setResult(Global.FALSE);
  238. resp.setMessage("该批物料已报检,勿重复操作!");
  239. return resp;
  240. }
  241. MesMaterialReport mesMaterialReport1 = new MesMaterialReport();
  242. mesMaterialReport1.setSn(materialCode);
  243. mesMaterialReport1.setMaterialId(material.getId());
  244. mesMaterialReport1.setFaDate(faDate1);
  245. mesMaterialReport1.setFaNums(Long.valueOf(faNums));
  246. mesMaterialReport1.setState("0");
  247. mesMaterialReport1.setStatus("0");
  248. mesMaterialReport1.setRemark(remark);
  249. mesMaterialReport1.setNums(Long.valueOf(nums));
  250. mesMaterialReportService.save(mesMaterialReport1);
  251. resp.setResult(Global.TRUE);
  252. return resp;
  253. }
  254. @RequiresPermissions("mes:mesMaterialReport:api")
  255. @RequestMapping(value = "selectList")
  256. @ResponseBody
  257. public CommonResp<List<MesMaterialReport>> selectList(MesMaterialReport mesMaterialReport, HttpServletRequest request, HttpServletResponse response) {
  258. mesMaterialReport.setPage(new Page<>(request, response));
  259. Page<MesMaterialReport> page = mesMaterialReportService.findPage(mesMaterialReport);
  260. CommonResp<List<MesMaterialReport>> resp = new CommonResp<>();
  261. List<MesMaterialReport> list = page.getList();
  262. resp.setData(list);
  263. resp.setResult(Global.TRUE);
  264. return resp;
  265. }
  266. @RequiresPermissions("mes:mesMaterialReport:api")
  267. @RequestMapping(value = "selectById")
  268. @ResponseBody
  269. public CommonResp selectById(MesMaterialReport mesMaterialReport) {
  270. CommonResp<MesMaterialReport> resp = new CommonResp<>();
  271. if (StringUtils.isEmpty(mesMaterialReport.getId())){
  272. resp.setResult(Global.FALSE);
  273. resp.setMessage("参数错误!");
  274. return resp;
  275. }
  276. MesMaterialReport materialReport = mesMaterialReportService.selectById(mesMaterialReport);
  277. resp.setData(materialReport);
  278. resp.setResult(Global.TRUE);
  279. return resp;
  280. }
  281. }