rev:骨才区域任务修改为二次分配

This commit is contained in:
2025-11-05 09:40:30 +08:00
parent 0e19688493
commit 1220fb1878
12 changed files with 123 additions and 128 deletions

View File

@@ -163,7 +163,11 @@ public class PdaTaskServiceImpl implements PdaTaskService {
//如果是MB物料的上料点 需要下发二次分配点位 //如果是MB物料的上料点 需要下发二次分配点位
String prefix = schBasePoint.getPoint_code().substring(0, schBasePoint.getPoint_code().length() - 2); String prefix = schBasePoint.getPoint_code().substring(0, schBasePoint.getPoint_code().length() - 2);
List<SchBaseTask> existTask = taskService.findUnFinishTasksByTaskConfig("THSLTask", prefix); List<SchBaseTask> existTask = taskService.findUnFinishTasksByTaskConfig("THSLTask", prefix);
if (existTask.size() <= 1) { int existMaxTaskSize = 1;
if (schBasePoint.getPoint_code().contains("HXT")){//活性炭上料位有三个位置
existMaxTaskSize = 2;
}
if (existTask.size() <= existMaxTaskSize) {
List<SchBasePoint> list = pointMapper.selectListByRegionAndPrefix(region_code, prefix, schBasePoint.getPoint_type()); List<SchBasePoint> list = pointMapper.selectListByRegionAndPrefix(region_code, prefix, schBasePoint.getPoint_type());
if (list.size() == 0) { if (list.size() == 0) {
throw new BadRequestException(region_code + "区域无空闲点位"); throw new BadRequestException(region_code + "区域无空闲点位");
@@ -172,7 +176,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
if (schBasePoint.getPoint_code().contains(RegionTypeEnum.REGION_TYPE.code("MB制布区"))) { if (schBasePoint.getPoint_code().contains(RegionTypeEnum.REGION_TYPE.code("MB制布区"))) {
param.put("point4", point.getPoint_code());// param.put("point4", point.getPoint_code());//
param.put("device_code", pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, schBasePoint.getParent_point_code())).getPoint_code());//等待点 param.put("device_code", pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, schBasePoint.getParent_point_code())).getPoint_code());//等待点
} else if (schBasePoint.getPoint_code().contains("GC") && schBasePoint.getRegion_code().equals("L1")) { } else if (schBasePoint.getPoint_code().contains("GC") && (schBasePoint.getRegion_code().equals("L1")||schBasePoint.getRegion_code().equals("L2"))) {
param.put("point4", point.getPoint_code());// param.put("point4", point.getPoint_code());//
param.put("device_code", pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, schBasePoint.getParent_point_code())).getPoint_code());//等待点 param.put("device_code", pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, schBasePoint.getParent_point_code())).getPoint_code());//等待点
} else if (schBasePoint.getPoint_code().contains("HXT") && schBasePoint.getRegion_code().equals("L1")) { } else if (schBasePoint.getPoint_code().contains("HXT") && schBasePoint.getRegion_code().equals("L1")) {
@@ -238,6 +242,15 @@ public class PdaTaskServiceImpl implements PdaTaskService {
if (ObjectUtil.isEmpty(data)) { if (ObjectUtil.isEmpty(data)) {
throw new BadRequestException("物料信息不能为空"); throw new BadRequestException("物料信息不能为空");
} }
for (int i = 0; i < data.size(); i++) {
JSONObject jo = data.getJSONObject(i);
String container_code = jo.getString("container_code");
List<GroupPlatedtl> groupPlatedtlList = groupplatedtlService.selectDtlByContainerCode(container_code);
if (ObjectUtil.isNotEmpty(groupPlatedtlList)) {
throw new BadRequestException("该卷号【" + container_code + "】已绑定过,请勿重复操作!");
}
}
SchBasePoint point = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, point_code)); SchBasePoint point = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, point_code));
if (ObjectUtil.isEmpty(point)) { if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("点位" + point_code + "不存在!"); throw new BadRequestException("点位" + point_code + "不存在!");
@@ -748,6 +761,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode()); point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
point.setStoragevehicle_code(""); point.setStoragevehicle_code("");
point.setMaterial_code(""); point.setMaterial_code("");
point.setIng_task_code("");
pointMapper.updateById(point); pointMapper.updateById(point);
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
ret.put("status", String.valueOf(HttpStatus.HTTP_OK)); ret.put("status", String.valueOf(HttpStatus.HTTP_OK));
@@ -760,7 +774,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
log.info("载具绑定,请求参数:" + whereJson); log.info("载具绑定,请求参数:" + whereJson);
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
SchBasePoint point = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, point_code)); SchBasePoint point = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, point_code));
point.setPoint_status("2"); point.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
pointMapper.updateById(point); pointMapper.updateById(point);
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
ret.put("status", String.valueOf(HttpStatus.HTTP_OK)); ret.put("status", String.valueOf(HttpStatus.HTTP_OK));
@@ -1017,14 +1031,14 @@ public class PdaTaskServiceImpl implements PdaTaskService {
// 校验起点 // 校验起点
SchBasePoint pointStartDao = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>() SchBasePoint pointStartDao = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, start_point_code)); .eq(SchBasePoint::getPoint_code, start_point_code));
if (!pointStartDao.getPoint_status().equals("2")) { if (!pointStartDao.getPoint_status().equals(PointStatusEnum.FULL_POINT.getCode())) {
throw new BadRequestException(start_point_code + "点位不是满位状态"); throw new BadRequestException(start_point_code + "点位不是空载具状态,请先进行载具绑定再试!");
} }
// 校验终点 // 校验终点
SchBasePoint pointNextDao = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>() SchBasePoint pointNextDao = pointMapper.selectOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, end_point_code)); .eq(SchBasePoint::getPoint_code, end_point_code));
if (!pointNextDao.getPoint_status().equals("1")) { if (!pointNextDao.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) {
throw new BadRequestException(end_point_code + "点位不是空位状态"); throw new BadRequestException(end_point_code + "点位不是空位状态");
} }
} }

