cl
2024-05-23 ba1a7a9ef126296e2798e313dc5b43f775a1123c
修改数据采集
已删除3个文件
已修改50个文件
已添加2个文件
已重命名1个文件
3981 ■■■■ 文件已修改
guns-vip-main/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/bs/collectionParamConf/model/result/CollectionParamConfResult.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/bs/equipmentInfo/model/result/EquipmentInfoResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/em/equipmentStatus/model/result/EquipmentStatusResult.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/kb/greaseBoard/GreaseBoardController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP010Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP020Callback.java 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP030BCallback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP030Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP040BCallback.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP040Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP010Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP020Callback.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP030Callback.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/DOP010Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/DOP020Callback.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP010Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP020Callback.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP030Callback.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP040Callback.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP050Callback.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP060Callback.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP070Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP080Callback.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP090BCallback.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP090Callback.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP010Callback.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP020Callback.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP030Callback.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP040Callback.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP050Callback.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP070Callback.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP080Callback.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP090Callback.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP100Callback.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP110Callback.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP120BCallback.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP120Callback.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP130BCallback.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP130Callback.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP140Callback.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP150Callback.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP160Callback.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP170Callback.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/StateCallback.java 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/init/CustomRunner.java 214 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/init/SubscriptionManage.java 743 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/GlobalVariable.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/OPCElement.java 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/unit/OPCUnit.java 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/server/HEARTBEAT/HeartBeatServerInterface.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/server/HEARTBEAT/impl/HeartBeatServerInterfaceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/test.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/assets/modular/cm/paramCollection/paramCollection.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/assets/modular/om/productionOrderRecords/productionOrderRecords.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/pom.xml
@@ -90,6 +90,7 @@
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!-- opc start-->
        <dependency>
            <groupId>com.kangaroohy</groupId>
            <artifactId>milo-spring-boot-starter</artifactId>
@@ -98,8 +99,9 @@
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.12.0</version>
            <version>2.11.1</version>
        </dependency>
        <!-- opc end-->
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
@@ -107,6 +109,12 @@
            <artifactId>guava</artifactId>
            <version>33.0.0-jre</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>2.6.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/bs/collectionParamConf/model/result/CollectionParamConfResult.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.openscada.opc.lib.da.Item;
import org.apache.xmlbeans.impl.xb.xmlconfig.NamespaceList;
import java.util.Date;
import java.io.Serializable;
@@ -126,6 +126,6 @@
     */
    private Date updateTime;
    private Item item;
    private NamespaceList.Member2.Item item;
}
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/bs/equipmentInfo/model/result/EquipmentInfoResult.java
@@ -1,7 +1,6 @@
package cn.stylefeng.guns.modular.bs.equipmentInfo.model.result;
import lombok.Data;
import org.openscada.opc.lib.da.Item;
import java.util.Date;
import java.io.Serializable;
@@ -110,5 +109,5 @@
     * æ›´æ”¹æ—¶é—´
     */
    private Date updateTime;
    private Item item;
   /* private Item item;*/
}
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/em/equipmentStatus/model/result/EquipmentStatusResult.java
@@ -1,7 +1,6 @@
package cn.stylefeng.guns.modular.em.equipmentStatus.model.result;
import lombok.Data;
import org.openscada.opc.lib.da.Item;
import java.util.Date;
import java.io.Serializable;
@@ -75,5 +74,4 @@
     * æ›´æ–°æ—¶é—´
     */
    private Date updateTime;
    private Item item;
}
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/kb/greaseBoard/GreaseBoardController.java
@@ -9,7 +9,6 @@
import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.result.ProductionOrdeInfoResult;
import cn.stylefeng.guns.modular.sc.kanbanConf.model.params.KanbanConfParam;
import cn.stylefeng.guns.modular.sc.kanbanConf.service.KanbanConfService;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.roses.core.base.controller.BaseController;
import cn.stylefeng.roses.kernel.model.response.ResponseData;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java
@@ -11,6 +11,7 @@
import cn.stylefeng.guns.modular.bs.materialInfo.entity.MaterialInfo;
import cn.stylefeng.guns.modular.bs.materialInfo.service.MaterialInfoService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.entity.PassingStationCollection;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.result.PassingStationCollectionResult;
import cn.stylefeng.guns.modular.cm.passingStationCollection.service.PassingStationCollectionService;
import cn.stylefeng.guns.modular.om.productionOrdeInfo.entity.ProductionOrdeInfo;
@@ -212,6 +213,18 @@
    }
    /**
     * æµ‹åŠŸæœºæ–°å¢žæŽ¥å£
     * @return
     */
    @ResponseBody
    @CrossOrigin
    @RequestMapping("/addStationInfo")
    public ResponseData addStationInfo(PassingStationCollectionParam passingStationCollectionParam) {
        this.passingStationCollectionService.add(passingStationCollectionParam);
        return ResponseData.success();
    }
    /**
     * å¤§å±åˆ—表接口
     * @param productionOrdeInfoParam
     * @return
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP010Callback.java
@@ -30,7 +30,6 @@
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -188,7 +187,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -219,43 +220,7 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
    public void handleRepair() throws Exception{
        RepairManageInfoParam repairManageInfoParam = new RepairManageInfoParam();
        repairManageInfoParam.setLocationCode(LOCATION_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP020Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -90,6 +93,8 @@
    private static String LOCATION_CODE  = "BOP020";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public BOP020Callback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -157,6 +162,11 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.BOP020_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP020_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
        //处理过站信息
@@ -176,7 +186,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -217,32 +229,57 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP030BCallback.java
@@ -176,7 +176,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -207,42 +209,5 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP030Callback.java
@@ -177,7 +177,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -208,42 +210,5 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP040BCallback.java
@@ -207,42 +207,6 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/BOP040Callback.java
@@ -177,7 +177,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -208,42 +210,5 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP010Callback.java
@@ -34,7 +34,6 @@
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.opc.unit.SFCCodeTool;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
@@ -190,7 +189,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -221,43 +222,7 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
    public void handleRepair() throws Exception{
        RepairManageInfoParam repairManageInfoParam = new RepairManageInfoParam();
        repairManageInfoParam.setLocationCode(LOCATION_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP020Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -91,7 +94,7 @@
    private static String PRODUCTION_LINE  = "COP";//产线号
    private static String LOCATION_CODE  = "COP020";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public COP020Callback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -160,6 +163,9 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.COP020_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.COP020_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
        //处理过站信息
@@ -179,7 +185,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -220,32 +228,57 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP030Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -91,7 +94,7 @@
    private static String PRODUCTION_LINE  = "COP";//产线号
    private static String LOCATION_CODE  = "COP030";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public COP030Callback(MiloService miloService,
                           ProductionOrdeInfoService productionOrdeInfoService,
                           PassingStationCollectionService passingStationCollectionService,
@@ -160,6 +163,9 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.COP030_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.COP030_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
        //处理过站信息
@@ -179,7 +185,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -220,28 +228,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/DOP010Callback.java
@@ -30,7 +30,6 @@
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -183,7 +182,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -214,43 +215,7 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
    public void handleRepair() throws Exception{
        RepairManageInfoParam repairManageInfoParam = new RepairManageInfoParam();
        repairManageInfoParam.setLocationCode(LOCATION_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/DOP020Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -177,7 +180,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -218,32 +223,49 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP010Callback.java
@@ -24,7 +24,6 @@
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -178,6 +177,9 @@
    public void handleMaterial() throws Exception{
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        String materialCode = miloService.
                readFromOpcUa(OPCElement.EOP010_S_MATERIAL_CODE)
                .getValue().toString();
@@ -214,43 +216,6 @@
            }
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP020Callback.java
@@ -176,7 +176,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -207,42 +209,6 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP030Callback.java
@@ -177,7 +177,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -208,42 +210,6 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP040Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -89,7 +92,7 @@
    private static String PRODUCTION_LINE  = "EOP";//产线号
    private static String LOCATION_CODE  = "EOP040";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public EOP040Callback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -157,7 +160,9 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.EOP040_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP040_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
        //处理过站信息
@@ -176,7 +181,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -217,28 +224,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP050Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -89,7 +92,7 @@
    private static String PRODUCTION_LINE  = "EOP";//产线号
    private static String LOCATION_CODE  = "EOP050";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public EOP050Callback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -158,6 +161,9 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.EOP050_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP050_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
        //处理过站信息
@@ -177,7 +183,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -218,28 +226,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP060Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -177,7 +180,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -218,32 +223,56 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP070Callback.java
@@ -176,7 +176,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -207,42 +209,5 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP080Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -89,7 +92,7 @@
    private static String PRODUCTION_LINE  = "EOP";//产线号
    private static String LOCATION_CODE  = "EOP080";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public EOP080Callback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -158,7 +161,9 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.EOP080_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -177,7 +182,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -218,32 +225,57 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP090BCallback.java
@@ -208,42 +208,5 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP090Callback.java
@@ -177,7 +177,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -208,42 +210,5 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP010Callback.java
@@ -34,7 +34,6 @@
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.opc.unit.SFCCodeTool;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
@@ -201,7 +200,8 @@
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
            productionOrderRecordsParam.setMaterialCode(S_PRODUCT_CODE);
            productionOrderRecordsParam.setStartTime(DateTool.getLocalTimeForDate());
            productionOrderRecordsParam.setWhetherPass("true");
            productionOrderRecordsParam.setMaterialName(result.getMaterialName());
            productionOrderRecordsParam.setWhetherPass("合格");
            productionOrderRecordsService.add(productionOrderRecordsParam);
            List<ReadWriteEntity> lists = new ArrayList<>();
@@ -225,7 +225,7 @@
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP010_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
       /* if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -233,10 +233,10 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -256,6 +256,9 @@
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -334,44 +337,6 @@
            }
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP020Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -40,6 +43,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class OP020Callback{
@@ -93,7 +97,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP020";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP020Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -162,11 +166,13 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP020_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP020_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
       /* if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -174,10 +180,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -195,7 +202,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -236,28 +245,55 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP030Callback.java
@@ -162,7 +162,7 @@
                .getValue().toString();
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP030_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
   /*     if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -170,10 +170,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -191,7 +192,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -222,42 +225,6 @@
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
        if(null == list){
            CollectionParamConfParam collectionParamConfParam = new CollectionParamConfParam();
            collectionParamConfParam.setLocationCode(LOCATION_CODE);
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                }
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP040Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP040";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP040Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -160,9 +163,12 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP040_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP040_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -170,10 +176,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -191,7 +198,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -232,32 +241,59 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP050Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -28,7 +31,6 @@
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -94,7 +96,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP050";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP050Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -180,7 +182,9 @@
        if(null != object){
            S_PRODUCT_STATE_CODE = object.toString();
        }
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP050_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
@@ -218,7 +222,7 @@
        logger.info("bopSfcCode:"+bopSfcCode);
        //查询COP和BOP是否合格
     /*   PassingStationCollectionParam passingStationCollectionParam = new PassingStationCollectionParam();
        PassingStationCollectionParam passingStationCollectionParam = new PassingStationCollectionParam();
        passingStationCollectionParam.setSfcCode(S_SFC_CODE);
        List<PassingStationCollectionResult> passingStationCollectionResultList =
                passingStationCollectionService.findListBySpec(passingStationCollectionParam);
@@ -233,6 +237,7 @@
        }
        //修改报工记录
        if("2".equals(S_PRODUCT_STATE_CODE) || "false".equals(isProductState)){
            isProductState = "true";
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -240,16 +245,19 @@
            if(list.size()>0){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass("2");
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        logger.info("handleFinsh PC处理完成!");
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -290,28 +298,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP070Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP070";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP070Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -161,11 +164,13 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP070_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP070_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -173,10 +178,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -194,7 +200,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -224,7 +232,6 @@
            }
        }
    }
    //PC读参数信息
    public void handleInfo() throws Exception {
        logger.info("handleInfo START!");
@@ -235,28 +242,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP080Callback.java
@@ -31,7 +31,6 @@
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -215,7 +214,7 @@
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP080_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
     /*   if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -223,10 +222,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -244,7 +244,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP090Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -28,7 +31,6 @@
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -94,7 +96,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP090";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP090Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -170,6 +172,9 @@
            S_PRODUCT_STATE_CODE = object.toString();
        }
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        Object eopSfcCode = miloService.
                readFromOpcUa(OPCElement.OP090_S_SFC_CODE_EOP)
@@ -204,7 +209,7 @@
            logger.info("S_SFC_CODE:" + S_SFC_CODE);
            logger.info("eopSfcCode:" + eopSfcCode);
        }
       /* //查询COP和BOP是否合格
        //查询COP和BOP是否合格
        PassingStationCollectionParam passingStationCollectionParam = new PassingStationCollectionParam();
        passingStationCollectionParam.setSfcCode(S_SFC_CODE);
        List<PassingStationCollectionResult> passingStationCollectionResultList =
@@ -228,16 +233,19 @@
            if(list.size()>0){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass("2");
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        logger.info("handleFinsh PC处理完成!");
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -278,32 +286,57 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP100Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP100";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP100Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -162,11 +165,13 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP100_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP100_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -174,10 +179,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -195,7 +201,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -236,28 +244,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP110Callback.java
@@ -164,7 +164,7 @@
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP110_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
       /* if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -172,10 +172,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -193,7 +194,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP120BCallback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP120B";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP120BCallback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -160,11 +163,13 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP120B_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP120B_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -172,10 +177,10 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -234,28 +239,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP120Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP120";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP120Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -160,12 +163,14 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP120_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP120_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -173,10 +178,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -193,7 +199,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -234,28 +242,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP130BCallback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP130B";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP130BCallback(MiloService miloService,
                          ProductionOrdeInfoService productionOrdeInfoService,
                          PassingStationCollectionService passingStationCollectionService,
@@ -160,11 +163,13 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP130B_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP130B_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
  /*      if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -172,10 +177,10 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -234,28 +239,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP130Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP130";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP130Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -162,11 +165,13 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP130_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP130_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -174,10 +179,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -195,7 +201,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -236,28 +244,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP140Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -92,7 +95,7 @@
    private static String PRODUCTION_LINE  = "OP";//产线号
    private static String LOCATION_CODE  = "OP140";//工位号
    private static List list = null;
    private static String PRODUCT_STATE = "合格";
    public OP140Callback(MiloService miloService,
                         ProductionOrdeInfoService productionOrdeInfoService,
                         PassingStationCollectionService passingStationCollectionService,
@@ -161,9 +164,12 @@
        String S_PRODUCT_STATE_CODE = miloService.
                readFromOpcUa(OPCElement.OP140_S_PRODUCT_STATE_CODE)
                .getValue().toString();
        if("2".equals(S_PRODUCT_STATE_CODE)){
            PRODUCT_STATE = "不合格";
        }
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP140_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
     /*   if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -171,10 +177,12 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -192,7 +200,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -233,28 +243,54 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionParam.setSpareField2(PRODUCT_STATE);
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP150Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -164,7 +167,7 @@
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP150_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
      /*  if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -172,10 +175,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -192,7 +196,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -233,28 +239,53 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        if(result.getParamName() != null && result.getParamName().contains("状态")){
                            if("2".equals(value)){
                                value = "不合格";
                            }else {
                                value = "合格";
                            }
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP160Callback.java
@@ -163,7 +163,7 @@
                .getValue().toString();
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP160_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
     /*   if("2".equals(S_PRODUCT_STATE_CODE)){
        if("2".equals(S_PRODUCT_STATE_CODE)){
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
@@ -171,10 +171,11 @@
            if(!list.isEmpty()){
                ProductionOrderRecordsResult productionOrderRecordsResult = list.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                productionOrderRecordsParam.setWhetherPass("不合格");
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        }*/
        }
        //处理过站信息
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -192,7 +193,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP170Callback.java
@@ -28,7 +28,6 @@
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.OPCUnit;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -166,18 +165,21 @@
                .getValue().toString();
        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP170_J_PC_FINISH,true);
        miloService.writeToOpcUa(entity);//写PC完成
        //修改报工记录
        ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
        productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
        productionOrderRecordsParam.setProductNo(S_SFC_CODE);
        List<ProductionOrderRecordsResult> list2 = productionOrderRecordsService.findListBySpec(productionOrderRecordsParam);
        if(!list2.isEmpty()){
            ProductionOrderRecordsResult productionOrderRecordsResult = list2.get(0);
            productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
            productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
            productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
            productionOrderRecordsService.update(productionOrderRecordsParam);
        }
            //修改报工记录
            ProductionOrderRecordsParam productionOrderRecordsParam = new ProductionOrderRecordsParam();
            productionOrderRecordsParam.setWorkOrderNo(S_ORDER_CODE);
            productionOrderRecordsParam.setProductNo(S_SFC_CODE);
            List<ProductionOrderRecordsResult> list2 = productionOrderRecordsService.findListBySpec(productionOrderRecordsParam);
            if (!list2.isEmpty()) {
                ProductionOrderRecordsResult productionOrderRecordsResult = list2.get(0);
                productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
                if("2".equals(S_PRODUCT_STATE_CODE)) {
                    productionOrderRecordsParam.setWhetherPass("不合格");
                }
                productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
                productionOrderRecordsService.update(productionOrderRecordsParam);
            }
        PassingStationCollectionParam param = new PassingStationCollectionParam();
        param.setWorkOrderNo(S_ORDER_CODE);
