AdminPtsBomController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  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.MachinePartsService;
  5. import com.iamberry.rst.faces.pts.MachineVersionService;
  6. import com.iamberry.rst.faces.pts.ProduceService;
  7. import com.iamberry.rst.faces.pts.PtsBomService;
  8. import com.iamberry.rst.utils.ExcelUtil;
  9. import com.iamberry.rst.utils.StitchAttrUtil;
  10. import com.iamberry.wechat.tools.ObjectExcelView;
  11. import com.iamberry.wechat.tools.ResponseJson;
  12. import com.iamberry.wechat.tools.ResultInfo;
  13. import net.sf.json.JSONArray;
  14. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  15. import org.apache.poi.ss.usermodel.Sheet;
  16. import org.apache.poi.ss.usermodel.Workbook;
  17. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  18. import org.apache.shiro.authz.annotation.Logical;
  19. import org.apache.shiro.authz.annotation.RequiresPermissions;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.RequestParam;
  24. import org.springframework.web.bind.annotation.ResponseBody;
  25. import org.springframework.web.multipart.MultipartFile;
  26. import org.springframework.web.multipart.commons.CommonsMultipartFile;
  27. import org.springframework.web.servlet.ModelAndView;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import java.io.*;
  31. import java.util.*;
  32. /**
  33. * bom单管理 controller
  34. * wangxiaoming
  35. */
  36. @Controller
  37. @RequestMapping("/admin/bom")
  38. public class AdminPtsBomController {
  39. @Autowired
  40. private PtsBomService ptsBomService;
  41. @Autowired
  42. private ProduceService produceService;
  43. @Autowired
  44. private MachinePartsService machinePartsService;
  45. @Autowired
  46. private MachineVersionService machineVersionService;
  47. /**
  48. * 获取bom单列表
  49. *
  50. * @param request
  51. * @return
  52. */
  53. @RequiresPermissions("bom:select:list")
  54. @RequestMapping("/_bom_list")
  55. public ModelAndView getPtsBom(HttpServletRequest request, PtsBom ptsBom,
  56. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  57. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  58. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
  59. ModelAndView mv = new ModelAndView("pts/bom/bom_list");
  60. PagedResult<PtsBom> pagedResult = ptsBomService.listPtsBom(pageNO, pageSize, ptsBom, totalNum == 0);
  61. if (totalNum != 0) {
  62. pagedResult.setTotal(totalNum);
  63. }
  64. //获取产品集合,用于页面选择产品
  65. List<Produce> list = produceService.getProduceList();
  66. mv.addObject("produceList", list);
  67. StitchAttrUtil.setModelAndView(ptsBom, mv, "/admin/bom/_bom_list", pagedResult);
  68. return mv;
  69. }
  70. /**
  71. * 获取bom单全部
  72. *
  73. * @param request
  74. * @return
  75. */
  76. @ResponseBody
  77. @RequiresPermissions("bom:select:list")
  78. @RequestMapping("/get_bom_list")
  79. public ResponseJson getPtsBom(HttpServletRequest request, PtsBom ptsBom) {
  80. List<PtsBom> bomList = ptsBomService.listPtsBom(ptsBom);
  81. if (bomList != null) {
  82. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  83. rj.addResponseKeyValue("bomList", bomList);
  84. return rj;
  85. } else {
  86. return new ResponseJson(500, "ERROR", 500);
  87. }
  88. }
  89. /**
  90. * 跳转到添加bom单页面
  91. *
  92. * @return
  93. */
  94. @RequiresPermissions("bom:add:bom")
  95. @RequestMapping(value = "/to_add_bom")
  96. public ModelAndView toAddBom(HttpServletRequest request) {
  97. ModelAndView mv = new ModelAndView("pts/bom/add_bom");
  98. //获取产品集合,用于页面选择产品
  99. List<Produce> produceList = produceService.getProduceList();
  100. //获取软件集合,用于页面选择软件版本
  101. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  102. if (produceList != null && produceList.size() > 0) {
  103. ptsMachineVersion.setProduceId(produceList.get(0).getProduceId());
  104. }
  105. List<PtsMachineVersion> machineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  106. mv.addObject("produceList", produceList);
  107. mv.addObject("machineVersionList", machineVersionList);
  108. return mv;
  109. }
  110. /**
  111. * 添加bom单
  112. *
  113. * @return
  114. */
  115. @ResponseBody
  116. @RequiresPermissions("bom:add:bom")
  117. @RequestMapping(value = "/save_bom")
  118. public ResponseJson saveBom(PtsBom ptsBom, String bomComponentJson, HttpServletRequest request) {
  119. if (!this.isValiData(ptsBom) || bomComponentJson == null) {
  120. return new ResponseJson(500, "请检查表单,再次提交", 500);
  121. }
  122. JSONArray jsonArray = JSONArray.fromObject(bomComponentJson);
  123. List<PtsBomComponents> ptsBomComponentsList = (List) JSONArray.toCollection(jsonArray, PtsBomComponents.class);
  124. ptsBom.setPtsBomComponentsList(ptsBomComponentsList);
  125. Integer flag = ptsBomService.savePtsBom(ptsBom);
  126. if (flag < 1) {
  127. return new ResponseJson(500, "添加失败", 500);
  128. } else {
  129. return new ResponseJson(200, "添加成功", 200);
  130. }
  131. }
  132. /**
  133. * 验证方法
  134. *
  135. * @param ptsBom
  136. * @return
  137. */
  138. public boolean isValiData(PtsBom ptsBom) {
  139. boolean flag = true;
  140. if (ptsBom.getBomName() == null || "".equals(ptsBom.getBomName())) {
  141. return false;
  142. }
  143. if (ptsBom.getProduceId() == null) {
  144. return false;
  145. }
  146. if (ptsBom.getBomVersion() == null || "".equals(ptsBom.getBomVersion())) {
  147. return false;
  148. }
  149. return flag;
  150. }
  151. /**
  152. * 获取软件版本
  153. *
  154. * @return
  155. */
  156. @ResponseBody
  157. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  158. @RequestMapping(value = "/get_listMachineVersion")
  159. public ResponseJson listMachineVersion(HttpServletRequest request) {
  160. String produceId = request.getParameter("produceId");
  161. if (produceId == null || "".equals(produceId)) {
  162. return new ResponseJson(500, "ERROR", 500);
  163. }
  164. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  165. ptsMachineVersion.setProduceId(Integer.valueOf(produceId));
  166. List<PtsMachineVersion> machineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  167. if (machineVersionList != null) {
  168. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  169. rj.addResponseKeyValue("machineVersionList", machineVersionList);
  170. return rj;
  171. } else {
  172. return new ResponseJson(500, "ERROR", 500);
  173. }
  174. }
  175. /**
  176. * 获取bom单,根据produce
  177. *
  178. * @return
  179. */
  180. @ResponseBody
  181. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  182. @RequestMapping(value = "/get_listBom")
  183. public ResponseJson listBomByProduceId(HttpServletRequest request) {
  184. // String produceId = request.getParameter("produceId");
  185. // if (produceId == null || "".equals(produceId)) {
  186. // return new ResponseJson(500, "ERROR", 500);
  187. // }
  188. PtsBom ptsBom = new PtsBom();
  189. // ptsBom.setProduceId(Integer.valueOf(produceId));
  190. List<PtsBom> ptsBomsList = ptsBomService.listBom(ptsBom);
  191. if (ptsBomsList != null) {
  192. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  193. rj.addResponseKeyValue("ptsBomsList", ptsBomsList);
  194. return rj;
  195. } else {
  196. return new ResponseJson(500, "ERROR", 500);
  197. }
  198. }
  199. /**
  200. * 获取bom单,根据produce
  201. *
  202. * @return
  203. */
  204. @ResponseBody
  205. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  206. @RequestMapping(value = "/get_bom")
  207. public ResponseJson getBom(HttpServletRequest request) {
  208. String bomId = request.getParameter("bomId");
  209. if (bomId == null || "".equals(bomId)) {
  210. return new ResponseJson(500, "ERROR", 500);
  211. }
  212. PtsBom ptsBom = new PtsBom();
  213. ptsBom.setBomId(Integer.valueOf(bomId));
  214. ptsBom = ptsBomService.getPtsBom(ptsBom);
  215. if (ptsBom != null) {
  216. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  217. rj.addResponseKeyValue("ptsBom", ptsBom);
  218. return rj;
  219. } else {
  220. return new ResponseJson(500, "ERROR", 500);
  221. }
  222. }
  223. /**
  224. * 获取所有零件
  225. *
  226. * @return
  227. */
  228. @ResponseBody
  229. @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR)
  230. @RequestMapping(value = "/get_listComponents")
  231. public ResponseJson listComponents(HttpServletRequest request) {
  232. String produceId = request.getParameter("produceId");
  233. PtsComponents ptsComponents = new PtsComponents();
  234. if (produceId != null && !"".equals(produceId)) {
  235. ptsComponents.setProduceId(Integer.valueOf(produceId));
  236. }
  237. ptsComponents.setComponentsStatus(1);
  238. //查询所有零件
  239. List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents);
  240. if (ptsComponentsList != null) {
  241. ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
  242. rj.addResponseKeyValue("ptsComponentsList", ptsComponentsList);
  243. return rj;
  244. } else {
  245. return new ResponseJson(500, "ERROR", 500);
  246. }
  247. }
  248. /**
  249. * 跳转到修改bom单页面
  250. *
  251. * @return
  252. */
  253. @ResponseBody
  254. @RequiresPermissions("bom:update:bom")
  255. @RequestMapping(value = "/to_update_bom")
  256. public ModelAndView toUpdateBom(String bomId, HttpServletRequest request) {
  257. ModelAndView mv = new ModelAndView("pts/bom/update_bom");
  258. if (bomId == null || "".equals(bomId)) {
  259. return mv;
  260. }
  261. //获取产品集合,用于页面选择产品
  262. List<Produce> produceList = produceService.getProduceList();
  263. //查询bom信息
  264. PtsBom ptsBom = new PtsBom();
  265. ptsBom.setBomId(Integer.valueOf(bomId));
  266. ptsBom = ptsBomService.getPtsBom(ptsBom);
  267. //所有零件
  268. PtsComponents ptsComponents = new PtsComponents();
  269. ptsComponents.setProduceId(ptsBom.getProduceId());
  270. ptsComponents.setComponentsStatus(1);
  271. List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents);
  272. //获取软件集合,用于页面选择软件版本
  273. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  274. if (produceList != null && produceList.size() > 0) {
  275. ptsMachineVersion.setProduceId(ptsBom.getProduceId());
  276. }
  277. List<PtsMachineVersion> machineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  278. mv.addObject("produceList", produceList);
  279. mv.addObject("ptsBom", ptsBom);
  280. mv.addObject("ptsComponentsList", ptsComponentsList);
  281. mv.addObject("machineVersionList", machineVersionList);
  282. return mv;
  283. }
  284. /**
  285. * 修改bom
  286. *
  287. * @return
  288. */
  289. @ResponseBody
  290. @RequiresPermissions("bom:add:bom")
  291. @RequestMapping(value = "/update_bom")
  292. public ResponseJson updateBom(PtsBom ptsBom, String bomComponentJson, HttpServletRequest request) {
  293. if (!this.isValiData(ptsBom) || bomComponentJson == null) {
  294. return new ResponseJson(500, "请检查表单,再次提交", 500);
  295. }
  296. JSONArray jsonArray = JSONArray.fromObject(bomComponentJson);
  297. List<PtsBomComponents> ptsBomComponentsList = (List) JSONArray.toCollection(jsonArray, PtsBomComponents.class);
  298. ptsBom.setPtsBomComponentsList(ptsBomComponentsList);
  299. ptsBom.setProduceId(null);
  300. Integer flag = ptsBomService.updatePtsBom(ptsBom);
  301. if (flag < 1) {
  302. return new ResponseJson(500, "修改失败", 500);
  303. } else {
  304. return new ResponseJson(200, "修改成功", 200);
  305. }
  306. }
  307. /**
  308. * 获取bom单详情
  309. *
  310. * @return
  311. */
  312. @ResponseBody
  313. @RequiresPermissions("bom:select:details")
  314. @RequestMapping(value = "/to_details_bom")
  315. public ModelAndView toBomDetails(String bomId, HttpServletRequest request) {
  316. ModelAndView mv = new ModelAndView("pts/bom/bom_details");
  317. if (bomId == null || "".equals(bomId)) {
  318. return mv;
  319. }
  320. //查询bom信息
  321. PtsBom ptsBom = new PtsBom();
  322. ptsBom.setBomId(Integer.valueOf(bomId));
  323. ptsBom = ptsBomService.getPtsBomDetails(ptsBom);
  324. //所有零件
  325. // PtsComponents ptsComponents = new PtsComponents();
  326. // ptsComponents.setProduceId(ptsBom.getProduceId());
  327. // ptsComponents.setComponentsStatus(1);
  328. // List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponents(ptsComponents);
  329. mv.addObject("ptsBom", ptsBom);
  330. // mv.addObject("ptsComponentsList", ptsComponentsList);
  331. return mv;
  332. }
  333. /**
  334. * 添加bom单 -- excel导入
  335. *
  336. * @return
  337. */
  338. @ResponseBody
  339. @RequiresPermissions("bom:list:uploadFile")
  340. @RequestMapping(value = "/upload_bom")
  341. public ResponseJson uploadBom(@RequestParam("file") String file, HttpServletRequest request) throws Exception {
  342. //mv.addObject("heads", ExcelUtil.readExcelHead(request.getServletContext().getRealPath(file)));
  343. //mv.addObject("productUrl", file);
  344. String path = request.getServletContext().getRealPath(file);
  345. Map<String, Object> map = ExcelUtil.readExcelBom(path);
  346. String bomName = String.valueOf(map.get("bomName"));
  347. String produceName = String.valueOf(map.get("produceName"));
  348. String bomVersion = String.valueOf(map.get("bomVersion")); //硬件版本号
  349. String machineVersionNo = String.valueOf(map.get("machineVersionNo")); //软件版本号
  350. String bomRemarks = String.valueOf(map.get("bomRemarks")); //备注
  351. List<PtsBomComponents> componentsList = (List<PtsBomComponents>) map.get("componentsList");
  352. Produce produce = new Produce();
  353. produce.setProduceName(produceName);
  354. List<Produce> produceList = produceService.getProduceList(produce);
  355. if (produceList == null || produceList.size() < 1) {
  356. return new ResponseJson(500, "未查询到该产品或查询到多个产品,请重新填写", 500);
  357. }
  358. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  359. ptsMachineVersion.setMachineVersionNo(machineVersionNo);
  360. ptsMachineVersion.setProduceId(produceList.get(0).getProduceId());
  361. List<PtsMachineVersion> machineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  362. if (machineVersionList == null || machineVersionList.size() < 1) {
  363. return new ResponseJson(500, "未查询到该产品的软件版本或查询到多个软件版本,请重新填写", 500);
  364. }
  365. for (int i = 0; i < componentsList.size(); i++) {
  366. PtsComponents ptsComponents = new PtsComponents();
  367. ptsComponents.setComponentsNo(componentsList.get(i).getComponentsNo());
  368. ptsComponents = machinePartsService.getmachineParts(ptsComponents);
  369. if (ptsComponents == null) {
  370. return new ResponseJson(500, "未查询到" + componentsList.get(i).getComponentsNo() + "编号的零件", 500);
  371. }
  372. componentsList.get(i).setComponentsId(ptsComponents.getComponentsId());
  373. }
  374. PtsBom bom = new PtsBom();
  375. bom.setBomName(bomName);
  376. bom.setProduceId(produceList.get(0).getProduceId());
  377. bom.setBomVersion(bomVersion);
  378. bom.setMachineVersionId(machineVersionList.get(0).getMachineVersionId());
  379. bom.setBomRemarks(bomRemarks);
  380. bom.setPtsBomComponentsList(componentsList);
  381. Integer flag = ptsBomService.savePtsBom(bom);
  382. if (flag < 1) {
  383. return new ResponseJson(500, "添加失败", 500);
  384. } else {
  385. return new ResponseJson(200, "添加成功", 200);
  386. }
  387. }
  388. /**
  389. * 导入bom单
  390. * **/
  391. /* @ResponseBody
  392. @RequiresPermissions("bom:list:uploadFile")
  393. @RequestMapping(value = "/upload_bom")
  394. public ResponseJson uploadBom(@RequestParam("sourceFile") MultipartFile sourceFile, HttpServletRequest request, HttpServletResponse response)throws IOException {
  395. //判断文件是否为空
  396. if (sourceFile==null) {
  397. return new ResponseJson(500, "文件为空", 500);
  398. }
  399. //获取文件名
  400. String name=sourceFile.getOriginalFilename();
  401. long size =sourceFile.getSize();
  402. if (name==null ||("").equals(name) && size==0) {
  403. return new ResponseJson(500, "文件为空", 500);
  404. }
  405. //把spring文件上传的MultipartFile转换成CommonsMultipartFile类型
  406. CommonsMultipartFile cf= (CommonsMultipartFile)sourceFile; //获取本地存储路径
  407. File file = new File(ResultInfo.PARTS_EXCEL);
  408. //创建一个目录 (它的路径名由当前 File 对象指定,包括任一必须的父路径。)
  409. if (!file.exists()) file.mkdirs();
  410. //新建一个文件
  411. File file1 = new File(ResultInfo.PARTS_EXCEL + new Date().getTime() + ".xls");
  412. //将上传的文件写入新建的文件中
  413. try {
  414. cf.getFileItem().write(file1);
  415. } catch (Exception e) {
  416. e.printStackTrace();
  417. }
  418. String path = file1.getCanonicalPath();
  419. Map<String, Object> map = ExcelUtil.readExcelBom(path);
  420. String bomName = String.valueOf(map.get("bomName"));
  421. String produceName = String.valueOf(map.get("produceName"));
  422. String bomVersion = String.valueOf(map.get("bomVersion")); //硬件版本号
  423. String machineVersionNo = String.valueOf(map.get("machineVersionNo")); //软件版本号
  424. String bomRemarks = String.valueOf(map.get("bomRemarks")); //备注
  425. List<PtsBomComponents> componentsList = (List<PtsBomComponents>) map.get("componentsList");
  426. Produce produce = new Produce();
  427. produce.setProduceName(produceName);
  428. List<Produce> produceList = produceService.getProduceList(produce);
  429. if (produceList == null || produceList.size() < 1) {
  430. return new ResponseJson(500, "未查询到该产品(" + produceName +")或查询到多个产品,请重新填写", 500);
  431. }
  432. PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
  433. ptsMachineVersion.setMachineVersionNo(machineVersionNo);
  434. ptsMachineVersion.setProduceId(produceList.get(0).getProduceId());
  435. List<PtsMachineVersion> machineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion);
  436. if (machineVersionList == null || machineVersionList.size() < 1) {
  437. return new ResponseJson(500, "未查询到相应产品的软件版本号("+ machineVersionNo +")或查询到多个软件版本,请重新填写", 500);
  438. }
  439. for (int i = 0; i < componentsList.size(); i++) {
  440. PtsComponents ptsComponents = new PtsComponents();
  441. ptsComponents.setComponentsNo(componentsList.get(i).getComponentsNo());
  442. ptsComponents = machinePartsService.getmachineParts(ptsComponents);
  443. if (ptsComponents == null) {
  444. return new ResponseJson(500, "未查询到" + componentsList.get(i).getComponentsNo() + "编号的零件", 500);
  445. }
  446. componentsList.get(i).setComponentsId(ptsComponents.getComponentsId());
  447. }
  448. PtsBom bom = new PtsBom();
  449. bom.setBomName(bomName);
  450. bom.setProduceId(produceList.get(0).getProduceId());
  451. bom.setBomVersion(bomVersion);
  452. bom.setMachineVersionId(machineVersionList.get(0).getMachineVersionId());
  453. bom.setBomRemarks(bomRemarks);
  454. bom.setPtsBomComponentsList(componentsList);
  455. Integer flag = ptsBomService.savePtsBom(bom);
  456. if (flag < 1) {
  457. return new ResponseJson(500, "添加失败", 500);
  458. } else {
  459. return new ResponseJson(200, "添加成功", 200);
  460. }
  461. }*/
  462. /**
  463. * bom单 -- excel导出
  464. *
  465. * @return
  466. */
  467. @RequiresPermissions("bom:list:uploadFile")
  468. @RequestMapping(value = "/generation_excel")
  469. public ModelAndView generationExcel(HttpServletRequest request) throws Exception {
  470. String bomId = request.getParameter("bomId");
  471. PtsBom ptsBom = new PtsBom();
  472. if (bomId == null || "".equals(bomId)) {
  473. throw new Exception("未获取到Bom单");
  474. }
  475. ptsBom.setBomId(Integer.valueOf(bomId));
  476. ptsBom = ptsBomService.getPtsBom(ptsBom);
  477. List<PtsBomComponents> ptsBomComponentsList = ptsBom.getPtsBomComponentsList();
  478. // 准备model
  479. Map<String, Object> model = new HashMap<String, Object>();
  480. model.put("fileName", "Bom单"); // 下载文件名称
  481. // 标题
  482. List<String> t1 = new ArrayList<String>();
  483. t1.add("bom单基本信息");
  484. t1.add("");
  485. t1.add("");
  486. model.put("titles", t1);
  487. List<List<Object>> countexts = new ArrayList<List<Object>>();
  488. for (int i = 0; i <ptsBomComponentsList.size() + 8; i++) {
  489. List<Object> row = new ArrayList<Object>();
  490. switch (i) {
  491. case 0:
  492. row.add("bom单名称");
  493. row.add(ptsBom.getBomName());
  494. break;
  495. case 1:
  496. row.add("所属产品");
  497. row.add(ptsBom.getProduceName());
  498. break;
  499. case 2:
  500. row.add("硬件版本号");
  501. row.add(ptsBom.getBomVersion());
  502. break;
  503. case 3:
  504. row.add("软件版本号");
  505. row.add(ptsBom.getMachineVersionNo());
  506. break;
  507. case 4:
  508. row.add("备注");
  509. row.add(ptsBom.getBomRemarks());
  510. break;
  511. case 5:
  512. row.add("");
  513. row.add("");
  514. break;
  515. case 6:
  516. row.add("Bom零件清单");
  517. row.add("");
  518. break;
  519. case 7:
  520. row.add("零件编号");
  521. row.add("零件数量");
  522. break;
  523. default:
  524. PtsBomComponents ptsBomComponents = ptsBomComponentsList.get(i-8);
  525. row.add(ptsBomComponents.getComponentsNo());
  526. row.add(ptsBomComponents.getBomComponentsQuantity()/100);
  527. break;
  528. }
  529. countexts.add(row);
  530. }
  531. model.put("varList", countexts);
  532. ObjectExcelView erv = new ObjectExcelView();
  533. ModelAndView mv = new ModelAndView(erv, model);
  534. return mv;
  535. }
  536. }