Browse Source

优化机器生产的代码,提取公共生成规则

xian 5 years ago
parent
commit
f19f6553d8

+ 84 - 383
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java

@@ -66,6 +66,9 @@ public class AdminMachineController {
     @Autowired
     private SysConfigService sysConfigService;
 
+    @Autowired
+    private MachineBarQrcode machineBarQrcode;
+
     /**
      * 查询机器列表
      *
@@ -550,8 +553,6 @@ public class AdminMachineController {
         WechatMp wechatMp = produceService.getWechatMpById(produce.getWechatMpId());
 
         ArrayList<PtsMachine> ptsList = new ArrayList<PtsMachine>();
-        //生成条形码前缀
-        String berQrcode = generationBarCode(produce);
         //获取当前月机器总数
         java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM");
         java.util.Date currTime = new java.util.Date();
@@ -563,66 +564,34 @@ public class AdminMachineController {
         if(year == 2017 && month == 12){
             machineNumber += 300;
         }
-        String num = null;
-            for (int i = 0; i < Integer.valueOf(number); i++) {
-                machineNumber = machineNumber + i;
-                switch (String.valueOf(machineNumber).length()) {
-                    case 0:
-                        num = "00001";
-                        break;
-                    case 1:
-                        num = "0000" + String.valueOf(machineNumber);
-                        break;
-                    case 2:
-                        num = "000" + String.valueOf(machineNumber);
-                        break;
-                    case 3:
-                        num = "00" + String.valueOf(machineNumber);
-                        break;
-                    case 4:
-                        num = "00" + String.valueOf(machineNumber);
-                        break;
-                    case 5:
-                        num = String.valueOf(machineNumber);
-                        break;
-                }
-            }
-            PtsMachine ptsMachine = new PtsMachine();
-            String berQrcodeNum = null;
-            if(produce.getBerGenerateRules() == 1){
-                berQrcodeNum = berQrcode+num;
-            }else if(produce.getBerGenerateRules() == 2){
-                berQrcodeNum = berQrcode;
-            }else if(produce.getBerGenerateRules() == 3){
-                String model = produce.getProducePattern() + produce.getProduceModel();
-                berQrcodeNum =  generationBarCode(num,model);
-            }else if(produce.getBerGenerateRules() == 4){
-                String model = produce.getProducePattern() + produce.getProduceModel();
-                berQrcodeNum =  generationElementBarCode(num,model);
-            }
-            if(produce.getIsPrintQrcode() == 1) {
-                if (produce.getIsGeneralQrcode() == 2) {
-                    String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcodeNum);
-                    QRCJson qrc = WeixinUtil.createQrcodeByWechatMp(json, wechatMp.getWechatMpAppid(), wechatMp.getWechatMpAppsecret(), wechatMp.getWechatMpPubno());
-                    ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
-                } else {
-                    ptsMachine.setMachineQrcode(produce.getGeneralQrcode());//二维码
-                }
+        for (int i = 0; i < Integer.valueOf(number); i++) {
+            machineNumber = machineNumber + i;
+        }
+        PtsMachine ptsMachine = new PtsMachine();
+        String berQrcodeNum = machineBarQrcode.ctrBarCode(produce);
+        if(produce.getIsPrintQrcode() == 1) {
+            if (produce.getIsGeneralQrcode() == 2) {
+                String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcodeNum);
+                QRCJson qrc = WeixinUtil.createQrcodeByWechatMp(json, wechatMp.getWechatMpAppid(), wechatMp.getWechatMpAppsecret(), wechatMp.getWechatMpPubno());
+                ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
+            } else {
+                ptsMachine.setMachineQrcode(produce.getGeneralQrcode());//二维码
             }
-            ptsMachine.setMachineBarcode(berQrcodeNum);//条形码
-            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);
+        }
+        ptsMachine.setMachineBarcode(berQrcodeNum);//条形码
+        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);
@@ -636,165 +605,9 @@ public class AdminMachineController {
     private String producePattern = "WA";//产品型号
     private String productModel = "1X";//产品型号
     private String productFeatures = "A";//产品特性
-    private String softwareVersion = "30";//软件版本
     private String productBrand = "";//品牌字母
 
-    //生成条形码
-    public String generationBarCode(Produce produce) {
-        String barcode = "";
-        if(produce.getBerGenerateRules() == 1){
-                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;
-                }
-                producePattern = produce.getProducePattern();
-                productModel = produce.getProduceModel();
-                productFeatures = produce.getProduceFeature();
-                productBrand = produce.getProduceBrand();
-                //拼接
-                barcode = productBrand+producePattern + productModel + productFeatures +  String.valueOf(year).substring(2, 4) + months;
-        }else{
-            String string = "123456789abcdefghijklmnopqrstuvwxyz";
-            StringBuffer sb = new StringBuffer();
-            for (int i = 0; i < 9; i++) {
-                sb.append(string.charAt((int) Math.round(Math.random() * (9))));
-            }
-            barcode = "W-WQ1"+sb.toString();
-        }
-        return barcode;
-    }
-    private String productCodeModel = "R135AA12";//产品编码型号名
-    private Integer years = 2014;//计算年编码需要减去的数字
-    private Integer days = 55;//计算日编码需要减去的数字
-    //生成博乐宝条形码
-    public String generationBarCode(String serialNumber,String model) {
-        String barcode = "";
-        if(serialNumber.length() < 5){
-            serialNumber = "0"+serialNumber;
-        }
-        serialNumber = serialNumber.trim();
-        //获取年月日
-        int year = DateTimeUtil.year();
-        int month = DateTimeUtil.month() + 1;
-        int day = DateTimeUtil.day();
-
-        SysConfig sysConfig = sysConfigService.getSysConfigAll(6);
-        if(sysConfig.getConfigStatus() == 1){
-            String config = sysConfig.getConfigParameter();
-            String[] configs = config.split(",");
-            month = Integer.valueOf(configs[0]);
-            day = Integer.valueOf(configs[1]);
-        }
-
-        char dateYear;
-        char dateMonth;
-        char dateDay;
-        String dateMonthYear = "";
-        int yearCod = year - years;
-        if(yearCod < 10){
-            dateYear = (char)(yearCod +'0');
-        }else{
-            dateYear = (char)((yearCod + days) +'0');
-        }
-        if(month < 10){
-            dateMonth = (char)(month +'0');
-        }else{
-            dateMonth = (char)(month + days);
-        }
-        if(day < 10){
-            dateDay = (char)(day +'0');
-        }else{
-            dateDay = (char)(day + days);
-        }
-        dateMonthYear = String.valueOf(dateYear) + dateMonth + dateDay;
-        //计算序列号
-        String[] nums = serialNumber.split("");
-        if(nums.length > 5){
-            List<String> list = new ArrayList<String>();
-            // 循环迭代,把数组放进List里面
-            for (String i : nums) {
-                if(i !=null && !i.equals("")){
-                    list.add(i);
-                }
-            }
-            nums = new String[]{"", "", "", "", ""};
-            for(int i = 0; i< list.size(); i++){
-                nums[i] = list.get(i);
-            }
-        }
-        int num = (Integer.valueOf(nums[4]) + Integer.valueOf(nums[2]) + Integer.valueOf(nums[0])) * 5 + (Integer.valueOf(nums[3]) + Integer.valueOf(nums[1])) * 3;
-        double checkCode = Math.ceil((double)num / 10) * 10 - num;
-        barcode = model + productCodeModel + dateMonthYear + serialNumber + (int)checkCode;
-        return barcode;
-    }
 
-   /* private String packagerCode = "12";//滤芯封装商编码
-    private String manufacturerCode = "R100AA12";//滤芯生产商编码*/
-    //生成博乐宝滤芯条形码
-    public String generationElementBarCode(String serialNumber,String model) {
-        String barcode = "";
-        if(serialNumber.length() < 5){
-            serialNumber = "0"+serialNumber;
-        }
-        serialNumber = serialNumber.trim();
-        //获取年月日
-        int year = DateTimeUtil.year();
-        int month = DateTimeUtil.month() + 1;
-        int day = DateTimeUtil.day();
-
-        SysConfig sysConfig = sysConfigService.getSysConfigAll(7);
-        if(sysConfig.getConfigStatus() == 1){
-            String config = sysConfig.getConfigParameter();
-            String[] configs = config.split(",");
-            month = Integer.valueOf(configs[0]);
-            day = Integer.valueOf(configs[1]);
-        }
-
-        char dateYear;
-        char dateMonth;
-        char dateDay;
-        String dateMonthYear = "";
-        int yearCod = year - years;
-        if(yearCod < 10){
-            dateYear = (char)(yearCod +'0');
-        }else{
-            dateYear = (char)((yearCod + days) +'0');
-        }
-        if(month < 10){
-            dateMonth = (char)(month +'0');
-        }else{
-            dateMonth = (char)(month + days);
-        }
-        if(day < 10){
-            dateDay = (char)(day +'0');
-        }else{
-            dateDay = (char)(day + days);
-        }
-        dateMonthYear = String.valueOf(dateYear) + dateMonth + dateDay;
-        //计算序列号
-        String[] nums = serialNumber.split("");
-        if(nums.length > 5){
-            List<String> list = new ArrayList<String>();
-            // 循环迭代,把数组放进List里面
-            for (String i : nums) {
-                if(i !=null && !i.equals("")){
-                    list.add(i);
-                }
-            }
-            nums = new String[]{"", "", "", "", ""};
-            for(int i = 0; i< list.size(); i++){
-                nums[i] = list.get(i);
-            }
-        }
-        int num = (Integer.valueOf(nums[4]) + Integer.valueOf(nums[2]) + Integer.valueOf(nums[0])) * 5 + (Integer.valueOf(nums[3]) + Integer.valueOf(nums[1])) * 3;
-        double checkCode = Math.ceil((double)num / 10) * 10 - num;
-        barcode = model + dateMonthYear + serialNumber + (int)checkCode;
-        return barcode;
-    }
     /**
      * 进入添加翻新机界面
      **/
@@ -852,165 +665,88 @@ public class AdminMachineController {
             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);
 
-        Integer productId = produce.getProduceId();
+        // 获取bom单
         Integer productType = produce.getProduceType();
         Integer bomId = ptsBatch.getBomId();
-        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");
         java.util.Date currTime = new java.util.Date();
-        String curTime = formatter.format(currTime);
-        Integer machineNumber = machineService.selectMonthCount(curTime,productId);
-        Calendar nowDate = Calendar.getInstance();
-        Integer year = nowDate.get(Calendar.YEAR);
-        Integer month = nowDate.get(Calendar.MONTH) + 1;
-
-        String num = null;
-
         for (int i = 0; i < number; i++) {
-            String berQrcodeNum = null;
-            if(produce.getBerGenerateRules() == 2){
-                berQrcode = generationBarCode(produce);
-            }
-            machineNumber++;
+            String berQrcodeNum = machineBarQrcode.ctrBarCode(produce);
             String qrCodeUrl = null;
-                //判断机器是水机or牙刷
-                if(productType == 3){
-                    switch (String.valueOf(machineNumber).length()) {
-                        case 0:
-                            num = "00001";
-                            break;
-                        case 1:
-                            num = "0000" + String.valueOf(machineNumber);
-                            break;
-                        case 2:
-                            num = "000" + String.valueOf(machineNumber);
-                            break;
-                        case 3:
-                            num = "00" + String.valueOf(machineNumber);
-                            break;
-                        case 4:
-                            num = "0" + String.valueOf(machineNumber);
-                            break;
-                        case 5:
-                            num = String.valueOf(machineNumber);
-                            break;
-                    }
-                    if(produce.getBerGenerateRules() == 1){
-                        berQrcodeNum = berQrcode+num;
-                    }else if(produce.getBerGenerateRules() == 2){
-                        berQrcodeNum = berQrcode;
-                    }else if(produce.getBerGenerateRules() == 3){
-                        String model = produce.getProducePattern() + produce.getProduceModel();
-                        berQrcodeNum =  generationBarCode(num,model);
-                    }else if(produce.getBerGenerateRules() == 4){
-                        String model = produce.getProducePattern() + produce.getProduceModel();
-                        berQrcodeNum =  generationElementBarCode(num,model);
-                    }
-                    if(produce.getIsPrintQrcode() == 1){
-                        if(produce.getIsGeneralQrcode() == 2) {
-                            //获取项目地址
-                            WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
-                            ServletContext servletContext = webApplicationContext.getServletContext();
-                            String realPath = servletContext.getRealPath(ResultInfo.QRCODE_TOOTH_IMAGE);
-
-                            try {
-                                QrCodeUtil.createQrCode(scanningQrCode + berQrcodeNum, realPath + "/" + berQrcodeNum + ".", 430, 430);
-                                StringBuffer url = request.getRequestURL();
-                                //String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getContextPath()).append("/").toString();
-                                String tempContextUrl = ResultInfo.ROOT_DIRECTORY;
-                                qrCodeUrl = tempContextUrl + ResultInfo.QRCODE_TOOTH_IMAGE + "/" + berQrcodeNum + ".png";
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                        }else{
-                            qrCodeUrl = produce.getGeneralQrcode();
+            //判断机器是水机or牙刷
+            if(productType == 3){
+                // 电动牙刷
+                if(produce.getIsPrintQrcode() == 1){
+                    if(produce.getIsGeneralQrcode() == 2) {
+                        //获取项目地址
+                        WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
+                        ServletContext servletContext = webApplicationContext.getServletContext();
+                        String realPath = servletContext.getRealPath(ResultInfo.QRCODE_TOOTH_IMAGE);
+                        try {
+                            QrCodeUtil.createQrCode(scanningQrCode + berQrcodeNum, realPath + "/" + berQrcodeNum + ".", 430, 430);
+                            String tempContextUrl = ResultInfo.ROOT_DIRECTORY;
+                            qrCodeUrl = tempContextUrl + ResultInfo.QRCODE_TOOTH_IMAGE + "/" + berQrcodeNum + ".png";
+                        } catch (Exception e) {
+                            e.printStackTrace();
                         }
+                    }else{
+                        qrCodeUrl = produce.getGeneralQrcode();
                     }
-                }else{
-                    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;
-                    }
-                    if(produce.getBerGenerateRules() == 1){
-                        berQrcodeNum = berQrcode+num;
-                    }else if(produce.getBerGenerateRules() == 2){
-                        berQrcodeNum = berQrcode;
-                    }else if(produce.getBerGenerateRules() == 3){
-                        String model = produce.getProducePattern() + produce.getProduceModel();
-                        berQrcodeNum =  generationBarCode(num,model);
-                    }else if(produce.getBerGenerateRules() == 4){
-                        String model = produce.getProducePattern() + produce.getProduceModel();
-                        berQrcodeNum =  generationElementBarCode(num,model);
-                    }
-                    if(produce.getIsPrintQrcode() == 1) {
-                        if (produce.getIsGeneralQrcode() == 2) {
-                      /*获取公众号信息*/
-                            WechatMp wechatMp = produceService.getWechatMpById(produce.getWechatMpId());
-                            String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcodeNum);
-                            QRCJson qrc = WeixinUtil.createQrcodeByWechatMp(json, wechatMp.getWechatMpAppid(), wechatMp.getWechatMpAppsecret(), wechatMp.getWechatMpPubno());
-                            qrCodeUrl = qrc.getUrl();
-                        } else {
-                            qrCodeUrl = produce.getGeneralQrcode();
-                        }
+                }
+            }else{
+                // 净水机
+                if(produce.getIsPrintQrcode() == 1) {
+                    if (produce.getIsGeneralQrcode() == 2) {
+                        /*获取公众号信息*/
+                        WechatMp wechatMp = produceService.getWechatMpById(produce.getWechatMpId());
+                        String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcodeNum);
+                        QRCJson qrc = WeixinUtil.createQrcodeByWechatMp(json, wechatMp.getWechatMpAppid(), wechatMp.getWechatMpAppsecret(), wechatMp.getWechatMpPubno());
+                        qrCodeUrl = qrc.getUrl();
+                    } else {
+                        qrCodeUrl = produce.getGeneralQrcode();
                     }
                 }
+            }
             PtsMachine ptsMachine = new PtsMachine();
-            ptsMachine.setMachineQrcode(qrCodeUrl);//二维码
-            ptsMachine.setMachineBarcode(berQrcodeNum);//条形码
-            ptsMachine.setMachineStatus(1);//机器状态
-            ptsMachine.setMachineProducedTime(new Date());//生产时间
-            ptsMachine.setMachineIsPrint(1);//是否打印1:未打印2:已打印
+            //二维码
+            ptsMachine.setMachineQrcode(qrCodeUrl);
+            //条形码
+            ptsMachine.setMachineBarcode(berQrcodeNum);
+            //机器状态
+            ptsMachine.setMachineStatus(1);
+            //生产时间
+            ptsMachine.setMachineProducedTime(currTime);
+            //是否打印1:未打印2:已打印
+            ptsMachine.setMachineIsPrint(1);
             ptsMachine.setMachineCompoundImg("合成的图片url");
-            ptsMachine.setMachineProcessState(1);//生成流程状态1.正常2.异常
-            ptsMachine.setMachineCreateTime(new Date());//创建时间
-            ptsMachine.setMachineProduceType(productType);//产品类型
+            //生成流程状态1.正常2.异常
+            ptsMachine.setMachineProcessState(1);
+            //创建时间
+            ptsMachine.setMachineCreateTime(currTime);
+            //产品类型
+            ptsMachine.setMachineProduceType(productType);
             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);
+            machineService.addMachine(ptsMachine);
         }
 
-        Integer msg = machineService.addMahineBatch(ptsList);
-        if (msg > 0) {
-            rj.setReturnCode(200);
-        } else {
-            rj.setReturnCode(500);
-        }
-        return rj;
+        return ResponseJson.getSUCCESS();
     }
 
     /**
@@ -1206,39 +942,4 @@ public class AdminMachineController {
         return rj;
     }
 
-   /* @ResponseBody
-    @RequestMapping("/getGenerationBarCode")
-    public String selectBatch(HttpServletRequest request,String serialNumber){
-        ResponseJson responseJson = new ResponseJson();
-
-        //生成博乐宝条形码
-            String barcode = "";
-            //获取年月日
-            int year = DateTimeUtil.year();
-            int month = DateTimeUtil.month() + 1;
-            int day = DateTimeUtil.day();
-            char dateYear;
-            char dateDay;
-            String dateMonthYear = "";
-            int yearCod = year - years;
-            if(yearCod < 10){
-                dateYear = (char)(yearCod +'0');
-            }else{
-                dateYear = (char)((yearCod + days) +'0');
-            }
-            if(day < 10){
-                dateDay = (char)(day +'0');
-            }else{
-                dateDay = (char)(day + days);
-            }
-            dateMonthYear = String.valueOf(dateYear) + month + dateDay;
-
-            //计算序列号
-            String[] nums = serialNumber.split("");
-            int num = (Integer.valueOf(nums[5]) + Integer.valueOf(nums[3]) + Integer.valueOf(nums[1])) * 5 + (Integer.valueOf(nums[4]) + Integer.valueOf(nums[2])) * 3;
-            double checkCode = Math.round((double)num / 10) * 10 - num;
-            barcode = productCodeModel + dateMonthYear + serialNumber + (int)checkCode;
-            return barcode;
-    }*/
-
 }