View File

@@ -223,7 +223,7 @@
FROM `sch_base_point` p FROM `sch_base_point` p
WHERE p.region_code = #{region_code} WHERE p.region_code = #{region_code}
AND p.parent_point_code = #{point_code2} AND p.parent_point_code = #{point_code2}
AND (point_type = '1' OR point_type = '3') AND (point_type = '1' OR point_type = '2' OR point_type = '3')
AND is_used = 1 AND is_used = 1
AND point_status = "1" AND point_status = "1"
ORDER BY in_order_seq asc ORDER BY in_order_seq asc

View File

@@ -226,7 +226,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
} }
// 根据标识找到任务 // 根据标识找到任务
SchBaseTask taskOne = this.getByCode(task_code); SchBaseTask taskOne = this.getByCode(task_code);
if (Integer.parseInt(taskOne.getTask_status()) >= Integer.parseInt(TaskStatus.FINISHED.getCode())) { if (taskOne.getTask_status().compareTo(TaskStatus.FINISHED.getCode())>=0) {
throw new BadRequestException(LangProcess.msg("task_statusWrong")); throw new BadRequestException(LangProcess.msg("task_statusWrong"));
} }
// 根据配置去工厂类获得类对象 // 根据配置去工厂类获得类对象

View File

@@ -27,7 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* @author ldjun * @author ldjun
@@ -167,10 +170,35 @@ AbstractTask {
public void getAllFinishTask() { public void getAllFinishTask() {
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>() List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_status, TaskStatus.CREATED.getCode()) .eq(SchBaseTask::getTask_status, TaskStatus.CREATED.getCode())
.eq(SchBaseTask::getIs_delete, false)); .eq(SchBaseTask::getIs_delete, false)
.orderByAsc(SchBaseTask::getCreate_time));
if (ObjectUtil.isEmpty(list)) { if (ObjectUtil.isEmpty(list)) {
return; return;
} }
// // 分离NETXLTask和其他任务
// List<SchBaseTask> netxlTasks = list.stream()
// .filter(task -> "NETXLTask".equals(task.getConfig_code()))
// .collect(Collectors.toList());
//
// // 对NETXLTask按照point_code2去重每个point_code2只下发一个任务
// Set<String> processedPointCodes = new HashSet<>();
// List<SchBaseTask> tasksToSend = new ArrayList<>();
//
// // 先添加非NETXLTask任务
// List<SchBaseTask> otherTasks = list.stream()
// .filter(task -> !"NETXLTask".equals(task.getConfig_code()))
// .collect(Collectors.toList());
// tasksToSend.addAll(otherTasks);
//
// // 处理NETXLTask任务同一point_code2只下发一个
// for (SchBaseTask task : netxlTasks) {
// String pointCode2 = task.getPoint_code2();
// if (!processedPointCodes.contains(pointCode2)) {
// tasksToSend.add(task);
// processedPointCodes.add(pointCode2);
// }
// // 重复的任务保留在数据库中,不添加到下发列表
// }
// 下发 // 下发
this.renotifyAcs(list); this.renotifyAcs(list);
} }

View File

