Browse Source

opt:优化

master
张东升 2 months ago
parent
commit
3c51eedb2d
  1. 2
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java
  2. 19
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java
  3. 22
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java

2
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java

@ -61,5 +61,7 @@ public interface AcsConfig {
String ELECTRIC ="electric"; String ELECTRIC ="electric";
String ELECTRIC2 ="electric2";
String IS_ATUO_ELECTRIC ="is_atuo_electric"; String IS_ATUO_ELECTRIC ="is_atuo_electric";
} }

19
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.system.service.param.ISysParamService;
import org.nl.config.SpringContextHolder; import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalTime;
import java.util.List; 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(); String is_atuo_electric = paramService.findByCode(AcsConfig.IS_ATUO_ELECTRIC).getValue();
log.info("接收agv上报信息,is_atuo_electric:" + is_atuo_electric); log.info("接收agv上报信息,is_atuo_electric:" + is_atuo_electric);
if("1".equals(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) { if (electric_qty>0 && electric_qty < electric) {
log.info("当前车辆{}电量为{}低于{},开始判断是否需要充电!", this.agvaddr, electric_qty,electric); log.info("当前车辆{}电量为{}低于{},开始判断是否需要充电!", this.agvaddr, electric_qty,electric);
//判断是否已下发充电任务 //判断是否已下发充电任务
@ -424,5 +438,4 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} }
return data; return data;
} }
} }

22
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.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.nl.common.exception.BadRequestException; 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.enums.TaskDirectionEnum;
import org.nl.wms.sch.task_manage.task.AcsUtil; 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.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.IWorkorderService;
import org.nl.wms.sch.workorder.service.dao.Workorder; import org.nl.wms.sch.workorder.service.dao.Workorder;
import org.nl.wms.sch.workorder.service.dao.mapper.WorkorderMapper; import org.nl.wms.sch.workorder.service.dao.mapper.WorkorderMapper;
@ -55,6 +57,8 @@ public abstract class AbstractTask {
private MaterialMapper materialMapper; private MaterialMapper materialMapper;
@Autowired @Autowired
private ISysParamService paramService; private ISysParamService paramService;
@Autowired
private PointMapper pointMapper;
/** /**
* 任务创建 * 任务创建
* 根据配置生成任务如并发控制等 * 根据配置生成任务如并发控制等
@ -225,6 +229,24 @@ public abstract class AbstractTask {
Assert.isFalse(apply_point_lists>0, Assert.isFalse(apply_point_lists>0,
"该任务申请点位["+apply_point_code+"]已存在未完成的任务,无法申请任务!"); "该任务申请点位["+apply_point_code+"]已存在未完成的任务,无法申请任务!");
} }
//如果是空托出库任务,判断是否有库存
if("SSXBKJTask".equals(config_code)){
String regionCode = "KJHC";
boolean p_flag = false;
List<SchBasePoint> 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)) { if(ObjectUtil.isNotEmpty(sub_tray)) {
//判断该子托盘是否存在未完成任务 //判断该子托盘是否存在未完成任务

Loading…
Cancel
Save