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("未锁定"))) {
|
if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||||
// 判断浅货位木箱和深货位木箱是否相同规格
|
// 判断浅货位木箱和深货位木箱是否相同规格
|
||||||
task_group_id = outBoxManageService.createBoxMove(浅Attr);
|
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"));
|
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 cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.common.utils.FileUtil;
|
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.LmsToMesService;
|
||||||
import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl;
|
import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl;
|
||||||
import org.nl.wms.ext.sap.service.impl.LmsToSapServiceImpl;
|
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.nl.wms.st.returns.service.InAndOutReturnService;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -41,6 +48,8 @@ import java.util.stream.Collectors;
|
|||||||
public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||||
private final ISysUserService iSysUserService;
|
private final ISysUserService iSysUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IschBaseTaskService schBaseTaskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
|
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
|
||||||
@@ -260,6 +269,9 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
|||||||
// 返检出库:回传mes
|
// 返检出库:回传mes
|
||||||
if (StrUtil.equals(bill_type, "1006")) {
|
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);
|
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++) {
|
for (int j = 0; j < disArr.size(); j++) {
|
||||||
JSONObject json = disArr.getJSONObject(j);
|
JSONObject json = disArr.getJSONObject(j);
|
||||||
// 删除对应的包装关系
|
// 删除对应的包装关系
|
||||||
@@ -368,6 +380,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
|||||||
// 改切出库:回传mes
|
// 改切出库:回传mes
|
||||||
if (StrUtil.equals(bill_type, "1003")) {
|
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);
|
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++) {
|
for (int j = 0; j < disArr.size(); j++) {
|
||||||
JSONObject json = disArr.getJSONObject(j);
|
JSONObject json = disArr.getJSONObject(j);
|
||||||
|
|
||||||
@@ -1492,6 +1506,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
|||||||
// 改切出库:回传mes
|
// 改切出库:回传mes
|
||||||
if (StrUtil.equals(bill_type, "1003")) {
|
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);
|
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++) {
|
for (int j = 0; j < disArr.size(); j++) {
|
||||||
JSONObject json = disArr.getJSONObject(j);
|
JSONObject json = disArr.getJSONObject(j);
|
||||||
// 删除对应的包装关系
|
// 删除对应的包装关系
|
||||||
@@ -1530,6 +1546,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
|||||||
// 返检出库:回传mes
|
// 返检出库:回传mes
|
||||||
if (StrUtil.equals(bill_type, "1006")) {
|
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);
|
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++) {
|
for (int j = 0; j < disArr.size(); j++) {
|
||||||
JSONObject json = disArr.getJSONObject(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