Ver código fonte

优化功能:报文接口化

jingbo 12 horas atrás
pai
commit
d3cca64d87

+ 39 - 28
src/com/mes/ui/DataUtil.java

@@ -88,25 +88,48 @@ public class DataUtil {
         }
     }
 
-    public static Boolean checkQuality(NettyClient nettyClient, String sn, String user){
-        try{
-            String msgType = "AQDW";
-            String gy = "100000";
-            Boolean aqdw_str = sendMessage(nettyClient,msgType,gy,"",sn,"",user,"00","");
-            return aqdw_str;
-        }catch (Exception e){
-            return false;
+    public static JSONObject checkQuality(String sn, String user) {
+        try {
+            String url = "http://" + MesClient.mes_server_ip + ":8980/js/a/mes/mesProductRecord/pccheck";
+            String params = "__ajax=json&oprno=" + MesClient.mes_gw.trim()
+                    + "&lineSn=" + MesClient.mes_line_sn.trim()
+                    + "&sn=" + sn.trim()
+                    + "&ucode=" + user.trim()
+                    + "&__sid=" + MesClient.sessionid;
+            System.out.println("pccheck params=" + params);
+            String result = doPost(url, params);
+            System.out.println("pccheck result=" + result);
+            if (result == null || result.equalsIgnoreCase("false")) {
+                return null;
+            }
+            JdbcUtils.insertData(MesClient.mes_gw, "100000", params, "AQDW", sn.trim());
+            return JSONObject.parseObject(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
         }
     }
 
-    public static Boolean startWork(NettyClient nettyClient,String sn,String user){
-        try{
-            String msgType = "MKSW";
-            String gy = "";
-            Boolean aqdw_str = sendMessage(nettyClient,msgType,gy,"",sn,"",user,"00","");
-            return aqdw_str;
-        }catch (Exception e){
-            return false;
+    public static JSONObject sendQuality(String sn, String ret, String user) {
+        try {
+            String url = "http://" + MesClient.mes_server_ip + ":8980/js/a/mes/mesProductRecord/pcresult";
+            String params = "__ajax=json&oprno=" + MesClient.mes_gw.trim()
+                    + "&lineSn=" + MesClient.mes_line_sn.trim()
+                    + "&sn=" + sn.trim()
+                    + "&result=" + ret.trim()
+                    + "&ucode=" + user.trim()
+                    + "&__sid=" + MesClient.sessionid;
+            System.out.println("pcresult params=" + params);
+            String result = doPost(url, params);
+            System.out.println("pcresult result=" + result);
+            if (result == null || result.equalsIgnoreCase("false")) {
+                return null;
+            }
+            JdbcUtils.insertData(MesClient.mes_gw, "100000", params, "MQDW", sn.trim());
+            return JSONObject.parseObject(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
         }
     }
 
@@ -144,18 +167,6 @@ public class DataUtil {
         }
     }
 
-    public static Boolean sendQuality(NettyClient nettyClient,String sn,String ret,String user){
-        try{
-            String msgType = "MQDW";
-            String gy = "100000";
-            String param = "";
-            Boolean aqdw_str = sendMessage(nettyClient,msgType,gy,"",sn,ret,user,"00",param);
-            return aqdw_str;
-        }catch (Exception e){
-            return false;
-        }
-    }
-
     public static Boolean sendMessage(NettyClient nettyClient,String msgType,String craft,String lx,String sn,String result,String user,String paramNums,String params){
         try{
             String enconding = "UTF-8";

+ 83 - 37
src/com/mes/ui/MesClient.java

@@ -544,33 +544,102 @@ public class MesClient extends JFrame {
         }
     }
 
-    // 提交工件码进行质量询问(手动扫码与后台拉码共用)
+    // 提交工件码进行质量询问(手动扫码与后台拉码共用,HTTP pccheck
     public static boolean submitSnForQualityCheck(String scanBarcode, boolean fromBackend) {
-        getUser();
-        String barcode36 = getBarcode(scanBarcode);
         product_sn.setText(scanBarcode);
         curSn = scanBarcode;
         backendPollingSn = scanBarcode.trim();
         lastRejectedBackendSn = "";
         mesClientFrame.repaint();
 
-        if (!tcp_connect_flag) {
+        if (sessionid == null || sessionid.isEmpty()) {
             backendPollingSn = "";
-            setMenuStatus("设备未连接Mes服务器", -1);
+            setMenuStatus("请先登录", -1);
             return false;
         }
 
-        Boolean sendret = DataUtil.checkQuality(nettyClient, barcode36, user20);
-        if (!sendret) {
+        String user = user_menu.getText().trim();
+        JSONObject retObj = DataUtil.checkQuality(scanBarcode.trim(), user);
+        if (retObj != null && retObj.get("result") != null
+                && retObj.get("result").toString().equalsIgnoreCase("true")) {
             backendPollingSn = "";
-            setMenuStatus("消息发送失败,请重试", -1);
-            return false;
+            status_menu.setForeground(Color.GREEN);
+            check_quality_result = true;
+            work_status = 1;
+            tjStatus = 0;
+            finish_ok_bt.setEnabled(true);
+            finish_ng_bt.setEnabled(true);
+
+            String msg = retObj.getString("message");
+            if (fromBackend) {
+                setMenuStatus(msg != null && !msg.isEmpty() ? msg : "已从后台获取工件码,可以加工", 0);
+            } else {
+                setMenuStatus(msg != null && !msg.isEmpty() ? msg : "该工件可以加工", 0);
+            }
+
+            ModbusUtil.setPowerOn(plcA);
+            ModbusUtil.setPowerOn(plcB);
+            ModbusUtil.setTask(plcA, aSetNum, "A");
+            ModbusUtil.setTask(plcB, bSetNum, "B");
+            return true;
+        }
+
+        check_quality_result = false;
+        work_status = 0;
+        backendPollingSn = "";
+        if (!curSn.isEmpty()) {
+            lastRejectedBackendSn = curSn.trim();
         }
+        clearBackendCurSn();
+        product_sn.setText("");
+        curSn = "";
 
-        if (fromBackend) {
-            setMenuStatus("已从后台获取工件码,质量检查中", 0);
+        if (retObj == null || retObj.get("result") == null) {
+            setMenuStatus("质量检查请求失败,请重试", -1);
+        } else if (retObj.get("result").toString().equalsIgnoreCase("false")) {
+            String msg = retObj.getString("message");
+            setMenuStatus(msg != null && !msg.isEmpty() ? msg : "该工件不能加工", -1);
+        } else {
+            setMenuStatus("质量检查失败,请重试", -1);
+        }
+
+        ModbusUtil.setPowerOff(plcA);
+        ModbusUtil.setPowerOff(plcB);
+        return false;
+    }
+
+    // 提交质量结果(HTTP pcresult)
+    public static void submitQualityResult(String result) {
+        if (work_status != 1 || !check_quality_result) {
+            return;
+        }
+        String sn = product_sn.getText().trim();
+        if (sn.isEmpty()) {
+            setMenuStatus("工件码为空,请重试", -1);
+            return;
+        }
+        if (sessionid == null || sessionid.isEmpty()) {
+            setMenuStatus("请先登录", -1);
+            return;
+        }
+
+        String user = user_menu.getText().trim();
+        JSONObject retObj = DataUtil.sendQuality(sn, result, user);
+        if (retObj != null && retObj.get("result") != null
+                && retObj.get("result").toString().equalsIgnoreCase("true")) {
+            resetScanA();
+            setMenuStatus("结果提交成功,等待下一件", 0);
+        } else {
+            tjStatus = 0;
+            if (retObj == null || retObj.get("result") == null) {
+                setMenuStatus("结果提交失败,请重试", -1);
+            } else if (retObj.get("result").toString().equalsIgnoreCase("false")) {
+                String msg = retObj.getString("message");
+                setMenuStatus(msg != null && !msg.isEmpty() ? msg : "结果提交失败,请重试", -1);
+            } else {
+                setMenuStatus("结果提交失败,请重试", -1);
+            }
         }
-        return true;
     }
 
     public static void resetScanA() {
@@ -858,19 +927,7 @@ public class MesClient extends JFrame {
         finish_ok_bt.setEnabled(false);
         finish_ok_bt.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
-                if(work_status == 1 && check_quality_result){
-
-                    String sn = getBarcode(product_sn.getText());
-                    getUser();
-
-                    String qret = "OK";
-                    Boolean sendret = DataUtil.sendQuality(nettyClient,sn,qret,user20);
-                    if(!sendret){
-                        MesClient.setMenuStatus("消息发送失败,请重试",-1);
-//                        JOptionPane.showMessageDialog(mesClientFrame,"消息发送失败,请重试","提示窗口", JOptionPane.INFORMATION_MESSAGE);
-                        return;
-                    }
-                }
+                submitQualityResult("OK");
             }
         });
         finish_ok_bt.setIcon(new ImageIcon(MesClient.class.getResource("/bg/ok_bg.png")));
@@ -884,18 +941,7 @@ public class MesClient extends JFrame {
         finish_ng_bt.setEnabled(false);
         finish_ng_bt.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
-                if(work_status == 1 && check_quality_result){
-
-                    String sn = getBarcode(product_sn.getText());
-                    getUser();
-                    String qret = "NG";
-                    Boolean sendret = DataUtil.sendQuality(nettyClient,sn,qret,user20);
-                    if(!sendret){
-                        MesClient.setMenuStatus("消息发送失败,请重试",-1);
-//                        JOptionPane.showMessageDialog(mesClientFrame,"消息发送失败,请重试","提示窗口", JOptionPane.INFORMATION_MESSAGE);
-                        return;
-                    }
-                }
+                submitQualityResult("NG");
             }
         });
         finish_ng_bt.setIcon(new ImageIcon(MesClient.class.getResource("/bg/ng_bg.png")));

+ 6 - 3
src/com/mes/ui/MesRevice.java

@@ -17,9 +17,12 @@ public class MesRevice {
                 MesClient.check_quality_result = true;//质量合格,可以绑定加工
                 MesClient.setMenuStatus("该工件可以加工",0);
                 if(MesClient.work_status == 0 ){
-                    String barcode36 = MesClient.getBarcode(MesClient.product_sn.getText());//处理36为码
-                    MesClient.getUser();
-                    DataUtil.startWork(MesClient.nettyClient,barcode36,MesClient.user20);
+                    MesClient.work_status = 1;
+                    MesClient.tjStatus = 0;
+                    ModbusUtil.setPowerOn(MesClient.plcA);
+                    ModbusUtil.setPowerOn(MesClient.plcB);
+                    ModbusUtil.setTask(MesClient.plcA, MesClient.aSetNum, "A");
+                    ModbusUtil.setTask(MesClient.plcB, MesClient.bSetNum, "B");
                 }
             }else {
                 MesClient.check_quality_result = false;

+ 1 - 5
src/com/mes/ui/ModbusUtil.java

@@ -132,15 +132,11 @@ public class ModbusUtil {
 
             if(MesClient.tjStatus == 0 && MesClient.check_quality_result){
                 MesClient.tjStatus = 1;
-                MesClient.getUser();
                 String retf = "OK";
                 if(MesClient.aFinish != MesClient.aMax){
                     retf = "NG";
                 }
-                Boolean ret = DataUtil.sendQuality(MesClient.nettyClient, MesClient.product_sn.getText(),retf, MesClient.user20);
-                if(!ret){
-                    MesClient.setMenuStatus(MesClient.tjFlagTextErr,-1);
-                }
+                MesClient.submitQualityResult(retf);
             }
 
         }