package com.iamberry.rst.controllers.pts; import com.iamberry.rst.core.pts.ProcessNode; import com.iamberry.rst.core.pts.Produce; import com.iamberry.rst.core.pts.ProduceProcess; import com.iamberry.rst.core.pts.WechatMp; import com.iamberry.rst.faces.pts.ProduceService; import com.iamberry.wechat.tools.ResponseJson; import net.sf.json.JSONArray; import net.sf.json.JSONObject; 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.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 生产产品管理 controller * wangxiaoming */ @Controller @RequestMapping("/admin/produce") public class AdminProduceController { @Autowired private ProduceService produceService; /** * 查询生产产品列表 * * @param request * @return */ @RequiresPermissions("produce:list_produce:produce") @RequestMapping("/_produce_list") public ModelAndView selectProduceList(HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/produce/produce_list"); List list = produceService.getProduceList(); //获取每个产品的所有工序 for (Produce produce : list){ ProduceProcess produceProcess = new ProduceProcess(); produceProcess.setProduceId(produce.getProduceId()); List produceProcessesList = produceService.listProduceProcess(produceProcess); produce.setProcess(produceProcessesList); } mv.addObject("resultList", list); return mv; } /** * 跳转到添加产品页面 * * @return */ @RequiresPermissions("produce:save_produce:produce") @RequestMapping("/to_save_produce") public ModelAndView goSaveProduce(HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/produce/save_produce"); List listWechatMp = produceService.listWechatMp(); mv.addObject("listWechatMp",listWechatMp); return mv; } /** * 添加产品 * * @return */ @ResponseBody @RequiresPermissions("produce:save_produce:produce") @RequestMapping(value="/save_produce") public ResponseJson saveProduce( Produce produce,HttpServletRequest request) { JSONArray jsonArray = JSONArray.fromObject(produce.getJson()); List process = (List) JSONArray.toCollection(jsonArray,ProduceProcess.class); for(ProduceProcess produceProcess :process){ JSONArray nodesArray = JSONArray.fromObject(produceProcess.getJson()); List processNode = (List) JSONArray.toCollection(nodesArray,ProcessNode.class); produceProcess.setNodes(processNode); } produce.setProcess(process); int falg = produceService.saveProduce(produce); if (falg < 1 ){ return new ResponseJson(500, "ERROR", 500); }else { return new ResponseJson(200, "SUCCESS", 200); } } /** * 跳转到修改页面 * * @return */ @RequiresPermissions("produce:update_produce:produce") @RequestMapping("/to_update_produce") public ModelAndView toUpdateProduce(HttpServletRequest request,String produceId) { ModelAndView mv = new ModelAndView("pts/produce/update_produce"); Produce produce = new Produce(); produce.setProduceId(Integer.valueOf(produceId)); produce = produceService.getProduce(produce); ProduceProcess produceProcess = new ProduceProcess(); produceProcess.setProduceId(produce.getProduceId()); List produceProcessList = produceService.listProduceProcess(produceProcess); for (ProduceProcess producePro : produceProcessList){ ProcessNode processNode = new ProcessNode(); processNode.setProcessId(producePro.getProcessId()); List processNodeList = produceService.listProcessNode(processNode); producePro.setNodes(processNodeList); } produce.setProcess(produceProcessList); List listWechatMp = produceService.listWechatMp(); mv.addObject("listWechatMp",listWechatMp); mv.addObject("produce", produce); return mv; } /** * 修改产品 * * @return */ @ResponseBody @RequiresPermissions("produce:update_produce:produce") @RequestMapping("/update_produce") public ResponseJson updateProduce(HttpServletRequest request,Produce produce,String delProcessIds,String delNodeIds) { JSONArray jsonArray = JSONArray.fromObject(produce.getJson()); List process = (List) JSONArray.toCollection(jsonArray,ProduceProcess.class); for(ProduceProcess produceProcess :process){ JSONArray nodesArray = JSONArray.fromObject(produceProcess.getJson()); List processNode = (List) JSONArray.toCollection(nodesArray,ProcessNode.class); produceProcess.setNodes(processNode); } produce.setProcess(process); int flag = produceService.updateProduce(produce,delProcessIds,delNodeIds); if (flag < 1 ){ return new ResponseJson(500, "ERROR", 500); }else { return new ResponseJson(200, "SUCCESS", 200); } } }