fix:修复轴库存爆空指针问题

This commit is contained in:
zhangzq
2025-03-11 14:52:42 +08:00
parent a4a70310c3
commit a80c561cdd
3 changed files with 30 additions and 19 deletions

View File

@@ -262,6 +262,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
Set<String> containerNameList = packagerelationList.stream()
.map(PdmBiSubpackagerelation::getContainer_name)
.collect(Collectors.toSet());
List<BstIvtPackageinfoivt> ivtList = packageinfoivtService
.list(new QueryWrapper<BstIvtPackageinfoivt>()
.in("container_name", containerNameList));
for (BstIvtPackageinfoivt ivtPackageinfoivt : ivtList) {
if (!ivtPackageinfoivt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))){
throw new BadRequestException("当前子卷未质检"+ivtPackageinfoivt.getContainer_name());
}
}
List<PdmBiSlittingproductionplan> planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
.in(PdmBiSlittingproductionplan::getContainer_name, containerNameList)
.eq(PdmBiSlittingproductionplan::getIs_delete,IOSEnum.IS_NOTANDYES.code(""))
@@ -710,14 +720,17 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
List<BstIvtPackageinfoivt> djqPoints = djqPointList.stream()
.filter(r -> containerNameList.contains(r.getContainer_name()))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(djqPoints) || djqPoints.size()!=containerNameList.size()){
throw new BadRequestException(containerNameList+"该子卷未设置成合格品");
}
//任务组id
String groupId = deviceCode.substring(deviceCode.indexOf("_") + 1, deviceCode.indexOf("_", deviceCode.indexOf("_") + 1));
String now = DateUtil.now();
for (int i1 = 0; i1 < djqPoints.size(); i1++) {
BstIvtPackageinfoivt item = djqPoints.get(i1);
//校验重复任务
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getVehicle_code, item.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getVehicle_code, item.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
if (CollectionUtils.isEmpty(taskList)){
JSONObject jo = new JSONObject();

View File

@@ -889,22 +889,19 @@ public class SlitterServiceImpl implements SlitterService {
log.warn("托盘:" + vehicleCode + "" + param.getString("row_num") + "行没数据!");
return res;
}
int qty = mdPbPapervehicle.getQty().intValue();
if (qty <= 0) {
throw new BadRequestException("当前物料数量为0!");
if (mdPbPapervehicle != null || mdPbPapervehicle.getQty().intValue() > 0) {
UpdateWrapper<MdPbPapervehicle> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("vehicle_code", vehicleCode)
.eq("row_num", param.getString("row_num"))
.setSql("qty=qty-1");
papervehicleService.update(updateWrapper);
// 检查更新后的 qty 是否为 0然后删除相应的记录
QueryWrapper<MdPbPapervehicle> deleteWrapper = new QueryWrapper<>();
deleteWrapper.eq("vehicle_code", vehicleCode)
.eq("row_num", param.getString("row_num"))
.eq("qty", "0");
boolean remove = papervehicleService.remove(deleteWrapper);
}
UpdateWrapper<MdPbPapervehicle> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("vehicle_code", vehicleCode)
.eq("row_num", param.getString("row_num"))
.setSql("qty=qty-1");
papervehicleService.update(updateWrapper);
// 检查更新后的 qty 是否为 0然后删除相应的记录
QueryWrapper<MdPbPapervehicle> deleteWrapper = new QueryWrapper<>();
deleteWrapper.eq("vehicle_code", vehicleCode)
.eq("row_num", param.getString("row_num"))
.eq("qty", "0");
boolean remove = papervehicleService.remove(deleteWrapper);
// todo: 如果等于0则创建AGV任务将托盘拉回去
return res;
}

View File

@@ -162,9 +162,10 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
}
JSONObject jsonBox;
if (structArray.size() == 1){
if (structArray.size() < 4){
jsonBox = structArray.getJSONObject(0);
}else {
}else
{
//大于一个的话则走查找逻辑
// 确定巷道:找相同规格木箱的最多的巷道
if (ObjectUtil.isEmpty(block_num)) {