package com.hb.proj.data.service; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hb.proj.model.LiquidPO; import com.hb.proj.model.LiquidVO; import com.hb.xframework.dao.core.SpringJdbcDAO; import com.hb.xframework.dao.util.PageModel; @Service public class LiquidService { @Autowired private SpringJdbcDAO dao; /** * 分页查询指定井的动液面数据 目前不用del_if过滤 * @param wellId * @param startTime * @param endTime * @param pageNo * @param pageSize * @return */ public PageModel query(String wellId,Date startTime,Date endTime,int pageNo,int pageSize){ String sql=""" select w.well_name,data_id,test_time,liquid_depth,compute_mode,sound_speed_dev,liquid_depth_dev,casing_press_dev from tzl_gather_data_liquid d left join tzl_well w on d.well_id=w.well_id where d.well_id=? and test_time between ? and ? order by test_time desc """; return dao.queryForPagedData(sql, pageNo, pageSize, LiquidVO.class, wellId,startTime,endTime); } /** * 保存收到计算结果 * @param liquid */ public void saveCalculate(LiquidPO liquid) { String sql=""" update tzl_gather_data_liquid set modify_time=now() ,modify_by=? ,liquid_suface_pos=? ,well_head_poss=? ,liquid_depth=? ,compute_mode=? """; List args=new ArrayList<>(); args.addAll(Arrays.asList(liquid.getModifyBy(),liquid.getLiquidSufacePos(),liquid.getWellHeadPos(),liquid.getLiquidDepth(),liquid.getComputeMode())); if(liquid.getComputeMode().equals(LiquidPO.MODE_HOOP)) { sql+=",start_hoop_pos=?,end_hoop_pos=?,avg_length_pipe=?,hoop_count=? "; args.addAll(Arrays.asList(liquid.getStartHoopPos(),liquid.getEndHoopPos(),liquid.getAvgLengthPipe(),liquid.getHoopCount())); } else if(liquid.getComputeMode().equals(LiquidPO.MODE_SOUND_SPEED)) { sql+=",sound_speed=?"; args.add(liquid.getSoundSpeed()); } else if(liquid.getComputeMode().equals(LiquidPO.MODE_SOUND_MARK)) { sql+=",sound_mark_pos=?,sound_mark_depth=?"; args.add(liquid.getSoundMarkPos()); args.add(liquid.getSoundMarkDepth()); } sql+=" where data_id=?"; args.add(liquid.getDataId()); dao.exeUpdate(sql, args.toArray()); } /** * 获得动液面单个记录明细数据 * @param dataId * @return */ public LiquidPO getDtl(String dataId) { return dao.queryForPojo("select * from tzl_gather_data_liquid where data_id=?", LiquidPO.class, dataId); } /** * 逻辑删除动液面记录 * @param dataId */ public void delete(String dataId) { dao.exeUpdate("update tzl_gather_data_liquid set del_if=true where data_id=?", dataId); } }