@@ -15,9 +15,9 @@ public enum PointStatusEnum {
// 空位/无货 // 空位/无货
EMPTY_POINT("1", "空位/无货"), EMPTY_POINT("1", "空位/无货"),
// 有料 // 有料
FULL_POINT("3", "有料"), FULL_POINT("3", "空载具"),
// 空载具/有货 // 空载具/有货
EMPTY_VEHICLE("2", "空载具/有货"); EMPTY_VEHICLE("2", "有箱/有货");
private final String code; private final String code;
private final String label; private final String label;

View File

@@ -34,7 +34,7 @@ public enum TaskStatus {
*/ */
CANCELED("6", "已取消", "已取消"), CANCELED("6", "已取消", "已取消"),
PICK_UP_COMPLETED("071", "取货完成,执行中","取货完成,执行中"), PICK_UP_COMPLETED("051", "取货完成,执行中","取货完成,执行中"),
/** /**
* 未完成 * 未完成
*/ */

View File

@@ -138,6 +138,9 @@ public class PdaPointTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (!taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv还未取货完成不允许点完成!");
}
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -147,6 +150,9 @@ public class PdaPointTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv已经取货完成不允许点取消!");
}
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -156,10 +162,11 @@ public class PdaPointTask extends AbstractTask {
SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2());
// 取货完成时起点清空 // 取货完成时起点清空
if (ObjectUtil.isNotEmpty(endPointObj)) { if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
// endPointObj.setVehicle_type(GeneralDefinition.STEEL_TRAY); // endPointObj.setVehicle_type(GeneralDefinition.STEEL_TRAY);
// endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); // endPointObj.setVehicle_qty(taskObj.getVehicle_qty());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
endPointObj.setIng_task_code("");
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj); pointService.updateById(endPointObj);
} }
@@ -178,6 +185,7 @@ public class PdaPointTask extends AbstractTask {
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
startPointObj.setStoragevehicle_code("");
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);
} }

View File

@@ -186,6 +186,9 @@ public class NETSLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (!taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv还未取货完成不允许点完成!");
}
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -195,6 +198,9 @@ public class NETSLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv已经取货完成不允许点取消!");
}
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -247,43 +253,8 @@ public class NETSLTask extends AbstractTask {
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
String storagevehicle_code = startPointObj.getStoragevehicle_code(); // String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号 //取货完成会清空托盘号
//托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)&&startPointObj.getPoint_type().equals("1")) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size() > 0) {
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
}
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);

View File

@@ -283,6 +283,9 @@ public class NETXLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (!taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv还未取货完成不允许点完成!");
}
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -292,6 +295,9 @@ public class NETXLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv已经取货完成不允许点取消!");
}
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -305,6 +311,7 @@ public class NETXLTask extends AbstractTask {
endPointObj.setStoragevehicle_code(taskObj.getVehicle_code()); endPointObj.setStoragevehicle_code(taskObj.getVehicle_code());
endPointObj.setMaterial_code(taskObj.getMaterial_code()); endPointObj.setMaterial_code(taskObj.getMaterial_code());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
endPointObj.setIng_task_code("");
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj); pointService.updateById(endPointObj);
} }
@@ -325,23 +332,7 @@ public class NETXLTask extends AbstractTask {
String storagevehicle_code = startPointObj.getStoragevehicle_code(); String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号 //取货完成会清空托盘号
//托盘号不为空,还未取货 //托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)) { if (ObjectUtil.isNotEmpty(storagevehicle_code)) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code)); GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) { if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息 //删除组盘信息
@@ -356,11 +347,11 @@ public class NETXLTask extends AbstractTask {
} }
mdPbGroupplateMapper.deleteById(groupPlate); mdPbGroupplateMapper.deleteById(groupPlate);
} }
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
} }
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);
} }

View File

@@ -127,7 +127,10 @@ public class THSLTask extends AbstractTask {
} else if ("HXTFZW".equals(schBasePointDto.getRegion_code())) { } else if ("HXTFZW".equals(schBasePointDto.getRegion_code())) {
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
task.setPoint_code1(schBasePointDto.getPoint_code()); task.setPoint_code1(schBasePointDto.getPoint_code());
}else { }else if ("E1".equals(schBasePointDto.getRegion_code())) {
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
task.setPoint_code1(schBasePointDto.getPoint_code());
} else {
task.setPoint_code1(schBasePointDto.getPoint_code()); task.setPoint_code1(schBasePointDto.getPoint_code());
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
} }
@@ -181,6 +184,9 @@ public class THSLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (!taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv还未取货完成不允许点完成!");
}
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -190,6 +196,9 @@ public class THSLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv已经取货完成不允许点取消!");
}
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -220,43 +229,26 @@ public class THSLTask extends AbstractTask {
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
// 起点解锁 // 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) { if (ObjectUtil.isNotEmpty(startPointObj)) {
String storagevehicle_code = startPointObj.getStoragevehicle_code(); // String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号 // //取货完成会清空托盘号
//托盘号不为空,还未取货 // //托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)&&startPointObj.getPoint_type().equals("1")) { // if (ObjectUtil.isEmpty(storagevehicle_code)&&startPointObj.getPoint_type().equals("1")) {
String vehicle_code = taskObj.getVehicle_code(); // String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code)); // GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) { // if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息 // //删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id())); // List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){ // if (list.size()>0){
Set<String> ids = new HashSet<String>(); // Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{ // list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id(); // String id = groupPlatedtl.getGroupdtl_id();
ids.add(id); // ids.add(id);
} ); // } );
mdPbGroupplatedtlMapper.deleteBatchIds(ids); // mdPbGroupplatedtlMapper.deleteBatchIds(ids);
} // }
mdPbGroupplateMapper.deleteById(groupPlate); // mdPbGroupplateMapper.deleteById(groupPlate);
} // }
}else { // }
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size() > 0) {
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
}
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);

