cl
2024-05-23 ba1a7a9ef126296e2798e313dc5b43f775a1123c
修改数据采集
已重命名1个文件
已修改50个文件
已删除3个文件
已添加2个文件
3401 ■■■■ 文件已修改
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 53 ●●●● 补丁 | 查看 | 原始文档 | 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 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/COP030Callback.java 50 ●●●● 补丁 | 查看 | 原始文档 | 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 38 ●●●● 补丁 | 查看 | 原始文档 | 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 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP050Callback.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/EOP060Callback.java 45 ●●●● 补丁 | 查看 | 原始文档 | 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 52 ●●●● 补丁 | 查看 | 原始文档 | 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 60 ●●●● 补丁 | 查看 | 原始文档 | 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 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP050Callback.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP070Callback.java 59 ●●●● 补丁 | 查看 | 原始文档 | 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 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP100Callback.java 58 ●●●● 补丁 | 查看 | 原始文档 | 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 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP120Callback.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP130BCallback.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP130Callback.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP140Callback.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/OP150Callback.java 51 ●●●● 补丁 | 查看 | 原始文档 | 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 10 ●●●● 补丁 | 查看 | 原始文档 | 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 705 ●●●● 补丁 | 查看 | 原始文档 | 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,13 +229,36 @@
            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();
                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);
@@ -237,12 +272,14 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +228,36 @@
            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();
                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);
@@ -240,12 +271,14 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +228,36 @@
            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();
                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);
@@ -240,9 +271,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +223,29 @@
            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();
                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);
@@ -238,12 +259,13 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +224,36 @@
            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();
                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);
@@ -237,9 +267,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +226,36 @@
            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();
                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);
@@ -238,9 +269,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +223,36 @@
            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();
                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);
@@ -238,12 +266,13 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +225,36 @@
            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();
                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);
@@ -238,12 +268,14 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +245,37 @@
            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();
                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);
@@ -256,9 +289,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +241,38 @@
            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();
                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);
@@ -252,12 +286,14 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +298,36 @@
            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();
                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);
@@ -310,9 +341,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +242,36 @@
            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();
                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);
@@ -255,9 +285,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +286,36 @@
            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();
                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);
@@ -298,12 +329,14 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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,13 +244,36 @@
            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();
                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);
@@ -256,9 +287,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +239,36 @@
            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();
                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);
@@ -254,9 +282,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +242,36 @@
            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();
                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);
@@ -254,9 +285,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +239,36 @@
            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();
                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);
@@ -254,9 +282,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +244,36 @@
            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();
                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);
@@ -256,9 +287,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +243,36 @@
            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();
                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);
@@ -253,9 +286,12 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        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/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,13 +239,36 @@
            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();
                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);
@@ -253,9 +282,11 @@
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                        paramCollectionlist.add(paramCollectionParam);
                }
            }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
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,6 +165,7 @@
                .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);
@@ -174,7 +174,9 @@
        if(!list2.isEmpty()){
            ProductionOrderRecordsResult productionOrderRecordsResult = list2.get(0);
            productionOrderRecordsParam.setId(productionOrderRecordsResult.getId());
            productionOrderRecordsParam.setWhetherPass(S_PRODUCT_STATE_CODE);
                if("2".equals(S_PRODUCT_STATE_CODE)) {
                    productionOrderRecordsParam.setWhetherPass("不合格");
                }
            productionOrderRecordsParam.setEndTime(DateTool.getLocalTimeForDate());
            productionOrderRecordsService.update(productionOrderRecordsParam);
        }
@@ -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,10 +111,10 @@
    EOP090Callback EOP090Callback;
    EOP090BCallback EOP090BCallback;
    StateCallback StateCallback;
    //StateCallback StateCallback;
    public InitCallback(MiloService miloService,
    public SubscriptionManage(MiloService miloService,
                        ProductionOrdeInfoService productionOrdeInfoService,
                        PassingStationCollectionService passingStationCollectionService,
                        ParamCollectionService paramCollectionService,
@@ -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,16 +884,16 @@
                    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())) {
                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();
@@ -732,21 +901,40 @@
                        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},