yangys
2025-11-21 e8ed1a91c77ab62a924f12acd55777f227bacd7e
smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/ProcessParameterHelperService.java
@@ -24,15 +24,7 @@
    
   @DS("iotdb")
   public ProcessParameterVO queryLastParameterLessThenTime(long workstationId,String item,Long time) {
      /**
       *tdengine实现:oldFirstStatue
       * select last(ts) as realTime,
               last(v)  as value_collect
        from iot_data.super_collect_data
        where n = #{item}
          and ts < #{startTime}
          and workstation_id = #{workstationId}
       */
      ProcessParameterVO vo = null;
      String sql ="select max_time(n) as ts,last_value(n) as n,last_value(v) as v,last_value(workstation_id) as workstationId from root.f2.process_param_"+workstationId+"_"+item+" where time<"+time+" limit 1 align by device";
      List<ProcessParameterVO> list =  jdbcTemplate.query(sql, new RowMapper<ProcessParameterVO>() {
@@ -64,34 +56,7 @@
    */
   @DS("iotdb")
   public ProcessParameterVO getLastParameterGreaterThenTime(long workstationId,String item,Long time) {
      /*
       oldLastStatue
        select last(ts) as realTime,
               last(v)  as value_collect
        from iot_data.super_collect_data
        where n = #{item}
          and ts &gt; #{endTime}
          and workstation_id = #{workstationId}
       * */
      /*
      LastProcessParam lp = this.parameterMapper.lastParameterGreaterThanTime(workstationId,item,time);
      if(lp == null) {
         return null;
      }
      ProcessParameterVO vo = new ProcessParameterVO();
      //解析json为对象列表
      JSONObject paramsObj = JSONObject.parseObject(lp.getParamJson());
      
      if(paramsObj.containsKey(item)) {
         JSONObject itemObj = paramsObj.getJSONObject(item);
         Long lastTime = itemObj.getLong("time");
         vo.setTime(new Timestamp(lastTime));
         vo.setRealTime(lastTime);
         vo.setValueCollect(itemObj.getString("value"));
      }
      return vo;*/
      
      ProcessParameterVO vo = null;
      String sql ="select max_time(n) as ts,last_value(n) as n,last_value(v) as v,last_value(workstation_id) as workstationId from root.f2.process_param_"+workstationId+"_"+item+" where time>"+time+" limit 1 align by device";