+ 279 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineBarQrcode.java

@@ -0,0 +1,279 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.sys.SysConfig;
+import com.iamberry.rst.faces.pts.MachineService;
+import com.iamberry.rst.faces.sys.SysConfigService;
+import com.iamberry.wechat.tools.DateTimeUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class MachineBarQrcode {
+
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    @Autowired
+    private MachineService machineService;
+
+    /**
+     * 计算年编码需要减去的数字
+     */
+    private static final Integer YEARS = 2014;
+    /**
+     * 计算日编码需要减去的数字
+     */
+    private static final Integer DAYS = 55;
+
+
+    /**
+     * 产品编码型号名
+     */
+    private static final String PRODUCTCODEMODEL = "R135AA12";
+
+
+    /**
+     * 生成条码
+     * @param produce
+     * @return
+     */
+    public String ctrBarCode(Produce produce) {
+        String berQrcode = null;
+        java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM");
+        java.util.Date currTime = new java.util.Date();
+        String curTime = formatter.format(currTime);
+        Integer machineNumber = machineService.selectMonthCount(curTime, produce.getProduceId())+1;
+        String num = null;
+        if (produce.getProduceType() == 3) {
+            // 电动牙刷
+            switch (String.valueOf(machineNumber).length()) {
+                case 0:
+                    num = "00001";
+                    break;
+                case 1:
+                    num = "0000" + String.valueOf(machineNumber);
+                    break;
+                case 2:
+                    num = "000" + String.valueOf(machineNumber);
+                    break;
+                case 3:
+                    num = "00" + String.valueOf(machineNumber);
+                    break;
+                case 4:
+                    num = "0" + String.valueOf(machineNumber);
+                    break;
+                case 5:
+                    num = String.valueOf(machineNumber);
+                    break;
+                default:
+                    num = null;
+                    break;
+            }
+        } else {
+            // 净水机
+            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;
+                default:
+                    num = null;
+                    break;
+            }
+
+        }
+        if(produce.getBerGenerateRules() == 1){
+            // 序列化生产,递增的方式
+            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;
+            }
+            berQrcode = produce.getProduceBrand()+produce.getProducePattern() + produce.getProduceModel() + produce.getProduceFeature() +  String.valueOf(year).substring(2, 4) + months + num;
+        }else if(produce.getBerGenerateRules() == 2){
+            // 随机生产
+            berQrcode = randomBarCode(produce);
+        }else if(produce.getBerGenerateRules() == 3){
+            // 博乐宝水机生产规则
+            String model = produce.getProducePattern() + produce.getProduceModel();
+            berQrcode =  generationBarCode(num,model);
+        }else if(produce.getBerGenerateRules() == 4){
+            // 博乐宝滤芯生成规则
+            String model = produce.getProducePattern() + produce.getProduceModel();
+            berQrcode =  generationElementBarCode(num,model);
+        }
+
+        return berQrcode;
+    }
+
+    /**
+     * 随机生成条码
+     * @param produce
+     * @return
+     */
+    public String randomBarCode(Produce produce) {
+        StringBuilder sb = new StringBuilder(produce.getProduceBrand());
+        sb.append(DateTimeUtil.format(new Date(), "yy"));
+        sb.append(DateTimeUtil.format(new Date(), "MM"));
+        // 随机生成
+        String string = "123456789abcdefghijklmnopqrstuvwxyz";
+        for (int i = 0; i < 9; i++) {
+            sb.append(string.charAt((int) Math.round(Math.random() * (9))));
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 博乐宝滤芯生成条形码
+     * @param serialNumber
+     * @param model
+     * @return
+     */
+    public String generationElementBarCode(String serialNumber,String model) {
+        String barcode = "";
+        if(serialNumber.length() < 5){
+            serialNumber = "0"+serialNumber;
+        }
+        serialNumber = serialNumber.trim();
+        //获取年月日
+        int year = DateTimeUtil.year();
+        int month = DateTimeUtil.month() + 1;
+        int day = DateTimeUtil.day();
+
+        SysConfig sysConfig = sysConfigService.getSysConfigAll(7);
+        if(sysConfig.getConfigStatus() == 1){
+            String config = sysConfig.getConfigParameter();
+            String[] configs = config.split(",");
+            month = Integer.valueOf(configs[0]);
+            day = Integer.valueOf(configs[1]);
+        }
+
+        char dateYear;
+        char dateMonth;
+        char dateDay;
+        String dateMonthYear = "";
+        int yearCod = year - YEARS;
+        if(yearCod < 10){
+            dateYear = (char)(yearCod +'0');
+        }else{
+            dateYear = (char)((yearCod + DAYS) +'0');
+        }
+        if(month < 10){
+            dateMonth = (char)(month +'0');
+        }else{
+            dateMonth = (char)(month + DAYS);
+        }
+        if(day < 10){
+            dateDay = (char)(day +'0');
+        }else{
+            dateDay = (char)(day + DAYS);
+        }
+        dateMonthYear = String.valueOf(dateYear) + dateMonth + dateDay;
+        //计算序列号
+        String[] nums = serialNumber.split("");
+        if(nums.length > 5){
+            List<String> list = new ArrayList<String>();
+            // 循环迭代,把数组放进List里面
+            for (String i : nums) {
+                if(i !=null && !i.equals("")){
+                    list.add(i);
+                }
+            }
+            nums = new String[]{"", "", "", "", ""};
+            for(int i = 0; i< list.size(); i++){
+                nums[i] = list.get(i);
+            }
+        }
+        int num = (Integer.valueOf(nums[4]) + Integer.valueOf(nums[2]) + Integer.valueOf(nums[0])) * 5 + (Integer.valueOf(nums[3]) + Integer.valueOf(nums[1])) * 3;
+        double checkCode = Math.ceil((double)num / 10) * 10 - num;
+        barcode = model + dateMonthYear + serialNumber + (int)checkCode;
+        return barcode;
+    }
+
+    /**
+     * 博乐宝水机条码生成规则
+     * @param serialNumber
+     * @param model
+     * @return
+     */
+    public String generationBarCode(String serialNumber,String model) {
+        String barcode = "";
+        if(serialNumber.length() < 5){
+            serialNumber = "0"+serialNumber;
+        }
+        serialNumber = serialNumber.trim();
+        //获取年月日
+        int year = DateTimeUtil.year();
+        int month = DateTimeUtil.month() + 1;
+        int day = DateTimeUtil.day();
+
+        SysConfig sysConfig = sysConfigService.getSysConfigAll(6);
+        if(sysConfig.getConfigStatus() == 1){
+            String config = sysConfig.getConfigParameter();
+            String[] configs = config.split(",");
+            month = Integer.valueOf(configs[0]);
+            day = Integer.valueOf(configs[1]);
+        }
+
+        char dateYear;
+        char dateMonth;
+        char dateDay;
+        String dateMonthYear = "";
+        int yearCod = year - YEARS;
+        if(yearCod < 10){
+            dateYear = (char)(yearCod +'0');
+        }else{
+            dateYear = (char)((yearCod + DAYS) +'0');
+        }
+        if(month < 10){
+            dateMonth = (char)(month +'0');
+        }else{
+            dateMonth = (char)(month + DAYS);
+        }
+        if(day < 10){
+            dateDay = (char)(day +'0');
+        }else{
+            dateDay = (char)(day + DAYS);
+        }
+        dateMonthYear = String.valueOf(dateYear) + dateMonth + dateDay;
+        //计算序列号
+        String[] nums = serialNumber.split("");
+        if(nums.length > 5){
+            List<String> list = new ArrayList<String>();
+            // 循环迭代,把数组放进List里面
+            for (String i : nums) {
+                if(i !=null && !i.equals("")){
+                    list.add(i);
+                }
+            }
+            nums = new String[]{"", "", "", "", ""};
+            for(int i = 0; i< list.size(); i++){
+                nums[i] = list.get(i);
+            }
+        }
+        int num = (Integer.valueOf(nums[4]) + Integer.valueOf(nums[2]) + Integer.valueOf(nums[0])) * 5 + (Integer.valueOf(nums[3]) + Integer.valueOf(nums[1])) * 3;
+        double checkCode = Math.ceil((double)num / 10) * 10 - num;
+        barcode = model + PRODUCTCODEMODEL + dateMonthYear + serialNumber + (int)checkCode;
+        return barcode;
+    }
+
+}

+ 107 - 117
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java

@@ -2,13 +2,12 @@ package com.iamberry.rst.controllers.pts;
 
 import com.iamberry.rst.controllers.sys.SysController;
 import com.iamberry.rst.core.pts.*;
+import com.iamberry.rst.core.sys.SysConfig;
 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.RespJsonBean;
-import com.iamberry.wechat.tools.ResponseJson;
-import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.rst.faces.sys.SysConfigService;
+import com.iamberry.wechat.tools.*;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -50,34 +49,36 @@ public class MachineController {
     @Autowired
     private PtsBatchService ptsBatchService;
 
-
+    @Autowired
+    private MachineBarQrcode machineBarQrcode;
 
     @ResponseBody
     @RequestMapping("/uploadProcessOptions")
     public ResponseJson uploadProcessOptions(HttpServletRequest request) {
         ResponseJson rj = new ResponseJson();
-        String nodeList = request.getParameter("nodeList"); //获取员工id
-        logger.info("--------------生成机器------------");
-        logger.info("获取数据:nodeList" + nodeList);
-        if (nodeList == null || nodeList.equals("")) {
-            rj.setResultCode(500);
-            rj.setResultMsg("200");
-            rj.setResultMsg("ERROR");
-            return rj;
+        String nodeList = request.getParameter("nodeList");
+        if (nodeList == null || "".equals(nodeList)) {
+            return ResponseJson.getFAILURE();
         }
+        // 转换json数据
         JSONObject query = JSONObject.fromObject(nodeList);
-        Integer employeeId = query.getInt("employeeId");//员工id
-        String produceNo = query.getString("produceId");//产品编号
-        String nfcId = query.getString("nfcId");//NFCID(卡片id)
-        JSONArray nodes = query.getJSONArray("nodes");//选项集合(包含一个或多个工序选项,详情见示例)
 
-        //根据卡片id与生产时间判断数据库是否存在相同的数据
+        // 员工id
+        Integer employeeId = query.getInt("employeeId");
+        // 产品编号
+        String produceNo = query.getString("produceId");
+        // NFCID(卡片id)
+        String nfcId = query.getString("nfcId");
+        // 选项集合(包含一个或多个工序选项,详情见示例)
+        JSONArray nodes = query.getJSONArray("nodes");
+
+        /**
+         * 判断当前卡片的内容是否已经上传到服务器(卡片ID+时间戳)
+         */
         JSONObject machineJsonObject = nodes.getJSONObject(0);
-        String ProcessTime = machineJsonObject.getString("logsProcessTime"); //工序执行时间 (时间戳)
-        Date ProcessDate = timeConversions(ProcessTime);
         PtsMachine machine = new PtsMachine();
         machine.setMachineNfcId(nfcId);
-        machine.setMachineCreateTime(ProcessDate);
+        machine.setMachineCreateTime(timeConversions(machineJsonObject.getString("logsProcessTime")));
         Integer ishave = machineService.getMachineIsHave(machine);
         if (ishave > 0) {
             rj.setResultCode(500);
@@ -85,14 +86,17 @@ public class MachineController {
             rj.setResultMsg("此卡片内容已生成二维码");
             return rj;
         }
-        Produce produce = produceService.getProduce(produceNo);//根据产品编号获取产品信息
+
+        //根据产品编号获取产品信息
+        Produce produce = produceService.getProduce(produceNo);
 
         /*根据员工id,获取拉线,再将拉线存入机器表 */
         PtsEmployee employee = new PtsEmployee();
         employee.setEmployeeId(employeeId);
         employee = ptsEmployeeService.getPtsEmployeeWebApp(employee);
         String employeeLine = employee.getEmployeeLine();
-        /*获取当前产品使用的批次 */
+
+        /* 获取当前产品使用的批次 */
         PtsBatch ptsBatch = ptsBatchService.getUseBatch(produce.getProduceId());
         if (ptsBatch == null) {
             rj.setResultCode(500);
@@ -100,45 +104,76 @@ public class MachineController {
             rj.setResultMsg("系统中没有该产品正在使用的批次,请到管理平台完善");
             return rj;
         }
+
+        // 生成条形码
+        String berQrcode = machineBarQrcode.ctrBarCode(produce);
+
+        // 判断是否需要二维码
+        String qrcode = null;
+        if (produce.getIsPrintQrcode() == 1) {
+            if (produce.getIsGeneralQrcode() == 1) {
+                // 使用通用的二维码
+                qrcode = produce.getGeneralQrcode();
+            } else {
+                // 单独生成二维码
+                WechatMp wechatMp = produceService.getWechatMpById(produce.getWechatMpId());
+                String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode);
+                QRCJson qrc = WeixinUtil.createQrcodeByWechatMp(json,wechatMp.getWechatMpAppid(),wechatMp.getWechatMpAppsecret(),wechatMp.getWechatMpPubno());
+                qrcode = qrc.getUrl();
+            }
+        }
+
         /*获取公众号信息*/
-        WechatMp wechatMp = produceService.getWechatMpById(produce.getWechatMpId());
-        //生成条形码,二维码
-        String berQrcode = generationBarCode(produce);
-        String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode);
-        QRCJson qrc = WeixinUtil.createQrcodeByWechatMp(json,wechatMp.getWechatMpAppid(),wechatMp.getWechatMpAppsecret(),wechatMp.getWechatMpPubno());
         PtsMachine ptsMachine = new PtsMachine();
-        if (!(qrc == null || qrc.getUrl() == null || qrc.getUrl().isEmpty())) {
-            ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
-            ptsMachine.setMachineBarcode(berQrcode);//条形码
-            ptsMachine.setMachineStatus(1);//机器状态
-            ptsMachine.setMachineProducedTime(new Date());//生产时间
-            ptsMachine.setMachineIsPrint(1);//是否打印1:未打印2:已打印
+        {
+            //二维码
+            ptsMachine.setMachineQrcode(qrcode);
+            //条形码
+            ptsMachine.setMachineBarcode(berQrcode);
+            //机器状态
+            ptsMachine.setMachineStatus(1);
+            //生产时间
+            ptsMachine.setMachineProducedTime(new Date());
+            //是否打印1:未打印2:已打印
+            ptsMachine.setMachineIsPrint(1);
             ptsMachine.setMachineCompoundImg("合成的图片url");
-            ptsMachine.setMachineProcessState(1);//生成流程状态1.正常2.异常
-            ptsMachine.setMachineCreateTime(new Date());//创建时间
-            ptsMachine.setMachineProduceType(produce.getProduceType());//产品类型
+            //生成流程状态1.正常2.异常
+            ptsMachine.setMachineProcessState(1);
+            //创建时间
+            ptsMachine.setMachineCreateTime(new Date());
+            //产品类型
+            ptsMachine.setMachineProduceType(produce.getProduceType());
             ptsMachine.setMachineNfcId(nfcId);
-            //ptsMachine.setMachineHardwareVersion(30);
             ptsMachine.setMachineSoftwareVersion(ptsBatch.getBatchSoftwareVersionId());
             ptsMachine.setMachineProduceId(produce.getProduceId());
-            ptsMachine.setMachineBomId(0);//默认为0
-            ptsMachine.setMachineBatchId(0);//默认为0
+            //默认为0
+            ptsMachine.setMachineBomId(0);
+            //默认为0
+            ptsMachine.setMachineBatchId(0);
             ptsMachine.setMachineIsRetreading(2);
-            ptsMachine.setMachineLine(employeeLine); //拉线信息
-            ptsMachine.setMachineBatchId(ptsBatch.getBatchId());  //批次id
-            ptsMachine.setMachineBomId(ptsBatch.getBomId());    //bom单id
+            //拉线信息
+            ptsMachine.setMachineLine(employeeLine);
+            //批次id
+            ptsMachine.setMachineBatchId(ptsBatch.getBatchId());
+            //bom单id
+            ptsMachine.setMachineBomId(ptsBatch.getBomId());
             machineService.addMachine(ptsMachine);
         }
-        boolean isAbnormality = true;//状态是否异常
+
+        //状态是否异常
+        boolean isAbnormality = true;
 
         List<PtsMachineLogs>  ptsMachineLogsList = new ArrayList<PtsMachineLogs>();
         for (int i = 0; i < nodes.size(); i++) {
             PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
 
             JSONObject jsonObject = nodes.getJSONObject(i);
-            String processNo = jsonObject.getString("processId"); //工序编号
-            String nodeNo = jsonObject.getString("nodeId"); //工序选项编号
-            String logsProcessTime = jsonObject.getString("logsProcessTime"); //工序执行时间 (时间戳)
+            //工序编号
+            String processNo = jsonObject.getString("processId");
+            //工序选项编号
+            String nodeNo = jsonObject.getString("nodeId");
+            //工序执行时间 (时间戳)
+            String logsProcessTime = jsonObject.getString("logsProcessTime");
             Date logsProcessDate = timeConversions(logsProcessTime);
 
             ProduceProcess produceProcess = produceService.getProduceProcessAndNode(produce.getProduceId(), processNo);
@@ -172,9 +207,11 @@ public class MachineController {
             ptsMachineLogs.setDeviceName(deviceName);
             ptsMachineLogs.setProcessNodeId(processNode.getNodeId());
             ptsMachineLogs.setProcessNodeName(processNode.getNodeDes());
-            if (i == 0) {//如果当前循环的是第一条数据则排序必须是1,否则为异常
+            if (i == 0) {
+                //如果当前循环的是第一条数据则排序必须是1,否则为异常
                 if (produceProcess.getProcessSort() == 1) {
-                    if (processNode.getNodeStatus() == 0) {//工序选项状态为异常则机器表状态也是异常
+                    if (processNode.getNodeStatus() == 0) {
+                        //工序选项状态为异常则机器表状态也是异常
                         isAbnormality = false;
                     }
                     ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
@@ -182,7 +219,8 @@ public class MachineController {
                     ptsMachineLogs.setLogsProcessStatus(0);
                     isAbnormality = false;
                 }
-            } else {//默认为正常
+            } else {
+                //默认为正常
                 ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
             }
             ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0 ? "检查不通过" : null);
@@ -192,9 +230,12 @@ public class MachineController {
             //根据上一条工序选项信息判断当前工序是否正常,如果当前为修理工序则忽略,如果上一条为修理工序则查询上上一条
             if (i > 0) {
                 int num = 0;
-                ProduceProcess produceProcess2 = null;//当前工序的上一条非修理工序
-                JSONObject jsonObject2;//上一级工序信息
-                String processNo2 = null;//上一级工序编号
+                // 当前工序的上一条非修理工序
+                ProduceProcess produceProcess2 = null;
+                //上一级工序信息
+                JSONObject jsonObject2;
+                //上一级工序编号
+                String processNo2 = null;
                 //先判断当前的上一次是否是修理工序,如果不是则不用执行下面的循环,否则需要循环判断
                 jsonObject2 = nodes.getJSONObject(i - 1);
                 if (jsonObject2 != null) {
@@ -202,11 +243,9 @@ public class MachineController {
                     produceProcess2 = produceService.getProduceProcess(produce.getProduceId(), processNo2);
                     //判断当前工序是否是修理工序,如果是,则修改上一条为次品
                     if (produceProcess.getProcessType() == 2) {
-                        ptsMachineLogsList.get(ptsMachineLogsList.size()-1).setLogsErrorType(2); //异常类型 1:流程异常 2:次品异常
+                        //异常类型 1:流程异常 2:次品异常
+                        ptsMachineLogsList.get(ptsMachineLogsList.size()-1).setLogsErrorType(2);
                         ptsMachineLogsList.get(ptsMachineLogsList.size()-1).setLogsProcessPrompt("次品异常");
-//                        ptsMachineLogs.setLogsErrorType(2);
-//                        ptsMachineLogs.setLogsProcessPrompt("次品异常");
-//                        machineLogsService.updateMachineLogs(ptsMachineLogs);
                         isAbnormality = false;
                         ptsMachineLogs.setLogsId(null);
                         ptsMachineLogs.setLogsErrorType(null);
@@ -216,7 +255,8 @@ public class MachineController {
                         if (produceProcess2.getProcessType() == 1) {
                             if (produceProcess.getProcessSort() - produceProcess2.getProcessSort() != 1) {
                                 ptsMachineLogs.setLogsProcessStatus(0);
-                                ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                //异常类型 1:流程异常 2:次品异常
+                                ptsMachineLogs.setLogsErrorType(1);
                                 ptsMachineLogs.setLogsProcessPrompt("流程异常");
                                 isAbnormality = false;
                             }
@@ -229,10 +269,12 @@ public class MachineController {
                                 if (jsonObject2 != null) {
                                     processNo2 = jsonObject2.getString("processId");
                                     produceProcess2 = produceService.getProduceProcess(produce.getProduceId(), processNo2);
-                                    if (produceProcess2.getProcessType() == 1) {//判断是否是修理工序 1:生产工序 2:修理工序
+                                    if (produceProcess2.getProcessType() == 1) {
+                                        //判断是否是修理工序 1:生产工序 2:修理工序
                                         if (produceProcess.getProcessSort() > produceProcess2.getProcessSort()) {
                                             ptsMachineLogs.setLogsProcessStatus(0);
-                                            ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                            //异常类型 1:流程异常 2:次品异常
+                                            ptsMachineLogs.setLogsErrorType(1);
                                             ptsMachineLogs.setLogsProcessPrompt("流程异常");
                                             isAbnormality = false;
                                         }
@@ -247,7 +289,8 @@ public class MachineController {
             }
             //执行添加日志操作
             ptsMachineLogsList.add(ptsMachineLogs);
-            ptsMachineLogs.setLogsErrorType(null);//还原为默认值
+            //还原为默认值
+            ptsMachineLogs.setLogsErrorType(null);
         }
         machineLogsService.addMachineLogs(ptsMachineLogsList);
 
@@ -255,17 +298,18 @@ public class MachineController {
         PtsMachine ptsMachine2 = new PtsMachine();
         ptsMachine2.setMachineId(ptsMachine.getMachineId());
         if (!isAbnormality) {
-            ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常
+            //2表示机器生产过程中出现异常
+            ptsMachine2.setMachineProcessState(2);
         }
         ptsMachine2.setMachineUpdateTime(new Date());
         ptsMachine2.setMachineProduceId(produce.getProduceId());
         machineService.updateMachine(ptsMachine2);
         //截取条形码尾号(4位)
         rj.addResponseKeyValue("barcodeTail", berQrcode.substring(berQrcode.length() - 4, berQrcode.length()));
-
         return rj;
     }
 
+
     private static Date timeConversions(String time) {
         if (time == null || time.equals("")) {
             return new Date();
@@ -293,60 +337,6 @@ public class MachineController {
         return dates;
     }
 
-
-    private String productModel = "1X";//产品型号
-    private String productFeatures = "A";//产品特性
-    private String softwareVersion = "30";//软件版本
-
-    //生成条形码
-    public String generationBarCode(Produce produce) {
-
-        java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM");
-        java.util.Date currTime = new java.util.Date();
-        String curTime = formatter.format(currTime);
-        Calendar cal = Calendar.getInstance();
-        int year = cal.get(Calendar.YEAR);
-        int month = cal.get(Calendar.MONTH) + 1;
-        //获取当前月机器总数
-        Integer number = machineService.selectMonthCount(curTime,produce.getProduceId());
-        Calendar nowDate = Calendar.getInstance();
-        Integer year1 = nowDate.get(Calendar.YEAR);
-        Integer month1 = nowDate.get(Calendar.MONTH) + 1;
-        if(year1 == 2017 && month1 == 12){
-            number += 300;
-        }
-        number = number + 1;
-        String num = null;
-        switch (String.valueOf(number).length()) {
-            case 0:
-                num = "0001";
-                break;
-            case 1:
-                num = "000" + String.valueOf(number);
-                break;
-            case 2:
-                num = "00" + String.valueOf(number);
-                break;
-            case 3:
-                num = "0" + String.valueOf(number);
-                break;
-            case 4:
-                num = String.valueOf(number);
-                break;
-        }
-        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 + num;
-        return barcode;
-    }
-
-
     /**
      * 根据barcode查询机器信息(电动牙刷项目也调用此功能)
      * @param request