zhubaomin
2025-04-03 317dabcf4901fced12e75c0d3b442607fb479bec
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
@@ -1,21 +1,19 @@
package com.dy.pipIrrWechat.irrigatePlan;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoIr.*;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule;
import com.dy.pipIrrGlobal.pojoIr.IrOpeningSchedule;
import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate;
import com.dy.pipIrrGlobal.voIr.VoIrrigatePlan;
import com.dy.pipIrrGlobal.pojoIr.IrPlanSchedule;
import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule;
import com.dy.pipIrrWechat.irrigatePlan.qo.QoIrrigatePlan;
import com.dy.pipIrrGlobal.voIr.VoPlanSimple;
import com.dy.pipIrrGlobal.voIr.VoPlans;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @author ZhuBaoMin
@@ -45,6 +43,15 @@
    @Autowired
    private IrIrrigateUnitMapper irIrrigateUnitMapper;
    @Autowired
    private IrPlanScheduleMapper irPlanScheduleMapper;
    @Autowired
    private IrGroupIntakeMapper irGroupIntakeMapper;
    @Autowired
    private IrIntakeOperateMapper irIntakeOperateMapper;
    /**
     * 添加灌溉计划
     * @param po
@@ -56,32 +63,84 @@
    }
    /**
     * 根据计划ID获取待终止计划的结束时间:未删除、未终止、已发布、当前时间小于计划结束时间
     * @param planId
     * @return
     */
    public Date getToTerminatePlan(Long planId) {
        return irrigatePlanMapper.getToTerminatePlan(planId);
    }
    /**
     * 根据计划ID获取待终止的取水口ID(已发布开发命令,无论是否成功)
     * @param planId
     * @return
     */
    public List<Long> getToTerminateIntakeIds(Long planId) {
        return irIntakeOperateMapper.getToTerminateIntakeIds(planId);
    }
    /**
     * 根据计划ID获取待终止的命令ID
     * @param planId
     * @return
     */
    public List<Long> getTerminateCommandIds(Long planId) {
        return irIntakeOperateMapper.getTerminateCommandIds(planId);
    }
    /**
     * 修改灌溉计划
     * @param po
     * @return
     */
    public Integer updatePlan(IrIrrigatePlan po) {
        return irrigatePlanMapper.updateByPrimaryKeySelective(po);
    }
    /**
     * 获取未完成的计划列表,小程序计划列表页使用
      * @return
     */
    public List<VoPlans> getNotCompletePlans() {
        return irrigatePlanMapper.getNotCompletePlans();
    }
    /**
     * 获取已完成的计划列表,小程序计划列表页使用
     * @return
     */
    public List<VoPlans> getCompletedPlans() {
        return irrigatePlanMapper.getCompletedPlans();
    }
    /**
     * 根据指定的计划ID获取启动模式
     * @param planId
     * @return
     */
    public Byte getStartupMode(Long planId) {
        return irrigatePlanMapper.getStartupMode(planId);
    }
    /**
     * 根据指定的条件获取计划列表
     * @param queryVo
     * @return
     */
    public QueryResultVo<List<VoIrrigatePlan>> getIrrigatePlans(QoIrrigatePlan queryVo) {
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        Long itemTotal = irrigatePlanMapper.getIrrigatePlanCount(params);
        QueryResultVo<List<VoIrrigatePlan>> rsVo = new QueryResultVo<>();
        rsVo.pageSize = queryVo.pageSize;
        rsVo.pageCurr = queryVo.pageCurr;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = irrigatePlanMapper.getIrrigatePlans(params);
        return rsVo;
    }
    /**
     * 发布指定的灌溉计划
     * @param planId
     * @return
     */
    public Integer publishIrrigatePlan(Long planId) {
        return irrigatePlanMapper.publishIrrigatePlan(planId);
    }
    //public QueryResultVo<List<VoIrrigatePlan>> getIrrigatePlans(QoIrrigatePlan queryVo) {
    //    Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
    //
    //    Long itemTotal = irrigatePlanMapper.getIrrigatePlanCount(params);
    //
    //    QueryResultVo<List<VoIrrigatePlan>> rsVo = new QueryResultVo<>();
    //    rsVo.pageSize = queryVo.pageSize;
    //    rsVo.pageCurr = queryVo.pageCurr;
    //
    //    rsVo.calculateAndSet(itemTotal, params);
    //    rsVo.obj = irrigatePlanMapper.getIrrigatePlans(params);
    //    return rsVo;
    //}
    /**
     * 添加灌溉计划操作记录
@@ -104,34 +163,83 @@
    }
    /**
     * 根据计划ID获取灌溉次序
     * 根据计划ID终止灌溉次序,将灌溉次序的当前状态改为已终止
     * @param planId
     * @return
     */
    public List<VoIrrigateSchedule> getIrrigateSchedules(Long planId) {
        return irIrrigateScheduleMapper.getIrrigateSchedules(planId);
    public Integer terminateSchedule(Long planId) {
        return irIrrigateScheduleMapper.terminateSchedule(planId);
    }
    /**
     * 添加开阀计划
     * 根据计划ID获取灌溉次序记录
     * @param planId
     * @return
     */
    public List<VoIrrigateSchedule> getSchedulesByPlanId(Long planId) {
        return irIrrigateScheduleMapper.getSchedulesByPlanId(planId);
    }
    /**
     * 根据组ID获取取水口ID集合
     * @param groupId
     * @return
     */
    public List<Long> getIntakeIdsByGroupId(Long groupId) {
        return irGroupIntakeMapper.getIntakeIdsByGroupId(groupId);
    }
    /**
     * 添加计划次序关联记录
     * @param po
     * @return
     */
    public Long addOpeningSchedule(IrOpeningSchedule po) {
        irOpeningScheduleMapper.insert(po);
    public Long addPlanSchedule(IrPlanSchedule po) {
        irPlanScheduleMapper.insert(po);
        return po.getId();
    }
    /**
     * 根据轮灌组ID获取取水口ID列表
     * @param groupId
     * 根据计划ID获取计划简单信息列表
     * @param planId
     * @return
     */
    public List<Long> getIntakesByGroupId(Long groupId) {
        return irIrrigateGroupMapper.getIntakesByGroupId(groupId);
    public VoPlanSimple getPlanSimple(Long planId) {
        return irrigatePlanMapper.getPlanSimple(planId);
    }
    /**
     * 根据计划ID更新计划信息(起止时间、计划状态)
     * @param planStartTime
     * @param planEndTime
     * @param planId
     * @return
     */
    public Integer updatePlanTimes(Date planStartTime, Date planEndTime, Long planId) {
        return irrigatePlanMapper.updatePlanTimes(planStartTime, planEndTime, planId);
    }
    /**
     * 根据灌溉次序ID更新次序开始时间
     * @param scheduleId
     * @param startTime
     * @return
     */
    public Integer updateScheduleStartTime(Long scheduleId, Date startTime) {
        return irIrrigateScheduleMapper.updateScheduleStartTime(scheduleId, startTime);
    }
    ///**
    // * 添加开阀计划
    // * @param po
    // * @return
    // */
    //public Long addOpeningSchedule(IrOpeningSchedule po) {
    //    irOpeningScheduleMapper.insert(po);
    //    return po.getId();
    //}
    /**
     * 根据灌溉单元ID获取取水口ID
     * @param unitId
     * @return