| package com.dy.pipIrrRemote.monitor.common; | 
|   | 
| import com.alibaba.fastjson2.JSONArray; | 
| import com.alibaba.fastjson2.JSONObject; | 
| import com.dy.pipIrrGlobal.command.CommandSv; | 
| import com.dy.pipIrrGlobal.daoPr.PrCommonIntakesMapper; | 
| import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; | 
| import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; | 
| import com.dy.pipIrrGlobal.pojoPr.PrCommonIntakes; | 
| import com.dy.pipIrrGlobal.pojoPr.PrController; | 
| import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; | 
| import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.util.Date; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2025/5/9 14:45 | 
|  * @Description | 
|  */ | 
| public class ComSv extends CommandSv { | 
|   | 
|     @Autowired | 
|     protected PrControllerMapper prControllerDao ; | 
|     @Autowired | 
|     protected RmCommandHistoryMapper rmCommandHistoryDao ; | 
|     @Autowired | 
|     private PrCommonIntakesMapper prCommonIntakesDao; | 
|   | 
|     public PrController getRtu(Long intakeId){ | 
|         return this.getRtu(prControllerDao, intakeId); | 
|     } | 
|     /** | 
|      * 创建命令日志对象 | 
|      * | 
|      * @param comId       主键 | 
|      * @param commandCode 功能码 | 
|      * @param rtuAddr     阀控器地址 | 
|      * @param protocol    通讯协议名称 | 
|      * @param param       参数数据 | 
|      * @param operator    操作员 | 
|      * @return | 
|      */ | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public RmCommandHistory saveComHistoryPo(Long comId, | 
|                                              String protocol, | 
|                                              String commandCode, | 
|                                              String commandName, | 
|                                              Long intakeId, | 
|                                              String rtuAddr, | 
|                                              Object param, | 
|                                              Long operator) { | 
|         return this.saveComHistoryPo(rmCommandHistoryDao, comId, protocol, commandCode, commandName, intakeId, rtuAddr, param, operator) ; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 添加常用取水口或更新使用信息 | 
|      * @param operatorId | 
|      * @param intakeId | 
|      * @return | 
|      */ | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public PrCommonIntakes addOrUpdateOftenUseIntake(Long operatorId, Long intakeId) { | 
|         PrCommonIntakes po = prCommonIntakesDao.selectByOperatorAndIntake(operatorId, intakeId); | 
|         if(po == null) { | 
|             po = new PrCommonIntakes(); | 
|             po.setOperatorId(operatorId); | 
|             po.setIntakeId(intakeId); | 
|             po.setLastUsedTime(new Date()); | 
|             po.setUsageCount(1); | 
|             prCommonIntakesDao.insert(po); | 
|         }else{ | 
|             po.setLastUsedTime(new Date()); | 
|             po.setUsageCount(po.getUsageCount() + 1); | 
|             prCommonIntakesDao.updateByPrimaryKeySelective(po); | 
|         } | 
|         return po ; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 根据取水口ID获取该取水口未关阀参数,平台选择取水口关阀使用 | 
|      * @param intakeId | 
|      * @return | 
|      */ | 
|     public VoUnclosedParam selectUncloseParam(Long intakeId, String rtuAddr) { | 
|         JSONArray jsonArr = new JSONArray(); | 
|         JSONObject jsonObj = new JSONObject(); | 
|         jsonObj.put("rtuAddr", rtuAddr); | 
|         jsonObj.put("isOnLine", true); | 
|         jsonArr.add(jsonObj); | 
|         return rmCommandHistoryDao.getUncloseParam(jsonArr.toJSONString(), intakeId); | 
|     } | 
|   | 
|     /** | 
|      * 根据取水口ID获取该取水口未关阀参数,平台选择取水口关阀使用 | 
|      * @param intakeId | 
|      * @param rtuAddr | 
|      * @param code | 
|      * @return | 
|      */ | 
|     public VoUnclosedParam selectUncloseParamByCd(Long intakeId, String rtuAddr, String code) { | 
|         JSONArray jsonArr = new JSONArray(); | 
|         JSONObject jsonObj = new JSONObject(); | 
|         jsonObj.put("rtuAddr", rtuAddr); | 
|         jsonObj.put("isOnLine", true); | 
|         jsonArr.add(jsonObj); | 
|         return rmCommandHistoryDao.getUncloseParamByCd(jsonArr.toJSONString(), intakeId, code); | 
|     } | 
| } |