AdminPtsBatchController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. package com.iamberry.rst.controllers.pts;
  2. import com.iamberry.rst.core.page.PagedResult;
  3. import com.iamberry.rst.core.pts.*;
  4. import com.iamberry.rst.faces.pts.MachineVersionService;
  5. import com.iamberry.rst.faces.pts.ProduceService;
  6. import com.iamberry.rst.faces.pts.PtsBatchService;
  7. import com.iamberry.rst.faces.pts.PtsBomService;
  8. import com.iamberry.rst.utils.StitchAttrUtil;
  9. import com.iamberry.wechat.tools.ObjectExcelView;
  10. import com.iamberry.wechat.tools.ResponseJson;
  11. import net.sf.json.JSONArray;
  12. import org.apache.shiro.authz.annotation.Logical;
  13. import org.apache.shiro.authz.annotation.RequiresPermissions;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Controller;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.ResponseBody;
  19. import org.springframework.web.servlet.ModelAndView;
  20. import javax.servlet.http.HttpServletRequest;
  21. import java.text.SimpleDateFormat;
  22. import java.util.ArrayList;
  23. import java.util.HashMap;
  24. import java.util.List;
  25. import java.util.Map;
  26. /**
  27. * 批次管理controller
  28. *
  29. * @author wxm
  30. */
  31. @Controller
  32. @RequestMapping("/admin/batch")
  33. public class AdminPtsBatchController {
  34. @Autowired
  35. private PtsBatchService ptsBatchService;
  36. @Autowired
  37. private ProduceService produceService;
  38. @Autowired
  39. private PtsBomService ptsBomService;
  40. @Autowired
  41. private MachineVersionService machineVersionService;
  42. private String[] BATCH_COLOR = {"黑色","白色","金色","红色","蓝色","绿色","橙色","黄色","青色","紫色"};
  43. /**
  44. * 获取batch列表
  45. *
  46. * @param request
  47. * @return
  48. */
  49. @RequiresPermissions("batch:select:list")
  50. @RequestMapping("/_batch_list")
  51. public ModelAndView getPtsBatch(HttpServletRequest request, PtsBatch ptsBatch,
  52. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  53. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  54. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
  55. ModelAndView mv = new ModelAndView("pts/batch/batch_list");
  56. PagedResult<PtsBatch> pagedResult = ptsBatchService.listPtsBatchPage(pageNO, pageSize, ptsBatch, totalNum == 0);
  57. if (totalNum != 0) {
  58. pagedResult.setTotal(totalNum);
  59. }
  60. StitchAttrUtil.setModelAndView(ptsBatch, mv, "/admin/batch/_batch_list", pagedResult);
  61. //获取产品集合,用于页面选择产品
  62. List<Produce> list = produceService.getProduceList();
  63. mv.addObject("produceList", list);
  64. return mv;
  65. }
  66. /**
  67. * 跳转到添加batch页面
  68. *
  69. * @return
  70. */
  71. @RequiresPermissions("batch:add:batch")
  72. @RequestMapping(value = "/to_add_batch")
  73. public ModelAndView toAddbatch(HttpServletRequest request) {
  74. ModelAndView mv = new ModelAndView("pts/batch/add_batch");
  75. //获取产品集合,用于页面选择产品
  76. List<Produce> produceList = produceService.getProduceList();
  77. mv.addObject("bacthColor", BATCH_COLOR);
  78. mv.addObject("produceList", produceList);
  79. return mv;
  80. }
  81. /**
  82. * 添加batch
  83. *
  84. * @return
  85. */
  86. @ResponseBody
  87. @RequiresPermissions("batch:add:batch")
  88. @RequestMapping(value = "/save_batch")
  89. public ResponseJson saveBatch(PtsBatch ptsBatch, HttpServletRequest request) {
  90. if (!this.isValiData(ptsBatch) ) {
  91. return new ResponseJson(500, "请检查表单,再次提交", 500);
  92. }
  93. Integer flag = ptsBatchService.savePtsBatch(ptsBatch);
  94. if (flag < 1) {
  95. return new ResponseJson(500, "添加失败", 500);
  96. } else {
  97. return new ResponseJson(200, "添加成功", 200);
  98. }
  99. }
  100. /**
  101. * 列表,修改批次状态
  102. *
  103. * @return
  104. */
  105. @ResponseBody
  106. @RequiresPermissions("batch:select:list")
  107. @RequestMapping(value = "/update_batch_status")
  108. public ResponseJson updateBatchStatus(Integer batchId, Integer batchStatus,Integer produceId) {
  109. PtsBatch ptsBatch = new PtsBatch();
  110. if(batchId == null || batchStatus == null || produceId == null){
  111. return new ResponseJson(500, "修改失败", 500);
  112. }
  113. ptsBatch.setBatchId(batchId);
  114. ptsBatch.setBatchStatus(batchStatus);
  115. ptsBatch.setProduceId(produceId);
  116. Integer flag = ptsBatchService.updatePtsBatch(ptsBatch);
  117. if (flag < 1) {
  118. return new ResponseJson(500, "修改失败", 500);
  119. } else {
  120. return new ResponseJson(200, "修改成功", 200);
  121. }
  122. }
  123. /**
  124. * 获取版本,根据produce
  125. *
  126. * @return
  127. */
  128. @ResponseBody
  129. @RequiresPermissions(value = {"batch:add:batch", "batch:update:batch"}, logical = Logical.OR)
  130. @RequestMapping(value = "/get_version")
  131. public ResponseJson getVersion(HttpServletRequest request) {
  132. String produceId = request.getParameter("produceId");
  133. if (produceId == null || "".equals(produceId)) {
  134. return new ResponseJson(500, "ERROR", 500);
  135. }
  136. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  137. ptsMachineVersion.setProduceId(Integer.valueOf(produceId));
  138. List<PtsMachineVersion> ptsMachineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  139. if (ptsMachineVersionList != null) {
  140. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  141. rj.addResponseKeyValue("ptsMachineVersionList", ptsMachineVersionList);
  142. return rj;
  143. } else {
  144. return new ResponseJson(500, "ERROR", 500);
  145. }
  146. }
  147. /**
  148. * 获取单个批次
  149. *
  150. * @return
  151. */
  152. @ResponseBody
  153. @RequiresPermissions(value = {"batch:add:batch", "batch:update:batch"}, logical = Logical.OR)
  154. @RequestMapping(value = "/is_valiBatchNo")
  155. public ResponseJson getIsValiBatchNo(HttpServletRequest request) {
  156. String batchNo = request.getParameter("batchNo");
  157. if (batchNo == null || "".equals(batchNo)) {
  158. return new ResponseJson(500, "未获取到批次编号", 500);
  159. }
  160. PtsBatch ptsBatch = new PtsBatch();
  161. ptsBatch.setBatchNo(batchNo);
  162. ptsBatch = ptsBatchService.getPtsBatch(ptsBatch);
  163. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  164. rj.addResponseKeyValue("ptsBatch", ptsBatch);
  165. return rj;
  166. }
  167. /***
  168. * 验证信息
  169. * @param ptsBatch
  170. * @return
  171. */
  172. private boolean isValiData(PtsBatch ptsBatch) {
  173. boolean flag = true;
  174. if(ptsBatch.getBatchNo() == null || ptsBatch.getBatchNo().length() >= 20){
  175. return false;
  176. }
  177. if (ptsBatch.getBatchQuantity() == null || ptsBatch.getBatchQuantity() == 0){
  178. return false;
  179. }
  180. if (ptsBatch.getBomId() == null){
  181. return false;
  182. }
  183. if (ptsBatch.getProduceId() == null){
  184. return false;
  185. }
  186. // if (ptsBatch.getBatchSoftwareVersionId() == null){
  187. // return false;
  188. // }
  189. if (ptsBatch.getBatchStatus() == null){
  190. return false;
  191. }
  192. return flag;
  193. }
  194. /**
  195. * 跳转到修改批次页面
  196. *
  197. * @return
  198. */
  199. @RequiresPermissions("batch:update:batch")
  200. @RequestMapping(value = "/to_update_batch")
  201. public ModelAndView toUpdateBatch(Integer batchId, HttpServletRequest request) {
  202. ModelAndView mv = new ModelAndView("pts/batch/update_batch");
  203. PtsBatch ptsBatch = new PtsBatch();
  204. ptsBatch.setBatchId(batchId);
  205. ptsBatch = ptsBatchService.getPtsBatch(ptsBatch);
  206. //颜色集合
  207. JSONArray jsonArray = JSONArray.fromObject(ptsBatch.getBatchColorQuantity());
  208. List<PtsBatchColor> ptsBatchColorList = (List) JSONArray.toCollection(jsonArray, PtsBatchColor.class);
  209. ptsBatch.setPtsBatchColorList(ptsBatchColorList);
  210. //bom单
  211. PtsBom ptsBom = new PtsBom();
  212. //ptsBom.setProduceId(ptsBatch.getProduceId());
  213. List<PtsBom> ptsBomsList = ptsBomService.listBom(ptsBom);
  214. //版本
  215. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  216. ptsMachineVersion.setProduceId(ptsBatch.getProduceId());
  217. List<PtsMachineVersion> ptsMachineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  218. //获取产品集合,用于页面选择产品
  219. List<Produce> produceList = produceService.getProduceList();
  220. mv.addObject("ptsBatch", ptsBatch);
  221. mv.addObject("ptsBomsList", ptsBomsList);
  222. mv.addObject("produceList", produceList);
  223. mv.addObject("ptsMachineVersionList", ptsMachineVersionList);
  224. mv.addObject("batchColor", BATCH_COLOR);
  225. return mv;
  226. }
  227. /**
  228. * 修改批次
  229. *
  230. * @return
  231. */
  232. @ResponseBody
  233. @RequiresPermissions("batch:add:batch")
  234. @RequestMapping(value = "/update_batch")
  235. public ResponseJson updateBatch(PtsBatch ptsBatch, String batchColorJson, HttpServletRequest request) {
  236. if (!this.isValiData(ptsBatch) ) {
  237. return new ResponseJson(500, "请检查表单,再次提交", 500);
  238. }
  239. Integer flag = ptsBatchService.updatePtsBatch(ptsBatch);
  240. if (flag < 1) {
  241. return new ResponseJson(500, "修改失败", 500);
  242. } else {
  243. return new ResponseJson(200, "修改成功", 200);
  244. }
  245. }
  246. /**
  247. * 批次 -- excel导出
  248. *
  249. * @return
  250. */
  251. @RequestMapping(value = "/generation_excel")
  252. public ModelAndView generationExcel(HttpServletRequest request) throws Exception{
  253. // 准备model
  254. Map<String, Object> model = new HashMap<String, Object>();
  255. model.put("fileName", "批次列表"); // 下载文件名称
  256. // 标题
  257. List<String> titles = new ArrayList<String>();
  258. titles.add("所属产品");
  259. titles.add("批次编号");
  260. titles.add("总数量");
  261. titles.add("已生产数量");
  262. titles.add("状态");
  263. titles.add("软件版本");
  264. titles.add("Bom单名称");
  265. titles.add("创建时间");
  266. model.put("titles", titles);
  267. PtsBatch ptsBatch = new PtsBatch();
  268. List<List<Object>> countexts = new ArrayList<List<Object>>();
  269. List<PtsBatch> list = ptsBatchService.listPtsBatch(ptsBatch);
  270. for (PtsBatch info : list) {
  271. List<Object> row = new ArrayList<Object>();
  272. row.add(info.getProduceName() == null ? null:info.getProduceName());
  273. row.add(info.getBatchNo() == null ? null:info.getBatchNo());
  274. row.add(info.getBatchQuantity() == null ? null:info.getBatchQuantity());
  275. row.add(info.getGeneratedQuantity() == null ? null:info.getGeneratedQuantity());
  276. row.add(info.getBatchStatus() == 0 ? "停止使用":"正常使用");
  277. row.add(info.getSoftwareVersionNo() == null ? null:info.getSoftwareVersionNo());
  278. row.add(info.getBomName() == null ? null:info.getBomName());
  279. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  280. String time = formatter.format(info.getBatchCreateTime());
  281. row.add(time);
  282. countexts.add(row);
  283. }
  284. model.put("varList", countexts);
  285. ObjectExcelView erv = new ObjectExcelView();
  286. ModelAndView mv = new ModelAndView(erv,model);
  287. return mv;
  288. }
  289. }