| | |
| | | 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; |
| | |
| | | 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, |
| | |
| | | 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完成 |
| | | //处理过站信息 |
| | |
| | | } |
| | | |
| | | public void handleMaterial() { |
| | | |
| | | if(S_ORDER_CODE.isEmpty()){ |
| | | return; |
| | | } |
| | | //查询批次上料信息 |
| | | ProductionOrderBatchInfoParam productionOrderBatchInfoParam = new ProductionOrderBatchInfoParam(); |
| | | productionOrderBatchInfoParam.setWorkOrderNo(S_ORDER_CODE); |
| | |
| | | list = collectionParamConfService.findListBySpec(collectionParamConfParam); |
| | | } |
| | | if(null != list && !list.isEmpty()) { |
| | | |
| | | List<String> nodeIdList = new ArrayList<>(); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | CollectionParamConfResult result = (CollectionParamConfResult) list.get(i); |
| | | Object value = miloService. |
| | | readFromOpcUa(result.getGatherAddress()) |
| | | .getValue();//读参数值 |
| | | if(null != value) { |
| | | ParamCollectionParam paramCollectionParam = new ParamCollectionParam(); |
| | | paramCollectionParam.setParamCode(result.getParamCode()); |
| | | paramCollectionParam.setParamName(result.getParamName()); |
| | | paramCollectionParam.setWorkOrderNo(S_ORDER_CODE); |
| | | paramCollectionParam.setSfcCode(S_SFC_CODE); |
| | | paramCollectionParam.setProductCode(S_PRODUCT_CODE); |
| | | paramCollectionParam.setProductionLine(result.getProductionLine()); |
| | | paramCollectionParam.setLocationCode(result.getLocationCode()); |
| | | paramCollectionParam.setParamValue(value.toString()); |
| | | paramCollectionParam.setParamLower(result.getParamLower()); |
| | | paramCollectionParam.setParamUpper(result.getParamUpper()); |
| | | paramCollectionParam.setParamStandard(result.getParamCentral()); |
| | | paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate()); |
| | | paramCollectionParam.setUnit(result.getUnit()); |
| | | paramCollectionService.add(paramCollectionParam); |
| | | nodeIdList.add(result.getGatherAddress()); |
| | | } |
| | | |
| | | List<ReadWriteEntity> readWriteEntityList = new ArrayList<>(); |
| | | if(CollUtil.isNotEmpty(nodeIdList)){ |
| | | readWriteEntityList = miloService.readFromOpcUa(nodeIdList); |
| | | } |
| | | |
| | | List<ParamCollection> paramCollectionlist = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(nodeIdList)){ |
| | | for(int i=0;i<nodeIdList.size();i++){ |
| | | if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue())){ |
| | | CollectionParamConfResult result = (CollectionParamConfResult) list.get(i); |
| | | |
| | | String value = "0"; |
| | | if (readWriteEntityList.get(i).getValue() != null){ |
| | | value = readWriteEntityList.get(i).getValue().toString(); |
| | | } |
| | | if(result.getParamName() != null && result.getParamName().contains("状态")){ |
| | | if("2".equals(value)){ |
| | | value = "不合格"; |
| | | }else { |
| | | value = "合格"; |
| | | } |
| | | } |
| | | ParamCollection paramCollectionParam = new ParamCollection(); |
| | | paramCollectionParam.setParamCode(result.getParamCode()); |
| | | paramCollectionParam.setParamName(result.getParamName()); |
| | | paramCollectionParam.setWorkOrderNo(S_ORDER_CODE); |
| | | paramCollectionParam.setSfcCode(S_SFC_CODE); |
| | | paramCollectionParam.setProductCode(S_PRODUCT_CODE); |
| | | paramCollectionParam.setProductionLine(result.getProductionLine()); |
| | | paramCollectionParam.setLocationCode(result.getLocationCode()); |
| | | paramCollectionParam.setParamValue(value.toString()); |
| | | paramCollectionParam.setParamLower(result.getParamLower()); |
| | | paramCollectionParam.setParamUpper(result.getParamUpper()); |
| | | paramCollectionParam.setParamStandard(result.getParamCentral()); |
| | | paramCollectionParam.setCollectionTime(DateTool.getLocalTimeForDate()); |
| | | paramCollectionParam.setUnit(result.getUnit()); |
| | | paramCollectionParam.setSpareField2(PRODUCT_STATE); |
| | | paramCollectionlist.add(paramCollectionParam); |
| | | } |
| | | } |
| | | paramCollectionService.saveBatch(paramCollectionlist); |
| | | } |
| | | } |
| | | |