fix: 任务类的修复
This commit is contained in:
@@ -55,7 +55,7 @@ public class PdmBdWorkorder implements Serializable {
|
|||||||
private String realproduceend_date;
|
private String realproduceend_date;
|
||||||
|
|
||||||
@ApiModelProperty(value = "静置时间(分钟)")
|
@ApiModelProperty(value = "静置时间(分钟)")
|
||||||
private BigDecimal standing_time;
|
private Integer standing_time;
|
||||||
|
|
||||||
@ApiModelProperty(value = "点位编码")
|
@ApiModelProperty(value = "点位编码")
|
||||||
private String point_code;
|
private String point_code;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.enums.wms.PointStatusEnum;
|
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
@@ -17,6 +16,7 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
|||||||
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
||||||
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
|
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
|
||||||
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
|
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||||
import org.nl.wms.utils.PointUtil;
|
import org.nl.wms.utils.PointUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -133,7 +133,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
}
|
}
|
||||||
String pointStatus = entity.getPoint_status();
|
String pointStatus = entity.getPoint_status();
|
||||||
// 根据点位状态来判断更新内容
|
// 根据点位状态来判断更新内容
|
||||||
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_PLACE.getValue())) {
|
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
|
||||||
entity.setVehicle_type("");
|
entity.setVehicle_type("");
|
||||||
entity.setVehicle_code("");
|
entity.setVehicle_code("");
|
||||||
entity.setVehicle_qty(0);
|
entity.setVehicle_qty(0);
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
//...
|
//...
|
||||||
//4、叫空载具
|
//4、叫空载具
|
||||||
//...
|
//...
|
||||||
AbstractTask task = taskFactory.getTask("YZQLTask");
|
AbstractTask task = taskFactory.getTask("YZSKTask");
|
||||||
// 执行创建任务
|
// 执行创建任务
|
||||||
task.apply(param);
|
task.apply(param);
|
||||||
}
|
}
|
||||||
@@ -208,7 +208,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
throw new BadRequestException("任务已完成或已取消!");
|
throw new BadRequestException("任务已完成或已取消!");
|
||||||
}
|
}
|
||||||
// 根据配置去工厂类获得类对象
|
// 根据配置去工厂类获得类对象
|
||||||
String processing_class = "YZQLTask";
|
String processing_class = "YZSKTask";
|
||||||
String message = "";
|
String message = "";
|
||||||
// 根据任务类型获取对应的任务操作类
|
// 根据任务类型获取对应的任务操作类
|
||||||
AbstractTask abstractTask = taskFactory.getTask(processing_class);
|
AbstractTask abstractTask = taskFactory.getTask(processing_class);
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ public abstract class AbstractTask {
|
|||||||
// 申请任务
|
// 申请任务
|
||||||
SchBaseTask task = new SchBaseTask(); // 任务实体
|
SchBaseTask task = new SchBaseTask(); // 任务实体
|
||||||
String apply_point_code = param.getString("device_code");
|
String apply_point_code = param.getString("device_code");
|
||||||
String config_code = "YZQLTask";
|
String config_code = "YZSKTask";
|
||||||
// 1、校验数据
|
// 1、校验数据
|
||||||
SchBaseTaskconfig taskConfig = taskConfigService.getById(config_code);
|
SchBaseTaskconfig taskConfig = taskConfigService.getById(config_code);
|
||||||
// 最大任务数
|
// 最大任务数
|
||||||
|
|||||||
@@ -16,6 +16,6 @@ public enum PointStatusEnum {
|
|||||||
FULL_POINT("2", "有料"),
|
FULL_POINT("2", "有料"),
|
||||||
EMPTY_VEHICLE("3", "空载具");
|
EMPTY_VEHICLE("3", "空载具");
|
||||||
|
|
||||||
private final String value;
|
private final String code;
|
||||||
private final String label;
|
private final String label;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import org.nl.wms.sch.task_manage.AbstractTask;
|
|||||||
import org.nl.wms.sch.task_manage.task.tasks.hn.HNMLTask;
|
import org.nl.wms.sch.task_manage.task.tasks.hn.HNMLTask;
|
||||||
import org.nl.wms.sch.task_manage.task.tasks.hn.HNQKTask;
|
import org.nl.wms.sch.task_manage.task.tasks.hn.HNQKTask;
|
||||||
import org.nl.wms.sch.task_manage.task.tasks.yz.YZQLTask;
|
import org.nl.wms.sch.task_manage.task.tasks.yz.YZQLTask;
|
||||||
|
import org.nl.wms.sch.task_manage.task.tasks.yz.YZSKTask;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -22,6 +23,12 @@ public class TaskFactory {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private YZQLTask yzqlTask;
|
private YZQLTask yzqlTask;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HNQKTask hnqkTask;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YZSKTask yzskTask;
|
||||||
|
|
||||||
//使用 getShape 方法获取形状类型的对象
|
//使用 getShape 方法获取形状类型的对象
|
||||||
public AbstractTask getTask(String taskType) {
|
public AbstractTask getTask(String taskType) {
|
||||||
if (taskType == null) {
|
if (taskType == null) {
|
||||||
@@ -33,6 +40,12 @@ public class TaskFactory {
|
|||||||
if (taskType.equalsIgnoreCase("YZQLTask")) {
|
if (taskType.equalsIgnoreCase("YZQLTask")) {
|
||||||
return yzqlTask;
|
return yzqlTask;
|
||||||
}
|
}
|
||||||
|
if (taskType.equalsIgnoreCase("HNQKTask")) {
|
||||||
|
return hnqkTask;
|
||||||
|
}
|
||||||
|
if (taskType.equalsIgnoreCase("YZSKTask")) {
|
||||||
|
return yzskTask;
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ 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;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.nl.common.enums.wms.PointStatusEnum;
|
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
|
||||||
|
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
@@ -18,6 +19,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
|||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
|
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -39,12 +41,6 @@ public class HNMLTask extends AbstractTask {
|
|||||||
|
|
||||||
private static String TASK_CONFIG_CODE = "HNMLTask";
|
private static String TASK_CONFIG_CODE = "HNMLTask";
|
||||||
|
|
||||||
// 空位
|
|
||||||
private static final String EMPTY_POINT = "1";
|
|
||||||
// 有料
|
|
||||||
private static final String FULL_POINT = "2";
|
|
||||||
// 空载具
|
|
||||||
private static final String EMPTY_VEHICLE = "3";
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -53,6 +49,8 @@ public class HNMLTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmBdWorkorderService workorderService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateStatus(String task_code, TaskStatus status) {
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
@@ -71,7 +69,6 @@ public class HNMLTask extends AbstractTask {
|
|||||||
: null;
|
: null;
|
||||||
// 载具编码:没有就创建一个
|
// 载具编码:没有就创建一个
|
||||||
String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code()) ? taskObj.getVehicle_code() : IdUtil.getSnowflake(1, 1).nextIdStr();
|
String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code()) ? taskObj.getVehicle_code() : IdUtil.getSnowflake(1, 1).nextIdStr();
|
||||||
SchBaseTaskconfig configObj = taskConfigService.getById(TASK_CONFIG_CODE);
|
|
||||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
|
|
||||||
// 根据传来的类型去对任务进行操作
|
// 根据传来的类型去对任务进行操作
|
||||||
@@ -80,13 +77,17 @@ public class HNMLTask extends AbstractTask {
|
|||||||
taskObj.setRemark("执行中");
|
taskObj.setRemark("执行中");
|
||||||
}
|
}
|
||||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
|
PdmBdWorkorder workorderCode =
|
||||||
|
ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
|
||||||
|
? workorderService.getById(extGroupData.getString("workorder_code"))
|
||||||
|
: null;
|
||||||
// 要把数据存到组盘表
|
// 要把数据存到组盘表
|
||||||
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
||||||
groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(extGroupData) && ObjectUtil.isNotEmpty(extGroupData.getString("material_id"))
|
groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
|
||||||
? extGroupData.getString("material_id")
|
? workorderCode.getMaterial_id()
|
||||||
: "");
|
: "");
|
||||||
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(extGroupData) && ObjectUtil.isNotEmpty(extGroupData.getString("standing_time"))
|
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
|
||||||
? extGroupData.getInteger("standing_time")
|
? workorderCode.getStanding_time()
|
||||||
: 0);
|
: 0);
|
||||||
groupEntity.setIs_full(ObjectUtil.isNotEmpty(extGroupData)
|
groupEntity.setIs_full(ObjectUtil.isNotEmpty(extGroupData)
|
||||||
? extGroupData.getBoolean("is_full")
|
? extGroupData.getBoolean("is_full")
|
||||||
@@ -97,8 +98,8 @@ public class HNMLTask extends AbstractTask {
|
|||||||
groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
|
groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
|
||||||
? extGroupData.getBigDecimal("material_weight")
|
? extGroupData.getBigDecimal("material_weight")
|
||||||
: BigDecimal.valueOf(0));
|
: BigDecimal.valueOf(0));
|
||||||
groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(extGroupData) && ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
|
groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
|
||||||
? extGroupData.getString("workorder_code")
|
? workorderCode.getWorkorder_code()
|
||||||
: "");
|
: "");
|
||||||
groupEntity.setVehicle_code(vehicle_code);
|
groupEntity.setVehicle_code(vehicle_code);
|
||||||
groupEntity.setVehicle_type(taskObj.getVehicle_type());
|
groupEntity.setVehicle_type(taskObj.getVehicle_type());
|
||||||
@@ -116,8 +117,8 @@ public class HNMLTask extends AbstractTask {
|
|||||||
endPointObj.setVehicle_code(vehicle_code);
|
endPointObj.setVehicle_code(vehicle_code);
|
||||||
endPointObj.setVehicle_type(taskObj.getVehicle_type());
|
endPointObj.setVehicle_type(taskObj.getVehicle_type());
|
||||||
endPointObj.setVehicle_qty(1);
|
endPointObj.setVehicle_qty(1);
|
||||||
endPointObj.setPoint_status(PointStatusEnum.FULL_MATERIAL.getValue()); // 有料
|
endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); // 有料
|
||||||
pointService.updateById(endPointObj);
|
pointService.update(endPointObj);
|
||||||
}
|
}
|
||||||
taskObj.setRemark("任务完成");
|
taskObj.setRemark("任务完成");
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
@@ -128,13 +129,12 @@ public class HNMLTask extends AbstractTask {
|
|||||||
: null;
|
: null;
|
||||||
if (one != null) {
|
if (one != null) {
|
||||||
one.setIng_task_code("");
|
one.setIng_task_code("");
|
||||||
pointService.updateById(one);
|
pointService.update(one);
|
||||||
}
|
}
|
||||||
taskObj.setRemark("任务取消");
|
taskObj.setRemark("任务取消");
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
}
|
}
|
||||||
taskObj.setUpdate_time(DateUtil.now());
|
taskService.update(taskObj);
|
||||||
taskService.updateById(taskObj);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,8 +149,10 @@ public class HNMLTask extends AbstractTask {
|
|||||||
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
||||||
for (SchBaseTask task : tasks) {
|
for (SchBaseTask task : tasks) {
|
||||||
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
|
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
|
||||||
|
String extGroupData = task.getExt_group_data();
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
||||||
// 找终点
|
// 找终点
|
||||||
SchBasePoint point = findNextPoint(nextRegionStr);
|
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("未找到所需点位!");
|
||||||
taskService.update(task);
|
taskService.update(task);
|
||||||
@@ -171,10 +173,15 @@ public class HNMLTask extends AbstractTask {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SchBasePoint findNextPoint(List<String> nextRegionStr) {
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject extData) {
|
||||||
|
String workorderCode = extData.getString("workorder_code");
|
||||||
|
PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
|
||||||
|
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
||||||
|
: null;
|
||||||
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
||||||
lam.in(SchBasePoint::getRegion_code, nextRegionStr)
|
lam.in(SchBasePoint::getRegion_code, nextRegionStr)
|
||||||
.eq(SchBasePoint::getPoint_status, EMPTY_POINT)
|
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||||
|
.like(ObjectUtil.isNotEmpty(one), SchBasePoint::getCan_vehicle_type, one.getVehicle_type())
|
||||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||||
.or()
|
.or()
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package org.nl.wms.sch.task_manage.task.tasks.hn;
|
package org.nl.wms.sch.task_manage.task.tasks.hn;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
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;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
|
||||||
|
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
@@ -12,7 +14,9 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
|||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.utils.PointUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -29,13 +33,6 @@ import java.util.stream.Collectors;
|
|||||||
public class HNQKTask extends AbstractTask {
|
public class HNQKTask extends AbstractTask {
|
||||||
private static String TASK_CONFIG_CODE = "HNQKTask";
|
private static String TASK_CONFIG_CODE = "HNQKTask";
|
||||||
|
|
||||||
// 空位
|
|
||||||
private final String EMPTY_POINT = "1";
|
|
||||||
// 有料
|
|
||||||
private final String FULL_POINT = "2";
|
|
||||||
// 空载具
|
|
||||||
private final String EMPTY_VEHICLE = "3";
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -43,7 +40,7 @@ public class HNQKTask extends AbstractTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private IPdmBdWorkorderService workorderService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 具体业务
|
* 具体业务
|
||||||
@@ -56,8 +53,10 @@ public class HNQKTask extends AbstractTask {
|
|||||||
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
||||||
for (SchBaseTask task : tasks) {
|
for (SchBaseTask task : tasks) {
|
||||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
|
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
|
||||||
// 找终点
|
// 找起点
|
||||||
SchBasePoint point = findStartPoint(startRegionStr);
|
String extGroupData = task.getExt_group_data();
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
||||||
|
SchBasePoint point = findStartPoint(startRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("未找到所需点位!");
|
||||||
taskService.update(task);
|
taskService.update(task);
|
||||||
@@ -81,14 +80,21 @@ public class HNQKTask extends AbstractTask {
|
|||||||
* 找起点
|
* 找起点
|
||||||
*
|
*
|
||||||
* @param startRegionStr
|
* @param startRegionStr
|
||||||
|
* @param extGroupData
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private SchBasePoint findStartPoint(List<String> startRegionStr) {
|
private SchBasePoint findStartPoint(List<String> startRegionStr, JSONObject extGroupData) {
|
||||||
|
String workorderCode = extGroupData.getString("workorder_code");
|
||||||
|
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
|
||||||
|
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
||||||
|
: null;
|
||||||
|
String vehicleType = ObjectUtil.isNotEmpty(workOrder) && ObjectUtil.isNotEmpty(workOrder.getVehicle_type())
|
||||||
|
? workOrder.getVehicle_type()
|
||||||
|
: null;
|
||||||
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
||||||
lam.in(SchBasePoint::getRegion_code, startRegionStr)
|
lam.in(SchBasePoint::getRegion_code, startRegionStr)
|
||||||
.eq(SchBasePoint::getPoint_status, EMPTY_VEHICLE)
|
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
|
||||||
// 可添加对托盘类型的校验
|
.eq(ObjectUtil.isNotEmpty(vehicleType), SchBasePoint::getVehicle_type, vehicleType)
|
||||||
.eq(SchBasePoint::getVehicle_type, "1")
|
|
||||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||||
.or()
|
.or()
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
@@ -109,12 +115,35 @@ public class HNQKTask extends AbstractTask {
|
|||||||
throw new BadRequestException("该任务已取消!");
|
throw new BadRequestException("该任务已取消!");
|
||||||
}
|
}
|
||||||
// 获取参数
|
// 获取参数
|
||||||
String pointCode1 = taskObj.getPoint_code1(); // 获取起点
|
String startPoint = taskObj.getPoint_code1(); // 获取起点
|
||||||
// 获取外部参数
|
// 获取外部参数
|
||||||
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
|
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
|
||||||
? JSONObject.parseObject(taskObj.getExt_group_data())
|
? JSONObject.parseObject(taskObj.getExt_group_data())
|
||||||
: null;
|
: null;
|
||||||
|
SchBasePoint startPointObj = pointService.getById(startPoint);
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
|
// 起点清空
|
||||||
|
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||||
|
PointUtil.clearPoint(startPointObj);
|
||||||
|
}
|
||||||
|
// 任务完成
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark("任务完成");
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
||||||
|
// 起点解锁
|
||||||
|
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||||
|
startPointObj.setIng_task_code("");
|
||||||
|
pointService.update(startPointObj);
|
||||||
|
}
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
}
|
||||||
|
taskService.update(taskObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
|
||||||
|
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
@@ -17,6 +19,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
|||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
import org.nl.wms.utils.PointUtil;
|
import org.nl.wms.utils.PointUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -36,12 +39,6 @@ import java.util.stream.Collectors;
|
|||||||
public class YZQLTask extends AbstractTask {
|
public class YZQLTask extends AbstractTask {
|
||||||
private static String TASK_CONFIG_CODE = "YZQLTask";
|
private static String TASK_CONFIG_CODE = "YZQLTask";
|
||||||
|
|
||||||
// 空位
|
|
||||||
private final String EMPTY_POINT = "1";
|
|
||||||
// 有料
|
|
||||||
private final String FULL_POINT = "2";
|
|
||||||
// 空载具
|
|
||||||
private final String EMPTY_VEHICLE = "3";
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -50,6 +47,8 @@ public class YZQLTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmBdWorkorderService workorderService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
@@ -62,6 +61,7 @@ public class YZQLTask extends AbstractTask {
|
|||||||
// 找起点
|
// 找起点
|
||||||
String extGroupData = task.getExt_group_data();
|
String extGroupData = task.getExt_group_data();
|
||||||
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
||||||
|
jsonObject.put("vehicle_type", task.getVehicle_type());
|
||||||
SchBasePoint point = findStartPoint(startRegionStr, jsonObject);
|
SchBasePoint point = findStartPoint(startRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("未找到所需点位!");
|
||||||
@@ -84,7 +84,7 @@ public class YZQLTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 找起点业务:根据起点区域寻找所需点位
|
* 找起点业务:根据起点区域寻找所需点位, 必须要工单
|
||||||
*
|
*
|
||||||
* @param startRegionStr : 区域列表
|
* @param startRegionStr : 区域列表
|
||||||
* @param extGroupData : 外部参数,包含条件所需的信息
|
* @param extGroupData : 外部参数,包含条件所需的信息
|
||||||
@@ -92,9 +92,14 @@ public class YZQLTask extends AbstractTask {
|
|||||||
* @description : JSONObject获取不到就是null
|
* @description : JSONObject获取不到就是null
|
||||||
*/
|
*/
|
||||||
private SchBasePoint findStartPoint(List<String> startRegionStr, JSONObject extGroupData) {
|
private SchBasePoint findStartPoint(List<String> startRegionStr, JSONObject extGroupData) {
|
||||||
String materialId = extGroupData.getString("material_id");
|
String workorderCode = extGroupData.getString("workorder_code");
|
||||||
String vehicleType = extGroupData.getString("vehicle_type");
|
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
|
||||||
int standingTime = extGroupData.getInteger("standing_time"); // 静置时间
|
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
||||||
|
: null;
|
||||||
|
Assert.notNull(workOrder, "工单不能为空!");
|
||||||
|
String vehicleType = workOrder.getVehicle_type();
|
||||||
|
String materialId = workOrder.getMaterial_id();
|
||||||
|
int standingTime = workOrder.getStanding_time(); // 静置时间
|
||||||
Assert.notNull(materialId, "物料不能为空!");
|
Assert.notNull(materialId, "物料不能为空!");
|
||||||
Assert.notNull(vehicleType, "载具类型不能为空!");
|
Assert.notNull(vehicleType, "载具类型不能为空!");
|
||||||
Assert.notNull(standingTime, "静置时间不能为空!");
|
Assert.notNull(standingTime, "静置时间不能为空!");
|
||||||
@@ -110,7 +115,7 @@ public class YZQLTask extends AbstractTask {
|
|||||||
if (ObjectUtil.isEmpty(vehiclematerialgroup)) return null;
|
if (ObjectUtil.isEmpty(vehiclematerialgroup)) return null;
|
||||||
SchBasePoint one = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
SchBasePoint one = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
.in(SchBasePoint::getRegion_code, startRegionStr)
|
.in(SchBasePoint::getRegion_code, startRegionStr)
|
||||||
.eq(SchBasePoint::getPoint_status, FULL_POINT)
|
.eq(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
|
||||||
.eq(SchBasePoint::getVehicle_code, vehiclematerialgroup.getVehicle_code())
|
.eq(SchBasePoint::getVehicle_code, vehiclematerialgroup.getVehicle_code())
|
||||||
.eq(SchBasePoint::getVehicle_type, vehicleType));
|
.eq(SchBasePoint::getVehicle_type, vehicleType));
|
||||||
return one;
|
return one;
|
||||||
@@ -159,11 +164,10 @@ public class YZQLTask extends AbstractTask {
|
|||||||
// 释放点位,起点正在执行的任务清空
|
// 释放点位,起点正在执行的任务清空
|
||||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||||
startPointObj.setIng_task_code("");
|
startPointObj.setIng_task_code("");
|
||||||
pointService.updateById(startPointObj);
|
pointService.update(startPointObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
taskObj.setUpdate_time(DateUtil.now());
|
taskService.update(taskObj);
|
||||||
taskService.updateById(taskObj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,160 @@
|
|||||||
|
package org.nl.wms.sch.task_manage.task.tasks.yz;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
|
||||||
|
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
|
||||||
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||||
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lyd
|
||||||
|
* @Description: 压制送空载具任务
|
||||||
|
* @Date: 2023/5/25
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class YZSKTask extends AbstractTask {
|
||||||
|
private static String TASK_CONFIG_CODE = "YZSKTask";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmBdWorkorderService workorderService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void create() throws BadRequestException {
|
||||||
|
// 获取任务
|
||||||
|
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||||
|
// 配置信息
|
||||||
|
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
||||||
|
for (SchBaseTask task : tasks) {
|
||||||
|
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
|
||||||
|
// 找终点
|
||||||
|
String extGroupData = task.getExt_group_data();
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
||||||
|
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||||
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
|
task.setRemark("未找到所需点位!");
|
||||||
|
taskService.update(task);
|
||||||
|
// 消息通知
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 设置终点并修改创建成功状态
|
||||||
|
task.setPoint_code2(point.getPoint_code());
|
||||||
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
|
taskService.update(task);
|
||||||
|
|
||||||
|
point.setIng_task_code(task.getTask_code());
|
||||||
|
pointService.update(point);
|
||||||
|
|
||||||
|
//下发
|
||||||
|
// this.renotifyAcs(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 寻找终点
|
||||||
|
*
|
||||||
|
* @param nextRegionStr
|
||||||
|
* @param extGroupData
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject extGroupData) {
|
||||||
|
String workorderCode = extGroupData.getString("workorder_code");
|
||||||
|
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
|
||||||
|
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
||||||
|
: null;
|
||||||
|
String vehicleType = ObjectUtil.isNotEmpty(workOrder) && ObjectUtil.isNotEmpty(workOrder.getVehicle_type())
|
||||||
|
? workOrder.getVehicle_type()
|
||||||
|
: null;
|
||||||
|
// 载具已经设置可为空,当不需要校验工单时候也不会出现空指针
|
||||||
|
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
||||||
|
lam.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||||
|
.like(vehicleType != null, SchBasePoint::getCan_vehicle_type, vehicleType)
|
||||||
|
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||||
|
.or()
|
||||||
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
|
.orderByAsc(SchBasePoint::getIn_order_seq)
|
||||||
|
.orderByAsc(SchBasePoint::getPoint_code);
|
||||||
|
List<SchBasePoint> schBasePoints = pointService.list(lam);
|
||||||
|
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
|
// 校验任务
|
||||||
|
SchBaseTask taskObj = taskService.getById(task_code);
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已完成!");
|
||||||
|
}
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已取消!");
|
||||||
|
}
|
||||||
|
// 获取参数
|
||||||
|
String endPoint = taskObj.getPoint_code2(); // 获取终点
|
||||||
|
String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : "";
|
||||||
|
// 获取外部参数
|
||||||
|
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
|
||||||
|
? JSONObject.parseObject(taskObj.getExt_group_data())
|
||||||
|
: null;
|
||||||
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
|
// 设置载具类型、点位状态、释放点位
|
||||||
|
if (ObjectUtil.isNotEmpty(endPoint)) {
|
||||||
|
endPointObj.setIng_task_code("");
|
||||||
|
endPointObj.setVehicle_type(vehicleType);
|
||||||
|
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
|
||||||
|
pointService.update(endPointObj);
|
||||||
|
}
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark("任务完成");
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
||||||
|
// 释放点位
|
||||||
|
if (ObjectUtil.isNotEmpty(endPoint)) {
|
||||||
|
endPointObj.setIng_task_code("");
|
||||||
|
pointService.update(endPointObj);
|
||||||
|
}
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setRemark("任务取消");
|
||||||
|
}
|
||||||
|
taskService.update(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
this.updateStatus(task_code, TaskStatus.FINISHED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_code) {
|
||||||
|
this.updateStatus(task_code, TaskStatus.CANCELED);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -37,7 +37,7 @@ public class PointUtil {
|
|||||||
*/
|
*/
|
||||||
public static void clearPoint(SchBasePoint point) {
|
public static void clearPoint(SchBasePoint point) {
|
||||||
SchBasePointServiceImpl pointService = SpringContextHolder.getBean(SchBasePointServiceImpl.class);
|
SchBasePointServiceImpl pointService = SpringContextHolder.getBean(SchBasePointServiceImpl.class);
|
||||||
point.setPoint_status(PointStatusEnum.EMPTY_POINT.getValue());
|
point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
|
||||||
point.setVehicle_type("");
|
point.setVehicle_type("");
|
||||||
point.setVehicle_code("");
|
point.setVehicle_code("");
|
||||||
point.setIng_task_code("");
|
point.setIng_task_code("");
|
||||||
|
|||||||
@@ -279,6 +279,11 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
|
<el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
|
||||||
<el-table-column prop="vehicle_qty" label="载具数量" :min-width="flexWidth('vehicle_qty',crud.data,'载具数量')" />
|
<el-table-column prop="vehicle_qty" label="载具数量" :min-width="flexWidth('vehicle_qty',crud.data,'载具数量')" />
|
||||||
|
<el-table-column label="是否锁定" :min-width="flexWidth('vehicle_qty',crud.data,'是否锁定')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{scope.row.ing_task_code?'是':'否'}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="parent_point_code" label="父点位编码" :min-width="flexWidth('parent_point_code',crud.data,'父点位编码')" />
|
<el-table-column prop="parent_point_code" label="父点位编码" :min-width="flexWidth('parent_point_code',crud.data,'父点位编码')" />
|
||||||
<el-table-column prop="ing_task_code" label="在执行的任务标识" :min-width="flexWidth('ing_task_code',crud.data,'在执行的任务标识')" />
|
<el-table-column prop="ing_task_code" label="在执行的任务标识" :min-width="flexWidth('ing_task_code',crud.data,'在执行的任务标识')" />
|
||||||
<el-table-column prop="is_has_workder" label="是否有工单" :min-width="flexWidth('is_has_workder',crud.data,'是否有工单')">
|
<el-table-column prop="is_has_workder" label="是否有工单" :min-width="flexWidth('is_has_workder',crud.data,'是否有工单')">
|
||||||
|
|||||||
Reference in New Issue
Block a user