diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 667428fec..4bcda8fb2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -380,7 +380,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl pageQuery(Map whereJson, Pageable page) { @@ -260,6 +269,9 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 返检出库:回传mes if (StrUtil.equals(bill_type, "1006")) { JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "2").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + // 判断是否有未完成的任务 + ifUnTask(disArr.toJavaList(JSONObject.class)); + for (int j = 0; j < disArr.size(); j++) { JSONObject json = disArr.getJSONObject(j); // 删除对应的包装关系 @@ -368,6 +380,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 改切出库:回传mes if (StrUtil.equals(bill_type, "1003")) { JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "2").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + // 判断是否有未完成的任务 + ifUnTask(disArr.toJavaList(JSONObject.class)); for (int j = 0; j < disArr.size(); j++) { JSONObject json = disArr.getJSONObject(j); @@ -1492,6 +1506,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 改切出库:回传mes if (StrUtil.equals(bill_type, "1003")) { JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "2").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + // 判断是否有未完成的任务 + ifUnTask(disArr.toJavaList(JSONObject.class)); for (int j = 0; j < disArr.size(); j++) { JSONObject json = disArr.getJSONObject(j); // 删除对应的包装关系 @@ -1530,6 +1546,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 返检出库:回传mes if (StrUtil.equals(bill_type, "1006")) { JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "2").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + // 判断是否有未完成的任务 + ifUnTask(disArr.toJavaList(JSONObject.class)); for (int j = 0; j < disArr.size(); j++) { JSONObject json = disArr.getJSONObject(j); // 删除对应的包装关系 @@ -1699,5 +1717,28 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } } + /** + * 判断返检/改切出库是否有未完成的任务 + * @param disList:出库单明细(木箱号) + */ + private void ifUnTask(List disList) { + // 查询有没有未完成的任务 + List box_no = disList.stream() + .map(row -> row.getString("box_no")) + .collect(Collectors.toList()); + + List taskList = schBaseTaskService.list( + new QueryWrapper().lambda() + .in(SchBaseTask::getVehicle_code, box_no) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + ); + + if (ObjectUtil.isNotEmpty(taskList)) { + throw new BadRequestException("请等待木箱【"+taskList.stream().map(SchBaseTask::getVehicle_code).collect(Collectors.joining(","))+"】的所有任务完成之后再回传!"); + } + + } + }