diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java index d249f4e..69e9f98 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java @@ -61,5 +61,7 @@ public interface AcsConfig { String ELECTRIC ="electric"; + String ELECTRIC2 ="electric2"; + String IS_ATUO_ELECTRIC ="is_atuo_electric"; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index b754bba..3b388ab 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -40,8 +40,8 @@ import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.param.ISysParamService; import org.nl.config.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; +import java.time.LocalTime; import java.util.List; /** @@ -337,7 +337,21 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic String is_atuo_electric = paramService.findByCode(AcsConfig.IS_ATUO_ELECTRIC).getValue(); log.info("接收agv上报信息,is_atuo_electric:" + is_atuo_electric); if("1".equals(is_atuo_electric)){ - int electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC).getValue()); + + // 定义时间段 + LocalTime startTime = LocalTime.of(8, 0); // 上午8点 + LocalTime endTime = LocalTime.of(22, 0); // 晚上22点 + // 获取当前时间 + LocalTime now = LocalTime.now(); + // 判断当前时间是否在时间段内 + boolean isInRange = !now.isBefore(startTime) && !now.isAfter(endTime); + int electric = 0 ; + //早上8-22点 + if(isInRange){ + electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC).getValue()); + }else{ + electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC2).getValue()); + } if (electric_qty>0 && electric_qty < electric) { log.info("当前车辆{}电量为{}低于{},开始判断是否需要充电!", this.agvaddr, electric_qty,electric); //判断是否已下发充电任务 @@ -424,5 +438,4 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } return data; } - } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java index ea13694..4adf2d3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java @@ -2,6 +2,7 @@ package org.nl.wms.sch.task_manage; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; @@ -24,6 +25,7 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskDirectionEnum; import org.nl.wms.sch.task_manage.task.AcsUtil; import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.sch.workorder.service.IWorkorderService; import org.nl.wms.sch.workorder.service.dao.Workorder; import org.nl.wms.sch.workorder.service.dao.mapper.WorkorderMapper; @@ -55,6 +57,8 @@ public abstract class AbstractTask { private MaterialMapper materialMapper; @Autowired private ISysParamService paramService; + @Autowired + private PointMapper pointMapper; /** * 任务创建 * 根据配置生成任务,如并发控制等 @@ -225,6 +229,24 @@ public abstract class AbstractTask { Assert.isFalse(apply_point_lists>0, "该任务申请点位["+apply_point_code+"]已存在未完成的任务,无法申请任务!"); } + //如果是空托出库任务,判断是否有库存 + if("SSXBKJTask".equals(config_code)){ + String regionCode = "KJHC"; + boolean p_flag = false; + List schBasePointList = pointMapper.findPointByCondition(regionCode, "0",1); + for (SchBasePoint schBasePoint : schBasePointList) { + //查找点上无载具号无任务号、载具数量为1的 + if (schBasePoint.getIs_used() + && StringUtils.isEmpty(schBasePoint.getIng_task_code()) + && StringUtils.isEmpty(schBasePoint.getVehicle_code2()) + && schBasePoint.getVehicle_qty() ==1) { + p_flag = true; + break; + } + } + Assert.isFalse(!p_flag, + "暂无空托盘库存,无法生成空托出库任务!"); + } //子托盘非空 if(ObjectUtil.isNotEmpty(sub_tray)) { //判断该子托盘是否存在未完成任务