| | |
| | | import org.apache.dubbo.common.utils.PojoUtils; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | |
| | | @Autowired |
| | | private CommandSv commandSv; |
| | | |
| | | @Value("${webchat.irr.plan.delay}") |
| | | private Integer irrPlanDelay ;//轮灌中计划开阀的延迟时长 |
| | | |
| | | private static final Integer irrPlanDelayDefault = 5 ;//轮灌中计划开阀的默认延迟时长 |
| | | |
| | | /** |
| | | * 添加灌溉计划 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long addIrrigatePlan(IrIrrigatePlan po) { |
| | | irrigatePlanMapper.insert(po); |
| | | return po.getId(); |
| | |
| | | * @param planSimple |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Map deletePlan(PlanSimple planSimple) { |
| | | Long planId = planSimple.getPlanId(); |
| | | Long operatorId = planSimple.getOperatorId(); |
| | |
| | | LocalDateTime startTime = planStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); |
| | | if(startupMode == 1){ |
| | | // 测试阶段延后2分钟,正式发布为5分钟 |
| | | startTime = startTime.plusMinutes(2); |
| | | //startTime = startTime.plusMinutes(2); |
| | | //startTime = startTime.plusMinutes(5); |
| | | if(irrPlanDelay == null || irrPlanDelay <= 0) { |
| | | irrPlanDelay = irrPlanDelayDefault ; |
| | | } |
| | | startTime = startTime.plusMinutes(irrPlanDelay); |
| | | } |
| | | planStartTime = Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()); |
| | | LocalDateTime stopTime = startTime.plusMinutes(duration); |
| | | planStopTime = Date.from(stopTime.atZone(ZoneId.systemDefault()).toInstant()); |
| | | |
| | | // 根据计划ID更新计划信息(起止时间、计划状态) |
| | | if(irrigatePlanMapper.updatePlanTimes(planStartTime, planStopTime, planId) == 0) { |
| | | if(this.updatePlanTimes(planStartTime, planStopTime, planId) == 0) { |
| | | Map map = new HashMap<>(); |
| | | map.put("success", false); |
| | | map.put("msg", "计划信息更新失败"); |
| | |
| | | if(scheduleStartTime == null) { |
| | | scheduleStartTime = planStartTime; |
| | | } |
| | | updateScheduleStartTime(schedule.getScheduleId(), scheduleStartTime); |
| | | this.updateScheduleStartTime(schedule.getScheduleId(), scheduleStartTime); |
| | | |
| | | // 计算下一组的开始时间 |
| | | LocalDateTime LocalscheduleStartTime = scheduleStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); |
| | | LocalscheduleStartTime = LocalscheduleStartTime.plusMinutes(schedule.getDuration()); |
| | | LocalscheduleStartTime = LocalscheduleStartTime.minusMinutes(2); |
| | | scheduleStartTime = Date.from(LocalscheduleStartTime.atZone(ZoneId.systemDefault()).toInstant()); |
| | | } |
| | | |
| | |
| | | * @param po |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Integer updatePlan(IrIrrigatePlan po) { |
| | | return irrigatePlanMapper.updateByPrimaryKeySelective(po); |
| | | } |
| | |
| | | * @param po |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long addPlanOperate(IrPlanOperate po) { |
| | | irPlanOperateMapper.insert(po); |
| | | return po.getId(); |
| | |
| | | * @param po |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long addIrrigateSchedule(IrIrrigateSchedule po) { |
| | | irIrrigateScheduleMapper.insert(po); |
| | | return po.getId(); |
| | |
| | | * @param planId |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Integer terminateSchedule(Long planId) { |
| | | return irIrrigateScheduleMapper.terminateSchedule(planId); |
| | | } |
| | |
| | | * @param po |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long addPlanSchedule(IrPlanSchedule po) { |
| | | irPlanScheduleMapper.insert(po); |
| | | return po.getId(); |
| | |
| | | * @param startTime |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Integer updateScheduleStartTime(Long scheduleId, Date startTime) { |
| | | return irIrrigateScheduleMapper.updateScheduleStartTime(scheduleId, startTime); |
| | | } |
| | |
| | | return planDetails; |
| | | |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | Integer updatePlanTimes(Date planStartTime, Date planEndTime, Long planId){ |
| | | return irrigatePlanMapper.updatePlanTimes(planStartTime, planEndTime, planId); |
| | | } |
| | | |
| | | |
| | | } |