fix:异常口回库任务

This commit is contained in:
zhangzq
2025-01-06 10:18:20 +08:00
parent 9831dc0862
commit f184e184f5
2 changed files with 44 additions and 27 deletions

View File

@@ -22,9 +22,11 @@ import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.sch.tasks.first_floor_area.auto.AutoSendVehicleToDjq;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.utils.MapOf;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.util.SpringContextHolder;
@@ -36,7 +38,9 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -69,8 +73,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
@Resource
private IbstIvtPackageinfoivtService packageinfoivtService;
@Resource
private IpdmBiSubpackagerelationService subpackagerelationService;
@Autowired
private AutoSendVehicleToDjq autoSendVehicleToDjq;
@Resource
private IPdmBiContainerinfoService iPdmBiContainerinfoService;
@@ -1051,6 +1055,17 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
result.put("message", "该点位只能设置为合格品,空载具或空点位,如需设置合格品,需要先扫描子卷号");
return result;
}
String pointCode = whereJson.getString("pointCode");
if (StringUtils.isEmpty(pointCode)){
throw new BadRequestException("人工管制点不能为空");
}
HashMap of = MapOf.of("1", "ZXQ_135", "2", "ZXQ_136");
// "ZXQ_135" : "ZXQ_136";
JSONObject task = new JSONObject();
task.put("point_code1", of.get(pointCode));
autoSendVehicleToDjq.getPointCode(task,PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode").equals("1") ? "ZXQ_135" : "ZXQ_136"));
updateWrapper.set("container_name", null);
updateWrapper.set("ivt_status", whereJson.getString("ivt_status"));

View File

@@ -16,6 +16,7 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -28,16 +29,16 @@ import java.util.stream.Collectors;
@Slf4j
@Component
@RequiredArgsConstructor
public class AutoSendGzqToDjq {
public class AutoSendGzqToDjq extends Prun{
private final String THIS_CLASS = AutoSendGzqToDjq.class.getName();
@Resource
@Autowired
private RedissonClient redissonClient;
@Resource
@Autowired
private DjqTask djqTask;
@Resource
@Autowired
private ShiftingTask shiftingTask;
@Resource
@Autowired
private IbstIvtPackageinfoivtService packageinfoivtService;
//管制区->待检区agv自动搬运任务
@@ -82,32 +83,33 @@ public class AutoSendGzqToDjq {
);
if (ObjectUtils.isNotEmpty(packageList)) {
task1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
task1.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
task1.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
task1.put("point_code1", pointCode3);
task1.put("request_param", "98");
createTask(packageList, task1);
}
}
}else {
//管制区->待检区送合格品任务
List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
if (ObjectUtils.isEmpty(gzqPackageinfoivtList)) {
return;
}
//待检区有空位且过滤未完成任务
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
if (ObjectUtils.isEmpty(djqPackageinfoivtList)) {
log.info("管制区->待检区agv自动搬运任务暂无可用空位,子卷号为:" + gzqPackageinfoivtList.get(0).getContainer_name());
throw new BadRequestException("管制区->待检区agv自动搬运任务暂无可用空位,子卷号为:" + gzqPackageinfoivtList.get(0).getContainer_name());
}
JSONObject task = new JSONObject();
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
//区分管制品重新检测为合格品
task.put("request_param", "99");
task.put("vehicle_code", gzqPackageinfoivtList.get(0).getContainer_name());
task.put("point_code1", gzqPackageinfoivtList.get(0).getPoint_code());
createTask(djqPackageinfoivtList, task);
}
//管制区->待检区送合格品任务
List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
if (ObjectUtils.isEmpty(gzqPackageinfoivtList)) {
return;
}
//待检区有空位且过滤未完成任务
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
if (ObjectUtils.isEmpty(djqPackageinfoivtList)) {
log.info("管制区->待检区agv自动搬运任务暂无可用空位,子卷号为:" + gzqPackageinfoivtList.get(0).getContainer_name());
throw new BadRequestException("管制区->待检区agv自动搬运任务暂无可用空位,子卷号为:" + gzqPackageinfoivtList.get(0).getContainer_name());
}
JSONObject task = new JSONObject();
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
//区分管制品重新检测为合格品
task.put("request_param", "99");
task.put("vehicle_code", gzqPackageinfoivtList.get(0).getContainer_name());
task.put("point_code1", gzqPackageinfoivtList.get(0).getPoint_code());
createTask(djqPackageinfoivtList, task);
} else {
log.info("管制区->待检区任务正在创建被锁住。");
}