wangxichen há 2 semanas atrás
pai
commit
3d321c344e

+ 30 - 9
src/com/mes/component/WorkJPanelOP10.java

@@ -93,6 +93,14 @@ public class WorkJPanelOP10 extends JPanel {
     public CacheData cacheData = null;
     public String cacheName = "";
 
+    // CZ060 产品PN号
+    public static final String[] PN_LIST = {"195", "196", "198"};
+    public JComboBox<String> pnCombo;
+
+    public String getPn(){
+        return pnCombo == null ? PN_LIST[0] : String.valueOf(pnCombo.getSelectedItem());
+    }
+
     // 说明OP10A=西侧  OP10B=东侧
     public WorkJPanelOP10(String position){
         this.setLayout(null);
@@ -246,7 +254,24 @@ public class WorkJPanelOP10 extends JPanel {
         });
         this.add(blankingmeslabelOP10);
 
-
+        // 产品PN号选择:决定镭雕码前缀 CZ060+PN,选择结果存缓存
+        JLabel pnLabel = new JLabel("产品PN:");
+        pnLabel.setFont(new Font("微软雅黑", Font.PLAIN, 20));
+        pnLabel.setBounds(0, 272, 90, 36);
+        this.add(pnLabel);
+
+        pnCombo = new JComboBox<>(PN_LIST);
+        pnCombo.setFont(new Font("微软雅黑", Font.PLAIN, 20));
+        pnCombo.setBounds(90, 272, 120, 36);
+        pnCombo.getAccessibleContext().setAccessibleName("产品PN号");
+        String cachePn = cacheData.getPn();
+        pnCombo.setSelectedItem(cachePn == null || cachePn.isEmpty() ? PN_LIST[0] : cachePn);
+        pnCombo.addActionListener(e -> {
+            cacheData.setPn(getPn());
+            JdbcUtils.setCache(cacheName, JSON.toJSONString(cacheData));
+            log.info("<{}{}> 切换产品PN: {}", oprno, pos, getPn());
+        });
+        this.add(pnCombo);
 
         startOprnoTimer();
         heartData();
@@ -367,15 +392,12 @@ public class WorkJPanelOP10 extends JPanel {
                                 boolean writeResult = writeAllowBlanking(true);
                                 log.info("<{}{}> [tjFlag=3] 写入MES下料反馈 DB7020.0.5=true, 结果={}", oprno, pos, writeResult);
 
-                                short rnum = readMaterialRight();
-                                short mnum = readMaterialMiddle();
-                                log.info("<{}{}> [tjFlag=2] , rnum={}, mnum={}", oprno, pos, rnum, mnum);
-                                log.info("收到下料确认信号(DB7020.38.3=true), rnum={}, mnum={}, 准备写入MES下料反馈", rnum, mnum);
+                                // 右/中物料不再读取,ps 传空
                                 tjFlag = 3;
                                 setMenuStatus("镭雕结束,等待下一件", 0);
                                 if(tjStatus == 0){
                                     tjStatus = 1;
-                                    JSONObject retObj = DataUtil.sendQuality(productSn.getText(),oprno+pos,"OK",MesClient.user_menu.getText(),"y"+rnum+"|"+"y"+mnum);
+                                    JSONObject retObj = DataUtil.sendQuality(productSn.getText(),oprno+pos,"OK",MesClient.user_menu.getText(),"");
                                     log.info("<{}{}> 质量数据上报返回: {}", oprno, pos, retObj);
                                     if(retObj.get("result")!=null&&retObj.get("result").toString().equalsIgnoreCase("true")) {
                                         resetScanA();
@@ -600,9 +622,8 @@ public class WorkJPanelOP10 extends JPanel {
     public String readQrcode(){
         String sn = "";
         try {
-            short wsn1 = readMaterialLeft();
-            // 查询质量及上传结果
-            JSONObject retObj = DataUtil.createOrder(oprno+pos,wsn1+"",MesClient.user_menu.getText());
+            // 左物料不再读取,wsn1 传空;pn 取界面选择的产品PN号
+            JSONObject retObj = DataUtil.createOrder(oprno+pos,"",getPn(),MesClient.user_menu.getText());
             if(retObj.get("result")!=null&&retObj.get("result").toString().equalsIgnoreCase("true")) {
                 sn = retObj.getString("data");
                 this.setMenuStatus("允许镭雕机加工",0);

+ 2 - 1
src/com/mes/component/WorkJPanelOP20.java

@@ -603,7 +603,8 @@ public class WorkJPanelOP20 extends JPanel {
         preSn = sn.trim();
         log.info("preSn:"+preSn);
         MesClient.setMenuStatus("工件码:"+sn, 0);
-        if(sn.length() != 19){
+        // 兼容 CZ060 16位底板码和原19位码
+        if(sn.length() != 16 && sn.length() != 19){
 //            MesClient.setMenuStatus("扫码结果为空", -1);
         }else{
             finallySn = sn;   //全局码

+ 2 - 1
src/com/mes/component/WorkJPanelScan.java

@@ -304,7 +304,8 @@ public class WorkJPanelScan extends JPanel {
             MesClient.preSn30 = sn.trim();
             log.info("preSn30"+MesClient.preSn30);
         }
-        if(sn.length() != 19){
+        // 兼容 CZ060 16位底板码和原19位码
+        if(sn.length() != 16 && sn.length() != 19){
 //            productSnFeeding.setText("");
             setMenuStatus("扫码结果为空", -1);
         }else{

+ 9 - 0
src/com/mes/ui/CacheData.java

@@ -9,6 +9,15 @@ public class CacheData {
     private Integer error;
     private Integer tjStatus;
     private String preSn;
+    private String pn; // OP35 选择的产品PN号
+
+    public String getPn() {
+        return pn;
+    }
+
+    public void setPn(String pn) {
+        this.pn = pn;
+    }
 
     public Integer getTjFlag() {
         return tjFlag;

+ 3 - 2
src/com/mes/ui/DataUtil.java

@@ -102,7 +102,8 @@ public class DataUtil {
         }
     }
 
-    public static JSONObject createOrder(String oprno,String wsn1,String user){
+    // pn:产品PN号(195/196/198),决定镭雕码前缀 CZ060+pn
+    public static JSONObject createOrder(String oprno,String wsn1,String pn,String user){
         try{
             String enconding = "UTF-8";
             InputStream is = ClassLoader.getSystemResourceAsStream("config/config.properties");
@@ -112,7 +113,7 @@ public class DataUtil {
             String mes_server_ip = pro.getProperty("mes.server_ip");
             String lineSn = pro.getProperty("mes.line_sn").trim();
             String url = "http://"+mes_server_ip+":8980/js/a/mes/mesProductRecord/pccreate";
-            String params = "__ajax=json&oprno="+oprno+"&lineSn="+lineSn+"&wsn1="+wsn1+"&ucode="+user;
+            String params = "__ajax=json&oprno="+oprno+"&lineSn="+lineSn+"&wsn1="+wsn1+"&pn="+pn+"&ucode="+user;
             log.info("url="+url);
             log.info("params="+params);
             String result = doPost(url,params);