package com.iamberry.rst.controllers.pts; import com.iamberry.rst.core.page.PagedResult; import com.iamberry.rst.core.pts.*; import com.iamberry.rst.faces.pts.MachineVersionService; import com.iamberry.rst.faces.pts.ProduceService; import com.iamberry.rst.faces.pts.PtsBatchService; import com.iamberry.rst.faces.pts.PtsBomService; import com.iamberry.rst.utils.StitchAttrUtil; import com.iamberry.wechat.tools.ObjectExcelView; 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.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 批次管理controller * * @author wxm */ @Controller @RequestMapping("/admin/batch") public class AdminPtsBatchController { @Autowired private PtsBatchService ptsBatchService; @Autowired private ProduceService produceService; @Autowired private PtsBomService ptsBomService; @Autowired private MachineVersionService machineVersionService; private String[] BATCH_COLOR = {"黑色","白色","金色","红色","蓝色","绿色","橙色","黄色","青色","紫色"}; /** * 获取batch列表 * * @param request * @return */ @RequiresPermissions("batch:select:list") @RequestMapping("/_batch_list") public ModelAndView getPtsBatch(HttpServletRequest request, PtsBatch ptsBatch, @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/batch/batch_list"); PagedResult pagedResult = ptsBatchService.listPtsBatchPage(pageNO, pageSize, ptsBatch, totalNum == 0); if (totalNum != 0) { pagedResult.setTotal(totalNum); } StitchAttrUtil.setModelAndView(ptsBatch, mv, "/admin/batch/_batch_list", pagedResult); //获取产品集合,用于页面选择产品 List list = produceService.getProduceList(); mv.addObject("produceList", list); return mv; } /** * 跳转到添加batch页面 * * @return */ @RequiresPermissions("batch:add:batch") @RequestMapping(value = "/to_add_batch") public ModelAndView toAddbatch(HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/batch/add_batch"); //获取产品集合,用于页面选择产品 List produceList = produceService.getProduceList(); mv.addObject("bacthColor", BATCH_COLOR); mv.addObject("produceList", produceList); return mv; } /** * 添加batch * * @return */ @ResponseBody @RequiresPermissions("batch:add:batch") @RequestMapping(value = "/save_batch") public ResponseJson saveBatch(PtsBatch ptsBatch, HttpServletRequest request) { if (!this.isValiData(ptsBatch) ) { return new ResponseJson(500, "请检查表单,再次提交", 500); } Integer flag = ptsBatchService.savePtsBatch(ptsBatch); if (flag < 1) { return new ResponseJson(500, "添加失败", 500); } else { return new ResponseJson(200, "添加成功", 200); } } /** * 列表,修改批次状态 * * @return */ @ResponseBody @RequiresPermissions("batch:select:list") @RequestMapping(value = "/update_batch_status") public ResponseJson updateBatchStatus(Integer batchId, Integer batchStatus,Integer produceId) { PtsBatch ptsBatch = new PtsBatch(); if(batchId == null || batchStatus == null || produceId == null){ return new ResponseJson(500, "修改失败", 500); } ptsBatch.setBatchId(batchId); ptsBatch.setBatchStatus(batchStatus); ptsBatch.setProduceId(produceId); Integer flag = ptsBatchService.updatePtsBatch(ptsBatch); if (flag < 1) { return new ResponseJson(500, "修改失败", 500); } else { return new ResponseJson(200, "修改成功", 200); } } /** * 获取版本,根据produce * * @return */ @ResponseBody @RequiresPermissions(value = {"batch:add:batch", "batch:update:batch"}, logical = Logical.OR) @RequestMapping(value = "/get_version") public ResponseJson getVersion(HttpServletRequest request) { String produceId = request.getParameter("produceId"); if (produceId == null || "".equals(produceId)) { return new ResponseJson(500, "ERROR", 500); } PtsMachineVersion ptsMachineVersion = new PtsMachineVersion(); ptsMachineVersion.setProduceId(Integer.valueOf(produceId)); List ptsMachineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion); if (ptsMachineVersionList != null) { ResponseJson rj = new ResponseJson(200, "SUCCESS", 200); rj.addResponseKeyValue("ptsMachineVersionList", ptsMachineVersionList); return rj; } else { return new ResponseJson(500, "ERROR", 500); } } /** * 获取单个批次 * * @return */ @ResponseBody @RequiresPermissions(value = {"batch:add:batch", "batch:update:batch"}, logical = Logical.OR) @RequestMapping(value = "/is_valiBatchNo") public ResponseJson getIsValiBatchNo(HttpServletRequest request) { String batchNo = request.getParameter("batchNo"); if (batchNo == null || "".equals(batchNo)) { return new ResponseJson(500, "未获取到批次编号", 500); } PtsBatch ptsBatch = new PtsBatch(); ptsBatch.setBatchNo(batchNo); ptsBatch = ptsBatchService.getPtsBatch(ptsBatch); ResponseJson rj = new ResponseJson(200, "SUCCESS", 200); rj.addResponseKeyValue("ptsBatch", ptsBatch); return rj; } /*** * 验证信息 * @param ptsBatch * @return */ private boolean isValiData(PtsBatch ptsBatch) { boolean flag = true; if(ptsBatch.getBatchNo() == null || ptsBatch.getBatchNo().length() >= 20){ return false; } if (ptsBatch.getBatchQuantity() == null || ptsBatch.getBatchQuantity() == 0){ return false; } if (ptsBatch.getBomId() == null){ return false; } if (ptsBatch.getProduceId() == null){ return false; } // if (ptsBatch.getBatchSoftwareVersionId() == null){ // return false; // } if (ptsBatch.getBatchStatus() == null){ return false; } return flag; } /** * 跳转到修改批次页面 * * @return */ @RequiresPermissions("batch:update:batch") @RequestMapping(value = "/to_update_batch") public ModelAndView toUpdateBatch(Integer batchId, HttpServletRequest request) { ModelAndView mv = new ModelAndView("pts/batch/update_batch"); PtsBatch ptsBatch = new PtsBatch(); ptsBatch.setBatchId(batchId); ptsBatch = ptsBatchService.getPtsBatch(ptsBatch); //颜色集合 JSONArray jsonArray = JSONArray.fromObject(ptsBatch.getBatchColorQuantity()); List ptsBatchColorList = (List) JSONArray.toCollection(jsonArray, PtsBatchColor.class); ptsBatch.setPtsBatchColorList(ptsBatchColorList); //bom单 PtsBom ptsBom = new PtsBom(); //ptsBom.setProduceId(ptsBatch.getProduceId()); List ptsBomsList = ptsBomService.listBom(ptsBom); //版本 PtsMachineVersion ptsMachineVersion = new PtsMachineVersion(); ptsMachineVersion.setProduceId(ptsBatch.getProduceId()); List ptsMachineVersionList = machineVersionService.listMachineVersion(ptsMachineVersion); //获取产品集合,用于页面选择产品 List produceList = produceService.getProduceList(); mv.addObject("ptsBatch", ptsBatch); mv.addObject("ptsBomsList", ptsBomsList); mv.addObject("produceList", produceList); mv.addObject("ptsMachineVersionList", ptsMachineVersionList); mv.addObject("batchColor", BATCH_COLOR); return mv; } /** * 修改批次 * * @return */ @ResponseBody @RequiresPermissions("batch:add:batch") @RequestMapping(value = "/update_batch") public ResponseJson updateBatch(PtsBatch ptsBatch, String batchColorJson, HttpServletRequest request) { if (!this.isValiData(ptsBatch) ) { return new ResponseJson(500, "请检查表单,再次提交", 500); } Integer flag = ptsBatchService.updatePtsBatch(ptsBatch); if (flag < 1) { return new ResponseJson(500, "修改失败", 500); } else { return new ResponseJson(200, "修改成功", 200); } } /** * 批次 -- excel导出 * * @return */ @RequestMapping(value = "/generation_excel") public ModelAndView generationExcel(HttpServletRequest request) throws Exception{ // 准备model Map model = new HashMap(); model.put("fileName", "批次列表"); // 下载文件名称 // 标题 List titles = new ArrayList(); titles.add("所属产品"); titles.add("批次编号"); titles.add("总数量"); titles.add("已生产数量"); titles.add("状态"); titles.add("软件版本"); titles.add("Bom单名称"); titles.add("创建时间"); model.put("titles", titles); PtsBatch ptsBatch = new PtsBatch(); List> countexts = new ArrayList>(); List list = ptsBatchService.listPtsBatch(ptsBatch); for (PtsBatch info : list) { List row = new ArrayList(); row.add(info.getProduceName() == null ? null:info.getProduceName()); row.add(info.getBatchNo() == null ? null:info.getBatchNo()); row.add(info.getBatchQuantity() == null ? null:info.getBatchQuantity()); row.add(info.getGeneratedQuantity() == null ? null:info.getGeneratedQuantity()); row.add(info.getBatchStatus() == 0 ? "停止使用":"正常使用"); row.add(info.getSoftwareVersionNo() == null ? null:info.getSoftwareVersionNo()); row.add(info.getBomName() == null ? null:info.getBomName()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = formatter.format(info.getBatchCreateTime()); row.add(time); countexts.add(row); } model.put("varList", countexts); ObjectExcelView erv = new ObjectExcelView(); ModelAndView mv = new ModelAndView(erv,model); return mv; } }