代码更新
This commit is contained in:
@@ -177,6 +177,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("point_code2", point_code);
|
param.put("point_code2", point_code);
|
||||||
|
param.put("vehicle_type", vehicle_type);
|
||||||
param.put("qty", vehicle_num);
|
param.put("qty", vehicle_num);
|
||||||
// 创建任务
|
// 创建任务
|
||||||
GjxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(GjxCallEmpVehicleTask.class);
|
GjxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(GjxCallEmpVehicleTask.class);
|
||||||
|
|||||||
@@ -123,7 +123,9 @@ public abstract class AbstractAcsTask {
|
|||||||
taskDto.setStart_device_code(json.getString("point_code1"));
|
taskDto.setStart_device_code(json.getString("point_code1"));
|
||||||
taskDto.setNext_device_code(json.getString("point_code2"));
|
taskDto.setNext_device_code(json.getString("point_code2"));
|
||||||
taskDto.setPriority("1");
|
taskDto.setPriority("1");
|
||||||
|
taskDto.setVehicle_type(json.getString("vehicle_type"));
|
||||||
taskDto.setVehicle_code(json.getString("vehicle_code"));
|
taskDto.setVehicle_code(json.getString("vehicle_code"));
|
||||||
|
taskDto.setPriority(json.getString("priority"));
|
||||||
taskDto.setTask_type("1");
|
taskDto.setTask_type("1");
|
||||||
taskDto.setRoute_plan_code("normal");
|
taskDto.setRoute_plan_code("normal");
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,8 @@ package org.nl.wms.sch.tasks;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -15,16 +13,11 @@ import org.nl.modules.common.utils.SecurityUtils;
|
|||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
|
||||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||||
import org.nl.wms.sch.service.PointService;
|
|
||||||
import org.nl.wms.sch.service.dto.PointDto;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -64,25 +57,38 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
jsonTask.put("update_time", DateUtil.now());
|
jsonTask.put("update_time", DateUtil.now());
|
||||||
taskTab.update(jsonTask);
|
taskTab.update(jsonTask);
|
||||||
|
|
||||||
PointService point = SpringContextHolder.getBean(PointService.class);
|
String end_point_code = jsonTask.getString("point_code2");
|
||||||
// 校验起点是否存在
|
String start_point_code = jsonTask.getString("point_code1");
|
||||||
PointDto point_code1 = point.findByCode(jsonTask.getString("point_code1"));
|
JSONObject endPoint = pointTab.query("point_code = '" + end_point_code + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(point_code1)) throw new BadRequestException("未找到可用点位:" + point_code1);
|
//从空托盘缓存B区或养生A区搬运到叠盘架
|
||||||
// 校验终点是否存在
|
if (StrUtil.equals("DPJQB01", endPoint.getString("region_code"))) {
|
||||||
PointDto point_code2 = point.findByCode(jsonTask.getString("point_code2"));
|
//解锁起点
|
||||||
if (ObjectUtil.isEmpty(point_code1)) throw new BadRequestException("未找到可用点位:" + point_code2);
|
JSONObject startPoint = new JSONObject();
|
||||||
|
startPoint.put("lock_type", "00");
|
||||||
// 1.更新点位数量 2.解锁点位
|
startPoint.put("point_status", "1");
|
||||||
int vehicle_qty = JSONObject.parseObject(JSON.toJSONString(point_code1)).getIntValue("vehicle_qty");
|
startPoint.put("update_time", DateUtil.now());
|
||||||
BigDecimal vehicle_qty_point = NumberUtil.sub(String.valueOf(vehicle_qty), String.valueOf(1));
|
pointTab.update(startPoint, "point_code = '" + start_point_code + "'");
|
||||||
|
//更新终点点位状态
|
||||||
point_code1.setVehicle_qty(vehicle_qty_point);
|
endPoint.put("point_status","2");
|
||||||
if (StrUtil.equals(vehicle_qty_point.toString(), "0")) {
|
endPoint.put("lock_type","00");
|
||||||
point_code1.setPoint_status("00");
|
endPoint.put("vehicle_qty",jsonTask.getString("vehicle_qty"));
|
||||||
point_code1.setVehicle_type("");
|
endPoint.put("vehicle_type",jsonTask.getString("vehicle_type"));
|
||||||
|
endPoint.put("update_time",DateUtil.now());
|
||||||
|
pointTab.update(endPoint);
|
||||||
|
}else {
|
||||||
|
JSONObject startPoint = pointTab.query("point_code = '" + start_point_code + "'").uniqueResult(0);
|
||||||
|
Integer vehicle_qty = startPoint.getInteger("vehicle_qty");
|
||||||
|
int after_qty=vehicle_qty-1;
|
||||||
|
startPoint.put("lock_type", "00");
|
||||||
|
startPoint.put("vehicle_qty", after_qty);
|
||||||
|
if (after_qty>0){
|
||||||
|
startPoint.put("point_status", "2");
|
||||||
|
}else {
|
||||||
|
startPoint.put("point_status", "1");
|
||||||
|
}
|
||||||
|
startPoint.put("update_time", DateUtil.now());
|
||||||
|
pointTab.update(startPoint, "point_code = '" + start_point_code + "'");
|
||||||
}
|
}
|
||||||
point_code1.setLock_type("00");
|
|
||||||
pointTab.update(JSONObject.parseObject(JSON.toJSONString(point_code1)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,48 +97,90 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
|
|
||||||
JSONArray taskArr = taskTab.query("is_delete = '0' and handle_class = '" + this.THIS_CLASS + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").getResultJSONArray(0);
|
JSONArray taskArr = taskTab.query("is_delete = '0' and handle_class = '" + this.THIS_CLASS + "' and task_status = '" + TaskStatusEnum.SURE_END.getCode() + "'").getResultJSONArray(0);
|
||||||
for (int i = 0; i < taskArr.size(); i++) {
|
for (int i = 0; i < taskArr.size(); i++) {
|
||||||
// 创建任务
|
// 创建任务
|
||||||
JSONObject jsonTask = taskArr.getJSONObject(i);
|
JSONObject jsonTask = taskArr.getJSONObject(i);
|
||||||
String vehicle_type = jsonTask.getString("vehicle_type");
|
String vehicle_type = jsonTask.getString("vehicle_type");
|
||||||
//判断叠盘位是否有任务
|
|
||||||
JSONObject taskObj = taskTab.query("is_delete='0' and task_type='" + jsonTask.getString("gjxsqkp") + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(taskObj)) {
|
|
||||||
jsonTask.put("task_status", TaskStatusEnum.SURE_END.getCode());
|
|
||||||
jsonTask.put("point_code1", "");
|
|
||||||
} else {//叠盘架无执行中的AGV任务
|
|
||||||
|
|
||||||
//判断叠盘架是否有载具
|
//判断叠盘位是否有另外任务
|
||||||
JSONObject dpjPoint = pointTab.query("is_used ='1' and lock_type='00' and is_delete='0' and region_code='DPJQB01' and vehicle_qty >0 and can_vehicle_type like '%" + vehicle_type + "%'").uniqueResult(0);
|
JSONObject taskObj = taskTab.query("is_delete='0' and handle_class='" + this.THIS_CLASS + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "' and task_id <> " + jsonTask.getLong("task_id")).uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(dpjPoint)) {
|
if (ObjectUtil.isNotEmpty(taskObj)) continue;
|
||||||
jsonTask.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
|
||||||
jsonTask.put("point_code1", dpjPoint.getString("point_code"));
|
|
||||||
//锁住点位
|
|
||||||
dpjPoint.put("lock_type", "01");
|
|
||||||
pointTab.update(dpjPoint);
|
|
||||||
} else {//去缓存位和养生A区找
|
|
||||||
JSONObject whereParam = new JSONObject();
|
|
||||||
whereParam.put("flag", "1");
|
|
||||||
whereParam.put("vehicle_type", jsonTask.getString("vehicle_type"));
|
|
||||||
JSONObject outJsonObj = WQL.getWO("ST_VEHICLE_OUT_01").addParamMap(whereParam).process().uniqueResult(0);
|
|
||||||
jsonTask.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
|
||||||
jsonTask.put("point_code1", outJsonObj.getString("point_code"));
|
|
||||||
//锁住点位
|
|
||||||
dpjPoint.put("lock_type", "01");
|
|
||||||
pointTab.update(outJsonObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//判断叠盘架是否有载具
|
||||||
|
JSONObject dpjPoint = pointTab.query("is_used ='1' and lock_type='00' and is_delete='0' and region_code='DPJQB01' and vehicle_qty >0 and can_vehicle_type like '%" + vehicle_type + "%'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(dpjPoint)) {
|
||||||
|
jsonTask.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||||
|
jsonTask.put("point_code1", dpjPoint.getString("point_code"));
|
||||||
|
jsonTask.put("update_time", DateUtil.now());
|
||||||
|
taskTab.update(jsonTask);
|
||||||
|
|
||||||
|
//锁住点位
|
||||||
|
dpjPoint.put("lock_type", "01");
|
||||||
|
pointTab.update(dpjPoint);
|
||||||
|
} else {
|
||||||
|
//查找叠盘架编码
|
||||||
|
JSONObject dpjPoint1 = pointTab.query("is_delete='0' and region_code='DPJQB01' and can_vehicle_type like '%" + vehicle_type + "%'").uniqueResult(0);
|
||||||
|
|
||||||
|
//叠盘架无载具:1-判断是否有在执行中的堆叠任务,有则等堆叠任务完成以后再去,否则去去缓存位和养生A区找
|
||||||
|
JSONObject ddTask = taskTab.query("is_delete='0' and point_code2 = '" + dpjPoint1.getString("point_code") + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(ddTask)) continue;
|
||||||
|
|
||||||
|
//去缓存位和养生A区找,生成到叠盘架的任务
|
||||||
|
JSONObject whereParam = new JSONObject();
|
||||||
|
whereParam.put("flag", "1");
|
||||||
|
whereParam.put("vehicle_type", '%'+jsonTask.getString("vehicle_type")+"%");
|
||||||
|
JSONObject outJsonObj = WQL.getWO("ST_VEHICLE_OUT_01").addParamMap(whereParam).process().uniqueResult(0);
|
||||||
|
|
||||||
|
// 空托盘缓存货架或者养生A区------>叠盘架B区
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
Long task_id = IdUtil.getSnowflake(1, 1).nextId();
|
||||||
|
Long task_group_id = IdUtil.getSnowflake(1, 1).nextId();
|
||||||
|
param.put("task_id", task_id);
|
||||||
|
param.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
param.put("vehicle_type", vehicle_type);
|
||||||
|
param.put("priority", 100);
|
||||||
|
param.put("handle_class", THIS_CLASS);
|
||||||
|
param.put("task_type", "kzj");
|
||||||
|
param.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||||
|
param.put("task_group_id", task_group_id);
|
||||||
|
param.put("sort_seq", 1);
|
||||||
|
param.put("point_code1", outJsonObj.getString("point_code"));
|
||||||
|
param.put("point_code2", dpjPoint1.getString("point_code"));
|
||||||
|
param.put("create_name", SecurityUtils.getCurrentUsername());
|
||||||
|
param.put("create_id", SecurityUtils.getCurrentUserId());
|
||||||
|
param.put("create_time", DateUtil.now());
|
||||||
|
taskTab.insert(param);
|
||||||
|
|
||||||
|
//锁住起点
|
||||||
|
outJsonObj.put("lock_type", "01");
|
||||||
|
pointTab.update(outJsonObj);
|
||||||
|
this.renotifyAcs(String.valueOf(task_id));
|
||||||
|
|
||||||
|
|
||||||
|
jsonTask.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||||
|
jsonTask.put("point_code1", outJsonObj.getString("point_code"));
|
||||||
|
jsonTask.put("sort_seq", 2);
|
||||||
|
jsonTask.put("task_group_id", task_group_id);
|
||||||
|
jsonTask.put("remark", "叠盘架无载具!");
|
||||||
|
taskTab.update(jsonTask);
|
||||||
|
|
||||||
|
//锁住点位
|
||||||
|
dpjPoint1.put("lock_type", "01");
|
||||||
|
pointTab.update(outJsonObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
|
|
||||||
String end_point_code = form.getString("point_code2");
|
String end_point_code = form.getString("point_code2");
|
||||||
String vehicle_type = form.getString("vehicle_type");
|
String vehicle_type = form.getString("vehicle_type");
|
||||||
|
|
||||||
|
|||||||
@@ -52,13 +52,13 @@
|
|||||||
p.is_used = '1'
|
p.is_used = '1'
|
||||||
AND p.is_delete = '0'
|
AND p.is_delete = '0'
|
||||||
AND p.lock_type = '00'
|
AND p.lock_type = '00'
|
||||||
and region_code in ('DPJQB01','YSQA01')
|
and region_code in ('KTPHCQB01','YSQA01')
|
||||||
|
|
||||||
OPTION 输入.vehicle_type <> ""
|
OPTION 输入.vehicle_type <> ""
|
||||||
point.vehicle_type like 输入.vehicle_type
|
p.vehicle_type like 输入.vehicle_type
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|
||||||
order by out_empty_seq,point.vehicle_qty
|
order by out_empty_seq,p.vehicle_qty
|
||||||
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
|
|||||||
Binary file not shown.
@@ -77,17 +77,25 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
|
|
||||||
<!--开发环境:打印控制台-->
|
<!--开发环境:打印控制台-->
|
||||||
<springProfile name="dev">
|
<springProfile name="dev">
|
||||||
<root level="info">
|
<root level="debug">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
<appender-ref ref="lokiAppender" />
|
<appender-ref ref="lokiAppender" />
|
||||||
</root>
|
</root>
|
||||||
|
|
||||||
<logger name="jdbc.audit" level="ERROR" additivity="false">
|
<logger name="jdbc.audit" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
<logger name="org.springframework" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.apache" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
|
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
<logger name="io.lettuce" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
<logger name="jdbc.resultset" level="ERROR" additivity="false">
|
<logger name="jdbc.resultset" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
|||||||
@@ -124,7 +124,7 @@
|
|||||||
<el-table-column v-if="false" prop="taskdtl_id" label="任务标识" />
|
<el-table-column v-if="false" prop="taskdtl_id" label="任务标识" />
|
||||||
<el-table-column prop="task_code" label="任务编码" />
|
<el-table-column prop="task_code" label="任务编码" />
|
||||||
<el-table-column v-if="false" prop="task_type" label="任务类型" />
|
<el-table-column v-if="false" prop="task_type" label="任务类型" />
|
||||||
<el-table-column prop="task_type_name" label="任务类型" />
|
<el-table-column prop="task_type_name" label="任务类型" min-width="120" show-overflow-tooltip/>
|
||||||
<el-table-column v-if="false" prop="task_status" label="任务状态" />
|
<el-table-column v-if="false" prop="task_status" label="任务状态" />
|
||||||
<el-table-column prop="task_status_name" label="任务状态" width="95px" :formatter="formatTaskStatusName" />
|
<el-table-column prop="task_status_name" label="任务状态" width="95px" :formatter="formatTaskStatusName" />
|
||||||
<el-table-column prop="vehicle_code" label="载具编码" />
|
<el-table-column prop="vehicle_code" label="载具编码" />
|
||||||
|
|||||||
Reference in New Issue
Block a user