admin
2024-06-16 c9c1560eeffdc73c38ab8ef6e1492b164b2360f5
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -24,6 +24,8 @@
import com.jcdm.main.plcserver.conf.OPCElement;
import com.jcdm.main.plcserver.util.TimeUtil;
import com.jcdm.main.restful.factoryMes.service.RestfulService;
import com.jcdm.main.restful.qingYan.doman.ChildVO;
import com.jcdm.main.restful.qingYan.doman.ParentVO;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
import com.kangaroohy.milo.service.MiloService;
@@ -35,6 +37,7 @@
import javax.websocket.Session;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.*;
import java.util.stream.Collectors;
@@ -313,7 +316,7 @@
                    saveStationInfo(snCode,thoroughfare,device,workOrderNo,productCode);
                    //3、保存参数采集数据
                    SaveParamData(snCode,thoroughfare,device,workOrderNo,productCode);
                    List<DaParamCollection> daParamCollectionList = SaveParamData(snCode,thoroughfare,device,workOrderNo,productCode);
                    //如果是末尾工站要报工
                    if(device.equals("OP500")){
@@ -322,7 +325,7 @@
                        updateOrderInfo(snCode);
                    }
                    try{
                        daParamCollectionService.pushGeelycvMesFeedback(snCode,device);
                        daParamCollectionService.automaticWorkstationPushGeelycvMesFeedback(snCode,device,daParamCollectionList);
                    }catch (Exception e){
                    }
                    result = "21";
@@ -391,11 +394,12 @@
        daPassingStationCollectionService.insertDaPassingStationCollection(daPassingStationCollection);
    }
    public static void SaveParamData(String packCode,String thoroughfare,String device,String workOrderNo,String productType) throws Exception {
    public static List<DaParamCollection> SaveParamData(String packCode,String thoroughfare,String device,String workOrderNo,String productType) throws Exception {
        List<DaCollectionParamConf> list;
        DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
        daCollectionParamConf.setGatherAddress(thoroughfare+ "." + device);
        list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        List<DaParamCollection> daParamCollectionlist = new ArrayList<>();
        List<String> nodeIdList = list.stream().map(info -> {
            String nodeid = info.getGatherAddress();
@@ -409,11 +413,12 @@
                    readWriteEntityList.get(i).setValue(" ");
                }
            }
            List<DaParamCollection> daParamCollectionlist = new ArrayList<>();
            for(int i=0;i<nodeIdList.size();i++){
                if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){
                    String tt = readWriteEntityList.get(i).getValue().toString();
                    DaParamCollection ParamCollection = new DaParamCollection();
                    ChildVO childVO = new ChildVO();
                    ParamCollection.setParamCode(list.get(i).getCollectParameterId());
                    ParamCollection.setLocationCode(device);
                    if(tt.contains("Time")){
@@ -445,12 +450,16 @@
                }
            }
            daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
        }
        addBaseData(workOrderNo,productType,device,packCode);
        }
        List<DaParamCollection> baseDataList = addBaseData(workOrderNo,productType,device,packCode);
        for (int i = 0; i < baseDataList.size(); i++){
            daParamCollectionlist.add(baseDataList.get(i));
        }
        return daParamCollectionlist;
    }
    public static void addBaseData(String workOrderNo,String productCode,String locationCode,String packCode){
    public static List<DaParamCollection> addBaseData(String workOrderNo,String productCode,String locationCode,String packCode){
        Map<String, String> map = new HashMap<>();
        map.put("GC", "南浔工厂");
        map.put("CXBH", "Pack线");
@@ -473,6 +482,7 @@
            confList.add(saveData);
        });
        daParamCollectionService.insertBatch(confList);
        return confList;
    }
    public static void getFactoryOrder(String locationCode){
@@ -517,13 +527,22 @@
            try {
                value = Float.parseFloat(part); // 尝试将字符串转换为浮点数
                String replacement;
                if (value == 1f) {
                if(i<2){
                    replacement = part;
                }else{
                    if (value == 1f) {
                        replacement = "OK";
                    } else{
                        replacement = "NG";
                    }
                }
            /*    if (value == 1f) {
                    replacement = "OK";
                } else if (value == 2f) {
                    replacement = "NG";
                } else {
                    replacement = part; // 如果不是1或2,则保持不变
                }
                }*/
                sb.append(replacement);
                if (i < parts.length - 1) {
                    sb.append(','); // 添加逗号(除了最后一个元素)
@@ -594,6 +613,8 @@
            }
            daPassingStationCollectionService.saveBeachDaPassingStationCollection(passingStationCollections);
//            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(21).build());
            logger.info("工位{}回复21",device);
            return "21";
        }else {
//            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(22).build());