yangys
2024-09-03 52ff3bda72646a532c3297e4843bc4d5aee8b949
collect/src/main/java/com/qianwen/mdc/collect/handler/DeviceStatusDataHandler.java
@@ -1,34 +1,31 @@
package com.qianwen.mdc.collect.handler;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Date;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.write.record.Tablet;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.qianwen.mdc.collect.cache.WorkstationCache;
import com.qianwen.mdc.collect.config.IotDBSessionConfig;
import com.qianwen.mdc.collect.constants.IOTDBConstant;
import com.qianwen.mdc.collect.dto.PackedTelemetryData;
import com.qianwen.mdc.collect.entity.iotdb.DeviceState;
import com.qianwen.mdc.collect.entity.mgr.GlobalWcsOfRps;
import com.qianwen.mdc.collect.enums.FeedbackTimePointEnum;
import com.qianwen.mdc.collect.service.IotDBCommonService;
import com.qianwen.mdc.collect.service.DeviceStateService;
@Component
public class DeviceStatusDataHandler implements TelemetryDataHandler {
    private static final Logger log = LoggerFactory.getLogger(DeviceStatusDataHandler.class);
    @Autowired
    private WorkstationCache workstationCache;
    //@Autowired
   //private IotDBSessionConfig iotdbCfg;
    //@Autowired
    //private IotDBCommonService iotDBCommonService;
    @Autowired
   private IotDBSessionConfig iotdbCfg;
    @Autowired
    private IotDBCommonService iotDBCommonService;
    private DeviceStateService deviceStateService;
    @Override
    public void handleData(PackedTelemetryData data) {
       DeviceState state = new DeviceState();
@@ -42,15 +39,21 @@
       state.setIsFixPoint(false);
       state.setIsSync(false);
       state.setIsDeleted(false);
       //state.setEmployeeId(WorkstationCache.getBelongToEmployeeForWorkstation(entity.getWorkstationId(), new Date(entity.getTs().longValue())));
       state.setEmployeeId(workstationCache.getBelongToEmployeeForWorkstation(data.getWorkstationId(), new Date(data.getTime())));
       state.setFeedbackPointType(FeedbackTimePointEnum.NO_FEED_BACK_POINT.getValue());
       //WorkstationState propertyData = (WorkstationState) Objects.requireNonNull(BeanUtil.copy(entity, WorkstationState.class));
       state.setValueCollect(Integer.valueOf(data.getValue()));
       state.setWcs(state.getValueCollect());
       state.setWorkstationId(data.getWorkstationId());
       state.setShiftIndex(data.getShiftIndex());
       state.setShiftTimeType(data.getShiftTimeType());
        fillWorkStationCondition(data, state);
       
        insertState(state);
        //insertState(state);
        deviceStateService.saveDeviceStates(Arrays.asList(state));
        
        log.info("状态聚合聚合完成:数据");
    }
@@ -64,7 +67,7 @@
        //log.info("获取包装工况以及绩效信息" + JsonUtil.toJson(workstationState));
       
    }
    /*
    void insertState(DeviceState state){
       String deviceId = IOTDBConstant.DB_PREFIX+IOTDBConstant.TEMPLATE_STATE+"_"+state.getWorkstationId();
       try {
@@ -83,6 +86,10 @@
          schemas.add(new MeasurementSchema("shift_time_type", TSDataType.INT32));
          schemas.add(new MeasurementSchema("wcs", TSDataType.INT32));
          schemas.add(new MeasurementSchema("rps", TSDataType.INT32));
          schemas.add(new MeasurementSchema("is_fix_point", TSDataType.BOOLEAN));
          schemas.add(new MeasurementSchema("is_sync", TSDataType.BOOLEAN));
          schemas.add(new MeasurementSchema("is_plan", TSDataType.INT32));
          schemas.add(new MeasurementSchema("feedback_point_type", TSDataType.INT32));
          schemas.add(new MeasurementSchema("feedback_id", TSDataType.INT64));
@@ -101,10 +108,14 @@
          tablet.addValue("factory_month", rowIndex, state.getFactoryMonth());
          tablet.addValue("factory_week", rowIndex, state.getFactoryWeek());
          tablet.addValue("factory_date", rowIndex, state.getFactoryDate());
          tablet.addValue("shift_index", rowIndex, state.getShiftIndex());
          tablet.addValue("shift_time_type", rowIndex, state.getShiftTimeType());
          tablet.addValue("shift_index", rowIndex, state.getShiftIndex());//TODO null
          tablet.addValue("shift_time_type", rowIndex, state.getShiftTimeType());//TODO null
          tablet.addValue("wcs", rowIndex, state.getWcs());
          tablet.addValue("rps", rowIndex, state.getRps());
          tablet.addValue("is_fix_point", rowIndex,state.getIsFixPoint());
          tablet.addValue("is_sync", rowIndex, state.getIsSync());
          tablet.addValue("is_plan", rowIndex, state.getIsPlan());
          tablet.addValue("feedback_point_type", rowIndex, state.getFeedbackPointType());
          tablet.addValue("feedback_id", rowIndex, state.getFeedbackId());
@@ -117,5 +128,5 @@
      } catch (Exception e) {
         log.error("聚合产量IODDB入库失败", e);
      }
    }
    }*/
}