package com.iamberry.rst.controllers.pts; import com.iamberry.rst.core.page.PagedResult; import com.iamberry.rst.core.pts.Produce; import com.iamberry.rst.core.pts.PtsBom; import com.iamberry.rst.core.pts.PtsBomComponents; import com.iamberry.rst.core.pts.PtsComponents; import com.iamberry.rst.faces.pts.MachinePartsService; import com.iamberry.rst.faces.pts.ProduceService; import com.iamberry.rst.faces.pts.PtsBomService; import com.iamberry.rst.utils.StitchAttrUtil; import com.iamberry.wechat.tools.ResponseJson; import net.sf.json.JSONArray; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * bom单管理 controller * wangxiaoming */ @Controller @RequestMapping("/admin/bom") public class AdminPtsBomController { @Autowired private PtsBomService ptsBomService; @Autowired private ProduceService produceService; @Autowired private MachinePartsService machinePartsService; /** * 获取bom单列表 * * @param request * @return */ @RequiresPermissions("bom:select:list") @RequestMapping("/_bom_list") public ModelAndView getPtsBom(HttpServletRequest request, PtsBom ptsBom, @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize, @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO, @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) { ModelAndView mv = new ModelAndView("pts/bom/bom_list"); PagedResult pagedResult = ptsBomService.listPtsBom(pageNO, pageSize, ptsBom, totalNum == 0); if (totalNum != 0) { pagedResult.setTotal(totalNum); } //获取产品集合,用于页面选择产品 List list = produceService.getProduceList(); mv.addObject("produceList", list); StitchAttrUtil.setModelAndView(ptsBom, mv, "/admin/bom/_bom_list", pagedResult); return mv; } /** * 跳转到添加bom单页面 * * @return */ @RequiresPermissions("bom:add:bom") @RequestMapping(value = "/to_add_bom") public ModelAndView toAddBom(HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/bom/add_bom"); //获取产品集合,用于页面选择产品 List produceList = produceService.getProduceList(); mv.addObject("produceList", produceList); return mv; } /** * 添加bom单 * * @return */ @ResponseBody @RequiresPermissions("bom:add:bom") @RequestMapping(value = "/save_bom") public ResponseJson saveBom(PtsBom ptsBom, String bomComponentJson, HttpServletRequest request) { if (!this.isValiData(ptsBom) || bomComponentJson == null) { return new ResponseJson(500, "请检查表单,再次提交", 500); } JSONArray jsonArray = JSONArray.fromObject(bomComponentJson); List ptsBomComponentsList = (List) JSONArray.toCollection(jsonArray, PtsBomComponents.class); ptsBom.setPtsBomComponentsList(ptsBomComponentsList); Integer flag = ptsBomService.savePtsBom(ptsBom); if (flag < 1) { return new ResponseJson(500, "添加失败", 500); } else { return new ResponseJson(200, "添加成功", 200); } } /** * 验证方法 * @param ptsBom * @return */ public boolean isValiData(PtsBom ptsBom) { boolean flag = true; if (ptsBom.getBomName() == null || "".equals(ptsBom.getBomName())) { return false; } if(ptsBom.getProduceId() == null){ return false; } if(ptsBom.getBomVersion() == null || "".equals(ptsBom.getBomVersion())){ return false; } return flag; } /** * 获取bom单,根据produce * * @return */ @ResponseBody @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR) @RequestMapping(value = "/get_listBom") public ResponseJson listBomByProduceId(HttpServletRequest request) { String produceId = request.getParameter("produceId"); if (produceId == null || "".equals(produceId)) { return new ResponseJson(500, "ERROR", 500); } PtsBom ptsBom = new PtsBom(); ptsBom.setProduceId(Integer.valueOf(produceId)); List ptsBomsList = ptsBomService.listBom(ptsBom); if (ptsBomsList != null) { ResponseJson rj = new ResponseJson(200, "SUCCESS", 200); rj.addResponseKeyValue("ptsBomsList", ptsBomsList); return rj; } else { return new ResponseJson(500, "ERROR", 500); } } /** * 获取bom单,根据produce * * @return */ @ResponseBody @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR) @RequestMapping(value = "/get_bom") public ResponseJson getBom(HttpServletRequest request) { String bomId = request.getParameter("bomId"); if (bomId == null || "".equals(bomId)) { return new ResponseJson(500, "ERROR", 500); } PtsBom ptsBom = new PtsBom(); ptsBom.setBomId(Integer.valueOf(bomId)); ptsBom = ptsBomService.getPtsBom(ptsBom); if (ptsBom != null) { ResponseJson rj = new ResponseJson(200, "SUCCESS", 200); rj.addResponseKeyValue("ptsBom", ptsBom); return rj; } else { return new ResponseJson(500, "ERROR", 500); } } /** * 获取所有零件 * * @return */ @ResponseBody @RequiresPermissions(value = {"bom:add:bom", "bom:update:bom"}, logical = Logical.OR) @RequestMapping(value = "/get_listComponents") public ResponseJson listComponents(HttpServletRequest request) { String produceId = request.getParameter("produceId"); PtsComponents ptsComponents = new PtsComponents(); if (produceId != null && !"".equals(produceId)) { ptsComponents.setProduceId(Integer.valueOf(produceId)); } ptsComponents.setComponentsStatus(1); //查询所有零件 List ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents); if (ptsComponentsList != null) { ResponseJson rj = new ResponseJson(200, "SUCCESS", 200); rj.addResponseKeyValue("ptsComponentsList", ptsComponentsList); return rj; } else { return new ResponseJson(500, "ERROR", 500); } } /** * 跳转到修改bom单页面 * * @return */ @ResponseBody @RequiresPermissions("bom:update:bom") @RequestMapping(value = "/to_update_bom") public ModelAndView toUpdateBom(String bomId, HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/bom/update_bom"); if (bomId == null || "".equals(bomId)) { return mv; } //获取产品集合,用于页面选择产品 List produceList = produceService.getProduceList(); //查询bom信息 PtsBom ptsBom = new PtsBom(); ptsBom.setBomId(Integer.valueOf(bomId)); ptsBom = ptsBomService.getPtsBom(ptsBom); //所有零件 PtsComponents ptsComponents = new PtsComponents(); ptsComponents.setProduceId(ptsBom.getProduceId()); ptsComponents.setComponentsStatus(1); List ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents); mv.addObject("produceList", produceList); mv.addObject("ptsBom", ptsBom); mv.addObject("ptsComponentsList", ptsComponentsList); return mv; } /** * 修改bom * * @return */ @ResponseBody @RequiresPermissions("bom:add:bom") @RequestMapping(value = "/update_bom") public ResponseJson updateBom(PtsBom ptsBom, String bomComponentJson, HttpServletRequest request) { if (!this.isValiData(ptsBom) || bomComponentJson == null) { return new ResponseJson(500, "请检查表单,再次提交", 500); } JSONArray jsonArray = JSONArray.fromObject(bomComponentJson); List ptsBomComponentsList = (List) JSONArray.toCollection(jsonArray, PtsBomComponents.class); ptsBom.setPtsBomComponentsList(ptsBomComponentsList); ptsBom.setProduceId(null); Integer flag = ptsBomService.updatePtsBom(ptsBom); if (flag < 1) { return new ResponseJson(500, "修改失败", 500); } else { return new ResponseJson(200, "修改成功", 200); } } /** * 获取bom单详情 * * @return */ @ResponseBody @RequiresPermissions("bom:select:details") @RequestMapping(value = "/to_details_bom") public ModelAndView toBomDetails(String bomId, HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/bom/bom_details"); if (bomId == null || "".equals(bomId)) { return mv; } //查询bom信息 PtsBom ptsBom = new PtsBom(); ptsBom.setBomId(Integer.valueOf(bomId)); ptsBom = ptsBomService.getPtsBomDetails(ptsBom); //所有零件 // PtsComponents ptsComponents = new PtsComponents(); // ptsComponents.setProduceId(ptsBom.getProduceId()); // ptsComponents.setComponentsStatus(1); // List ptsComponentsList = machinePartsService.listPtsComponents(ptsComponents); mv.addObject("ptsBom", ptsBom); // mv.addObject("ptsComponentsList", ptsComponentsList); return mv; } }