| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.jcdm.main.da.paramCollection.domain.DaParamCollection; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | * @author yyt |
| | | * @date 2023-12-13 |
| | | */ |
| | | @Mapper |
| | | public interface DaParamCollectionMapper extends BaseMapper<DaParamCollection> |
| | | { |
| | | /** |
| | |
| | | |
| | | void saveBeachDaParamCollection(List<DaParamCollection> list); |
| | | |
| | | void insertBatch(List<DaParamCollection> confList); |
| | | |
| | | } |
| | |
| | | package com.jcdm.main.da.paramCollection.service.impl; |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.db.Db; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.jcdm.common.utils.DateUtils; |
| | | import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo; |
| | |
| | | daPassingStationCollections.get(0).setOutboundTime(new Date()); |
| | | int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0)); |
| | | |
| | | OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode()); |
| | | // OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode()); |
| | | |
| | | //给opc发21 |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("OP."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build()); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void insertBatch(List<DaParamCollection> confList){ |
| | | try{ |
| | | this.saveBatch(confList); |
| | | }catch (Exception e){ |
| | | return; |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | @Autowired |
| | | private IDaParamCollectionService daParamCollectionService; |
| | | |
| | | @Autowired |
| | | private IDaCollectionParamConfService daCollectionParamConfService; |
| | | |
| | | @Override |
| | | public void run(ApplicationArguments args) throws Exception { |
| | | |
| | |
| | | lists.add(OPCElement.OP_OP250_AngleResult);//请求记录数据 |
| | | lists.add(OPCElement.OP_OP380_RecordData);//请求记录数据 |
| | | lists.add(OPCElement.OP_OP380_AngleResult);//请求记录数据 |
| | | lists.add(OPCElement.OP_OP300_RecordData);//请求记录数据 |
| | | lists.add(OPCElement.OP_OP300_AngleResult);//请求记录数据 |
| | | return lists; |
| | | } |
| | | } |
| | |
| | | |
| | | public static final String OP_OP380_AngleResult = "OP.OP380.AngleResult";//请求拧紧数据 |
| | | |
| | | /** |
| | | * OP300 |
| | | */ |
| | | public static final String OP_OP300_RecordData = "OP.OP300.RecordData";//请求记录数据 |
| | | |
| | | public static final String OP_OP300_AngleResult = "OP.OP300.AngleResult";//请求拧紧数据 |
| | | |
| | | |
| | | |
| | | |
| | |
| | | package com.jcdm.main.plcserver.sub; |
| | | |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.jcdm.framework.websocket.WebSocketUsers; |
| | | import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; |
| | | import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; |
| | |
| | | //自动工位 |
| | | public List<String> automaticList = Arrays.asList("OP300","OP280", "OP320", "OP340", "OP350", "OP360","OP370", "OP390", "OP470", "OP530", "OP540"); |
| | | |
| | | public List<String> moduleCodeList = Arrays.asList("OP300","OP310", "OP320", "OP340", "OP350", "OP33"); |
| | | |
| | | public List<String> nullList = Arrays.asList("OP250","OP260"); |
| | | |
| | | |
| | | public static MiloService miloService; |
| | | |
| | | Map<String, Session> map = WebSocketUsers.getUsers(); |
| | |
| | | IDaParamCollectionService daParamCollectionService) { |
| | | OPCUaSubscription.miloService = miloService; |
| | | this.daPassingStationCollectionService = daPassingStationCollectionService; |
| | | this.collectionParamConfService = collectionParamConfService; |
| | | this.daParamCollectionService = daParamCollectionService; |
| | | OPCUaSubscription.collectionParamConfService = collectionParamConfService; |
| | | OPCUaSubscription.daParamCollectionService = daParamCollectionService; |
| | | |
| | | } |
| | | |
| | |
| | | return SNCode; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 出站保存数据 |
| | | */ |
| | | public String outSaveDate(String thoroughfare,String device) { |
| | | String snCode = ""; |
| | | String result = ""; |
| | | String read = thoroughfare + "." + device + "."; |
| | | |
| | | try { |
| | | //读取SNCode |
| | | String PACKCode = thoroughfare + "." + device + ".PACKCode"; |
| | | Object PACKCodeObject = miloService.readFromOpcUa(PACKCode).getValue(); |
| | | if(null == PACKCodeObject || "".equals(PACKCodeObject)){ |
| | | result = "22"; |
| | | if(nullList.stream().noneMatch(s -> s.equals(device))){ |
| | | if(moduleCodeList.stream().anyMatch(s -> s.equals(device))){ |
| | | read = read + "ModuleCode"; |
| | | }else { |
| | | read = read + "PACKCode"; |
| | | } |
| | | } |
| | | snCode = miloService.readFromOpcUa(read).getValue().toString(); |
| | | |
| | | if(null == snCode || "".equals(snCode)){ |
| | | result = "22"; |
| | | }else{ |
| | | String PACKCodeParam = PACKCodeObject.toString(); |
| | | //1、更新工单信息 |
| | | //updateOrderInfo(); |
| | | //2、保存过站采集数据 |
| | | saveStationInfo(PACKCodeParam,thoroughfare,device); |
| | | String workOrderNo = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "WorkOrderNumber").getValue().toString(); |
| | | String productCode = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "ProductType").getValue().toString(); |
| | | |
| | | saveStationInfo(snCode,thoroughfare,device,workOrderNo,productCode); |
| | | //3、保存参数采集数据 |
| | | SaveParamData(PACKCodeParam,thoroughfare,device,"",""); |
| | | SaveParamData(snCode,thoroughfare,device,workOrderNo,productCode); |
| | | |
| | | result = "21"; |
| | | |
| | | } |
| | | |
| | | }catch (Exception e) { |
| | | |
| | | System.out.println(e.getMessage()); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | // /** |
| | | // * 出站保存数据 |
| | | // */ |
| | | // public String outSaveDate(String thoroughfare,String device) { |
| | | // String result = ""; |
| | | // try { |
| | | // //读取SNCode |
| | | // String PACKCode = thoroughfare + "." + device + ".PACKCode"; |
| | | // Object PACKCodeObject = miloService.readFromOpcUa(PACKCode).getValue(); |
| | | // if(null == PACKCodeObject || "".equals(PACKCodeObject)){ |
| | | // result = "22"; |
| | | // }else{ |
| | | // String PACKCodeParam = PACKCodeObject.toString(); |
| | | // //1、更新工单信息 |
| | | // //updateOrderInfo(); |
| | | // //2、保存过站采集数据 |
| | | // saveStationInfo(PACKCodeParam,thoroughfare,device); |
| | | // //3、保存参数采集数据 |
| | | // SaveParamData(PACKCodeParam,thoroughfare,device,"",""); |
| | | // |
| | | // result = "21"; |
| | | // |
| | | // } |
| | | // |
| | | // }catch (Exception e) { |
| | | // |
| | | // } |
| | | // return result; |
| | | // } |
| | | |
| | | /** |
| | | * 保存过站采集 |
| | | */ |
| | | public void saveStationInfo(String packCode,String thoroughfare,String device) throws Exception { |
| | | public void saveStationInfo(String packCode,String thoroughfare,String device,String workOrderNo,String productCode) throws Exception { |
| | | String prefix = thoroughfare+"."+device+"."; |
| | | String workOrderNo = miloService.readFromOpcUa(prefix + "WorkOrderNumber").getValue().toString(); |
| | | String startTime = miloService.readFromOpcUa(prefix + "StartTime").getValue().toString(); |
| | | String stopTime = miloService.readFromOpcUa(prefix + "StopTime").getValue().toString(); |
| | | String stationStatus = miloService.readFromOpcUa(prefix + "StationStatus").getValue().toString(); |
| | |
| | | DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection(); |
| | | daPassingStationCollection.setSfcCode(packCode); |
| | | daPassingStationCollection.setWorkOrderNo(workOrderNo); |
| | | daPassingStationCollection.setProductCode(productCode); |
| | | daPassingStationCollection.setLocationCode(device); |
| | | // daPassingStationCollection.setInboundTime(startTime);//入站时间 |
| | | // daPassingStationCollection.setOutboundTime(stopTime);//出站时间 |
| | | daPassingStationCollection.setOutRsSign(stationStatus);//出站是否合格 |
| | |
| | | for(int i=0;i<nodeIdList.size();i++){ |
| | | if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){ |
| | | DaParamCollection ParamCollection = new DaParamCollection(); |
| | | // ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]); |
| | | ParamCollection.setParamCode(list.get(i).getCollectParameterId()); |
| | | ParamCollection.setLocationCode(device); |
| | | ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); |
| | |
| | | } |
| | | daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist); |
| | | } |
| | | addBaseData(workOrderNo,productType,device,packCode); |
| | | |
| | | } |
| | | |
| | | public static void addBaseData(String workOrderNo,String productCode,String locationCode,String packCode){ |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("GC", "南浔工厂"); |
| | | map.put("CXBH", "Pack线"); |
| | | map.put("SBBH", "设备001"); |
| | | map.put("YGBH", "员工001"); |
| | | List<DaParamCollection> confList = new ArrayList<>(); |
| | | map.forEach((key, value) -> { |
| | | List<DaCollectionParamConf> daCollectionParamConfs = collectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>() |
| | | .eq(DaCollectionParamConf::getProcessesCode,locationCode) |
| | | .like(DaCollectionParamConf::getCollectParameterId,key)); |
| | | DaParamCollection saveData = new DaParamCollection(); |
| | | saveData.setWorkOrderNo(workOrderNo); |
| | | saveData.setProductCode(productCode); |
| | | saveData.setLocationCode(locationCode); |
| | | saveData.setSfcCode(packCode); |
| | | saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId()); |
| | | saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName()); |
| | | saveData.setCollectionTime(new Date()); |
| | | saveData.setParamValue(value); |
| | | confList.add(saveData); |
| | | }); |
| | | daParamCollectionService.insertBatch(confList); |
| | | } |
| | | } |
| | |
| | | <result property="createTime" column="create_time" /> |
| | | <result property="updateUser" column="update_user" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | <result property="spareField1" column="spare_field_1" /> |
| | | <result property="spareField2" column="spare_field_2" /> |
| | | <result property="spareField3" column="spare_field_3" /> |
| | | <result property="spareField4" column="spare_field_4" /> |
| | | <result property="spareField1" column="spare_field1" /> |
| | | <result property="spareField2" column="spare_field2" /> |
| | | <result property="spareField3" column="spare_field3" /> |
| | | <result property="spareField4" column="spare_field4" /> |
| | | <result property="processesName" column="processes_name" /> |
| | | <result property="device" column="device" /> |
| | | <result property="project" column="project" /> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="selectDaCollectionParamConfVo"> |
| | | select id, processes_code, product_model, parameter_set_code, parameter_set_name, collect_parameter_id, collect_parameter_name, contrast_parameter_flag, collect_parameter_type, collect_parameter_unit, Descriptives, param_upper, param_lower, param_Central, product_code, gather_address, gather_sequence, remarks, create_user, create_time, update_user, update_time, spare_field_1, spare_field_2, spare_field_3, spare_field_4, processes_name, device, project, accuracy, array_length, acquisition_frequency, demand_department, whether_to_collect, default_value from da_collection_param_conf |
| | | select id, processes_code, product_model, parameter_set_code, parameter_set_name, collect_parameter_id, collect_parameter_name, contrast_parameter_flag, collect_parameter_type, collect_parameter_unit, Descriptives, param_upper, param_lower, param_Central, product_code, gather_address, gather_sequence, remarks, create_user, create_time, update_user, update_time, spare_field1, spare_field2, spare_field3, spare_field4, processes_name, device, project, accuracy, array_length, acquisition_frequency, demand_department, whether_to_collect, default_value from da_collection_param_conf |
| | | </sql> |
| | | |
| | | <select id="selectDaCollectionParamConfList" parameterType="DaCollectionParamConf" resultMap="DaCollectionParamConfResult"> |
| | |
| | | <if test="createTime != null">create_time,</if> |
| | | <if test="updateUser != null">update_user,</if> |
| | | <if test="updateTime != null">update_time,</if> |
| | | <if test="spareField1 != null">spare_field_1,</if> |
| | | <if test="spareField2 != null">spare_field_2,</if> |
| | | <if test="spareField3 != null">spare_field_3,</if> |
| | | <if test="spareField4 != null">spare_field_4,</if> |
| | | <if test="spareField1 != null">spare_field1,</if> |
| | | <if test="spareField2 != null">spare_field2,</if> |
| | | <if test="spareField3 != null">spare_field3,</if> |
| | | <if test="spareField4 != null">spare_field4,</if> |
| | | <if test="processesName != null">processes_name,</if> |
| | | <if test="device != null">device,</if> |
| | | <if test="project != null">project,</if> |
| | |
| | | <if test="createTime != null">create_time = #{createTime},</if> |
| | | <if test="updateUser != null">update_user = #{updateUser},</if> |
| | | <if test="updateTime != null">update_time = #{updateTime},</if> |
| | | <if test="spareField1 != null">spare_field_1 = #{spareField1},</if> |
| | | <if test="spareField2 != null">spare_field_2 = #{spareField2},</if> |
| | | <if test="spareField3 != null">spare_field_3 = #{spareField3},</if> |
| | | <if test="spareField4 != null">spare_field_4 = #{spareField4},</if> |
| | | <if test="spareField1 != null">spare_field1 = #{spareField1},</if> |
| | | <if test="spareField2 != null">spare_field2 = #{spareField2},</if> |
| | | <if test="spareField3 != null">spare_field3 = #{spareField3},</if> |
| | | <if test="spareField4 != null">spare_field4 = #{spareField4},</if> |
| | | <if test="processesName != null">processes_name = #{processesName},</if> |
| | | <if test="device != null">device = #{device},</if> |
| | | <if test="project != null">project = #{project},</if> |
| | |
| | | }, |
| | | content: '', |
| | | activeName: 'first', |
| | | url: "ws://192.168.11.6:8080/websocket/message/", |
| | | url: "ws://192.168.10.40:8080/websocket/message/", |
| | | message: "", |
| | | text_content: "", |
| | | ws: null, |