|
@@ -0,0 +1,837 @@
|
|
|
+package com.iamberry.rst.controllers.cm;
|
|
|
+
|
|
|
+import com.iamberry.rst.core.page.PageRequest;
|
|
|
+import com.iamberry.rst.core.page.PagedResult;
|
|
|
+import com.iamberry.rst.core.pts.*;
|
|
|
+import com.iamberry.rst.core.tools.QRCJson;
|
|
|
+import com.iamberry.rst.core.tools.WeixinUtil;
|
|
|
+import com.iamberry.rst.faces.pts.*;
|
|
|
+import com.iamberry.wechat.tools.NameUtils;
|
|
|
+import com.iamberry.wechat.tools.ResponseJson;
|
|
|
+import com.iamberry.wechat.tools.ResultInfo;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.apache.shiro.authz.annotation.RequiresPermissions;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
+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.DecimalFormat;
|
|
|
+import java.text.NumberFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by LJK on 2017/8/29.
|
|
|
+ */
|
|
|
+@Controller
|
|
|
+@RequestMapping("/admin/machine")
|
|
|
+public class AdminCustomerController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MachineService machineService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ProduceService produceService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PtsBatchService ptsBatchService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MachineVersionService machineVersionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PtsBomService ptsBomService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MachinePartsService machinePartsService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PtsSalesCompanyService ptsSalesCompanyService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询机器列表
|
|
|
+ *
|
|
|
+ * @param pageSize
|
|
|
+ * @param pageNO
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:select_all:machine")
|
|
|
+ @RequestMapping("/_machine_list")
|
|
|
+ public ModelAndView listOrder(
|
|
|
+ @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
|
|
|
+ @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
|
|
|
+ @RequestParam(value = "pageTotal", required = false) Integer pageTotal,
|
|
|
+ PtsMachine ptsMachine) {
|
|
|
+ ModelAndView mv = new ModelAndView("pts/machine/machine_list");
|
|
|
+ StringBuilder sb = new StringBuilder("/admin/machine/_machine_list?pageSize=" + pageSize);
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(ptsMachine.getMachineBarcode())) {
|
|
|
+ sb.append("&machineBarcode=");
|
|
|
+ sb.append(ptsMachine.getMachineBarcode());
|
|
|
+ mv.addObject("machineBarcode", ptsMachine.getMachineBarcode());
|
|
|
+ }
|
|
|
+ if (ptsMachine.getMachineIsPrint() != null && ptsMachine.getMachineIsPrint() != -1) {
|
|
|
+ sb.append("&machineIsPrint=");
|
|
|
+ sb.append(ptsMachine.getMachineIsPrint());
|
|
|
+ mv.addObject("machineIsPrint", ptsMachine.getMachineIsPrint());
|
|
|
+ }
|
|
|
+ if (ptsMachine.getMachineProcessState() != null && ptsMachine.getMachineProcessState() != -1) {
|
|
|
+ sb.append("&machineProcessState=");
|
|
|
+ sb.append(ptsMachine.getMachineProcessState());
|
|
|
+ mv.addObject("machineProcessState", ptsMachine.getMachineProcessState());
|
|
|
+ }
|
|
|
+
|
|
|
+ PageRequest<PtsMachine> pageRequest = new PageRequest<PtsMachine>(ptsMachine, pageNO, pageSize, pageTotal == null);
|
|
|
+ PagedResult<PtsMachine> pagedResult = machineService.listMachine(pageRequest);
|
|
|
+
|
|
|
+ long total = 0;
|
|
|
+ if (pageTotal == null) {
|
|
|
+ total = pagedResult.getPages();
|
|
|
+ } else {
|
|
|
+ total = pageTotal;
|
|
|
+ pagedResult.setPages(total);
|
|
|
+ }
|
|
|
+ //查询最新一条机器id
|
|
|
+ Integer machineId = machineService.maxMachineId();
|
|
|
+ mv.addObject("machineId", machineId == null ? 0 : machineId);
|
|
|
+ sb.append("&pageTotal=").append(total).append("&pageNO=");
|
|
|
+ mv.addObject("page", pagedResult);
|
|
|
+ mv.addObject("url", sb.toString());
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询最新机器信息
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:latest_all:machine")
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping("/_LatestMachine_list")
|
|
|
+ public List<PtsMachine> listLatestMachine(HttpServletRequest request) {
|
|
|
+ String machineId = request.getParameter("machineId");
|
|
|
+ if (machineId == null || machineId.equals("")) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return machineService.listLatestMachine(Integer.valueOf(machineId));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改机器打印状态为已打印
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:update_print:machine")
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping("/_update_print")
|
|
|
+ public Integer updateMachinPrintState(HttpServletRequest request) {
|
|
|
+ String machineBarcode = request.getParameter("machineBarcode");
|
|
|
+ if (machineBarcode == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ PtsMachine ptsMachine = new PtsMachine();
|
|
|
+ ptsMachine.setMachineBarcode(machineBarcode);
|
|
|
+ ptsMachine.setMachineIsPrint(2);
|
|
|
+ return machineService.updateMachine(ptsMachine);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询机器打印列表
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:select_all:machine")
|
|
|
+ @RequestMapping("/_machine_print_list")
|
|
|
+ public ModelAndView listPrintMachine(HttpServletRequest request, PtsMachine ptsMachine,
|
|
|
+ @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/machine/machine_print_List");
|
|
|
+ mv.addObject("machineIsPrint", ptsMachine.getMachineIsPrint() == null ? "1" : String.valueOf(ptsMachine.getMachineIsPrint()));
|
|
|
+
|
|
|
+ StringBuilder sb = new StringBuilder("/admin/machine/_machine_print_list?pageSize=" + pageSize);
|
|
|
+
|
|
|
+ if (ptsMachine == null || ptsMachine.getMachineIsPrint() == null || ptsMachine.getMachineIsPrint() == 1) { //未打印
|
|
|
+ List<PtsMachine> machineList = machineService.listPrintOrder(ptsMachine);
|
|
|
+ mv.addObject("machineList", machineList);
|
|
|
+ } else { //已打印
|
|
|
+ PagedResult<PtsMachine> pagedResult = machineService.getPrintOrderList(pageNO, pageSize, ptsMachine, totalNum == 0);
|
|
|
+ if (totalNum != 0) {
|
|
|
+ pagedResult.setTotal(totalNum);
|
|
|
+ pagedResult.setPages((int) Math.ceil((double) totalNum / pageSize));
|
|
|
+ }
|
|
|
+ sb.append("&machineIsPrint=");
|
|
|
+ if (ptsMachine.getMachineIsPrint() != null && ptsMachine.getMachineIsPrint() == 2) {
|
|
|
+ sb.append(ptsMachine.getMachineIsPrint());
|
|
|
+ }
|
|
|
+ sb.append("&totalNum=");
|
|
|
+ sb.append(totalNum == 0 ? pagedResult.getTotal() : totalNum);
|
|
|
+ sb.append("&pageNO=");
|
|
|
+ mv.addObject("page", pagedResult);
|
|
|
+ mv.addObject("url", sb.toString());
|
|
|
+ }
|
|
|
+ //查询最新一条机器id
|
|
|
+ Integer machineId = machineService.maxMachineId();
|
|
|
+ mv.addObject("machineId", machineId);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询机器关联的产品信息
|
|
|
+ *
|
|
|
+ * @param machineId
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:select_all:machine")
|
|
|
+ @RequestMapping("/_getProduce_print")
|
|
|
+ public Produce setProduceList(Integer machineId) {
|
|
|
+ Produce produce = machineService.getProduceByMachineId(machineId);
|
|
|
+ return produce;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打印列表查询所有机器
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:select_all:machine")
|
|
|
+ @RequestMapping("/machine_print_list")
|
|
|
+ public List<PtsMachine> selectPrintMachine(PtsMachine ptsMachine) {
|
|
|
+ return machineService.listPrintOrder(ptsMachine);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询机器生成流程
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:logs_all:machine")
|
|
|
+ @RequestMapping("/_machine_logs_list")
|
|
|
+ public ModelAndView listLogsMachine(Integer machineId) {
|
|
|
+ if (machineId == null || machineId < 0) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ PtsMachine ptsMachine = machineService.getMachine(machineId);
|
|
|
+ ModelAndView mv = new ModelAndView("pts/machine/machine_particulars");
|
|
|
+ List<PtsMachineLogs> machineLogsList = machineService.listMachineLogs(machineId);
|
|
|
+
|
|
|
+ PtsBom ptsBom = new PtsBom();
|
|
|
+ if (ptsMachine.getMachineBomId() != null && ptsMachine.getMachineBomId() != 0) {
|
|
|
+ //获取bom单
|
|
|
+ ptsBom.setBomId(ptsMachine.getMachineBomId());
|
|
|
+ ptsBom = ptsBomService.getPtsBomDetails(ptsBom);
|
|
|
+ }
|
|
|
+
|
|
|
+ PtsBatch ptsBatch = new PtsBatch();
|
|
|
+ if (ptsMachine.getMachineBatchId() != null && ptsMachine.getMachineBatchId() != 0) {
|
|
|
+ ptsBatch.setBatchId(ptsMachine.getMachineBatchId());
|
|
|
+ ptsBatch = ptsBatchService.getPtsBatch(ptsBatch);
|
|
|
+ }
|
|
|
+
|
|
|
+ PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
|
|
|
+ if (ptsMachine.getMachineSoftwareVersion() != null && ptsMachine.getMachineSoftwareVersion() != 0) {
|
|
|
+ ptsMachineVersion.setMachineVersionId(ptsMachine.getMachineSoftwareVersion());
|
|
|
+ ptsMachineVersion = machineVersionService.getMachineVersion(ptsMachineVersion);
|
|
|
+ }
|
|
|
+
|
|
|
+ Produce produce = new Produce();
|
|
|
+ if (ptsMachineVersion != null && ptsMachineVersion.getProduceId() != null) {
|
|
|
+ produce.setProduceId(ptsBatch.getProduceId());
|
|
|
+ produce = produceService.getProduce(produce);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取销售公司
|
|
|
+ PtsSalesCompany ptsSalesCompany = new PtsSalesCompany();
|
|
|
+ if(ptsMachine != null && ptsMachine.getMachineSalesState() == 1 && ptsMachine.getMachineSalesCompanyId() != null){
|
|
|
+ ptsSalesCompany.setSalesCompanyId(ptsMachine.getMachineSalesCompanyId());
|
|
|
+ ptsSalesCompany = ptsSalesCompanyService.getPtsSalesCompany(ptsSalesCompany);
|
|
|
+ }
|
|
|
+
|
|
|
+ mv.addObject("ptsSalesCompany", ptsSalesCompany);
|
|
|
+ mv.addObject("produce", produce);
|
|
|
+ mv.addObject("ptsMachineVersion", ptsMachineVersion);
|
|
|
+ mv.addObject("ptsBatch", ptsBatch);
|
|
|
+ mv.addObject("ptsBom", ptsBom);
|
|
|
+ mv.addObject("machineLogsList", machineLogsList);
|
|
|
+ mv.addObject("ptsMachine", ptsMachine);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量修改机器打印状态为已打印
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:update_print:machine")
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping("/_batchUpdate_print")
|
|
|
+ public Integer batchUpdateMachineIsPring(HttpServletRequest request) {
|
|
|
+ /*String[] listId = request.getParameterValues("machineBarcodes");*/
|
|
|
+ String listId = request.getParameter("machineBarcodes");
|
|
|
+ if (listId == null) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ String s = new String(listId);
|
|
|
+ String[] a = s.split(",");
|
|
|
+ return machineService.batchUpdateMachineIsPring(a);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询机器生产&异常统计
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:abnormality:statistics")
|
|
|
+ @RequestMapping("/_produced_abnormality_statistics")
|
|
|
+ public ModelAndView producedAbnormalityStatistics(HttpServletRequest request, PtsMachine ptsMachine) {
|
|
|
+ ModelAndView mv = new ModelAndView("pts/machine/producedAbnormalityStatistics");
|
|
|
+ String produceId = request.getParameter("produceId");//1.产品id
|
|
|
+ Produce produce = new Produce();
|
|
|
+ if (produceId == null || produceId.equals("")) {
|
|
|
+ produce = produceService.getProduceByOne();//默认为第一个产品
|
|
|
+
|
|
|
+ } else {
|
|
|
+ produce.setProduceId(Integer.valueOf(produceId));
|
|
|
+ produce = produceService.getProduce(produce);
|
|
|
+ }
|
|
|
+ mv.addObject("produceId", produce.getProduceId());
|
|
|
+ //根据产品id查询产品类型
|
|
|
+ PtsMachineStatistics ptsMachineStatistics = new PtsMachineStatistics();
|
|
|
+ Calendar date = Calendar.getInstance();
|
|
|
+ String year = String.valueOf(date.get(Calendar.YEAR));//年
|
|
|
+ ptsMachineStatistics.setYear(year);
|
|
|
+ ptsMachineStatistics.setMachineType(produce.getProduceType());
|
|
|
+ //查询1-12月每月生产机器数
|
|
|
+ List<PtsMachineStatistics> ptsMachineStatisticsList = machineService.monthStatistics(ptsMachineStatistics);
|
|
|
+ if (ptsMachineStatisticsList.size() > 0) {
|
|
|
+ StringBuffer yearBf = new StringBuffer();
|
|
|
+ for (int i = 0; i < ptsMachineStatisticsList.size(); i++) {
|
|
|
+ yearBf.append(ptsMachineStatisticsList.get(i).getNum().toString() + ",");
|
|
|
+ }
|
|
|
+ String yearString = yearBf.toString();
|
|
|
+ mv.addObject("years", "[" + yearString.substring(0, yearString.length() - 1) + "]");
|
|
|
+ }else{
|
|
|
+ mv.addObject("years", "[]");
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询最近七天生产机器
|
|
|
+ List<PtsMachineStatistics> dayList = machineService.dayStatistics(ptsMachineStatistics);
|
|
|
+ if (dayList.size() > 0) {
|
|
|
+ StringBuffer dayBf = new StringBuffer();
|
|
|
+ StringBuffer dateBf = new StringBuffer();
|
|
|
+ for (int i = 0; i < dayList.size(); i++) {
|
|
|
+ dayBf.append(dayList.get(i).getNum().toString() + ",");
|
|
|
+ dateBf.append("\"" + dayList.get(i).getDate() + "\"" + ",");
|
|
|
+ }
|
|
|
+ String dayString = dayBf.toString();
|
|
|
+ String monthDayString = dateBf.toString();
|
|
|
+ mv.addObject("days", "[" + dayString.substring(0, dayString.length() - 1) + "]");
|
|
|
+ mv.addObject("monthDay", "[" + monthDayString.substring(0, monthDayString.length() - 1) + "]");
|
|
|
+ }else{
|
|
|
+ mv.addObject("days", "[]");
|
|
|
+ mv.addObject("monthDay", "[]");
|
|
|
+ }
|
|
|
+
|
|
|
+ /*机器总数及流程异常数*/
|
|
|
+ PtsMachineStatistics numbers = machineService.flowAbnormality(ptsMachineStatistics);
|
|
|
+ /*机器总数*/
|
|
|
+ mv.addObject("machineNum", numbers.getMachineCount());
|
|
|
+ double percentage = 0.0;
|
|
|
+ /*流程异常百分比*/
|
|
|
+ if (numbers.getMachineAbnormality() == null) {
|
|
|
+ /*机器异常总数*/
|
|
|
+ mv.addObject("machineAbnormality", 0);
|
|
|
+ } else {
|
|
|
+ percentage = (double) numbers.getMachineAbnormality() / (double) numbers.getMachineCount() * 100;
|
|
|
+ }
|
|
|
+ NumberFormat nf = new DecimalFormat("0.0 ");
|
|
|
+ percentage = Double.parseDouble(nf.format(percentage));
|
|
|
+ mv.addObject("abnormalityPercentage", percentage);
|
|
|
+ /*正常百分比*/
|
|
|
+ double normalPercentage = Double.parseDouble(nf.format(100.0 - percentage));
|
|
|
+ mv.addObject("normalPercentage", normalPercentage);
|
|
|
+ /*根据机器类型查询机器所有工序*/
|
|
|
+ ProduceProcess produceProcess = new ProduceProcess();
|
|
|
+ produceProcess.setProduceId(produce.getProduceType());
|
|
|
+ List<ProduceProcess> processList = produceService.listProduceProcess(produceProcess);
|
|
|
+ mv.addObject("processList", processList);
|
|
|
+ //查询第一条的工序值 默认选择第一条工序
|
|
|
+ if (processList.size() > 0) {
|
|
|
+ List<PtsMachineStatistics> nodeCountList = machineService.nodeNormalByPrduceId(processList.get(0).getProcessId());
|
|
|
+ if (nodeCountList.size() > 0) {
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ StringBuffer nodeBf = new StringBuffer();
|
|
|
+ StringBuffer desBf = new StringBuffer();
|
|
|
+ for (int i = 0; i < nodeCountList.size(); i++) {
|
|
|
+ nodeBf.append(nodeCountList.get(i).getNum().toString() + ",");
|
|
|
+ desBf.append("\"" + nodeCountList.get(i).getNodeDes() + "\"" + ",");
|
|
|
+
|
|
|
+ }
|
|
|
+ String nodeString = nodeBf.toString();
|
|
|
+ String desString = desBf.toString();
|
|
|
+ mv.addObject("nodeString", "[" + nodeString.substring(0, nodeString.length() - 1) + "]");
|
|
|
+ mv.addObject("desString", "[" + desString.substring(0, desString.length() - 1) + "]");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ mv.addObject("nodeString", "[]");
|
|
|
+ mv.addObject("desString", "[]");
|
|
|
+ }
|
|
|
+ //查询所有产品
|
|
|
+ List<Produce> list = produceService.getProduceList();
|
|
|
+ mv.addObject("produceList", list);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据工序id统计选项数量
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:abnormality:statistics")
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping("/_node_normal")
|
|
|
+ public ModelMap nodeNormal(HttpServletRequest request) {
|
|
|
+ String processId = request.getParameter("processId");//工序id
|
|
|
+ ModelMap mm = new ModelMap();
|
|
|
+ if (processId == null || processId.equals("")) {
|
|
|
+ mm.put("returnCode", 500);
|
|
|
+ return mm;
|
|
|
+ }
|
|
|
+ List<PtsMachineStatistics> nodeCountList = machineService.nodeNormalByPrduceId(Integer.valueOf(processId));
|
|
|
+ if (nodeCountList.size() > 0) {
|
|
|
+ StringBuffer nodeBf = new StringBuffer();
|
|
|
+ StringBuffer desBf = new StringBuffer();
|
|
|
+ for (int i = 0; i < nodeCountList.size(); i++) {
|
|
|
+ nodeBf.append(nodeCountList.get(i).getNum().toString() + ",");
|
|
|
+ desBf.append("\"" + nodeCountList.get(i).getNodeDes() + "\"" + ",");
|
|
|
+ }
|
|
|
+ String nodeString = nodeBf.toString();
|
|
|
+ String desString = desBf.toString();
|
|
|
+ mm.put("returnCode", 200);
|
|
|
+ mm.put("nodeString", "[" + nodeString.substring(0, nodeString.length() - 1) + "]");
|
|
|
+ mm.put("desString", "[" + desString.substring(0, desString.length() - 1) + "]");
|
|
|
+ }
|
|
|
+ return mm;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String productNfcId = "1390730000";//默认nfcId
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 进入批量生产机器页面
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ * @author LJK
|
|
|
+ * @date 2017年8月31日16:08:15
|
|
|
+ */
|
|
|
+ @RequiresPermissions("machine:add:batch")
|
|
|
+ @RequestMapping("/_to_add_batch")
|
|
|
+ public ModelAndView toAddMachineBatch() {
|
|
|
+ ModelAndView mv = new ModelAndView("pts/machine/batchAddMachine");
|
|
|
+ List<Produce> list = produceService.getProduceList();
|
|
|
+ mv.addObject("produceList", list);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequiresPermissions("machine:add:batch")
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping("/_add_machine_batch")
|
|
|
+ public ResponseJson addMachineBatch(HttpServletRequest request) {
|
|
|
+ ResponseJson rj = new ResponseJson();
|
|
|
+ String produceId = request.getParameter("produceId");//产品ID
|
|
|
+ String machineSoftwareVersion = request.getParameter("machineSoftwareVersion");
|
|
|
+ String number = request.getParameter("number");
|
|
|
+ if (produceId == null || produceId.equals("") ||
|
|
|
+ machineSoftwareVersion == null || machineSoftwareVersion.equals("") ||
|
|
|
+ number == null || number.equals("")) {
|
|
|
+ rj.setReturnCode(500);
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ Produce produce = new Produce();
|
|
|
+ produce.setProduceId(Integer.valueOf(produceId));
|
|
|
+ produce = produceService.getProduce(produce); //根据产品获取产品信息
|
|
|
+
|
|
|
+ ArrayList<PtsMachine> ptsList = new ArrayList<PtsMachine>();
|
|
|
+ //生成条形码前缀
|
|
|
+ String berQrcode = generationBarCode(produce);
|
|
|
+ //获取当前月机器总数
|
|
|
+ java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM");
|
|
|
+ Date currTime = new Date();
|
|
|
+ String curTime = formatter.format(currTime);
|
|
|
+ Integer machineNumber = machineService.selectMonthCount(curTime);
|
|
|
+ String num = null;
|
|
|
+ for (int i = 0; i < Integer.valueOf(number); i++) {
|
|
|
+ machineNumber = machineNumber + i;
|
|
|
+ switch (String.valueOf(machineNumber + 1).length()) {
|
|
|
+ case 0:
|
|
|
+ num = "0001";
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ num = "000" + String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ num = "00" + String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ num = "0" + String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ num = String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode);
|
|
|
+ QRCJson qrc = WeixinUtil.createQrcode(json);
|
|
|
+ PtsMachine ptsMachine = new PtsMachine();
|
|
|
+ ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
|
|
|
+ ptsMachine.setMachineBarcode(berQrcode + num);//条形码
|
|
|
+ ptsMachine.setMachineStatus(1);//机器状态
|
|
|
+ ptsMachine.setMachineProducedTime(new Date());//生产时间
|
|
|
+ ptsMachine.setMachineIsPrint(1);//是否打印1:未打印2:已打印
|
|
|
+ ptsMachine.setMachineCompoundImg("合成的图片url");
|
|
|
+ ptsMachine.setMachineProcessState(1);//生成流程状态1.正常2.异常
|
|
|
+ ptsMachine.setMachineCreateTime(new Date());//创建时间
|
|
|
+ ptsMachine.setMachineProduceType(produce.getProduceType());//产品类型
|
|
|
+ ptsMachine.setMachineNfcId(productNfcId);
|
|
|
+ ptsMachine.setMachineHardwareVersion(Integer.valueOf(machineSoftwareVersion));
|
|
|
+ ptsMachine.setMachineSoftwareVersion(Integer.valueOf(machineSoftwareVersion));
|
|
|
+ ptsMachine.setMachineProduceId(Integer.valueOf(produceId));
|
|
|
+ ptsMachine.setMachineIsRetreading(2);
|
|
|
+ ptsList.add(ptsMachine);
|
|
|
+ }
|
|
|
+ Integer msg = machineService.addMahineBatch(ptsList);
|
|
|
+ if (msg > 0) {
|
|
|
+ rj.setReturnCode(200);
|
|
|
+ } else {
|
|
|
+ rj.setReturnCode(500);
|
|
|
+ }
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private String productModel = "1X";//产品型号
|
|
|
+ private String productFeatures = "A";//产品特性
|
|
|
+ private String softwareVersion = "30";//软件版本
|
|
|
+
|
|
|
+ //生成条形码
|
|
|
+ public String generationBarCode(Produce produce) {
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ int year = cal.get(Calendar.YEAR);
|
|
|
+ int month = cal.get(Calendar.MONTH) + 1;
|
|
|
+
|
|
|
+ String months = String.valueOf(month);
|
|
|
+ if (month < 10) {
|
|
|
+ months = "0" + months;
|
|
|
+ }
|
|
|
+ productModel = produce.getProduceModel();
|
|
|
+ productFeatures = produce.getProduceFeature();
|
|
|
+ //拼接
|
|
|
+ String barcode = productModel + productFeatures + softwareVersion + String.valueOf(year).substring(2, 4) + months;
|
|
|
+ return barcode;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 进入添加翻新机界面
|
|
|
+ **/
|
|
|
+ @RequiresPermissions("machine:add:batch")
|
|
|
+ @RequestMapping("/_to_add_renovation")
|
|
|
+ public ModelAndView toAddRenovationMachine() {
|
|
|
+ ModelAndView mv = new ModelAndView("pts/machine/addRenovationMachine");
|
|
|
+ //查询所有状态为可用的批次
|
|
|
+ List<PtsBatch> listptsBatch = ptsBatchService.listPtsBatchByStatus();
|
|
|
+ mv.addObject("listptsBatch", listptsBatch);
|
|
|
+ //查询所有软件版本
|
|
|
+ PtsMachineVersion ptsMachineVersion = new PtsMachineVersion();
|
|
|
+ ptsMachineVersion.setMachineVersionType(1);
|
|
|
+ List<PtsMachineVersion> ListVersion = machineVersionService.listMachineVersion(ptsMachineVersion);
|
|
|
+ mv.addObject("listVersion", ListVersion);
|
|
|
+ //根据第一个批次查询所有bom
|
|
|
+ if (listptsBatch.size() > 0) {
|
|
|
+ PtsBom ptsBom = new PtsBom();
|
|
|
+ ptsBom.setBomId(listptsBatch.get(0).getBomId());
|
|
|
+ List<PtsBom> listBom = ptsBomService.listBom(ptsBom);
|
|
|
+ mv.addObject("listBom", listBom);
|
|
|
+ }
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据产品id获取所有bom
|
|
|
+ **/
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:add:batch")
|
|
|
+ @RequestMapping("/select_bom")
|
|
|
+ public ResponseJson selectBatchByProduceId(HttpServletRequest request, Integer batchId) {
|
|
|
+ ResponseJson rj = new ResponseJson();
|
|
|
+ if (batchId == null || batchId.equals("")) {
|
|
|
+ rj.setReturnCode(500);
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ PtsBatch ptsBatch = new PtsBatch();
|
|
|
+ ptsBatch.setBatchId(batchId);
|
|
|
+ ptsBatch = ptsBatchService.getPtsBatch(ptsBatch);
|
|
|
+
|
|
|
+ PtsBom ptsBom = new PtsBom();
|
|
|
+ ptsBom.setBomId(ptsBatch.getBomId());
|
|
|
+ List<PtsBom> listBom = ptsBomService.listBom(ptsBom);
|
|
|
+ rj.addResponseKeyValue("listBom", listBom);
|
|
|
+ rj.setReturnCode(200);
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加翻新机
|
|
|
+ **/
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:add:batch")
|
|
|
+ @RequestMapping("/add_renovationMachine")
|
|
|
+ public ResponseJson addRenovationMachine(HttpServletRequest request, Integer batchId, Integer versionId, Integer bomId, Integer number,Integer isRefurbishment,String machineLine) {
|
|
|
+ ResponseJson rj = new ResponseJson();
|
|
|
+ if (batchId == null || versionId == null || bomId == null || isRefurbishment == null || machineLine == null) {
|
|
|
+ rj.setReturnCode(500);
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ PtsBatch ptsBatch = new PtsBatch();
|
|
|
+ ptsBatch.setBatchId(batchId);
|
|
|
+ ptsBatch = ptsBatchService.getPtsBatch(ptsBatch);
|
|
|
+ Produce produce = new Produce();
|
|
|
+ produce.setProduceId(ptsBatch.getProduceId());
|
|
|
+ produce = produceService.getProduce(produce);
|
|
|
+
|
|
|
+ PtsBom ptsBom = new PtsBom();
|
|
|
+ ptsBom.setBomId(bomId);
|
|
|
+ ptsBom = ptsBomService.getPtsBom(ptsBom);
|
|
|
+ if (number == null || number < 1) {
|
|
|
+ number = ptsBatch.getBatchQuantity();
|
|
|
+ }
|
|
|
+ ArrayList<PtsMachine> ptsList = new ArrayList<PtsMachine>();
|
|
|
+ //生成条形码前缀
|
|
|
+ String berQrcode = generationBarCode(produce);
|
|
|
+ //获取当前月机器总数
|
|
|
+ java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM");
|
|
|
+ Date currTime = new Date();
|
|
|
+ String curTime = formatter.format(currTime);
|
|
|
+ Integer machineNumber = machineService.selectMonthCount(curTime);
|
|
|
+ String num = null;
|
|
|
+ for (int i = 0; i < number; i++) {
|
|
|
+ machineNumber++;
|
|
|
+ switch (String.valueOf(machineNumber).length()) {
|
|
|
+ case 0:
|
|
|
+ num = "0001";
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ num = "000" + String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ num = "00" + String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ num = "0" + String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ num = String.valueOf(machineNumber);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode);
|
|
|
+ QRCJson qrc = WeixinUtil.createQrcode(json);
|
|
|
+ PtsMachine ptsMachine = new PtsMachine();
|
|
|
+ ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
|
|
|
+ ptsMachine.setMachineBarcode(berQrcode + num);//条形码
|
|
|
+ ptsMachine.setMachineStatus(1);//机器状态
|
|
|
+ ptsMachine.setMachineProducedTime(new Date());//生产时间
|
|
|
+ ptsMachine.setMachineIsPrint(1);//是否打印1:未打印2:已打印
|
|
|
+ ptsMachine.setMachineCompoundImg("合成的图片url");
|
|
|
+ ptsMachine.setMachineProcessState(1);//生成流程状态1.正常2.异常
|
|
|
+ ptsMachine.setMachineCreateTime(new Date());//创建时间
|
|
|
+ ptsMachine.setMachineProduceType(produce.getProduceType());//产品类型
|
|
|
+ ptsMachine.setMachineNfcId(productNfcId);
|
|
|
+ //ptsMachine.setMachineHardwareVersion(ptsBom.getBomId());
|
|
|
+ ptsMachine.setMachineSoftwareVersion(ptsBatch.getBatchSoftwareVersionId());
|
|
|
+ ptsMachine.setMachineProduceId(produce.getProduceId());
|
|
|
+ ptsMachine.setMachineIsRetreading(isRefurbishment);
|
|
|
+ ptsMachine.setMachineBatchId(batchId);
|
|
|
+ ptsMachine.setMachineBomId(bomId);
|
|
|
+ ptsMachine.setMachineLine(machineLine);
|
|
|
+ ptsList.add(ptsMachine);
|
|
|
+ }
|
|
|
+
|
|
|
+ Integer msg = machineService.addMahineBatch(ptsList);
|
|
|
+ if (msg > 0) {
|
|
|
+ rj.setReturnCode(200);
|
|
|
+ } else {
|
|
|
+ rj.setReturnCode(500);
|
|
|
+ }
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出库页面获取
|
|
|
+ **/
|
|
|
+ @RequiresPermissions("machine:delivery:machine")
|
|
|
+ @RequestMapping("/to_delivery")
|
|
|
+ public ModelAndView toDelivery(HttpServletRequest request) {
|
|
|
+ ModelAndView modelAndView = new ModelAndView("wap/pts/machine_delivery");
|
|
|
+ return modelAndView;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出库页面获取销售公司集合
|
|
|
+ **/
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:delivery:machine")
|
|
|
+ @RequestMapping("/list_delivery")
|
|
|
+ public ResponseJson listDelivery(HttpServletRequest request) {
|
|
|
+ PtsSalesCompany ptsSalesCompany = new PtsSalesCompany();
|
|
|
+ List<PtsSalesCompany> ptsSalesCompanyList = ptsSalesCompanyService.listPtsSalesCompany(ptsSalesCompany);
|
|
|
+
|
|
|
+ if(ptsSalesCompanyList == null || ptsSalesCompanyList.size() < 1){
|
|
|
+ ResponseJson rj = new ResponseJson(500, "未查询出销售公司,请到后台添加销售公司信息", 500);
|
|
|
+ rj.addResponseKeyValue("ptsSalesCompanyList", ptsSalesCompanyList);
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
|
|
|
+ rj.addResponseKeyValue("ptsSalesCompanyList", ptsSalesCompanyList);
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出库录入
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:delivery:machine")
|
|
|
+ @RequestMapping("/machine_delivery")
|
|
|
+ public ResponseJson machineDelivery(HttpServletRequest request, PtsMachine ptsMachine) {
|
|
|
+ if (ptsMachine == null || ptsMachine.getMachineBarcode() == null || ptsMachine.getMachineSalesDate() == null || ptsMachine.getMachineSalesCompanyId() == null) {
|
|
|
+ ResponseJson rj = new ResponseJson(500, "ERROR", 500);
|
|
|
+ rj.setResultMsg("信息不全");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ PtsMachine machine = new PtsMachine();
|
|
|
+ machine.setMachineBarcode(ptsMachine.getMachineBarcode());
|
|
|
+
|
|
|
+ //判断机器是否已经出过库了
|
|
|
+ List<PtsMachine> listPtsMachine = machineService.listMachineWebApp(machine);
|
|
|
+ if(listPtsMachine != null && listPtsMachine.size() > 0){
|
|
|
+ PtsMachine ma = listPtsMachine.get(0);
|
|
|
+ if(ma.getMachineSalesState() == 1){
|
|
|
+ ResponseJson rj = new ResponseJson(501, "ERROR", 501);
|
|
|
+ rj.setResultMsg("该机器已经出库了");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ ResponseJson rj = new ResponseJson(501, "ERROR", 501);
|
|
|
+ rj.setResultMsg("未查询到该机器");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ machine.setMachineSalesDate(ptsMachine.getMachineSalesDate());
|
|
|
+ machine.setMachineSalesCompanyId(ptsMachine.getMachineSalesCompanyId());
|
|
|
+ machine.setMachineSalesState(1); //设置状态为已售出
|
|
|
+ int flag = machineService.updateMachineSalesInfo(machine);
|
|
|
+ if(flag < 1){
|
|
|
+ ResponseJson rj = new ResponseJson(500, "ERROR", 500);
|
|
|
+ rj.setResultMsg("录入出库信息失败");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
|
|
|
+ rj.setResultMsg("录入出库信息成功");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出库列表
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:delivery:machine")
|
|
|
+ @RequestMapping("/to_list_delivery")
|
|
|
+ public ResponseJson listDeliveryPtsMachine(HttpServletRequest request, PtsMachine ptsMachine) {
|
|
|
+ ptsMachine.setMachineSalesState(1);
|
|
|
+ List<PtsMachine> listPtsMachine = machineService.listMachineWebApp(ptsMachine);
|
|
|
+
|
|
|
+ if(listPtsMachine == null || listPtsMachine.size() <1){
|
|
|
+ ResponseJson rj = new ResponseJson(500, "ERROR", 500);
|
|
|
+ rj.setResultMsg("未查询到机器信息");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
|
|
|
+ rj.addResponseKeyValue("listPtsMachine",listPtsMachine);
|
|
|
+ rj.setResultMsg("");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 今日出库台数
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:delivery:machine")
|
|
|
+ @RequestMapping("/delivery_desc")
|
|
|
+ public ResponseJson deliveryDesc(HttpServletRequest request, PtsMachine ptsMachine) {
|
|
|
+ List<Map> list = new ArrayList<Map>();
|
|
|
+
|
|
|
+ //获取产品集合
|
|
|
+ List<Produce> produceList = produceService.getProduceList();
|
|
|
+ for(Produce produce : produceList){
|
|
|
+ Map<String,Object> map = new HashMap<String,Object>();
|
|
|
+ ptsMachine.setMachineProduceId(produce.getProduceId());
|
|
|
+ Integer machineNumber = machineService.machineNumberWebApp(ptsMachine);
|
|
|
+ map.put("name",produce.getProduceName());
|
|
|
+ map.put("number",machineNumber);
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
|
|
|
+ rj.addResponseKeyValue("machineNumber",list);
|
|
|
+ rj.setResultMsg("");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取消出库
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequiresPermissions("machine:delivery:machine")
|
|
|
+ @RequestMapping("/cancel_warehouse")
|
|
|
+ public ResponseJson cancelWarehouse(HttpServletRequest request, PtsMachine ptsMachine) {
|
|
|
+ if (ptsMachine == null || ptsMachine.getMachineBarcode() == null) {
|
|
|
+ ResponseJson rj = new ResponseJson(500, "ERROR", 500);
|
|
|
+ rj.setResultMsg("取消出库操作失败");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ PtsMachine machine = new PtsMachine();
|
|
|
+ machine.setMachineBarcode(ptsMachine.getMachineBarcode());
|
|
|
+ machine.setMachineSalesDate(null);
|
|
|
+ machine.setMachineSalesCompanyId(null);
|
|
|
+ machine.setMachineSalesState(2); //设置状态为未售出
|
|
|
+ int flag = machineService.updateMachineSalesInfo(machine);
|
|
|
+ if(flag < 1){
|
|
|
+ ResponseJson rj = new ResponseJson(500, "ERROR", 500);
|
|
|
+ rj.setResultMsg("取消出库操作失败");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+ ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
|
|
|
+ rj.setResultMsg("取消出库操作成功");
|
|
|
+ return rj;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|