|  |  | 
 |  |  | import com.dy.common.mw.protocol.CommandType; | 
 |  |  | import com.dy.common.webUtil.BaseResponse; | 
 |  |  | import com.dy.common.webUtil.BaseResponseUtils; | 
 |  |  | import com.dy.common.webUtil.QueryConditionVo; | 
 |  |  | import com.dy.common.webUtil.QueryResultVo; | 
 |  |  | import com.dy.pipIrrGlobal.daoIr.*; | 
 |  |  | import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; | 
 |  |  | import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; | 
 |  |  | 
 |  |  | import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate; | 
 |  |  | import com.dy.pipIrrGlobal.pojoIr.IrPlanSchedule; | 
 |  |  | import com.dy.pipIrrGlobal.rtuMw.CodeLocal; | 
 |  |  | import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule; | 
 |  |  | import com.dy.pipIrrGlobal.voIr.VoPlanSimple; | 
 |  |  | import com.dy.pipIrrGlobal.voIr.VoToTerminateIntakes; | 
 |  |  | import com.dy.pipIrrGlobal.voIr.*; | 
 |  |  | import com.dy.pipIrrGlobal.voRm.VoIntakeVc; | 
 |  |  | import com.dy.pipIrrIrrigate.command.CommandSv; | 
 |  |  | import com.dy.pipIrrIrrigate.command.dto.AutomaticClose; | 
 |  |  | 
 |  |  | import com.dy.pipIrrIrrigate.irrigatePlan.dto.PlanSimple; | 
 |  |  | import com.dy.pipIrrIrrigate.irrigatePlan.enums.OperateTypeENUM; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.apache.dubbo.common.utils.PojoUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.core.env.Environment; | 
 |  |  | 
 |  |  | import java.time.LocalDateTime; | 
 |  |  | import java.time.ZoneId; | 
 |  |  | import java.time.format.DateTimeFormatter; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.HashMap; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Map; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @author ZhuBaoMin | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private RmCommandHistoryMapper rmdCommandHistoryMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IrIrrigateGroupMapper irIrrigateGroupMapper; | 
 |  |  |  | 
 |  |  |     protected String comSendUrl; | 
 |  |  |     private String key_mw = "comSendUrl"; | 
 |  |  | 
 |  |  |         map.put("msg", "终止灌溉计划成功"); | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取未完成的计划列表,灌溉模块计划列表页使用 | 
 |  |  |      * | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public List<VoPlans> getNotCompletePlans() { | 
 |  |  |         return irrigatePlanMapper.getNotCompletePlans(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取已完成的计划列表,灌溉模块计划列表页使用 | 
 |  |  |      * | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public QueryResultVo<List<VoPlans>> getCompletedPlans(QueryConditionVo queryVo) { | 
 |  |  |         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); | 
 |  |  |  | 
 |  |  |         Long itemTotal = (long) irrigatePlanMapper.getCompletedPlansCount(params); | 
 |  |  |         QueryResultVo<List<VoPlans>> rsVo = new QueryResultVo<>(); | 
 |  |  |         rsVo.pageSize = queryVo.pageSize; | 
 |  |  |         rsVo.pageCurr = queryVo.pageCurr; | 
 |  |  |  | 
 |  |  |         rsVo.calculateAndSet(itemTotal, params); | 
 |  |  |         rsVo.obj = irrigatePlanMapper.getCompletedPlans(params); | 
 |  |  |  | 
 |  |  |         return rsVo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据计划ID获取计划发布结果 | 
 |  |  |      * | 
 |  |  |      * @param planId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public VoPlanDetails getPublishResults(Long planId) { | 
 |  |  |         VoPlanDetails planDetails = irrigatePlanMapper.getPlanDetails(planId); | 
 |  |  |         if (planDetails == null) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         Integer failureCount = Optional.ofNullable(irIntakeOperateMapper.getFailureCount(planId)).orElse(0); | 
 |  |  |         planDetails.setFailureCount(failureCount); | 
 |  |  |  | 
 |  |  |         Date terminateTime = Optional.ofNullable(irPlanOperateMapper.getTerminateTime(planId)).orElse(null); | 
 |  |  |  | 
 |  |  |         List<VoGroupResult> groupResults = irIrrigateGroupMapper.getGroupResult(planId); | 
 |  |  |         if (groupResults == null || groupResults.size() == 0) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         for (VoGroupResult groupResult : groupResults) { | 
 |  |  |             List<VoIntakeResult> intakeResults = irIntakeOperateMapper.getIntakeResult(planId, groupResult.getGroupId()); | 
 |  |  |             if (intakeResults != null) { | 
 |  |  |                 groupResult.setPublishResult(intakeResults); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         planDetails.setGroups(groupResults); | 
 |  |  |         return planDetails; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据计划ID获取计划终止操作结果 | 
 |  |  |      * | 
 |  |  |      * @param planId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public VoPlanDetails getTerminateResults(Long planId) { | 
 |  |  |         // 获取计划终止时间 | 
 |  |  |         Date terminateTime = Optional.ofNullable(irPlanOperateMapper.getTerminateTime(planId)).orElse(null); | 
 |  |  |  | 
 |  |  |         VoPlanDetails planDetails = irrigatePlanMapper.getPlanDetails_terminate(planId, terminateTime); | 
 |  |  |         if (planDetails == null) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         Integer failureCount = Optional.ofNullable(irIntakeOperateMapper.getFailureCount(planId)).orElse(0); | 
 |  |  |         planDetails.setFailureCount(failureCount); | 
 |  |  |  | 
 |  |  |         List<VoGroupResult> groupResults = irIrrigateGroupMapper.getGroupResult_terminate(planId, terminateTime); | 
 |  |  |         if (groupResults == null || groupResults.size() == 0) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         for (VoGroupResult groupResult : groupResults) { | 
 |  |  |             List<VoIntakeResult> intakeResults = irIntakeOperateMapper.getIntakeResult(planId, groupResult.getGroupId()); | 
 |  |  |             if (intakeResults != null) { | 
 |  |  |                 groupResult.setPublishResult(intakeResults); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         planDetails.setGroups(groupResults); | 
 |  |  |         return planDetails; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据计划ID获取计划最新状态 | 
 |  |  |      * | 
 |  |  |      * @param planId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Integer getPlanLatestState(Long planId) { | 
 |  |  |         return irrigatePlanMapper.getPlanLatestState(planId); | 
 |  |  |     } | 
 |  |  | } |