View File

@@ -22,7 +22,7 @@
AND g.material_code = #{material_code} AND g.material_code = #{material_code}
AND p.point_status = '2' AND p.point_status = '2'
AND p.is_used = 1 AND p.is_used = 1
AND (p.region_code = 'E2' OR p.region_code = 'H1' OR p.region_code = 'H2' OR p.region_code = 'HXTFZW') AND (p.region_code = 'E2' OR p.region_code = 'H1' OR p.region_code = 'H2' OR p.region_code = 'HXTFZW'OR p.region_code = 'GC'OR p.region_code = 'E1')
</select> </select>
<select id="findPointsByMaterialCode" resultType="org.nl.wms.sch.point.service.dto.SchBasePointDto"> <select id="findPointsByMaterialCode" resultType="org.nl.wms.sch.point.service.dto.SchBasePointDto">

View File

@@ -268,6 +268,9 @@ public class THXLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (!taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv还未取货完成不允许点完成!");
}
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -277,6 +280,9 @@ public class THXLTask extends AbstractTask {
if (ObjectUtil.isEmpty(taskObj)) { if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在"); throw new BadRequestException("该任务不存在");
} }
if (taskObj.getTask_status().equals(TaskStatus.PICK_UP_COMPLETED.getCode())){
throw new BadRequestException("agv已经取货完成不允许点取消!");
}
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
} }
@@ -291,6 +297,7 @@ public class THXLTask extends AbstractTask {
endPointObj.setStoragevehicle_code(taskObj.getVehicle_code()); endPointObj.setStoragevehicle_code(taskObj.getVehicle_code());
endPointObj.setMaterial_code(taskObj.getMaterial_code()); endPointObj.setMaterial_code(taskObj.getMaterial_code());
endPointObj.setUpdate_time(DateUtil.now()); endPointObj.setUpdate_time(DateUtil.now());
endPointObj.setIng_task_code("");
PointUtils.setUpdateByType(endPointObj, taskFinishedType); PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj); pointService.updateById(endPointObj);
} }
@@ -311,23 +318,7 @@ public class THXLTask extends AbstractTask {
String storagevehicle_code = startPointObj.getStoragevehicle_code(); String storagevehicle_code = startPointObj.getStoragevehicle_code();
//取货完成会清空托盘号 //取货完成会清空托盘号
//托盘号不为空,还未取货 //托盘号不为空,还未取货
if (ObjectUtil.isEmpty(storagevehicle_code)) { if (ObjectUtil.isNotEmpty(storagevehicle_code)) {
String vehicle_code = taskObj.getVehicle_code();
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, vehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息
List<GroupPlatedtl> list = mdPbGroupplatedtlMapper.selectList(new LambdaQueryWrapper<GroupPlatedtl>().eq(GroupPlatedtl::getGroup_id, groupPlate.getGroup_id()));
if (list.size()>0){
Set<String> ids = new HashSet<String>();
list.forEach(groupPlatedtl ->{
String id = groupPlatedtl.getGroupdtl_id();
ids.add(id);
} );
mdPbGroupplatedtlMapper.deleteBatchIds(ids);
}
mdPbGroupplateMapper.deleteById(groupPlate);
}
}else {
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code)); GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>().eq(GroupPlate::getStoragevehicle_code, storagevehicle_code));
if (ObjectUtil.isNotEmpty(groupPlate)) { if (ObjectUtil.isNotEmpty(groupPlate)) {
//删除组盘信息 //删除组盘信息
@@ -342,11 +333,11 @@ public class THXLTask extends AbstractTask {
} }
mdPbGroupplateMapper.deleteById(groupPlate); mdPbGroupplateMapper.deleteById(groupPlate);
} }
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
} }
startPointObj.setMaterial_code("");
startPointObj.setStoragevehicle_code("");
startPointObj.setIng_task_code(""); startPointObj.setIng_task_code("");
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj); pointService.updateById(startPointObj);
} }