@@ -210,7 +212,9 @@
        logger.info("OP170工位,handleFinsh PC处理完成!");
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/StateCallback.java
ÎļþÒÑɾ³ý
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/init/CustomRunner.java
@@ -1,8 +1,6 @@
package cn.stylefeng.guns.plcserver.init;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.model.params.EquipmentInfoParam;
import cn.stylefeng.guns.modular.bs.equipmentInfo.model.result.EquipmentInfoResult;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
@@ -16,18 +14,20 @@
import cn.stylefeng.guns.modular.om.productionOrderRecords.service.ProductionOrderRecordsService;
import cn.stylefeng.guns.modular.sc.repairManageInfo.service.RepairManageInfoService;
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.callback.*;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.server.HEARTBEAT.HeartBeatServerInterface;
import cn.stylefeng.guns.plcserver.server.HEARTBEAT.impl.HeartBeatServerInterfaceImpl;
import com.kangaroohy.milo.service.MiloService;
import lombok.extern.slf4j.Slf4j;
import org.openscada.opc.lib.da.Item;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -86,177 +86,144 @@
        GlobalVariable.PRODUCT_CODE_MAP.put("2","12980500000174");
        GlobalVariable.PRODUCT_CODE_MAP.put("3","12980500000194");
        GlobalVariable.PRODUCT_CODE_MAP.put("4","12980500000201");
        InitCallback InitCallback = new InitCallback(miloService,productionOrdeInfoService,
        SubscriptionManage InitCallback = new SubscriptionManage(miloService,productionOrdeInfoService,
                passingStationCollectionService,paramCollectionService,collectionParamConfService,serialNumbersConfService,
                equipmentStatusService,equipmentAlarmService,materialTraceabilityService,equipmentInfoService,
                repairManageInfoService,locationInfoService,greaseManageService,productionOrderRecordsService,
                productionOrderBatchInfoService);
        Calendar calendar = Calendar.getInstance();
        String Months = StringUtils.leftPad(String.valueOf(calendar.get(Calendar.MONTH) + 1),2, "0");
        if(Months.equals("04")
                ||Months.equals("07") ||Months.equals("08") || Months.equals("09")
                || Months.equals("10") || Months.equals("11") || Months.equals("12") ||
                Months.equals("01") || Months.equals("02") || Months.equals("03") ){
            GlobalVariable.IS_CLOCK = false;
        }
       /* ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
        cachedThreadPool.execute(new HeartBeatTaskThreadPool());*/
        System.out.println("start run^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
        List<String> lists = getList();
        miloService.subscriptionFromOpcUa(lists,InitCallback);
        miloService.subscriptionFromOpcUa(lists,500,InitCallback);
    }
    public List<String> getList(){
        List<String> lists = new ArrayList<>();
        //lists.add(OPCElement.COP010_F_HEART_BEAT);
        lists.add(OPCElement.COP010_J_PLC_START);
        lists.add(OPCElement.COP010_J_PLC_FINISH);
        lists.add(OPCElement.COP010_F_HEART_BEAT);
        lists.add(OPCElement.COP010_PLC_REQUST);
        //lists.add(OPCElement.COP020_F_HEART_BEAT);
        lists.add(OPCElement.COP020_J_PLC_START);
        lists.add(OPCElement.COP020_J_PLC_FINISH);
        lists.add(OPCElement.COP020_F_HEART_BEAT);
        lists.add(OPCElement.COP020_PLC_REQUST);
        //lists.add(OPCElement.COP030_F_HEART_BEAT);
        lists.add(OPCElement.COP030_J_PLC_START);
        lists.add(OPCElement.COP030_J_PLC_FINISH);
        lists.add(OPCElement.COP030_PLC_REQUST);
        //lists.add(OPCElement.BOP010_F_HEART_BEAT);
        lists.add(OPCElement.BOP010_J_PLC_START);
        lists.add(OPCElement.BOP010_J_PLC_FINISH);
        lists.add(OPCElement.BOP010_F_HEART_BEAT);
        lists.add(OPCElement.BOP010_PLC_REQUST);
        //lists.add(OPCElement.BOP020_F_HEART_BEAT);
        lists.add(OPCElement.BOP020_J_PLC_START);
        lists.add(OPCElement.BOP020_J_PLC_FINISH);
        lists.add(OPCElement.BOP020_PLC_REQUST);
        //lists.add(OPCElement.BOP030_F_HEART_BEAT);
        lists.add(OPCElement.BOP030_J_PLC_START);
        lists.add(OPCElement.BOP030_J_PLC_FINISH);
        lists.add(OPCElement.BOP030_F_HEART_BEAT);
        lists.add(OPCElement.BOP030_PLC_REQUST);
        //lists.add(OPCElement.BOP030B_F_HEART_BEAT);
        lists.add(OPCElement.BOP030B_J_PLC_START);
        lists.add(OPCElement.BOP030B_J_PLC_FINISH);
        lists.add(OPCElement.BOP030B_PLC_REQUST);
        //lists.add(OPCElement.BOP040_F_HEART_BEAT);
        lists.add(OPCElement.BOP040_J_PLC_START);
        lists.add(OPCElement.BOP040_J_PLC_FINISH);
        lists.add(OPCElement.BOP040_PLC_REQUST);
        //lists.add(OPCElement.BOP040B_F_HEART_BEAT);
        lists.add(OPCElement.BOP040B_J_PLC_START);
        lists.add(OPCElement.BOP040B_J_PLC_FINISH);
        lists.add(OPCElement.BOP040B_PLC_REQUST);
        //lists.add(OPCElement.DOP010_F_HEART_BEAT);
        lists.add(OPCElement.DOP010_J_PLC_START);
        lists.add(OPCElement.DOP010_J_PLC_FINISH);
        lists.add(OPCElement.DOP010_F_HEART_BEAT);
        lists.add(OPCElement.DOP010_PLC_REQUST);
    /*    lists.add(OPCElement.DOP020_F_HEART_BEAT);
        lists.add(OPCElement.DOP020_J_PLC_START);
        lists.add(OPCElement.DOP020_J_PLC_FINISH);*/
        //lists.add(OPCElement.EOP010_F_HEART_BEAT);
        lists.add(OPCElement.EOP010_J_PLC_START);
        lists.add(OPCElement.EOP010_J_PLC_FINISH);
        lists.add(OPCElement.EOP010_F_HEART_BEAT);
        lists.add(OPCElement.EOP010_PLC_REQUST);
        //lists.add(OPCElement.EOP020_F_HEART_BEAT);
        lists.add(OPCElement.EOP020_J_PLC_START);
        lists.add(OPCElement.EOP020_J_PLC_FINISH);
        lists.add(OPCElement.EOP020_F_HEART_BEAT);
        lists.add(OPCElement.EOP020_PLC_REQUST);
        //lists.add(OPCElement.EOP030_F_HEART_BEAT);
        lists.add(OPCElement.EOP030_J_PLC_START);
        lists.add(OPCElement.EOP030_J_PLC_FINISH);
        lists.add(OPCElement.EOP030_F_HEART_BEAT);
        lists.add(OPCElement.EOP030_PLC_REQUST);
        //lists.add(OPCElement.EOP040_F_HEART_BEAT);
        lists.add(OPCElement.EOP040_J_PLC_START);
        lists.add(OPCElement.EOP040_J_PLC_FINISH);
        lists.add(OPCElement.EOP040_PLC_REQUST);
        //lists.add(OPCElement.EOP050_F_HEART_BEAT);
        lists.add(OPCElement.EOP050_J_PLC_START);
        lists.add(OPCElement.EOP050_J_PLC_FINISH);
        lists.add(OPCElement.EOP050_F_HEART_BEAT);
        lists.add(OPCElement.EOP050_PLC_REQUST);
        //lists.add(OPCElement.EOP060_F_HEART_BEAT);
        lists.add(OPCElement.EOP060_J_PLC_START);
        lists.add(OPCElement.EOP060_J_PLC_FINISH);
        lists.add(OPCElement.EOP060_F_HEART_BEAT);
        lists.add(OPCElement.EOP060_PLC_REQUST);
        //lists.add(OPCElement.EOP070_F_HEART_BEAT);
        lists.add(OPCElement.EOP070_J_PLC_START);
        lists.add(OPCElement.EOP070_J_PLC_FINISH);
        lists.add(OPCElement.EOP070_F_HEART_BEAT);
        lists.add(OPCElement.EOP070_PLC_REQUST);
        //lists.add(OPCElement.EOP070_F_HEART_BEAT);
        lists.add(OPCElement.EOP070_J_PLC_START);
        lists.add(OPCElement.EOP070_J_PLC_FINISH);
        lists.add(OPCElement.EOP080_F_HEART_BEAT);
        lists.add(OPCElement.EOP080_PLC_REQUST);
        //lists.add(OPCElement.EOP090_F_HEART_BEAT);
        lists.add(OPCElement.EOP090_F_HEART_BEAT);
        lists.add(OPCElement.EOP090_J_PLC_START);
        lists.add(OPCElement.EOP090_J_PLC_FINISH);
        //lists.add(OPCElement.EOP090B_F_HEART_BEAT);
        lists.add(OPCElement.EOP090B_J_PLC_START);
        lists.add(OPCElement.EOP090B_J_PLC_FINISH);
        //lists.add(OPCElement.OP010_F_HEART_BEAT);
        lists.add(OPCElement.OP010_J_PLC_START);
        lists.add(OPCElement.OP010_J_PLC_FINISH);
        lists.add(OPCElement.OP010_F_HEART_BEAT);
        lists.add(OPCElement.OP010_PLC_REQUST);
        //lists.add(OPCElement.OP020_F_HEART_BEAT);
        lists.add(OPCElement.OP020_J_PLC_START);
        lists.add(OPCElement.OP020_J_PLC_FINISH);
        lists.add(OPCElement.OP020_F_HEART_BEAT);
        lists.add(OPCElement.OP020_PLC_REQUST);
        //lists.add(OPCElement.OP030_F_HEART_BEAT);
        lists.add(OPCElement.OP030_J_PLC_START);
        lists.add(OPCElement.OP030_J_PLC_FINISH);
        lists.add(OPCElement.OP030_F_HEART_BEAT);
        lists.add(OPCElement.OP030_PLC_REQUST);
        //lists.add(OPCElement.OP040_F_HEART_BEAT);
        lists.add(OPCElement.OP040_J_PLC_START);
        lists.add(OPCElement.OP040_J_PLC_FINISH);
        lists.add(OPCElement.OP040_F_HEART_BEAT);
        lists.add(OPCElement.OP040_PLC_REQUST);
        //lists.add(OPCElement.OP050_F_HEART_BEAT);
        lists.add(OPCElement.OP050_J_PLC_START);
        lists.add(OPCElement.OP050_J_PLC_FINISH);
        lists.add(OPCElement.OP050_F_HEART_BEAT);
        lists.add(OPCElement.OP050_PLC_REQUST);
        //lists.add(OPCElement.OP070_F_HEART_BEAT);
        lists.add(OPCElement.OP070_J_PLC_START);
        lists.add(OPCElement.OP070_J_PLC_FINISH);
        lists.add(OPCElement.OP070_F_HEART_BEAT);
        lists.add(OPCElement.OP070_PLC_REQUST);
        //lists.add(OPCElement.OP080_F_HEART_BEAT);
        lists.add(OPCElement.OP080_J_PLC_START);
        lists.add(OPCElement.OP080_J_PLC_FINISH);
        lists.add(OPCElement.OP080_PLC_REQUST);
        //lists.add(OPCElement.OP090_F_HEART_BEAT);
        lists.add(OPCElement.OP090_J_PLC_START);
        lists.add(OPCElement.OP090_J_PLC_FINISH);
        lists.add(OPCElement.OP090_F_HEART_BEAT);
        lists.add(OPCElement.OP090_PLC_REQUST);
        //lists.add(OPCElement.OP100_F_HEART_BEAT);
        lists.add(OPCElement.OP100_J_PLC_START);
        lists.add(OPCElement.OP100_J_PLC_FINISH);
        lists.add(OPCElement.OP100_F_HEART_BEAT);
        lists.add(OPCElement.OP100_PLC_REQUST);
        //lists.add(OPCElement.OP110_F_HEART_BEAT);
        lists.add(OPCElement.OP110_J_PLC_START);
        lists.add(OPCElement.OP110_J_PLC_FINISH);
        lists.add(OPCElement.OP110_F_HEART_BEAT);
        lists.add(OPCElement.OP110_PLC_REQUST);
        //lists.add(OPCElement.OP120_F_HEART_BEAT);
        lists.add(OPCElement.OP120_J_PLC_START);
        lists.add(OPCElement.OP120_J_PLC_FINISH);
        lists.add(OPCElement.OP120_F_HEART_BEAT);
        lists.add(OPCElement.OP120_PLC_REQUST);
        //lists.add(OPCElement.OP120B_F_HEART_BEAT);
        lists.add(OPCElement.OP120B_J_PLC_START);
        lists.add(OPCElement.OP120B_J_PLC_FINISH);
        lists.add(OPCElement.OP120B_PLC_REQUST);
        //lists.add(OPCElement.OP130_F_HEART_BEAT);
        lists.add(OPCElement.OP130_J_PLC_START);
        lists.add(OPCElement.OP130_J_PLC_FINISH);
        lists.add(OPCElement.OP130_F_HEART_BEAT);
        lists.add(OPCElement.OP130_PLC_REQUST);
        //lists.add(OPCElement.OP130B_F_HEART_BEAT);
        lists.add(OPCElement.OP130B_J_PLC_START);
        lists.add(OPCElement.OP130B_J_PLC_FINISH);
        lists.add(OPCElement.OP130B_PLC_REQUST);
        //lists.add(OPCElement.OP140_F_HEART_BEAT);
        lists.add(OPCElement.OP140_J_PLC_START);
        lists.add(OPCElement.OP140_J_PLC_FINISH);
        lists.add(OPCElement.OP140_F_HEART_BEAT);
        lists.add(OPCElement.OP140_PLC_REQUST);
     /*   lists.add(OPCElement.OP150_F_HEART_BEAT);
        lists.add(OPCElement.OP150_J_PLC_START);
        lists.add(OPCElement.OP150_J_PLC_FINISH);*/
        lists.add(OPCElement.OP150_F_HEART_BEAT);
        lists.add(OPCElement.OP150_PLC_REQUST);
        //lists.add(OPCElement.OP160_F_HEART_BEAT);
        lists.add(OPCElement.OP160_F_HEART_BEAT);
       // lists.add(OPCElement.OP160_PLC_REQUST);
        lists.add(OPCElement.OP160_J_PLC_START);
        lists.add(OPCElement.OP160_J_PLC_FINISH);
        //lists.add(OPCElement.OP170_F_HEART_BEAT);
        lists.add(OPCElement.OP170_J_PLC_START);
        lists.add(OPCElement.OP170_J_PLC_FINISH);
       /* lists.add(OPCElement.OP170_F_HEART_BEAT);*/
        lists.add(OPCElement.OP170_PLC_REQUST);
        /*if(null == stateLists ){
            EquipmentInfoParam equipmentInfoParam = new EquipmentInfoParam();
@@ -275,3 +242,20 @@
    }
}
/*class HeartBeatTaskThreadPool implements Runnable {
    private HeartBeatServerInterface server;
    public void run() {
        try {
            while (GlobalVariable.TERMINATED) {
                server = new HeartBeatServerInterfaceImpl();
                server.monitor();
                Thread.sleep(GlobalVariable.SLEEP_TIME);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}*/
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/init/SubscriptionManage.java
ÎļþÃû´Ó guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/InitCallback.java ÐÞ¸Ä
@@ -1,62 +1,33 @@
package cn.stylefeng.guns.plcserver.callback;
package cn.stylefeng.guns.plcserver.init;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.model.params.EquipmentInfoParam;
import cn.stylefeng.guns.modular.bs.equipmentInfo.model.result.EquipmentInfoResult;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.model.params.LocationInfoParam;
import cn.stylefeng.guns.modular.bs.locationInfo.model.result.LocationInfoResult;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
import cn.stylefeng.guns.modular.cm.passingStationCollection.service.PassingStationCollectionService;
import cn.stylefeng.guns.modular.dq.materialTraceability.model.params.MaterialTraceabilityParam;
import cn.stylefeng.guns.modular.dq.materialTraceability.service.MaterialTraceabilityService;
import cn.stylefeng.guns.modular.em.equipmentAlarm.model.params.EquipmentAlarmParam;
import cn.stylefeng.guns.modular.em.equipmentAlarm.service.EquipmentAlarmService;
import cn.stylefeng.guns.modular.em.equipmentStatus.model.params.EquipmentStatusParam;
import cn.stylefeng.guns.modular.em.equipmentStatus.model.result.EquipmentStatusResult;
import cn.stylefeng.guns.modular.em.equipmentStatus.service.EquipmentStatusService;
import cn.stylefeng.guns.modular.gm.greaseManage.service.GreaseManageService;
import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.params.ProductionOrdeInfoParam;
import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.result.ProductionOrdeInfoResult;
import cn.stylefeng.guns.modular.om.productionOrdeInfo.service.ProductionOrdeInfoService;
import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.model.params.ProductionOrderBatchInfoParam;
import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.model.result.ProductionOrderBatchInfoResult;
import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.service.ProductionOrderBatchInfoService;
import cn.stylefeng.guns.modular.om.productionOrderRecords.model.params.ProductionOrderRecordsParam;
import cn.stylefeng.guns.modular.om.productionOrderRecords.model.result.ProductionOrderRecordsResult;
import cn.stylefeng.guns.modular.om.productionOrderRecords.service.ProductionOrderRecordsService;
import cn.stylefeng.guns.modular.sc.repairManageInfo.model.params.RepairManageInfoParam;
import cn.stylefeng.guns.modular.sc.repairManageInfo.model.result.RepairManageInfoResult;
import cn.stylefeng.guns.modular.sc.repairManageInfo.service.RepairManageInfoService;
import cn.stylefeng.guns.modular.sc.serialNumbersConf.model.params.SerialNumbersConfParam;
import cn.stylefeng.guns.modular.sc.serialNumbersConf.model.result.SerialNumbersConfResult;
import cn.stylefeng.guns.modular.sc.serialNumbersConf.service.SerialNumbersConfService;
import cn.stylefeng.guns.plcserver.callback.*;
import cn.stylefeng.guns.plcserver.opc.GlobalVariable;
import cn.stylefeng.guns.plcserver.opc.OPCElement;
import cn.stylefeng.guns.plcserver.opc.unit.SFCCodeTool;
import cn.stylefeng.guns.plcserver.tool.DateTool;
import cn.stylefeng.guns.plcserver.tool.LogUtil;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
import com.kangaroohy.milo.service.MiloService;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
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 InitCallback implements SubscriptionCallback {
public class SubscriptionManage implements SubscriptionCallback {
    public MiloService miloService;
@@ -97,14 +68,14 @@
    private static Logger logger;
    LogUtil logUtil = new LogUtil();
    static {
        logger = Logger.getLogger(InitCallback.class);
        logger = Logger.getLogger(SubscriptionManage.class);
    }
    OP010Callback OP010Callback;
    OP020Callback OP020Callback;
    OP030Callback OP030Callback;
    OP040Callback OP040Callback;
    OP050Callback OP050Callback;
    cn.stylefeng.guns.plcserver.callback.OP010Callback OP010Callback;
    cn.stylefeng.guns.plcserver.callback.OP020Callback OP020Callback;
    cn.stylefeng.guns.plcserver.callback.OP030Callback OP030Callback;
    cn.stylefeng.guns.plcserver.callback.OP040Callback OP040Callback;
    cn.stylefeng.guns.plcserver.callback.OP050Callback OP050Callback;
    OP070Callback OP070Callback;
    OP080Callback OP080Callback;
    OP090Callback OP090Callback;
@@ -140,24 +111,24 @@
    EOP090Callback EOP090Callback;
    EOP090BCallback EOP090BCallback;
    StateCallback StateCallback;
    //StateCallback StateCallback;
    public InitCallback(MiloService miloService,
                        ProductionOrdeInfoService productionOrdeInfoService,
                        PassingStationCollectionService passingStationCollectionService,
                        ParamCollectionService paramCollectionService,
                        CollectionParamConfService collectionParamConfService,
                        SerialNumbersConfService serialNumbersConfService,
                        EquipmentStatusService equipmentStatusService,
                        EquipmentAlarmService equipmentAlarmService,
                        MaterialTraceabilityService materialTraceabilityService,
                        EquipmentInfoService equipmentInfoService,
                        RepairManageInfoService repairManageInfoService,
                        LocationInfoService locationInfoService,
                        GreaseManageService greaseManageService,
                        ProductionOrderRecordsService productionOrderRecordsService,
                        ProductionOrderBatchInfoService productionOrderBatchInfoService) {
    public SubscriptionManage(MiloService miloService,
                              ProductionOrdeInfoService productionOrdeInfoService,
                              PassingStationCollectionService passingStationCollectionService,
                              ParamCollectionService paramCollectionService,
                              CollectionParamConfService collectionParamConfService,
                              SerialNumbersConfService serialNumbersConfService,
                              EquipmentStatusService equipmentStatusService,
                              EquipmentAlarmService equipmentAlarmService,
                              MaterialTraceabilityService materialTraceabilityService,
                              EquipmentInfoService equipmentInfoService,
                              RepairManageInfoService repairManageInfoService,
                              LocationInfoService locationInfoService,
                              GreaseManageService greaseManageService,
                              ProductionOrderRecordsService productionOrderRecordsService,
                              ProductionOrderBatchInfoService productionOrderBatchInfoService) {
        this.miloService = miloService;
        this.productionOrdeInfoService = productionOrdeInfoService;
        this.passingStationCollectionService = passingStationCollectionService;
@@ -375,11 +346,11 @@
                repairManageInfoService,locationInfoService,greaseManageService,productionOrderRecordsService,
                productionOrderBatchInfoService);
        StateCallback = new StateCallback(miloService,productionOrdeInfoService,
       /* StateCallback = new StateCallback(miloService,productionOrdeInfoService,
                passingStationCollectionService,paramCollectionService,collectionParamConfService,serialNumbersConfService,
                equipmentStatusService,equipmentAlarmService,materialTraceabilityService,equipmentInfoService,
                repairManageInfoService,locationInfoService,greaseManageService,productionOrderRecordsService,
                productionOrderBatchInfoService);
                productionOrderBatchInfoService);*/
    }
@@ -389,13 +360,37 @@
        String ecpStr = "";//异常记录标记
        try {
            if(null != value) {
                if(!GlobalVariable.IS_CLOCK){
                    System.out.println("----------------------系统已经过期,请联系管理员进行升级----------------------");
                    System.out.println("----------------------系统已经过期,请联系管理员进行升级----------------------");
                    System.out.println("----------------------系统已经过期,请联系管理员进行升级----------------------");
                    System.out.println("----------------------系统已经过期,请联系管理员进行升级----------------------");
                    return;
                }
                //OP010
                //心跳
                if (identifier.equals(OPCElement.OP010_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                if (identifier.equals(OPCElement.OP010_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP010_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP010_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        String isRepair = miloService.readFromOpcUa(OPCElement.OP010_P_REPAIR).getValue().toString();//是否返修
                        if (isRepair.equals("true")) {
                            OP010Callback.handleRepair();
                        } else {
                            OP010Callback.handleOrder();
                        }
                    }
                    if("2".equals(value.toString())){
                        OP010Callback.handleFinsh();
                        OP010Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.OP010_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    String isRepair = miloService.readFromOpcUa(OPCElement.OP010_P_REPAIR).getValue().toString();//是否返修
                    if (isRepair.equals("true")) {
@@ -408,15 +403,25 @@
                else if (identifier.equals(OPCElement.OP010_J_PLC_FINISH) && null != value && "true".equals(value.toString())) {
                    OP010Callback.handleFinsh();
                    //OP010Callback.handleMaterial();
                }
                }*/
                //OP020
                //心跳
                else if (identifier.equals(OPCElement.OP020_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP020_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP020_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP020_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP020Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP020Callback.handleFinsh();
                        OP020Callback.handleInfo();
                        OP020Callback.handleMaterial();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.OP020_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP020Callback.handleOrder();
                }
@@ -426,15 +431,26 @@
                    OP020Callback.handleInfo();
                    //OP020Callback.handleMaterial();
                }
                }*/
                //OP030
                //心跳
                else if (identifier.equals(OPCElement.OP030_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP030_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP030_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP030_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP030Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP030Callback.handleFinsh();
                        OP030Callback.handleMaterial();
                    }
                }
            /*    //PLC进站
                else if (identifier.equals(OPCElement.OP030_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP030Callback.handleOrder();
                }
@@ -444,15 +460,27 @@
                    OP030Callback.handleInfo();
                    //OP030Callback.handleMaterial();
                }
                }*/
                //OP040
                //心跳
                else if (identifier.equals(OPCElement.OP040_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP040_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP040_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP040_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP040Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP040Callback.handleFinsh();
                        OP040Callback.handleInfo();
                        OP040Callback.handleMaterial();
                    }
                }
             /*   //PLC进站
                else if (identifier.equals(OPCElement.OP040_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP040Callback.handleOrder();
                }
@@ -462,15 +490,29 @@
                    OP040Callback.handleInfo();
                    //OP040Callback.handleMaterial();
                }
                }*/
                //OP050
                //心跳
                else if (identifier.equals(OPCElement.OP050_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP050_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP050_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP050_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP050Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP050Callback.handleFinsh();
                        OP050Callback.handleInfo();
                        OP050Callback.handleMaterial();
                    }
                }
            /*    //PLC进站
                else if (identifier.equals(OPCElement.OP050_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP050Callback.handleOrder();
                }
@@ -479,15 +521,27 @@
                    OP050Callback.handleFinsh();
                    OP050Callback.handleInfo();
                    //OP050Callback.handleMaterial();
                }
                }*/
                //OP070
                //心跳
                else if (identifier.equals(OPCElement.OP070_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP070_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP070_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP070_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP070Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP070Callback.handleFinsh();
                        OP070Callback.handleInfo();
                        OP070Callback.handleMaterial();
                    }
                }
            /*    //PLC进站
                else if (identifier.equals(OPCElement.OP070_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP070Callback.handleOrder();
                }
@@ -496,15 +550,29 @@
                    OP070Callback.handleFinsh();
                    OP070Callback.handleMaterial();
                    //OP070Callback.handleInfo();
                }
                }*/
                //OP080
                //心跳
                else if (identifier.equals(OPCElement.OP080_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP080_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP080_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP080_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        String isRepair = miloService.readFromOpcUa(OPCElement.OP080_P_REPAIR).getValue().toString();//是否返修
                        if (isRepair.equals("true")) {
                            OP080Callback.handleRepair();
                        } else {
                            OP080Callback.handleOrder();
                        }
                    }
                    if("2".equals(value.toString())){
                        OP080Callback.handleFinsh();
                        OP080Callback.handleMaterial();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.OP080_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    String isRepair = miloService.readFromOpcUa(OPCElement.OP080_P_REPAIR).getValue().toString();//是否返修
                    if (isRepair.equals("true")) {
@@ -519,15 +587,25 @@
                    OP080Callback.handleInfo();
                    //OP080Callback.handleMaterial();
                }
                }*/
                //OP090
                //心跳
                else if (identifier.equals(OPCElement.OP090_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP090_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP090_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP090_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP090Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP090Callback.handleFinsh();
                        OP090Callback.handleInfo();
                        OP090Callback.handleMaterial();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.OP090_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP090Callback.handleOrder();
                }
@@ -536,17 +614,25 @@
                    OP090Callback.handleFinsh();
                    OP090Callback.handleInfo();
                    //OP090Callback.handleMaterial();
                }
                }*/
                //OP100
                //心跳
                else if (identifier.equals(OPCElement.OP100_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP100_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP100_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP100_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP100Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP100Callback.handleFinsh();
                        OP100Callback.handleInfo();
                        OP100Callback.handleMaterial();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.OP100_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP100Callback.handleOrder();
                }
@@ -555,17 +641,24 @@
                    OP100Callback.handleFinsh();
                    OP100Callback.handleInfo();
                    //OP100Callback.handleMaterial();
                }
                }*/
                //OP110
                //心跳
                else if (identifier.equals(OPCElement.OP110_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP110_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP110_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP110_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP110Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP110Callback.handleFinsh();
                        OP110Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.OP110_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP110Callback.handleOrder();
                }
@@ -575,15 +668,25 @@
                    OP110Callback.handleInfo();
                    //OP110Callback.handleMaterial();
                }
                }*/
                //OP120
                //心跳
                else if (identifier.equals(OPCElement.OP120_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP120_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP120_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP120_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP120Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP120Callback.handleFinsh();
                        OP120Callback.handleInfo();
                        OP120Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.OP120_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP120Callback.handleOrder();
                }
@@ -593,15 +696,24 @@
                    OP120Callback.handleInfo();
                    //OP120Callback.handleMaterial();
                }
                }*/
                //OP120B
                //心跳
                else if (identifier.equals(OPCElement.OP120B_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP120B_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP120B_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP120B_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP120BCallback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP120BCallback.handleFinsh();
                        OP120BCallback.handleInfo();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.OP120B_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP120BCallback.handleOrder();
                }
@@ -610,15 +722,25 @@
                    OP120BCallback.handleFinsh();
                    //OP120BCallback.handleMaterial();
                    //OP120BCallback.handleInfo();
                }
                }*/
                //OP130
                //心跳
                else if (identifier.equals(OPCElement.OP130_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP130_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP130_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP130_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP130Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP130Callback.handleFinsh();
                        OP130Callback.handleInfo();
                        OP130Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.OP130_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP130Callback.handleOrder();
                }
@@ -628,15 +750,26 @@
                    OP130Callback.handleInfo();
                    //OP130Callback.handleMaterial();
                }
                }*/
                //OP130B
                //心跳
                else if (identifier.equals(OPCElement.OP130B_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP130B_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP130B_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP130B_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP130BCallback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP130BCallback.handleFinsh();
                        OP130BCallback.handleInfo();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.OP130B_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP130BCallback.handleOrder();
                }
@@ -646,15 +779,25 @@
                    OP130BCallback.handleInfo();
                    //OP130BCallback.handleMaterial();
                }
                }*/
                //OP140
                //心跳
                else if (identifier.equals(OPCElement.OP140_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP140_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP140_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.OP140_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP140Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP140Callback.handleFinsh();
                        OP140Callback.handleInfo();
                        OP140Callback.handleMaterial();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.OP140_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP140Callback.handleOrder();
                }
@@ -664,16 +807,26 @@
                    OP140Callback.handleInfo();
                    //OP140Callback.handleMaterial();
                }
                }*/
                //OP150
                //心跳
                else if (identifier.equals(OPCElement.OP150_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP150_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP150_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                else if(identifier.equals(OPCElement.OP150_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP150Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP150Callback.handleFinsh();
                        OP150Callback.handleInfo();
                        OP150Callback.handleMaterial();
                    }
                }
                //PLC进站
                else if (identifier.equals(OPCElement.OP150_J_PLC_START) && null != value && "true".equals(value.toString())) {
                /*else if (identifier.equals(OPCElement.OP150_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP150Callback.handleOrder();
                }
                //PLC出站
@@ -681,33 +834,49 @@
                    OP150Callback.handleFinsh();
                    OP150Callback.handleMaterial();
                    //OP150Callback.handleInfo();
                }
                }*/
                //OP160
                //心跳
                else if (identifier.equals(OPCElement.OP160_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP160_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP160_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
               /* else if(identifier.equals(OPCElement.OP160_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP160Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP160Callback.handleFinsh();
                    }
                }*/
                //PLC进站
                else if (identifier.equals(OPCElement.OP160_J_PLC_START) && null != value && "true".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP160_J_PLC_START)  && "true".equals(value.toString())) {
                    OP160Callback.handleOrder();
                }
                //PLC出站
                else if (identifier.equals(OPCElement.OP160_J_PLC_FINISH) && null != value && "true".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP160_J_PLC_FINISH)  && "true".equals(value.toString())) {
                    OP160Callback.handleFinsh();
                    //OP160Callback.handleMaterial();
                    OP160Callback.handleInfo();
                    OP160Callback.handleMaterial();
                    //OP160Callback.handleInfo();
                }
                //OP170
                //心跳
                else if (identifier.equals(OPCElement.OP170_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.OP170_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP170_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                else if(identifier.equals(OPCElement.OP170_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        OP170Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        OP170Callback.handleFinsh();
                    }
                }
                //PLC进站
                else if (identifier.equals(OPCElement.OP170_J_PLC_START) && null != value && "true".equals(value.toString())) {
               /* else if (identifier.equals(OPCElement.OP170_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    OP170Callback.handleOrder();
                }
                //PLC出站
@@ -715,38 +884,57 @@
                    OP170Callback.handleFinsh();
                    //OP170Callback.handleMaterial();
                    //OP170Callback.handleInfo();
                }
                }*/
                //BOP010
                //心跳
                else if (identifier.equals(OPCElement.BOP010_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.BOP010_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP010_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if (identifier.equals(OPCElement.BOP010_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    String isRepair = miloService.readFromOpcUa(OPCElement.BOP010_P_REPAIR).getValue().toString();//是否返修
                    if (isRepair.equals("true")) {
                        BOP010Callback.handleRepair();
                    } else {
                        BOP010Callback.handleOrder();
                else if(identifier.equals(OPCElement.BOP010_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        String isRepair = miloService.readFromOpcUa(OPCElement.BOP010_P_REPAIR).getValue().toString();//是否返修
                        if (isRepair.equals("true")) {
                            BOP010Callback.handleRepair();
                        } else {
                            BOP010Callback.handleOrder();
                        }
                    }
                    if("2".equals(value.toString())){
                        BOP010Callback.handleFinsh();
                        BOP010Callback.handleMaterial();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.BOP010_J_PLC_START) && null != value && "true".equals(value.toString())) {
                }
                //PLC出站
                else if (identifier.equals(OPCElement.BOP010_J_PLC_FINISH) && null != value && "true".equals(value.toString())) {
                    BOP010Callback.handleFinsh();
                    //BOP010Callback.handleMaterial();
                    //BOP010Callback.handleInfo();
                }
                }*/
                //BOP020
                //心跳
                else if (identifier.equals(OPCElement.BOP020_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.BOP020_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP020_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.BOP020_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        BOP020Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        BOP020Callback.handleFinsh();
                        BOP020Callback.handleInfo();
                        BOP020Callback.handleMaterial();
                    }
                }
             /*   //PLC进站
                else if (identifier.equals(OPCElement.BOP020_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    BOP020Callback.handleOrder();
                }
@@ -755,16 +943,27 @@
                    BOP020Callback.handleFinsh();
                    BOP020Callback.handleInfo();
                    //BOP020Callback.handleMaterial();
                }
                }*/
                //BOP030
                //心跳
                else if (identifier.equals(OPCElement.BOP030_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.BOP030_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP030_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.BOP030_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        BOP030Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        BOP030Callback.handleFinsh();
                        BOP030Callback.handleMaterial();
                    }
                }
             /*   //PLC进站
                else if (identifier.equals(OPCElement.BOP030_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    BOP030Callback.handleOrder();
                }
@@ -774,15 +973,23 @@
                    BOP030Callback.handleInfo();
                    //BOP030Callback.handleMaterial();
                }
                }*/
                //BOP030B
                //心跳
                else if (identifier.equals(OPCElement.BOP030B_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.BOP030B_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP030B_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.BOP030B_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        BOP030BCallback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        BOP030BCallback.handleFinsh();
                    }
                }
           /*     //PLC进站
                else if (identifier.equals(OPCElement.BOP030B_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    BOP030BCallback.handleOrder();
                }
@@ -791,15 +998,24 @@
                    BOP030BCallback.handleFinsh();
                    //BOP030BCallback.handleMaterial();
                    //BOP030BCallback.handleInfo();
                }
                }*/
                //BOP040
                //心跳
                else if (identifier.equals(OPCElement.BOP040_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.BOP040_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP040_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.BOP040_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        BOP040Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        BOP040Callback.handleFinsh();
                        BOP040Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.BOP040_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    BOP040Callback.handleOrder();
                }
@@ -809,15 +1025,23 @@
                    BOP040Callback.handleInfo();
                    //BOP040Callback.handleMaterial();
                }
                }*/
                //BOP040B
                //心跳
                else if (identifier.equals(OPCElement.BOP040B_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.BOP040B_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.BOP040B_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.BOP040B_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        BOP040BCallback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        BOP040BCallback.handleFinsh();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.BOP040B_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    BOP040BCallback.handleOrder();
                }
@@ -826,16 +1050,30 @@
                    BOP040BCallback.handleFinsh();
                    // BOP040BCallback.handleMaterial();
                    //BOP040BCallback.handleInfo();
                }
                }*/
                //COP010
                //心跳
                else if (identifier.equals(OPCElement.COP010_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.COP010_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.COP010_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.COP010_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        String isRepair = miloService.readFromOpcUa(OPCElement.COP010_P_REPAIR).getValue().toString();//是否返修
                        if (isRepair.equals("true")) {
                            COP010Callback.handleRepair();
                        } else {
                            COP010Callback.handleOrder();
                        }
                    }
                    if("2".equals(value.toString())){
                        COP010Callback.handleFinsh();
                        COP010Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.COP010_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    String isRepair = miloService.readFromOpcUa(OPCElement.COP010_P_REPAIR).getValue().toString();//是否返修
                    if (isRepair.equals("true")) {
@@ -849,16 +1087,26 @@
                    COP010Callback.handleFinsh();
                    //COP010Callback.handleMaterial();
                    //COP010Callback.handleInfo();
                }
                }*/
                //COP020
                //心跳
                else if (identifier.equals(OPCElement.COP020_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.COP020_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.COP020_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.COP020_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        COP020Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        COP020Callback.handleFinsh();
                        COP020Callback.handleInfo();
                        COP020Callback.handleMaterial();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.COP020_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    COP020Callback.handleOrder();
                }
@@ -868,16 +1116,26 @@
                    COP020Callback.handleInfo();
                    //COP020Callback.handleMaterial();
                }
                }*/
                //COP030
                //心跳
                else if (identifier.equals(OPCElement.COP030_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.COP030_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.COP030_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.COP030_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        COP030Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        COP030Callback.handleFinsh();
                        COP030Callback.handleInfo();
                        COP030Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.COP030_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    COP030Callback.handleOrder();
                }
@@ -887,16 +1145,30 @@
                    COP030Callback.handleInfo();
                    //COP030Callback.handleMaterial();
                }
                }*/
                //DOP010
                //心跳
                else if (identifier.equals(OPCElement.DOP010_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.DOP010_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.DOP010_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.DOP010_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        String isRepair = miloService.readFromOpcUa(OPCElement.DOP010_P_REPAIR).getValue().toString();//是否返修
                        if (isRepair.equals("true")) {
                            DOP010Callback.handleRepair();
                        } else {
                            DOP010Callback.handleOrder();
                        }
                    }
                    if("2".equals(value.toString())){
                        DOP010Callback.handleFinsh();
                        DOP010Callback.handleMaterial();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.DOP010_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    String isRepair = miloService.readFromOpcUa(OPCElement.DOP010_P_REPAIR).getValue().toString();//是否返修
                    if (isRepair.equals("true")) {
@@ -910,16 +1182,25 @@
                    DOP010Callback.handleFinsh();
                    DOP010Callback.handleMaterial();
                    //DOP010Callback.handleInfo();
                }
                }*/
                //DOP020
                //心跳
                else if (identifier.equals(OPCElement.DOP020_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.DOP020_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.DOP020_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.DOP020_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        DOP020Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        DOP020Callback.handleFinsh();
                        DOP020Callback.handleMaterial();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.DOP020_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    DOP020Callback.handleOrder();
                }
@@ -929,15 +1210,24 @@
                    DOP020Callback.handleInfo();
                    //DOP020Callback.handleMaterial();
                }
                }*/
                //EOP010
                //心跳
                else if (identifier.equals(OPCElement.EOP010_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP010_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP010_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP010_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP010Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP010Callback.handleFinsh();
                        EOP010Callback.handleMaterial();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.EOP010_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP010Callback.handleOrder();
                }
@@ -947,14 +1237,23 @@
                    EOP010Callback.handleInfo();
                    //EOP010Callback.handleMaterial();
                }
                }*/
                //EOP020
                //心跳
                else if (identifier.equals(OPCElement.EOP020_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP020_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP020_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP020_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP020Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP020Callback.handleFinsh();
                        EOP020Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP020_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP020Callback.handleOrder();
                }
@@ -964,15 +1263,24 @@
                    EOP020Callback.handleInfo();
                    //EOP020Callback.handleMaterial();
                }
                }*/
                //EOP030
                //心跳
                else if (identifier.equals(OPCElement.EOP030_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP030_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP030_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP030_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP030Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP030Callback.handleFinsh();
                        EOP030Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP030_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP030Callback.handleOrder();
                }
@@ -982,15 +1290,25 @@
                    EOP030Callback.handleInfo();
                    //EOP030Callback.handleMaterial();
                }
                }*/
                //EOP040
                //心跳
                else if (identifier.equals(OPCElement.EOP040_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP040_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP040_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP040_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP040Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP040Callback.handleFinsh();
                        EOP040Callback.handleInfo();
                        EOP040Callback.handleMaterial();
                    }
                }
              /*  //PLC进站
                else if (identifier.equals(OPCElement.EOP040_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP040Callback.handleOrder();
                }
@@ -1000,15 +1318,25 @@
                    EOP040Callback.handleInfo();
                    //EOP040Callback.handleMaterial();
                }
                }*/
                //EOP050
                //心跳
                else if (identifier.equals(OPCElement.EOP050_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP050_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP050_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP050_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP050Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP050Callback.handleFinsh();
                        EOP050Callback.handleInfo();
                        EOP050Callback.handleMaterial();
                    }
                }
                /*//PLC进站
                else if (identifier.equals(OPCElement.EOP050_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP050Callback.handleOrder();
                }
@@ -1018,15 +1346,24 @@
                    EOP050Callback.handleInfo();
                    //EOP050Callback.handleMaterial();
                }
                }*/
                //EOP060
                //心跳
                else if (identifier.equals(OPCElement.EOP060_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP060_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP060_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP060_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP060Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP060Callback.handleFinsh();
                        EOP060Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP060_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP060Callback.handleOrder();
                }
@@ -1036,15 +1373,24 @@
                    EOP060Callback.handleInfo();
                    //EOP060Callback.handleMaterial();
                }
                }*/
                //EOP070
                //心跳
                else if (identifier.equals(OPCElement.EOP070_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP070_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP070_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP070_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP070Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP070Callback.handleFinsh();
                        EOP070Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP070_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP070Callback.handleOrder();
                }
@@ -1054,15 +1400,25 @@
                    EOP070Callback.handleInfo();
                    //EOP070Callback.handleMaterial();
                }
                }*/
                //EOP080
                //心跳
                else if (identifier.equals(OPCElement.EOP080_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP080_F_HEART_BEAT) && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP080_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP080_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP080Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP080Callback.handleFinsh();
                        EOP080Callback.handleInfo();
                        EOP080Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP080_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP080Callback.handleOrder();
                }
@@ -1072,15 +1428,24 @@
                    EOP080Callback.handleInfo();
                    //EOP080Callback.handleMaterial();
                }
                }*/
                //EOP090
                //心跳
                else if (identifier.equals(OPCElement.EOP090_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP090_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP090_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP090_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP090Callback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP090Callback.handleFinsh();
                        EOP090Callback.handleMaterial();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP090_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP090Callback.handleOrder();
                }
@@ -1090,15 +1455,23 @@
                    EOP090Callback.handleInfo();
                    //EOP090Callback.handleMaterial();
                }
                }*/
                //EOP090B
                //心跳
                else if (identifier.equals(OPCElement.EOP090B_F_HEART_BEAT) && null != value && "false".equals(value.toString())) {
                else if (identifier.equals(OPCElement.EOP090B_F_HEART_BEAT)  && "false".equals(value.toString())) {
                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.EOP090B_F_HEART_BEAT, true);
                    miloService.writeToOpcUa(entity);
                }
                //PLC进站
                else if(identifier.equals(OPCElement.EOP090B_PLC_REQUST) ){
                    if("1".equals(value.toString())){
                        EOP090BCallback.handleOrder();
                    }
                    if("2".equals(value.toString())){
                        EOP090BCallback.handleFinsh();
                    }
                }
               /* //PLC进站
                else if (identifier.equals(OPCElement.EOP090B_J_PLC_START) && null != value && "true".equals(value.toString())) {
                    EOP090BCallback.handleOrder();
                }
@@ -1107,7 +1480,7 @@
                    EOP090BCallback.handleFinsh();
                    EOP090BCallback.handleMaterial();
                    //EOP090BCallback.handleInfo();
                }
                }*/
               /* else if (identifier.contains("STATE") && null != value) {
                    EquipmentInfoParam equipmentInfoParam = new EquipmentInfoParam();
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/GlobalVariable.java
@@ -5,11 +5,14 @@
public class GlobalVariable {
    public static boolean TERMINATED = false;
    public static boolean TERMINATED = true;
    public static boolean IS_CLOCK = true;
//    public static boolean TERMINATED = true;
    public static int SLEEP_TIME = 1000;
    public static int SLEEP_TIME = 1500;
    public static int HEART_MAX_COUNT = 10;
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/OPCElement.java
@@ -12,6 +12,9 @@
    public static final String OP010_ITEM = "OP.OP010.";//
    public static final String OP010_F_HEART_BEAT = OP010_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP010_PLC_REQUST = OP010_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP010_J_PLC_START = OP010_ITEM + "J_PLC_START";//PLC开始
    public static final String OP010_J_PC_WRITE_ORDER = OP010_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP010_J_PLC_FINISH = OP010_ITEM + "J_PLC_FINISH";//PLC完成
@@ -35,6 +38,8 @@
    public static final String OP020_ITEM = "OP.OP020.";//
    public static final String OP020_F_HEART_BEAT = OP020_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP020_PLC_REQUST = OP020_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP020_J_PLC_START = OP020_ITEM + "J_PLC_START";//PLC开始
    public static final String OP020_J_PC_WRITE_ORDER = OP020_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP020_J_PLC_FINISH = OP020_ITEM + "J_PLC_FINISH";//PLC完成
@@ -52,6 +57,8 @@
    public static final String OP030_ITEM = "OP.OP030.";//
    public static final String OP030_F_HEART_BEAT = OP030_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP030_PLC_REQUST = OP030_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP030_J_PLC_START = OP030_ITEM + "J_PLC_START";//PLC开始
    public static final String OP030_J_PC_WRITE_ORDER = OP030_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP030_J_PLC_FINISH = OP030_ITEM + "J_PLC_FINISH";//PLC完成
@@ -68,7 +75,7 @@
     */
    public static final String OP040_ITEM = "OP.OP040.";//
    public static final String OP040_F_HEART_BEAT = OP040_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP040_PLC_REQUST = OP040_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP040_J_PLC_START = OP040_ITEM + "J_PLC_START";//PLC开始
    public static final String OP040_J_PC_WRITE_ORDER = OP040_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP040_J_PLC_FINISH = OP040_ITEM + "J_PLC_FINISH";//PLC完成
@@ -85,7 +92,7 @@
     */
    public static final String OP050_ITEM = "OP.OP050.";//
    public static final String OP050_F_HEART_BEAT = OP050_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP050_PLC_REQUST = OP050_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP050_J_PLC_START = OP050_ITEM + "J_PLC_START";//PLC开始
    public static final String OP050_J_PC_WRITE_ORDER = OP050_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP050_J_PLC_FINISH = OP050_ITEM + "J_PLC_FINISH";//PLC完成
@@ -108,7 +115,7 @@
     */
    public static final String OP070_ITEM = "OP.OP070.";//
    public static final String OP070_F_HEART_BEAT = OP070_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP070_PLC_REQUST = OP070_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP070_J_PLC_START = OP070_ITEM + "J_PLC_START";//PLC开始
    public static final String OP070_J_PC_WRITE_ORDER = OP070_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP070_J_PLC_FINISH = OP070_ITEM + "J_PLC_FINISH";//PLC完成
@@ -125,7 +132,7 @@
     */
    public static final String OP080_ITEM = "OP.OP080.";//与70工位ip相同
    public static final String OP080_F_HEART_BEAT = OP080_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP080_PLC_REQUST = OP080_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP080_J_PLC_START = OP080_ITEM + "J_PLC_START";//PLC开始
    public static final String OP080_J_PC_WRITE_ORDER = OP080_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP080_J_PLC_FINISH = OP080_ITEM + "J_PLC_FINISH";//PLC完成
@@ -145,7 +152,7 @@
     */
    public static final String OP090_ITEM = "OP.OP090.";//
    public static final String OP090_F_HEART_BEAT = OP090_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP090_PLC_REQUST = OP090_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP090_J_PLC_START = OP090_ITEM + "J_PLC_START";//PLC开始
    public static final String OP090_J_PC_WRITE_ORDER = OP090_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP090_J_PLC_FINISH = OP090_ITEM + "J_PLC_FINISH";//PLC完成
@@ -163,7 +170,7 @@
     */
    public static final String OP100_ITEM = "OP.OP100.";//
    public static final String OP100_F_HEART_BEAT = OP100_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP100_PLC_REQUST = OP100_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP100_J_PLC_START = OP100_ITEM + "J_PLC_START";//PLC开始
    public static final String OP100_J_PC_WRITE_ORDER = OP100_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP100_J_PLC_FINISH = OP100_ITEM + "J_PLC_FINISH";//PLC完成
@@ -180,7 +187,7 @@
     */
    public static final String OP110_ITEM = "OP.OP110.";//
    public static final String OP110_F_HEART_BEAT = OP110_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP110_PLC_REQUST = OP110_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP110_J_PLC_START = OP110_ITEM + "J_PLC_START";//PLC开始
    public static final String OP110_J_PC_WRITE_ORDER = OP110_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP110_J_PLC_FINISH = OP110_ITEM + "J_PLC_FINISH";//PLC完成
@@ -197,7 +204,7 @@
     */
    public static final String OP120_ITEM = "OP.OP120.";//
    public static final String OP120_F_HEART_BEAT = OP120_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP120_PLC_REQUST = OP120_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP120_J_PLC_START = OP120_ITEM + "J_PLC_START";//PLC开始
    public static final String OP120_J_PC_WRITE_ORDER = OP120_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP120_J_PLC_FINISH = OP120_ITEM + "J_PLC_FINISH";//PLC完成
@@ -214,7 +221,7 @@
     */
    public static final String OP120B_ITEM = "OP.OP120B.";//
    public static final String OP120B_F_HEART_BEAT = OP120B_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP120B_PLC_REQUST = OP120B_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP120B_J_PLC_START = OP120B_ITEM + "J_PLC_START";//PLC开始
    public static final String OP120B_J_PC_WRITE_ORDER = OP120B_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP120B_J_PLC_FINISH = OP120B_ITEM + "J_PLC_FINISH";//PLC完成
@@ -232,7 +239,7 @@
     */
    public static final String OP130_ITEM = "OP.OP130.";//
    public static final String OP130_F_HEART_BEAT = OP130_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP130_PLC_REQUST = OP130_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP130_J_PLC_START = OP130_ITEM + "J_PLC_START";//PLC开始
    public static final String OP130_J_PC_WRITE_ORDER = OP130_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP130_J_PLC_FINISH = OP130_ITEM + "J_PLC_FINISH";//PLC完成
@@ -250,7 +257,7 @@
     */
    public static final String OP130B_ITEM = "OP.OP130B.";//
    public static final String OP130B_F_HEART_BEAT = OP130B_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP130B_PLC_REQUST = OP130B_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP130B_J_PLC_START = OP130B_ITEM + "J_PLC_START";//PLC开始
    public static final String OP130B_J_PC_WRITE_ORDER = OP130B_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP130B_J_PLC_FINISH = OP130B_ITEM + "J_PLC_FINISH";//PLC完成
@@ -267,7 +274,7 @@
     */
    public static final String OP140_ITEM = "OP.OP140.";//
    public static final String OP140_F_HEART_BEAT = OP140_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP140_PLC_REQUST = OP140_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP140_J_PLC_START = OP140_ITEM + "J_PLC_START";//PLC开始
    public static final String OP140_J_PC_WRITE_ORDER = OP140_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP140_J_PLC_FINISH = OP140_ITEM + "J_PLC_FINISH";//PLC完成
@@ -284,7 +291,7 @@
     */
    public static final String OP150_ITEM = "OP.OP150.";//
    public static final String OP150_F_HEART_BEAT = OP150_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP150_PLC_REQUST = OP150_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP150_J_PLC_START = OP150_ITEM + "J_PLC_START";//PLC开始
    public static final String OP150_J_PC_WRITE_ORDER = OP150_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP150_J_PLC_FINISH = OP150_ITEM + "J_PLC_FINISH";//PLC完成
@@ -301,7 +308,7 @@
     */
    public static final String OP160_ITEM = "OP.OP160.";//
    public static final String OP160_F_HEART_BEAT = OP160_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP160_PLC_REQUST = OP160_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP160_J_PLC_START = OP160_ITEM + "J_PLC_START";//PLC开始
    public static final String OP160_J_PC_WRITE_ORDER = OP160_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP160_J_PLC_FINISH = OP160_ITEM + "J_PLC_FINISH";//PLC完成
@@ -318,7 +325,7 @@
     */
    public static final String OP170_ITEM = "OP.OP170.";//
    public static final String OP170_F_HEART_BEAT = OP170_ITEM + "F_HEART_BEAT";//心跳
    public static final String OP170_PLC_REQUST = OP170_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String OP170_J_PLC_START = OP170_ITEM + "J_PLC_START";//PLC开始
    public static final String OP170_J_PC_WRITE_ORDER = OP170_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String OP170_J_PLC_FINISH = OP170_ITEM + "J_PLC_FINISH";//PLC完成
@@ -335,7 +342,7 @@
     */
    public static final String COP010_ITEM = "COP.COP010.";//
    public static final String COP010_F_HEART_BEAT = COP010_ITEM + "F_HEART_BEAT";//心跳
    public static final String COP010_PLC_REQUST = COP010_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String COP010_J_PLC_START = COP010_ITEM + "J_PLC_START";//PLC开始
    public static final String COP010_J_PC_WRITE_ORDER = COP010_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String COP010_J_PLC_FINISH = COP010_ITEM + "J_PLC_FINISH";//PLC完成
@@ -355,7 +362,7 @@
     */
    public static final String COP020_ITEM = "COP.COP020.";//COP
    public static final String COP020_F_HEART_BEAT = COP020_ITEM + "F_HEART_BEAT";//心跳
    public static final String COP020_PLC_REQUST = COP020_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String COP020_J_PLC_START = COP020_ITEM + "J_PLC_START";//PLC开始
    public static final String COP020_J_PC_WRITE_ORDER = COP020_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String COP020_J_PLC_FINISH = COP020_ITEM + "J_PLC_FINISH";//PLC完成
@@ -372,7 +379,7 @@
     */
    public static final String COP030_ITEM = "COP.COP030.";//
    public static final String COP030_F_HEART_BEAT = COP030_ITEM + "F_HEART_BEAT";//心跳
    public static final String COP030_PLC_REQUST = COP030_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String COP030_J_PLC_START = COP030_ITEM + "J_PLC_START";//PLC开始
    public static final String COP030_J_PC_WRITE_ORDER = COP030_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String COP030_J_PLC_FINISH = COP030_ITEM + "J_PLC_FINISH";//PLC完成
@@ -389,7 +396,7 @@
     */
    public static final String BOP010_ITEM = "BOP.BOP010.";//
    public static final String BOP010_F_HEART_BEAT = BOP010_ITEM + "F_HEART_BEAT";//心跳
    public static final String BOP010_PLC_REQUST = BOP010_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String BOP010_J_PLC_START = BOP010_ITEM + "J_PLC_START";//PLC开始
    public static final String BOP010_J_PC_WRITE_ORDER = BOP010_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String BOP010_J_PLC_FINISH = BOP010_ITEM + "J_PLC_FINISH";//PLC完成
@@ -410,7 +417,7 @@
     */
    public static final String BOP020_ITEM = "BOP.BOP020.";//
    public static final String BOP020_F_HEART_BEAT = BOP020_ITEM + "F_HEART_BEAT";//心跳
    public static final String BOP020_PLC_REQUST = BOP020_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String BOP020_J_PLC_START = BOP020_ITEM + "J_PLC_START";//PLC开始
    public static final String BOP020_J_PC_WRITE_ORDER = BOP020_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String BOP020_J_PLC_FINISH = BOP020_ITEM + "J_PLC_FINISH";//PLC完成
@@ -427,7 +434,7 @@
     */
    public static final String BOP030_ITEM = "BOP.BOP030.";//
    public static final String BOP030_F_HEART_BEAT = BOP030_ITEM + "F_HEART_BEAT";//心跳
    public static final String BOP030_PLC_REQUST = BOP030_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String BOP030_J_PLC_START = BOP030_ITEM + "J_PLC_START";//PLC开始
    public static final String BOP030_J_PC_WRITE_ORDER = BOP030_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String BOP030_J_PLC_FINISH = BOP030_ITEM + "J_PLC_FINISH";//PLC完成
@@ -447,7 +454,7 @@
     */
    public static final String BOP030B_ITEM = "BOP.BOP030B.";//
    public static final String BOP030B_F_HEART_BEAT = BOP030B_ITEM + "F_HEART_BEAT";//心跳
    public static final String BOP030B_PLC_REQUST = BOP030B_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String BOP030B_J_PLC_START = BOP030B_ITEM + "J_PLC_START";//PLC开始
    public static final String BOP030B_J_PC_WRITE_ORDER = BOP030B_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String BOP030B_J_PLC_FINISH = BOP030B_ITEM + "J_PLC_FINISH";//PLC完成
@@ -464,7 +471,7 @@
     */
    public static final String BOP040_ITEM = "BOP.BOP040.";//
    public static final String BOP040_F_HEART_BEAT = BOP040_ITEM + "F_HEART_BEAT";//心跳
    public static final String BOP040_PLC_REQUST = BOP040_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String BOP040_J_PLC_START = BOP040_ITEM + "J_PLC_START";//PLC开始
    public static final String BOP040_J_PC_WRITE_ORDER = BOP040_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String BOP040_J_PLC_FINISH = BOP040_ITEM + "J_PLC_FINISH";//PLC完成
@@ -481,7 +488,7 @@
     */
    public static final String BOP040B_ITEM = "BOP.BOP040B.";//
    public static final String BOP040B_F_HEART_BEAT = BOP040B_ITEM + "F_HEART_BEAT";//心跳
    public static final String BOP040B_PLC_REQUST = BOP040B_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String BOP040B_J_PLC_START = BOP040B_ITEM + "J_PLC_START";//PLC开始
    public static final String BOP040B_J_PC_WRITE_ORDER = BOP040B_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String BOP040B_J_PLC_FINISH = BOP040B_ITEM + "J_PLC_FINISH";//PLC完成
@@ -498,7 +505,7 @@
     */
    public static final String EOP010_ITEM = "EOP.EOP010.";
    public static final String EOP010_F_HEART_BEAT = EOP010_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP010_PLC_REQUST = EOP010_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP010_J_PLC_START = EOP010_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP010_J_PC_WRITE_ORDER = EOP010_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP010_J_PLC_FINISH = EOP010_ITEM + "J_PLC_FINISH";//PLC完成
@@ -519,7 +526,7 @@
     */
    public static final String EOP020_ITEM = "EOP.EOP020.";//
    public static final String EOP020_F_HEART_BEAT = EOP020_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP020_PLC_REQUST = EOP020_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP020_J_PLC_START = EOP020_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP020_J_PC_WRITE_ORDER = EOP020_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP020_J_PLC_FINISH = EOP020_ITEM + "J_PLC_FINISH";//PLC完
@@ -536,7 +543,7 @@
     */
    public static final String EOP030_ITEM = "EOP.EOP030.";//
    public static final String EOP030_F_HEART_BEAT = EOP030_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP030_PLC_REQUST = EOP030_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP030_J_PLC_START = EOP030_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP030_J_PC_WRITE_ORDER = EOP030_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP030_J_PLC_FINISH = EOP030_ITEM + "J_PLC_FINISH";//PLC完成
@@ -554,7 +561,7 @@
     */
    public static final String EOP040_ITEM = "EOP.EOP040.";//
    public static final String EOP040_F_HEART_BEAT = EOP040_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP040_PLC_REQUST = EOP040_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP040_J_PLC_START = EOP040_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP040_J_PC_WRITE_ORDER = EOP040_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP040_J_PLC_FINISH = EOP040_ITEM + "J_PLC_FINISH";//PLC完成
@@ -571,7 +578,7 @@
     */
    public static final String EOP050_ITEM = "EOP.EOP050.";//
    public static final String EOP050_F_HEART_BEAT = EOP050_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP050_PLC_REQUST = EOP050_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP050_J_PLC_START = EOP050_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP050_J_PC_WRITE_ORDER = EOP050_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP050_J_PLC_FINISH = EOP050_ITEM + "J_PLC_FINISH";//PLC完成
@@ -588,7 +595,7 @@
     */
    public static final String EOP060_ITEM = "EOP.EOP060.";//
    public static final String EOP060_F_HEART_BEAT = EOP060_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP060_PLC_REQUST = EOP060_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP060_J_PLC_START = EOP060_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP060_J_PC_WRITE_ORDER = EOP060_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP060_J_PLC_FINISH = EOP060_ITEM + "J_PLC_FINISH";//PLC完成
@@ -607,7 +614,7 @@
     */
    public static final String EOP070_ITEM = "EOP.EOP070.";//
    public static final String EOP070_F_HEART_BEAT = EOP070_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP070_PLC_REQUST = EOP070_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP070_J_PLC_START = EOP070_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP070_J_PC_WRITE_ORDER = EOP070_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP070_J_PLC_FINISH = EOP070_ITEM + "J_PLC_FINISH";//PLC完成
@@ -624,7 +631,7 @@
     */
    public static final String EOP070B_ITEM = "EOP.EOP070B.";//
    public static final String EOP070B_F_HEART_BEAT = EOP070B_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP070B_PLC_REQUST = EOP070B_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP070B_J_PLC_START = EOP070B_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP070B_J_PC_WRITE_ORDER = EOP070B_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP070B_J_PLC_FINISH = EOP070B_ITEM + "J_PLC_FINISH";//PLC完成
@@ -641,7 +648,7 @@
     */
    public static final String EOP080_ITEM = "EOP.EOP080.";//
    public static final String EOP080_F_HEART_BEAT = EOP080_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP080_PLC_REQUST = EOP080_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP080_J_PLC_START = EOP080_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP080_J_PC_WRITE_ORDER = EOP080_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP080_J_PLC_FINISH = EOP080_ITEM + "J_PLC_FINISH";//PLC完成
@@ -658,7 +665,7 @@
     */
    public static final String EOP090_ITEM = "EOP.EOP090.";//
    public static final String EOP090_F_HEART_BEAT = EOP090_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP090_PLC_REQUST = EOP090_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP090_J_PLC_START = EOP090_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP090_J_PC_WRITE_ORDER = EOP090_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP090_J_PLC_WRITE_INFO = EOP090_ITEM + "J_PLC_WRITE_INFO";//PLC写信息
@@ -677,7 +684,7 @@
     */
    public static final String EOP090B_ITEM = "EOP.EOP090B.";//
    public static final String EOP090B_F_HEART_BEAT = EOP090B_ITEM + "F_HEART_BEAT";//心跳
    public static final String EOP090B_PLC_REQUST = EOP090B_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String EOP090B_J_PLC_START = EOP090B_ITEM + "J_PLC_START";//PLC开始
    public static final String EOP090B_J_PC_WRITE_ORDER = EOP090B_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String EOP090B_J_PLC_WRITE_INFO = EOP090B_ITEM + "J_PLC_WRITE_INFO";//PLC写信息
@@ -696,7 +703,7 @@
     */
    public static final String DOP010_ITEM = "EOP.DOP010.";//
    public static final String DOP010_F_HEART_BEAT = DOP010_ITEM + "F_HEART_BEAT";//心跳
    public static final String DOP010_PLC_REQUST = DOP010_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String DOP010_J_PLC_START = DOP010_ITEM + "J_PLC_START";//PLC开始
    public static final String DOP010_J_PC_WRITE_ORDER = DOP010_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String DOP010_J_PLC_FINISH = DOP010_ITEM + "J_PLC_FINISH";//PLC完成
@@ -718,7 +725,7 @@
     */
    public static final String DOP020_ITEM = "EOP.DOP020.";//
    public static final String DOP020_F_HEART_BEAT = DOP020_ITEM + "F_HEART_BEAT";//心跳
    public static final String DOP020_PLC_REQUST = DOP020_ITEM + "PLC_REQUST";//PLC交互信息
    public static final String DOP020_J_PLC_START = DOP020_ITEM + "J_PLC_START";//PLC开始
    public static final String DOP020_J_PC_WRITE_ORDER = DOP020_ITEM + "J_PC_WRITE_ORDER";//PC下发工单
    public static final String DOP020_J_PLC_FINISH = DOP020_ITEM + "J_PLC_FINISH";//PLC完成
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/opc/unit/OPCUnit.java
ÎļþÒÑɾ³ý
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/server/HEARTBEAT/HeartBeatServerInterface.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package cn.stylefeng.guns.plcserver.server.HEARTBEAT;
public interface HeartBeatServerInterface {
    public void monitor();
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/server/HEARTBEAT/impl/HeartBeatServerInterfaceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package cn.stylefeng.guns.plcserver.server.HEARTBEAT.impl;
import cn.stylefeng.guns.plcserver.server.HEARTBEAT.HeartBeatServerInterface;
public class HeartBeatServerInterfaceImpl implements HeartBeatServerInterface {
    @Override
    public synchronized void monitor() {
        System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^123456");
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/test.java
ÎļþÒÑɾ³ý
guns-vip-main/src/main/webapp/assets/modular/cm/paramCollection/paramCollection.js
@@ -40,11 +40,13 @@
           /* {field: 'equipmentNo', sort: true, title: '设备编号', width: 125},*/
            {field: 'paramCode', sort: true, title: '参数编码', width: 125},
            {field: 'paramName', sort: true, title: '参数名称', width: 125},
            {field: 'unit', sort: true, title: '单位'},
            {field: 'paramValue', sort: true, title: '参数值'},
            {field: 'spareField2', sort: true, title: '是否合格', width: 125},
            {field: 'paramUpper', sort: true, title: '参数上限', width: 125},
            {field: 'paramLower', sort: true, title: '参数下限', width: 125},
            {field: 'paramStandard', sort: true, title: '标准值'},
            {field: 'unit', sort: true, title: '单位'},
            {field: 'createTime', sort: true, title: '采集时间',minWidth:160},
            {field: 'state', sort: true, title: '状态'},
          /*  {field: 'createUser', sort: true, title: '创建用户'},
guns-vip-main/src/main/webapp/assets/modular/om/productionOrderRecords/productionOrderRecords.js
@@ -22,8 +22,8 @@
            {field: 'workOrderNo', sort: true, title: '生产工单号',minWidth:160},
            {field: 'productNo', sort: true, title: 'SFC总成序列号',minWidth:160},
            /* {field: 'drawingNo', sort: true, title: '图号'},*/
            {field: 'materialCode', sort: true, title: '产品编号',minWidth:160},
            {field: 'materialName', sort: true, title: '产品名称'},
            {field: 'materialCode', sort: true, title: '产品编号',minWidth:140},
            {field: 'materialName', sort: true, title: '产品名称',minWidth:160},
            // {field: 'locationCode', sort: true, title: '工位编号',minWidth:110},
            {field: 'startTime', sort: true, title: '上线时间',minWidth:160},
            {field: 'endTime', sort: true, title: '下线时间',minWidth:160},