|
@ -1,6 +1,7 @@ |
|
|
package org.nl.wms.sch.task_manage.task.tasks; |
|
|
package org.nl.wms.sch.task_manage.task.tasks; |
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
|
|
import cn.hutool.core.lang.Assert; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
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; |
|
@ -55,10 +56,6 @@ public class POINTTask extends AbstractTask { |
|
|
private IWorkorderService workorderService; |
|
|
private IWorkorderService workorderService; |
|
|
@Autowired |
|
|
@Autowired |
|
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; |
|
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; |
|
|
@Autowired |
|
|
|
|
|
private PointMapper pointMapper; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private WmsToAcsService wmsToAcsService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
// @Transactional(rollbackFor = Exception.class)
|
|
|
// @Transactional(rollbackFor = Exception.class)
|
|
@ -68,36 +65,44 @@ public class POINTTask extends AbstractTask { |
|
|
// 配置信息
|
|
|
// 配置信息
|
|
|
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>() |
|
|
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>() |
|
|
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); |
|
|
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); |
|
|
for (SchBaseTask task : tasks) { |
|
|
Assert.notNull(taskConfig, "找不到任务配置文件,请确认YCLCKTask配置是否存在!"); |
|
|
|
|
|
// 获取任务配置最大生成任务数
|
|
|
task.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
Integer tcmn = taskConfig.getTask_create_max_num(); |
|
|
task.setRemark(""); |
|
|
// 获取执行中的任务
|
|
|
SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() |
|
|
List<SchBaseTask> unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(TASK_CONFIG_CODE); |
|
|
.eq(SchBasePoint::getPoint_code, task.getPoint_code1())); |
|
|
//执行中任务数量小于最大可生成任务数
|
|
|
SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() |
|
|
if(unFinishTasksByTaskConfig.size() < tcmn){ |
|
|
.eq(SchBasePoint::getPoint_code, task.getPoint_code2())); |
|
|
for (SchBaseTask task : tasks) { |
|
|
if(task.getPoint_code2().startsWith("DKT")){ |
|
|
task.setTask_status(TaskStatus.CREATED.getCode()); |
|
|
//如果是叠盘位,根据当前数量+1为目标地址
|
|
|
task.setRemark(""); |
|
|
int qty=nextSchBasePoint.getVehicle_qty()+1; |
|
|
SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() |
|
|
task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); |
|
|
.eq(SchBasePoint::getPoint_code, task.getPoint_code1())); |
|
|
} |
|
|
SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() |
|
|
task.setVehicle_code(schBasePoint.getVehicle_code()); |
|
|
.eq(SchBasePoint::getPoint_code, task.getPoint_code2())); |
|
|
task.setVehicle_code2(schBasePoint.getVehicle_code2()); |
|
|
if(task.getPoint_code2().startsWith("DKT")){ |
|
|
taskService.update(task); |
|
|
//如果是叠盘位,根据当前数量+1为目标地址
|
|
|
|
|
|
int qty=nextSchBasePoint.getVehicle_qty()+1; |
|
|
|
|
|
task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); |
|
|
|
|
|
} |
|
|
|
|
|
task.setVehicle_code(schBasePoint.getVehicle_code()); |
|
|
|
|
|
task.setVehicle_code2(schBasePoint.getVehicle_code2()); |
|
|
|
|
|
taskService.update(task); |
|
|
|
|
|
|
|
|
//发起任务时先把点位占用,防止发起重复任务
|
|
|
//发起任务时先把点位占用,防止发起重复任务
|
|
|
schBasePoint.setIng_task_code(task.getTask_code()); |
|
|
schBasePoint.setIng_task_code(task.getTask_code()); |
|
|
pointService.update(schBasePoint); |
|
|
pointService.update(schBasePoint); |
|
|
nextSchBasePoint.setIng_task_code(task.getTask_code()); |
|
|
nextSchBasePoint.setIng_task_code(task.getTask_code()); |
|
|
pointService.update(nextSchBasePoint); |
|
|
pointService.update(nextSchBasePoint); |
|
|
//去回温库的任务,更细工单表
|
|
|
//去回温库的任务,更细工单表
|
|
|
if(nextSchBasePoint.getPoint_code().contains("XHW")){ |
|
|
if(nextSchBasePoint.getPoint_code().contains("XHW")){ |
|
|
//pdm_bd_workorder_two任务完成时,status改为2出库中
|
|
|
//pdm_bd_workorder_two任务完成时,status改为2出库中
|
|
|
workorderService.update(schBasePoint.getVehicle_code2(),"2"); |
|
|
workorderService.update(schBasePoint.getVehicle_code2(),"2"); |
|
|
|
|
|
} |
|
|
|
|
|
//下发
|
|
|
|
|
|
this.renotifyAcs(task); |
|
|
} |
|
|
} |
|
|
//下发
|
|
|
|
|
|
this.renotifyAcs(task); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -211,6 +216,11 @@ public class POINTTask extends AbstractTask { |
|
|
if (ObjectUtil.isNotEmpty(endPointObj)) { |
|
|
if (ObjectUtil.isNotEmpty(endPointObj)) { |
|
|
endPointObj.setIng_task_code(""); |
|
|
endPointObj.setIng_task_code(""); |
|
|
pointService.update(endPointObj); |
|
|
pointService.update(endPointObj); |
|
|
|
|
|
//去回温库的任务,更细工单表
|
|
|
|
|
|
if(endPointObj.getPoint_code().contains("XHW")){ |
|
|
|
|
|
//pdm_bd_workorder_two任务完成时,status改为1出库中
|
|
|
|
|
|
workorderService.update(endPointObj.getVehicle_code2(),"1"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
// 起点解锁
|
|
|
// 起点解锁
|
|
|
if (ObjectUtil.isNotEmpty(startPointObj)) { |
|
|
if (ObjectUtil.isNotEmpty(startPointObj)) { |
|
|