zuoxiao
4 天以前 e0c3d16c7ba1700be99b4739b883e4d01789cc62
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
@@ -77,8 +77,12 @@
    @Value("${wechat.irr.plan.preOpeningTime:10}")
    private Integer preOpeningTime;
    @Value("${wechat.irr.plan.planTerminateLimitMinutes:5}")
    private Integer planTerminateLimitMinutes; // 计划终止后限制发布新计划的时间间隔(分钟)
    /**
     * 添加灌溉计划
     *
     * @param po
     * @return
     */
@@ -90,6 +94,7 @@
    /**
     * 删除灌溉计划
     *
     * @param planSimple
     * @return
     */
@@ -140,6 +145,7 @@
    /**
     * 发布灌溉计划
     *
     * @param planSimple
     * @return
     */
@@ -148,6 +154,7 @@
        Long operatorId = planSimple.getOperatorId();
        Byte operateType = 1;
        // 检查当前项目是否存在未完成的灌溉计划
        if(irrigatePlanMapper.hasPlan_CurrentProject(planId) > 0) {
            Map map = new HashMap<>();
            map.put("success", false);
@@ -156,12 +163,26 @@
            return map;
        }
        // 检查其他项目中是否存在未完成的灌溉计划
        if(irrigatePlanMapper.hasPlan_OtherProject(planId) > 0) {
            Map map = new HashMap<>();
            map.put("success", false);
            map.put("msg", "待发布计划的轮灌组在其他项目的灌溉计划中,且该计划尚未完成");
            map.put("content", null);
            return map;
        }
        // 检查5分钟内是否有终止的计划,且轮灌组有重叠
        Long lastTerminatedPlanId = irPlanOperateMapper.getLastTerminatedPlanId(planTerminateLimitMinutes);
        if (lastTerminatedPlanId != null) {
            // 检查当前计划与最近终止计划的轮灌组是否有重叠
            if (irrigatePlanMapper.hasPlanOverlapWithTerminated(planId, lastTerminatedPlanId) > 0) {
                Map map = new HashMap<>();
                map.put("success", false);
                map.put("msg", "上一个计划终止后" + planTerminateLimitMinutes + "分钟内不能发布新计划");
                map.put("content", null);
                return map;
            }
        }
        /**
@@ -272,6 +293,7 @@
    /**
     * 根据计划ID获取计划最新状态
     *
     * @param planId
     * @return
     */
@@ -281,6 +303,7 @@
    /**
     * 根据计划ID获取待终止计划的结束时间:未删除、未终止、已发布、当前时间小于计划结束时间
     *
     * @param planId
     * @return
     */
@@ -290,6 +313,7 @@
    /**
     * 根据计划ID获取待终止的取水口ID(已发布开发命令,无论是否成功)
     *
     * @param planId
     * @return
     */
@@ -299,6 +323,7 @@
    /**
     * 根据计划ID获取待终止的命令ID列表
     *
     * @param planId
     * @return
     */
@@ -308,6 +333,7 @@
    /**
     * 根据计划ID获取待终止的取水口列表(开阀成功的)
     *
     * @param planId
     * @return
     */
@@ -317,6 +343,7 @@
    /**
     * 根据命令日志ID获取取水口及虚拟卡信息,终止灌溉计划时使用,用来执行远程关阀
     *
     * @param commandId
     * @return
     */
@@ -326,6 +353,7 @@
    /**
     * 修改灌溉计划
     *
     * @param po
     * @return
     */
@@ -336,6 +364,7 @@
    /**
     * 获取未完成的计划列表,小程序计划列表页使用
     *
      * @return
     */
    public List<VoPlans> getNotCompletePlans() {
@@ -344,6 +373,7 @@
    /**
     * 获取已完成的计划列表,小程序计划列表页使用
     *
     * @return
     */
    public QueryResultVo<List<VoPlans>> getCompletedPlans(QueryConditionVo queryVo) {
@@ -362,6 +392,7 @@
    /**
     * 根据指定的计划ID获取启动模式
     *
     * @param planId
     * @return
     */
@@ -390,6 +421,7 @@
    /**
     * 添加灌溉计划操作记录
     *
     * @param po
     * @return
     */
@@ -401,6 +433,7 @@
    /**
     * 添加灌溉次序记录
     *
     * @param po
     * @return
     */
@@ -412,6 +445,7 @@
    /**
     * 根据计划ID终止灌溉次序,将灌溉次序的当前状态改为已终止
     *
     * @param planId
     * @return
     */
@@ -422,6 +456,7 @@
    /**
     * 根据计划ID获取灌溉次序记录
     *
     * @param planId
     * @return
     */
@@ -431,6 +466,7 @@
    /**
     * 根据组ID获取取水口ID集合
     *
     * @param groupId
     * @return
     */
@@ -440,6 +476,7 @@
    /**
     * 添加计划次序关联记录
     *
     * @param po
     * @return
     */
@@ -451,6 +488,7 @@
    /**
     * 根据灌溉次序ID更新次序开始时间
     *
     * @param scheduleId
     * @param startTime
     * @return
@@ -472,6 +510,7 @@
    /**
     * 根据灌溉单元ID获取取水口ID
     *
     * @param unitId
     * @return
     */
@@ -481,6 +520,7 @@
    /**
     * 根据计划ID获取计划发布结果
     *
     * @param planId
     * @return
     */
@@ -513,6 +553,7 @@
    /**
     * 根据计划ID获取计划终止操作结果
     *
     * @param planId
     * @return
     */