rev:1.回传卡控任务2.木箱出库优化

This commit is contained in:
2025-02-19 14:25:08 +08:00
parent 6277f4ded3
commit f5a09608d0
2 changed files with 42 additions and 1 deletions

View File

@@ -380,7 +380,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
// 判断浅货位木箱和深货位木箱是否相同规格
task_group_id = outBoxManageService.createBoxMove(浅Attr);
} else {
} else if(!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))) {
// 判断是否是空木箱出库锁
throw new BadRequestException("当前木箱所在货位"+boxAttr.getString("struct_code")+"对应浅货位存在任务"+浅Attr.getString("task_code"));
}

View File

@@ -7,8 +7,12 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.common.utils.FileUtil;
@@ -23,10 +27,13 @@ import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl;
import org.nl.wms.ext.mes.service.LmsToMesService;
import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl;
import org.nl.wms.ext.sap.service.impl.LmsToSapServiceImpl;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.service.TaskService;
import org.nl.wms.st.returns.service.InAndOutReturnService;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
@@ -41,6 +48,8 @@ import java.util.stream.Collectors;
public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
private final ISysUserService iSysUserService;
@Resource
private IschBaseTaskService schBaseTaskService;
@Override
public Map<String, Object> 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<JSONObject> disList) {
// 查询有没有未完成的任务
List<String> box_no = disList.stream()
.map(row -> row.getString("box_no"))
.collect(Collectors.toList());
List<SchBaseTask> taskList = schBaseTaskService.list(
new QueryWrapper<SchBaseTask>().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(","))+"】的所有任务完成之后再回传!");
}
}
}