|  |  | 
 |  |  | import com.dy.common.mw.protocol.Command; | 
 |  |  | import com.dy.common.mw.protocol.CommandBackParam; | 
 |  |  | import com.dy.common.util.DateTime; | 
 |  |  | import com.dy.common.util.IDLongGenerator; | 
 |  |  | import com.dy.common.webUtil.BaseResponse; | 
 |  |  | import com.dy.pipIrrGlobal.daoLargeScreen.Ls4StatisticsMapper; | 
 |  |  | import com.dy.pipIrrGlobal.rtuMw.CodeLocal; | 
 |  |  | 
 |  |  | import com.dy.pipIrrGlobal.voLargeScreen.VoBaseInfo; | 
 |  |  | import com.dy.pipIrrGlobal.voLargeScreen.VoCurrentInfo; | 
 |  |  | import com.dy.pipIrrGlobal.voLargeScreen.VoMonitorInfo; | 
 |  |  | import com.dy.pipIrrGlobal.voSpecial.VoTopXClient; | 
 |  |  | import com.dy.pipIrrGlobal.voSpecial.VoTopXIntake; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.core.env.Environment; | 
 |  |  | 
 |  |  | import org.springframework.web.client.RestTemplate; | 
 |  |  |  | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @Author: liurunyu | 
 |  |  | 
 |  |  |         Date dtAtXHourBefore = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(DateTime.lastXHour_yyyy_MM_dd_HH_mm_ss(24)) ;//X个小时前 | 
 |  |  |         VoCurrentInfo vo = new VoCurrentInfo() ; | 
 |  |  |         Integer[] result = this.queryMwOnAndOffLine() ; | 
 |  |  |         vo.totalCountOfOnLine = result[0] ; | 
 |  |  |         vo.totalCountOfOffLine = totalCountOfIntake - vo.totalCountOfOnLine; ; | 
 |  |  |         vo.totalCountOfOpenValve = this.dao.totalCountOfOpenValve(dtAtXHourBefore) ; | 
 |  |  |         vo.totalCountOfCloseValve = this.dao.totalCountOfCloseValve(dtAtXHourBefore) ; | 
 |  |  |         vo.totalCountOfUnknownValve = totalCountOfIntake - vo.totalCountOfOpenValve - vo.totalCountOfCloseValve ; | 
 |  |  |         vo.totalCountOfAlarm = this.dao.totalCountOfAlarm(dtAtXHourBefore) ; | 
 |  |  |         vo.totalCountOfNoAlarm = this.dao.totalCountOfNoAlarm(dtAtXHourBefore) ; | 
 |  |  |         vo.totalCountOfUnknownAlarm = totalCountOfIntake - vo.totalCountOfAlarm - vo.totalCountOfNoAlarm ; | 
 |  |  |         vo.cTotalCountOfOnLine = result[0] ; | 
 |  |  |         vo.cTotalCountOfOffLine = totalCountOfIntake - vo.cTotalCountOfOnLine; | 
 |  |  |         vo.cTotalCountOfOffLine = vo.cTotalCountOfOffLine < 0 ? 0 : vo.cTotalCountOfOffLine ; | 
 |  |  |  | 
 |  |  |         vo.cTotalCountOfOpenValve = this.dao.totalCountOfOpenValve(dtAtXHourBefore) ; | 
 |  |  |         vo.cTotalCountOfCloseValve = this.dao.totalCountOfCloseValve(dtAtXHourBefore) ; | 
 |  |  |         vo.cTotalCountOfUnknownValve = totalCountOfIntake - vo.cTotalCountOfOpenValve - vo.cTotalCountOfCloseValve; | 
 |  |  |         vo.cTotalCountOfUnknownValve = vo.cTotalCountOfUnknownValve < 0 ? 0 : vo.cTotalCountOfUnknownValve ; | 
 |  |  |  | 
 |  |  |         vo.cTotalCountOfAlarm = this.dao.totalCountOfAlarm(dtAtXHourBefore) ; | 
 |  |  |         vo.cTotalCountOfNoAlarm = this.dao.totalCountOfNoAlarm(dtAtXHourBefore) ; | 
 |  |  |         vo.cTotalCountOfUnknownAlarm = totalCountOfIntake - vo.cTotalCountOfAlarm - vo.cTotalCountOfNoAlarm; | 
 |  |  |         vo.cTotalCountOfUnknownAlarm = vo.cTotalCountOfUnknownAlarm < 0 ? 0 : vo.cTotalCountOfUnknownAlarm ; | 
 |  |  |         return vo ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |      * 监测信息统计 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public VoMonitorInfo monitorInfo(Date startDt){ | 
 |  |  |     public VoMonitorInfo monitorInfo(Date fromDt){ | 
 |  |  |         VoMonitorInfo vo = new VoMonitorInfo() ; | 
 |  |  |         vo.mTotalCountOfReport = this.dao.mTotalCountOfReport(fromDt) ; | 
 |  |  |         vo.mTotalCountOfNoReport = this.dao.mTotalCountOfNoReport(fromDt) ; | 
 |  |  |         vo.mTotalCountOfNeverReport = this.dao.mTotalCountOfNeverReport() ; | 
 |  |  |  | 
 |  |  |         vo.mTotalCountOfOpenValve = this.dao.mTotalCountOfOpenValve(fromDt) ; | 
 |  |  |         vo.mTotalCountOfCloseValve = this.dao.mTotalCountOfCloseValve(fromDt) ; | 
 |  |  |         vo.mTotalCountOfNeverOpenValve = this.dao.mTotalCountOfNeverOpenValve() ; | 
 |  |  |  | 
 |  |  |         vo.mTotalCountOfAlarm = this.dao.mTotalCountOfAlarm(fromDt) ; | 
 |  |  |         vo.mTotalCountOfNoAlarm = this.dao.mTotalCountOfNoAlarm(fromDt) ; | 
 |  |  |         vo.mTotalCountOfNeverAlarm = this.dao.mTotalCountOfNeverAlarm() ; | 
 |  |  |  | 
 |  |  |         return vo ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |         return result ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 昨日农户用水前5名统计 | 
 |  |  |      * @return 数据集合 | 
 |  |  |      */ | 
 |  |  |     public List<VoTopXClient> top5ClientYesterday() { | 
 |  |  |         int[] yesterday = DateTime.yyyy_MM_dd_2_ymdGroup(DateTime.lastXDay_yyyy_MM_dd(1)) ; | 
 |  |  |         Long idStart = IDLongGenerator.generateOneDayStartId(yesterday[0], yesterday[1], yesterday[2]) ; | 
 |  |  |         Long idEnd = IDLongGenerator.generateOneDayEndId(yesterday[0], yesterday[1], yesterday[2]) ; | 
 |  |  |         return this.dao.topXClientAtCertainDay(idStart, idEnd, 5) ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 昨日取水口用水前5名统计 | 
 |  |  |      * @return 数据集合 | 
 |  |  |      */ | 
 |  |  |     public List<VoTopXIntake> top5IntakeYesterday() { | 
 |  |  |         int[] yesterday = DateTime.yyyy_MM_dd_2_ymdGroup(DateTime.lastXDay_yyyy_MM_dd(1)) ; | 
 |  |  |         Long idStart = IDLongGenerator.generateOneDayStartId(yesterday[0], yesterday[1], yesterday[2]) ; | 
 |  |  |         Long idEnd = IDLongGenerator.generateOneDayEndId(yesterday[0], yesterday[1], yesterday[2]) ; | 
 |  |  |         return this.dao.topXIntakeAtCertainDay(idStart, idEnd, 5) ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |