rev:1.回传卡控任务2.木箱出库优化
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
|
||||
@@ -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(","))+"】的所有任务完成之后再回传!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user