|
|
@@ -296,12 +296,12 @@ public class WorkJPanelOP10 extends JPanel {
|
|
|
int error = cacheData.getError();
|
|
|
String sn = cacheData.getSn();
|
|
|
productSn.setText(sn);
|
|
|
+ // 必须先从缓存恢复状态再调 setMenuStatus,否则字段默认值 tjFlag=0 会被写回缓存覆盖掉
|
|
|
+ tjFlag = cacheData.getTjFlag() == null ? 0 : cacheData.getTjFlag();
|
|
|
+ lastSn = cacheData.getLastSn();
|
|
|
setMenuStatus(msg,error);
|
|
|
MesClient.newSn = sn;
|
|
|
-
|
|
|
- tjFlag = cacheData.getTjFlag();
|
|
|
- lastSn = cacheData.getLastSn();
|
|
|
- log.info("formatElementUI:");
|
|
|
+ log.info("formatElementUI: tjFlag={}, sn={}", tjFlag, sn);
|
|
|
this.repaint();
|
|
|
}
|
|
|
|
|
|
@@ -384,35 +384,15 @@ public class WorkJPanelOP10 extends JPanel {
|
|
|
tjFlag = 2;
|
|
|
setMenuStatus("镭雕中", 0);
|
|
|
writeAllowFeeding(false);
|
|
|
+ }else if(retBlanking){
|
|
|
+ // PLC 未给 0.1 就请求下料:不再卡住,复位 0.3 后照常下料
|
|
|
+ log.warn("<{}{}> [tjFlag=1] 未收到设备运行中 {}.0.1,直接下料 sn={}", oprno, pos, plcDb, productSn.getText());
|
|
|
+ writeAllowFeeding(false);
|
|
|
+ doBlanking();
|
|
|
}
|
|
|
}else if(tjFlag == 2){
|
|
|
if(retBlanking){
|
|
|
- MesClient.newSn = productSn.getText();
|
|
|
- writeSn("1");
|
|
|
- boolean writeResult = writeAllowBlanking(true);
|
|
|
- log.info("<{}{}> [tjFlag=3] 写入MES下料反馈 DB7020.0.5=true, 结果={}", oprno, pos, writeResult);
|
|
|
-
|
|
|
- // 右/中物料不再读取,ps 传空
|
|
|
- tjFlag = 3;
|
|
|
- setMenuStatus("镭雕结束,等待下一件", 0);
|
|
|
- if(tjStatus == 0){
|
|
|
- tjStatus = 1;
|
|
|
- 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();
|
|
|
- }else{
|
|
|
- tjStatus = 0;
|
|
|
- if(retObj.get("result")==null){
|
|
|
- setMenuStatus("请求失败,请重试",-1);
|
|
|
- }else{
|
|
|
- if(retObj.get("result").toString().equalsIgnoreCase("false")){
|
|
|
- setMenuStatus(retObj.getString("message"),-1);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ doBlanking();
|
|
|
}
|
|
|
}else if(tjFlag == 3){
|
|
|
|
|
|
@@ -426,6 +406,37 @@ public class WorkJPanelOP10 extends JPanel {
|
|
|
}, 100,1000);
|
|
|
}
|
|
|
|
|
|
+ // 下料处理:存码给 OP040、写下料反馈、上报质量数据(tjFlag=1 或 2 收到 38.3 时调用)
|
|
|
+ private void doBlanking(){
|
|
|
+ MesClient.newSn = productSn.getText();
|
|
|
+ // 下料时直接把码交给 OP040,不再等扫码位 DB7003.0.0
|
|
|
+ MesClient.preSn20 = productSn.getText();
|
|
|
+ log.info("<{}{}> 下料存码 preSn20={}", oprno, pos, MesClient.preSn20);
|
|
|
+ writeSn("1");
|
|
|
+ boolean writeResult = writeAllowBlanking(true);
|
|
|
+ log.info("<{}{}> [tjFlag=3] 写入MES下料反馈 DB7020.0.5=true, 结果={}", oprno, pos, writeResult);
|
|
|
+
|
|
|
+ // 右/中物料不再读取,ps 传空
|
|
|
+ tjFlag = 3;
|
|
|
+ setMenuStatus("镭雕结束,等待下一件", 0);
|
|
|
+ if(tjStatus != 0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ tjStatus = 1;
|
|
|
+ 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();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ tjStatus = 0;
|
|
|
+ if(retObj.get("result")==null){
|
|
|
+ setMenuStatus("请求失败,请重试",-1);
|
|
|
+ }else if(retObj.get("result").toString().equalsIgnoreCase("false")){
|
|
|
+ setMenuStatus(retObj.getString("message"),-1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public void barCode(){
|
|
|
String sn = readQrcode();
|
|
|
if(sn.isEmpty()){
|