AdminPtsBomController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. package com.iamberry.rst.controllers.pts;
  2. import com.iamberry.rst.core.page.PagedResult;
  3. import com.iamberry.rst.core.pts.Produce;
  4. import com.iamberry.rst.core.pts.PtsBom;
  5. import com.iamberry.rst.core.pts.PtsBomComponents;
  6. import com.iamberry.rst.core.pts.PtsComponents;
  7. import com.iamberry.rst.faces.pts.MachinePartsService;
  8. import com.iamberry.rst.faces.pts.ProduceService;
  9. import com.iamberry.rst.faces.pts.PtsBomService;
  10. import com.iamberry.rst.utils.StitchAttrUtil;
  11. import com.iamberry.wechat.tools.ResponseJson;
  12. import net.sf.json.JSONArray;
  13. import org.apache.shiro.authz.annotation.Logical;
  14. import org.apache.shiro.authz.annotation.RequiresPermissions;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestParam;
  19. import org.springframework.web.bind.annotation.ResponseBody;
  20. import org.springframework.web.servlet.ModelAndView;
  21. import javax.servlet.http.HttpServletRequest;
  22. import java.util.List;
  23. /**
  24. * bom单管理 controller
  25. * wangxiaoming
  26. */
  27. @Controller
  28. @RequestMapping("/admin/bom")
  29. public class AdminPtsBomController {
  30. @Autowired
  31. private PtsBomService ptsBomService;
  32. @Autowired
  33. private ProduceService produceService;
  34. @Autowired
  35. private MachinePartsService machinePartsService;
  36. /**
  37. * 获取bom单列表
  38. *
  39. * @param request
  40. * @return
  41. */
  42. @RequiresPermissions("bom:select:list")
  43. @RequestMapping("/_bom_list")
  44. public ModelAndView getPtsBom(HttpServletRequest request, PtsBom ptsBom,
  45. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  46. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  47. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
  48. ModelAndView mv = new ModelAndView("pts/bom/bom_list");
  49. PagedResult<PtsBom> pagedResult = ptsBomService.listPtsBom(pageNO, pageSize, ptsBom, totalNum == 0);
  50. if (totalNum != 0) {
  51. pagedResult.setTotal(totalNum);
  52. }
  53. //获取产品集合,用于页面选择产品
  54. List<Produce> list = produceService.getProduceList();
  55. mv.addObject("produceList", list);
  56. StitchAttrUtil.setModelAndView(ptsBom, mv, "/admin/bom/_bom_list", pagedResult);
  57. return mv;
  58. }
  59. /**
  60. * 跳转到添加bom单页面
  61. *
  62. * @return
  63. */
  64. @RequiresPermissions("bom:add:bom")
  65. @RequestMapping(value = "/to_add_bom")
  66. public ModelAndView toAddBom(HttpServletRequest request) {
  67. ModelAndView mv = new ModelAndView("pts/bom/add_bom");
  68. //获取产品集合,用于页面选择产品
  69. List<Produce> produceList = produceService.getProduceList();
  70. mv.addObject("produceList", produceList);
  71. return mv;
  72. }
  73. /**
  74. * 添加bom单
  75. *
  76. * @return
  77. */
  78. @ResponseBody
  79. @RequiresPermissions("bom:add:bom")
  80. @RequestMapping(value = "/save_bom")
  81. public ResponseJson saveBom(PtsBom ptsBom, String bomComponentJson, HttpServletRequest request) {
  82. if (!this.isValiData(ptsBom) || bomComponentJson == null) {
  83. return new ResponseJson(500, "请检查表单,再次提交", 500);
  84. }
  85. JSONArray jsonArray = JSONArray.fromObject(bomComponentJson);
  86. List<PtsBomComponents> ptsBomComponentsList = (List) JSONArray.toCollection(jsonArray, PtsBomComponents.class);
  87. ptsBom.setPtsBomComponentsList(ptsBomComponentsList);
  88. Integer flag = ptsBomService.savePtsBom(ptsBom);
  89. if (flag < 1) {
  90. return new ResponseJson(500, "添加失败", 500);
  91. } else {
  92. return new ResponseJson(200, "添加成功", 200);
  93. }
  94. }
  95. /**
  96. * 验证方法
  97. * @param ptsBom
  98. * @return
  99. */
  100. public boolean isValiData(PtsBom ptsBom) {
  101. boolean flag = true;
  102. if (ptsBom.getBomName() == null || "".equals(ptsBom.getBomName())) {
  103. return false;
  104. }
  105. if(ptsBom.getProduceId() == null){
  106. return false;
  107. }
  108. if(ptsBom.getBomVersion() == null || "".equals(ptsBom.getBomVersion())){
  109. return false;
  110. }
  111. return flag;
  112. }
  113. /**
  114. * 获取bom单,根据produce
  115. *
  116. * @return
  117. */
  118. @ResponseBody
  119. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  120. @RequestMapping(value = "/get_listBom")
  121. public ResponseJson listBomByProduceId(HttpServletRequest request) {
  122. String produceId = request.getParameter("produceId");
  123. if (produceId == null || "".equals(produceId)) {
  124. return new ResponseJson(500, "ERROR", 500);
  125. }
  126. PtsBom ptsBom = new PtsBom();
  127. ptsBom.setProduceId(Integer.valueOf(produceId));
  128. List<PtsBom> ptsBomsList = ptsBomService.listBom(ptsBom);
  129. if (ptsBomsList != null) {
  130. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  131. rj.addResponseKeyValue("ptsBomsList", ptsBomsList);
  132. return rj;
  133. } else {
  134. return new ResponseJson(500, "ERROR", 500);
  135. }
  136. }
  137. /**
  138. * 获取bom单,根据produce
  139. *
  140. * @return
  141. */
  142. @ResponseBody
  143. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  144. @RequestMapping(value = "/get_bom")
  145. public ResponseJson getBom(HttpServletRequest request) {
  146. String bomId = request.getParameter("bomId");
  147. if (bomId == null || "".equals(bomId)) {
  148. return new ResponseJson(500, "ERROR", 500);
  149. }
  150. PtsBom ptsBom = new PtsBom();
  151. ptsBom.setBomId(Integer.valueOf(bomId));
  152. ptsBom = ptsBomService.getPtsBom(ptsBom);
  153. if (ptsBom != null) {
  154. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  155. rj.addResponseKeyValue("ptsBom", ptsBom);
  156. return rj;
  157. } else {
  158. return new ResponseJson(500, "ERROR", 500);
  159. }
  160. }
  161. /**
  162. * 获取所有零件
  163. *
  164. * @return
  165. */
  166. @ResponseBody
  167. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  168. @RequestMapping(value = "/get_listComponents")
  169. public ResponseJson listComponents(HttpServletRequest request) {
  170. String produceId = request.getParameter("produceId");
  171. PtsComponents ptsComponents = new PtsComponents();
  172. if (produceId != null && !"".equals(produceId)) {
  173. ptsComponents.setProduceId(Integer.valueOf(produceId));
  174. }
  175. ptsComponents.setComponentsStatus(1);
  176. //查询所有零件
  177. List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents);
  178. if (ptsComponentsList != null) {
  179. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  180. rj.addResponseKeyValue("ptsComponentsList", ptsComponentsList);
  181. return rj;
  182. } else {
  183. return new ResponseJson(500, "ERROR", 500);
  184. }
  185. }
  186. /**
  187. * 跳转到修改bom单页面
  188. *
  189. * @return
  190. */
  191. @ResponseBody
  192. @RequiresPermissions("bom:update:bom")
  193. @RequestMapping(value = "/to_update_bom")
  194. public ModelAndView toUpdateBom(String bomId, HttpServletRequest request) {
  195. ModelAndView mv = new ModelAndView("pts/bom/update_bom");
  196. if (bomId == null || "".equals(bomId)) {
  197. return mv;
  198. }
  199. //获取产品集合,用于页面选择产品
  200. List<Produce> produceList = produceService.getProduceList();
  201. //查询bom信息
  202. PtsBom ptsBom = new PtsBom();
  203. ptsBom.setBomId(Integer.valueOf(bomId));
  204. ptsBom = ptsBomService.getPtsBom(ptsBom);
  205. //所有零件
  206. PtsComponents ptsComponents = new PtsComponents();
  207. ptsComponents.setProduceId(ptsBom.getProduceId());
  208. ptsComponents.setComponentsStatus(1);
  209. List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents);
  210. mv.addObject("produceList", produceList);
  211. mv.addObject("ptsBom", ptsBom);
  212. mv.addObject("ptsComponentsList", ptsComponentsList);
  213. return mv;
  214. }
  215. /**
  216. * 修改bom
  217. *
  218. * @return
  219. */
  220. @ResponseBody
  221. @RequiresPermissions("bom:add:bom")
  222. @RequestMapping(value = "/update_bom")
  223. public ResponseJson updateBom(PtsBom ptsBom, String bomComponentJson, HttpServletRequest request) {
  224. if (!this.isValiData(ptsBom) || bomComponentJson == null) {
  225. return new ResponseJson(500, "请检查表单,再次提交", 500);
  226. }
  227. JSONArray jsonArray = JSONArray.fromObject(bomComponentJson);
  228. List<PtsBomComponents> ptsBomComponentsList = (List) JSONArray.toCollection(jsonArray, PtsBomComponents.class);
  229. ptsBom.setPtsBomComponentsList(ptsBomComponentsList);
  230. ptsBom.setProduceId(null);
  231. Integer flag = ptsBomService.updatePtsBom(ptsBom);
  232. if (flag < 1) {
  233. return new ResponseJson(500, "修改失败", 500);
  234. } else {
  235. return new ResponseJson(200, "修改成功", 200);
  236. }
  237. }
  238. /**
  239. * 获取bom单详情
  240. *
  241. * @return
  242. */
  243. @ResponseBody
  244. @RequiresPermissions("bom:select:details")
  245. @RequestMapping(value = "/to_details_bom")
  246. public ModelAndView toBomDetails(String bomId, HttpServletRequest request) {
  247. ModelAndView mv = new ModelAndView("pts/bom/bom_details");
  248. if (bomId == null || "".equals(bomId)) {
  249. return mv;
  250. }
  251. //查询bom信息
  252. PtsBom ptsBom = new PtsBom();
  253. ptsBom.setBomId(Integer.valueOf(bomId));
  254. ptsBom = ptsBomService.getPtsBomDetails(ptsBom);
  255. //所有零件
  256. // PtsComponents ptsComponents = new PtsComponents();
  257. // ptsComponents.setProduceId(ptsBom.getProduceId());
  258. // ptsComponents.setComponentsStatus(1);
  259. // List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponents(ptsComponents);
  260. mv.addObject("ptsBom", ptsBom);
  261. // mv.addObject("ptsComponentsList", ptsComponentsList);
  262. return mv;
  263. }
  264. }