cl
2024-05-23 ba1a7a9ef126296e2798e313dc5b43f775a1123c
guns-vip-main/src/main/java/cn/stylefeng/guns/plcserver/callback/DOP020Callback.java
@@ -1,11 +1,14 @@
package cn.stylefeng.guns.plcserver.callback;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.params.CollectionParamConfParam;
import cn.stylefeng.guns.modular.bs.collectionParamConf.model.result.CollectionParamConfResult;
import cn.stylefeng.guns.modular.bs.collectionParamConf.service.CollectionParamConfService;
import cn.stylefeng.guns.modular.bs.equipmentInfo.service.EquipmentInfoService;
import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
import cn.stylefeng.guns.modular.cm.paramCollection.entity.ParamCollection;
import cn.stylefeng.guns.modular.cm.paramCollection.model.params.ParamCollectionParam;
import cn.stylefeng.guns.modular.cm.paramCollection.service.ParamCollectionService;
import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
@@ -177,7 +180,9 @@
    }
    public void handleMaterial() {
        if(S_ORDER_CODE.isEmpty()){
            return;
        }
        //查询批次上料信息
        ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam();
        productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE);
@@ -218,32 +223,49 @@
            list = collectionParamConfService.findListBySpec(collectionParamConfParam);
        }
        if(null != list && !list.isEmpty()) {
            List<String> nodeIdList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                Object value = miloService.
                        readFromOpcUa(result.getGatherAddress())
                        .getValue();//读参数值
                if(null != value) {
                    ParamCollectionParam paramCollectionParam = new ParamCollectionParam();
                    paramCollectionParam.setParamCode(result.getParamCode());
                    paramCollectionParam.setParamName(result.getParamName());
                    paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                    paramCollectionParam.setSfcCode(S_SFC_CODE);
                    paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                    paramCollectionParam.setProductionLine(result.getProductionLine());
                    paramCollectionParam.setLocationCode(result.getLocationCode());
                    paramCollectionParam.setParamValue(value.toString());
                    paramCollectionParam.setParamLower(result.getParamLower());
                    paramCollectionParam.setParamUpper(result.getParamUpper());
                    paramCollectionParam.setParamStandard(result.getParamCentral());
                    paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                    paramCollectionParam.setUnit(result.getUnit());
                    paramCollectionService.add(paramCollectionParam);
                nodeIdList.add(result.getGatherAddress());
            }
            List<ReadWriteEntity> readWriteEntityList = new ArrayList<>();
            if(CollUtil.isNotEmpty(nodeIdList)){
                readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
            }
            List<ParamCollection> paramCollectionlist = new ArrayList<>();
            if (CollUtil.isNotEmpty(nodeIdList)){
                for(int i=0;i<nodeIdList.size();i++){
                    if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){
                        CollectionParamConfResult result = (CollectionParamConfResult) list.get(i);
                        String value = "0";
                        if (readWriteEntityList.get(i).getValue() != null){
                            value = readWriteEntityList.get(i).getValue().toString();
                        }
                        ParamCollection paramCollectionParam = new ParamCollection();
                        paramCollectionParam.setParamCode(result.getParamCode());
                        paramCollectionParam.setParamName(result.getParamName());
                        paramCollectionParam.setWorkOrderNo(S_ORDER_CODE);
                        paramCollectionParam.setSfcCode(S_SFC_CODE);
                        paramCollectionParam.setProductCode(S_PRODUCT_CODE);
                        paramCollectionParam.setProductionLine(result.getProductionLine());
                        paramCollectionParam.setLocationCode(result.getLocationCode());
                        paramCollectionParam.setParamValue(value.toString());
                        paramCollectionParam.setParamLower(result.getParamLower());
                        paramCollectionParam.setParamUpper(result.getParamUpper());
                        paramCollectionParam.setParamStandard(result.getParamCentral());
                        paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate());
                        paramCollectionParam.setUnit(result.getUnit());
                        paramCollectionlist.add(paramCollectionParam);
                    }
                }
                paramCollectionService.saveBatch(paramCollectionlist);
            }
        }
        logger.info("handleInfo END!");
    }
}