pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast; import com.dy.pipIrrGlobal.voRm.VoOpenCloseValve; import com.dy.pipIrrGlobal.voSt.VoCountOfCloseType; import com.dy.pipIrrGlobal.voSt.VoCountOfOpenType; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -91,14 +93,14 @@ * @param params * @return */ Integer getCountByOpenType(Map<?, ?> params); List<VoCountOfOpenType> getCountByOpenType(Map<?, ?> params); /** * 根据关阀类型获取操作次数 * @param params * @return */ Integer getCountByCloseType(Map<?, ?> params); List<VoCountOfCloseType> getCountByCloseType(Map<?, ?> params); /** * 为指定(阀控器地址、水卡编号、无关阀记录)开关阀最新记录添加关阀时间,使之不在未关阀记录中显示 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCountOfCloseType.java
@@ -13,12 +13,17 @@ public class VoCountOfCloseType { /** * 开阀方类型 */ public Integer closeType; /** * 关阀类型名称 */ private String closeTypeName; public String closeTypeName; /** * 关阀类型次数 */ private Integer closeTypeCount; public Integer closeTypeCount; } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoCountOfOpenType.java
@@ -13,12 +13,17 @@ public class VoCountOfOpenType { /** * 开阀方类型 */ public Integer openType; /** * 开阀方类型名称 */ private String openTypeName; public String openTypeName; /** * 开阀类型次数 */ private Integer openTypeCount; public Integer openTypeCount; } pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -591,10 +591,11 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta LEFT JOIN (SELECT * FROM rm_open_close_valve_history WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId LEFT JOIN (SELECT intake_id FROM rm_open_close_valve_history WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} ) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount > #{value}) a @@ -606,20 +607,22 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta LEFT JOIN (SELECT * FROM rm_open_close_valve_history WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId LEFT JOIN(SELECT intake_id FROM rm_open_close_valve_history WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} ) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount > #{value} <!-- ORDER BY inta.id--> ORDER BY intakeId DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} </if> </trim> </select> <!--获取指定时间段内开阀次数低于指定值的取水口数量--> <select id="getOpenValveLtIntakesCount" resultType="java.lang.Long"> select count(*) @@ -628,10 +631,11 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta LEFT JOIN (SELECT * FROM rm_open_close_valve_history WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId LEFT JOIN (SELECT intake_id FROM rm_open_close_valve_history WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} ) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount < #{value}) a @@ -643,14 +647,15 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta LEFT JOIN (SELECT * FROM rm_open_close_valve_history WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId LEFT JOIN(SELECT intake_id FROM rm_open_close_valve_history WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} ) his ON his.intake_id = inta.id INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount < #{value} <!-- ORDER BY inta.id--> ORDER BY intakeId DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} @@ -1080,31 +1085,32 @@ <!--指定时间段 有开阀 无关阀的取水口数量--> <select id="getHaveOpenNoCloseIntakesCount" resultType="java.lang.Long"> select count(*) from ( SELECT inta.id AS intakeId, inta.NAME AS intakeNum, blo.NAME AS blockName FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE rocvh.op_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.cl_dt IS NULL AND inta.deleted = 0 GROUP BY inta.id) c ( SELECT inta.id AS intakeId FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.cl_dt IS NULL GROUP BY inta.id ) c </select> <!--指定时间段 有开阀 无关阀的取水口--> <select id="getHaveOpenNoCloseIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake"> SELECT inta.id AS intakeId, inta.NAME AS intakeNum, inta.lng AS lng, inta.lat AS lat, blo.NAME AS blockName FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE rocvh.op_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.cl_dt IS NULL AND inta.deleted = 0 INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.cl_dt IS NULL GROUP BY inta.id ORDER BY inta.id ORDER BY inta.id DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} @@ -1115,30 +1121,31 @@ <select id="getNoOpenHaveCloseIntakesCount" resultType="java.lang.Long"> select count(*) from ( SELECT inta.id AS intakeId, inta.NAME AS intakeNum, blo.NAME AS blockName FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE rocvh.cl_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.op_dt IS NULL AND inta.deleted = 0 GROUP BY inta.id) c SELECT inta.id AS intakeId FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.op_dt IS NULL GROUP BY inta.id ) c </select> <!--指定时间段 无开阀 有关阀的取水口--> <select id="getNoOpenHaveCloseIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake"> SELECT inta.id AS intakeId, inta.NAME AS intakeNum, inta.lng AS lng, inta.lat AS lat, blo.NAME AS blockName FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id WHERE rocvh.cl_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.op_dt IS NULL AND inta.deleted = 0 WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.op_dt IS NULL GROUP BY inta.id ORDER BY inta.id ORDER BY inta.id DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -552,31 +552,43 @@ </select> <!--根据开阀方式获取操作次数--> <select id="getCountByOpenType" resultType="java.lang.Integer"> SELECT COUNT(*) AS recordCount <select id="getCountByOpenType" resultType="com.dy.pipIrrGlobal.voSt.VoCountOfOpenType"> SELECT COUNT(*) AS openTypeCount, op_type AS openType FROM rm_open_close_valve_history <where> <if test="idStart != nul"> id <![CDATA[>=]]> #{idStart} </if> <if test="idEnd != nul"> AND id <![CDATA[<=]]> #{idEnd} </if> <if test="openType != null"> AND op_type = #{openType} </if> <if test="timeStart != null and timeStop != null"> AND op_dt BETWEEN #{timeStart} AND #{timeStop} </if> </where> group by op_type </select> <!--根据关阀方式获取操作次数--> <select id="getCountByCloseType" resultType="java.lang.Integer"> SELECT COUNT(*) AS recordCount <select id="getCountByCloseType" resultType="com.dy.pipIrrGlobal.voSt.VoCountOfCloseType"> SELECT COUNT(*) AS closeTypeCount, cl_type AS closeType FROM rm_open_close_valve_history <where> <if test="idStart != nul"> id <![CDATA[>=]]> #{idStart} </if> <if test="idEnd != nul"> AND id <![CDATA[<=]]> #{idEnd} </if> <if test="closeType != null"> AND cl_type = #{closeType} </if> <if test="timeStart != null and timeStop != null"> AND cl_dt BETWEEN #{timeStart} AND #{timeStop} </if> </where> group by cl_type </select> <!--为指定(阀控器地址、水卡编号、无关阀记录)开关阀最新记录添加关阀时间,使之不在未关阀记录中显示--> pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -15,10 +15,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.Calendar; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.*; /** * @author ZhuBaoMin @@ -231,23 +228,6 @@ * @return */ public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveGtIntakes(IntakeCountValueQO qo) { String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; } else { timeStart = LocalDate.now() + " 00:00:00"; } qo.setTimeStart(timeStart); if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; }else { timeStop = LocalDate.now() + " 23:59:59"; } qo.setTimeStop(timeStop); // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; @@ -270,25 +250,8 @@ * @return */ public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveLtIntakes(IntakeCountValueQO qo) { String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; } else { timeStart = LocalDate.now() + " 00:00:00"; } qo.setTimeStart(timeStart); if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; }else { timeStop = LocalDate.now() + " 23:59:59"; } qo.setTimeStop(timeStop); // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getOpenValveLtIntakesCount(params)).orElse(0L); @@ -305,137 +268,97 @@ /** * 根据开阀类型获取操作次数 * @param qo * @param idStart * @param idEnd * @param openType * @return */ public VoCountOfOpenType getCountByOpenType(OpenTypeQO qo) { /** * 补齐起止时间,如果开始时间为空,则默认为当前日期,如果结束时间为空,则查询时间为空 */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStop != null) { timeStop = timeStop + " 23:59:59"; if(timeStart != null) { timeStart = timeStart + " 00:00:00"; }else { timeStart = LocalDate.now() + " 00:00:00"; } }else { timeStart = null; } qo.setTimeStart(timeStart); qo.setTimeStop(timeStop); Integer openType = qo.getOpenType(); String openTypeName = ""; if (openType == null){ openTypeName = "不知道您要查那种开阀类型"; }else { switch (openType) { case 1: openTypeName = "刷卡开阀"; break; case 3: openTypeName = "中心站开阀"; break; case 8: openTypeName = "用户远程开阀"; break; case 11: openTypeName = "巡检卡开阀"; break; case 13: openTypeName = "巡检卡开阀"; break; default: openTypeName = "不知道您要查那种开阀类型"; } } public List<VoCountOfOpenType> getCountByOpenType(Long idStart, Long idEnd, Integer openType) { // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; Map<String, Object> params = new HashMap<>() ; params.put("idStart", idStart); params.put("idEnd", idEnd); params.put("openType", openType); Integer openTypeCount = Optional.ofNullable(rmOpenCloseValveLastMapper.getCountByOpenType(params)).orElse(0); VoCountOfOpenType vo = new VoCountOfOpenType(); vo.setOpenTypeName(openTypeName); vo.setOpenTypeCount(openTypeCount); return vo; List<VoCountOfOpenType> list = rmOpenCloseValveLastMapper.getCountByOpenType(params) ; if(list != null){ for (VoCountOfOpenType vo : list) { if (vo.openType == null){ switch (vo.openType) { case 1: vo.openTypeName = "刷卡开阀"; break; case 3: vo.openTypeName = "中心站开阀"; break; case 8: vo.openTypeName = "用户远程开阀"; break; case 11: vo.openTypeName = "巡检卡开阀"; break; default: vo.openTypeName = "未知类型开阀"; } } } } return list ; } /** * 根据关阀类型获取操作次数 * @param qo * @param idStart * @param idEnd * @param closeType * @return */ public VoCountOfCloseType getCountByCloseType(CloseTypeQo qo) { /** * 补齐起止时间,如果开始时间为空,则默认为当前日期 */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStop != null) { timeStop = timeStop + " 23:59:59"; if(timeStart != null) { timeStart = timeStart + " 00:00:00"; }else { timeStart = LocalDate.now() + " 00:00:00"; } }else { timeStart = null; } qo.setTimeStart(timeStart); qo.setTimeStop(timeStop); public List<VoCountOfCloseType> getCountByCloseType(Long idStart, Long idEnd, Integer closeType) { Map<String, Object> params = new HashMap<>() ; params.put("idStart", idStart); params.put("idEnd", idEnd); params.put("closeType", closeType); Integer closeType = qo.getCloseType(); String closeTypeName = ""; if (closeType == null){ closeTypeName = "不知道您要查那种关阀类型"; }else { switch (closeType) { case 2: closeTypeName = "刷卡关阀"; break; case 4: closeTypeName = "中心站关阀"; break; case 5: closeTypeName = "欠费关阀"; break; case 6: closeTypeName = "流量计故障关阀"; break; case 7: closeTypeName = "紧急关阀"; break; case 9: closeTypeName = "用户远程关阀"; break; case 10: closeTypeName = "巡检卡关阀"; break; case 12: closeTypeName = "黑名单命令关阀"; break; case 13: closeTypeName = "远程定时关阀"; break; case 14: closeTypeName = "远程定量关阀"; break; default: closeTypeName = "不知道您要查那种关阀类型"; List<VoCountOfCloseType> list = rmOpenCloseValveLastMapper.getCountByCloseType(params) ; if(list != null) { for (VoCountOfCloseType vo : list) { switch (vo.closeType) { case 2: vo.closeTypeName = "刷卡关阀"; break; case 4: vo.closeTypeName = "中心站关阀"; break; case 5: vo.closeTypeName = "欠费关阀"; break; case 6: vo.closeTypeName = "流量计故障关阀"; break; case 7: vo.closeTypeName = "紧急关阀"; break; case 9: vo.closeTypeName = "用户远程关阀"; break; case 10: vo.closeTypeName = "巡检卡关阀"; break; case 12: vo.closeTypeName = "黑名单命令关阀"; break; case 13: vo.closeTypeName = "远程定时关阀"; break; case 14: vo.closeTypeName = "远程定量关阀"; break; default: vo.closeTypeName = "未知关阀类型"; } } } // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; Integer closeTypeCount = Optional.ofNullable(rmOpenCloseValveLastMapper.getCountByCloseType(params)).orElse(0); VoCountOfCloseType vo = new VoCountOfCloseType(); vo.setCloseTypeName(closeTypeName); vo.setCloseTypeCount(closeTypeCount); return vo; return list ; } /** @@ -615,24 +538,7 @@ * @param qo * @return */ public QueryResultVo<List<VoIntake>> getHaveOpenNoCloseIntakes(CommonQO qo) { String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; } else { timeStart = LocalDate.now() + " 00:00:00"; } qo.setTimeStart(timeStart); if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; }else { timeStop = LocalDate.now() + " 23:59:59"; } qo.setTimeStop(timeStop); public QueryResultVo<List<VoIntake>> getHaveOpenNoCloseIntakes(IntakeCountValueQO qo) { Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); Long itemTotal = rmOpenCloseValveHistoryMapper.getHaveOpenNoCloseIntakesCount(params); @@ -650,24 +556,7 @@ * @param qo * @return */ public QueryResultVo<List<VoIntake>> getNoOpenHaveCloseIntakes(CommonQO qo) { String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; } else { timeStart = LocalDate.now() + " 00:00:00"; } qo.setTimeStart(timeStart); if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; }else { timeStop = LocalDate.now() + " 23:59:59"; } qo.setTimeStop(timeStop); public QueryResultVo<List<VoIntake>> getNoOpenHaveCloseIntakes(IntakeCountValueQO qo) { Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); Long itemTotal = rmOpenCloseValveHistoryMapper.getNoOpenHaveCloseIntakesCount(params); pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -1,6 +1,8 @@ package com.dy.pipIrrStatistics.intake; import com.dy.common.aop.SsoAop; import com.dy.common.util.DateTime; import com.dy.common.util.IDLongGenerator; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; @@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Objects; @@ -50,7 +53,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getNotOnlineIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -69,7 +72,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getLargeFlowIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -88,7 +91,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getSmallFlowIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -107,7 +110,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getUnderVoltIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -126,48 +129,165 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getSpecifiedSignalIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** /** ok 11 * 根据开阀类型获取操作次数 * @param qo * @return */ @GetMapping(path = "/getCountByOpenType") @SsoAop() public BaseResponse<QueryResultVo<VoCountOfOpenType>> getCountByOpenType(@Valid OpenTypeQO qo, BindingResult bindingResult) { public BaseResponse<QueryResultVo<VoCountOfOpenType>> getCountByOpenType(@Valid OpenTypeQO qo, BindingResult bindingResult) throws Exception{ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart == null || timeStart.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询开始时间"); } if(timeStop == null || timeStop.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询截止时间"); } long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; if(dur < 0){ return BaseResponseUtils.buildErrorMsg("截止时间不能早于开始时间"); } if(dur > 366){ return BaseResponseUtils.buildErrorMsg("时间跨度不能超过一年"); } int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; long startId = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; long endId = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { return BaseResponseUtils.buildSuccess(intakeSv.getCountByOpenType(qo)); return BaseResponseUtils.buildSuccess(intakeSv.getCountByOpenType(startId, endId, qo.getOpenType())); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** /** ok 12 * 根据关阀类型获取操作次数 * @param qo * @return */ @GetMapping(path = "/getCountByCloseType") @SsoAop() public BaseResponse<QueryResultVo<VoCountOfCloseType>> getCountByCloseType(@Valid CloseTypeQo qo, BindingResult bindingResult) { public BaseResponse<QueryResultVo<VoCountOfCloseType>> getCountByCloseType(@Valid CloseTypeQo qo, BindingResult bindingResult) throws Exception{ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart == null || timeStart.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询开始时间"); } if(timeStop == null || timeStop.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询截止时间"); } long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; if(dur < 0){ return BaseResponseUtils.buildErrorMsg("截止时间不能早于开始时间"); } if(dur > 366){ return BaseResponseUtils.buildErrorMsg("时间跨度不能超过一年"); } int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; long startId = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; long endId = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { return BaseResponseUtils.buildSuccess(intakeSv.getCountByCloseType(qo)); return BaseResponseUtils.buildSuccess(intakeSv.getCountByCloseType(startId, endId, qo.getCloseType())); } catch (Exception e) { log.error("获取开卡记录异常", e); log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** ok 13 * 获取指定时间段内开阀次数超过指定值的取水口 * @param * @return */ @GetMapping(path = "/getOpenValveGtIntakes") @SsoAop() public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveGtIntakes(@Valid IntakeCountValueQO qo, BindingResult bindingResult) throws Exception { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart == null || timeStart.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询开始时间"); } if(timeStop == null || timeStop.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询截止时间"); } long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; if(dur < 0){ return BaseResponseUtils.buildErrorMsg("截止时间不能早于开始时间"); } if(dur > 366){ return BaseResponseUtils.buildErrorMsg("时间跨度不能超过一年"); } int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveGtIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** ok 14 * 获取指定时间段内开阀次数低于指定值的取水口 * @param * @return */ @GetMapping(path = "/getOpenValveLtIntakes") @SsoAop() public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveLtIntakes(@Valid IntakeCountValueQO qo, BindingResult bindingResult) throws Exception { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart == null || timeStart.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询开始时间"); } if(timeStop == null || timeStop.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询截止时间"); } long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; if(dur < 0){ return BaseResponseUtils.buildErrorMsg("截止时间不能早于开始时间"); } if(dur > 366){ return BaseResponseUtils.buildErrorMsg("时间跨度不能超过一年"); } int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveLtIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取从未开过阀的取水口 @@ -179,41 +299,6 @@ public BaseResponse<QueryResultVo<List<VoIntake>>> getNeverOpenValveIntakes(CommonQO qo) { try { QueryResultVo<List<VoIntake>> res = intakeSv.getNeverOpenValveIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取指定时间段内开阀次数超过指定值的取水口 * @param * @return */ @GetMapping(path = "/getOpenValveGtIntakes") @SsoAop() public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveGtIntakes(IntakeCountValueQO qo) { try { QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveGtIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取指定时间段内开阀次数低于指定值的取水口 * @param * @return */ @GetMapping(path = "/getOpenValveLtIntakes") @SsoAop() public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveLtIntakes(IntakeCountValueQO qo) { try { QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveLtIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); @@ -306,14 +391,33 @@ } } /** /** ok 15 * 指定时间段 有开阀 无关阀的取水口 * @param * @return */ @GetMapping(path = "/getHaveOpenNoCloseIntakes") @SsoAop() public BaseResponse<QueryResultVo<List<VoIntake>>> getHaveOpenNoCloseIntakes(CommonQO qo) { public BaseResponse<QueryResultVo<List<VoIntake>>> getHaveOpenNoCloseIntakes(IntakeCountValueQO qo) throws Exception { String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart == null || timeStart.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询开始时间"); } if(timeStop == null || timeStop.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询截止时间"); } long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; if(dur < 0){ return BaseResponseUtils.buildErrorMsg("截止时间不能早于开始时间"); } if(dur > 366){ return BaseResponseUtils.buildErrorMsg("时间跨度不能超过一年"); } int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { QueryResultVo<List<VoIntake>> res = intakeSv.getHaveOpenNoCloseIntakes(qo); return BaseResponseUtils.buildSuccess(res); @@ -330,7 +434,26 @@ */ @GetMapping(path = "/getNoOpenHaveCloseIntakes") @SsoAop() public BaseResponse<QueryResultVo<List<VoIntake>>> getNoOpenHaveCloseIntakes(CommonQO qo) { public BaseResponse<QueryResultVo<List<VoIntake>>> getNoOpenHaveCloseIntakes(IntakeCountValueQO qo) throws Exception { String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart == null || timeStart.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询开始时间"); } if(timeStop == null || timeStop.trim().equals("")){ return BaseResponseUtils.buildErrorMsg("请设置查询截止时间"); } long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; if(dur < 0){ return BaseResponseUtils.buildErrorMsg("截止时间不能早于开始时间"); } if(dur > 366){ return BaseResponseUtils.buildErrorMsg("时间跨度不能超过一年"); } int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { QueryResultVo<List<VoIntake>> res = intakeSv.getNoOpenHaveCloseIntakes(qo); return BaseResponseUtils.buildSuccess(res); pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeCountValueQO.java
@@ -19,5 +19,11 @@ * 值 */ @NotBlank(message = "值不能为空") private Integer value; public Integer value; /////////////////////// //非前端提交的参数 public Long idStart ; public Long idEnd ; }