|
|
|
|
@@ -23,12 +23,16 @@ import org.nl.modules.wql.WQL;
|
|
|
|
|
import org.nl.modules.wql.core.bean.WQLObject;
|
|
|
|
|
import org.nl.modules.wql.util.SpringContextHolder;
|
|
|
|
|
import org.nl.modules.wql.util.WqlUtil;
|
|
|
|
|
import org.nl.wms.basedata.master.customer.service.dao.Customerbase;
|
|
|
|
|
import org.nl.wms.basedata.master.storagevehicleinfo.service.dao.Storagevehicleex;
|
|
|
|
|
import org.nl.wms.basedata.master.storagevehicleinfo.service.dao.mapper.StoragevehicleexMapper;
|
|
|
|
|
import org.nl.wms.basedata.st.structattr.service.dao.Structattr;
|
|
|
|
|
import org.nl.wms.basedata.st.structattr.service.dao.mapper.StructattrMapper;
|
|
|
|
|
import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl;
|
|
|
|
|
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
|
|
|
|
import org.nl.wms.sch.manage.TaskStatusEnum;
|
|
|
|
|
import org.nl.wms.sch.tasks.OutTask;
|
|
|
|
|
import org.nl.wms.st.inbill.service.CheckOutBillService;
|
|
|
|
|
import org.nl.wms.st.inbill.service.RawAssistIStorService;
|
|
|
|
|
import org.nl.wms.st.inbill.service.StorPublicService;
|
|
|
|
|
import org.nl.wms.st.instor.movestor.service.HandMoveStorService;
|
|
|
|
|
@@ -42,7 +46,6 @@ import org.nl.wms.st.instor.movestor.service.dto.MoveStorDtlQuery;
|
|
|
|
|
import org.nl.wms.st.instor.movestor.service.dto.MoveStorQuery;
|
|
|
|
|
import org.nl.wms.st.instor.task.EmpMoveTask;
|
|
|
|
|
import org.nl.wms.st.instor.task.HandMoveStorAcsTask;
|
|
|
|
|
import org.nl.wms.st.outbill.service.impl.CheckOutBillServiceImpl;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -57,6 +60,8 @@ import java.util.*;
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveStor> implements HandMoveStorService {
|
|
|
|
|
private final StorPublicService storPublicService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private CheckOutBillService checkOutBillService;
|
|
|
|
|
|
|
|
|
|
private final HandMoveStorAcsTask handMoveStorAcsTask;
|
|
|
|
|
|
|
|
|
|
@@ -71,6 +76,8 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
private MoveStorDtlMapper moveStorDtlMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private StructattrMapper structattrMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private StoragevehicleexMapper storagevehicleexMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@@ -110,8 +117,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
|
|
|
|
//点位表
|
|
|
|
|
WQLObject wo_Point = WQLObject.getWQLObject("sch_base_point");
|
|
|
|
|
//仓位表
|
|
|
|
|
WQLObject wo_Attr = WQLObject.getWQLObject("st_ivt_structattr");
|
|
|
|
|
|
|
|
|
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
|
|
|
|
String nickName = SecurityUtils.getCurrentNickName();
|
|
|
|
|
@@ -169,9 +174,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
jsonPoint.put("vehicle_code", "");
|
|
|
|
|
wo_Point.update(jsonPoint);
|
|
|
|
|
|
|
|
|
|
JSONObject jsonAttr = wo_Attr.query("struct_code = '" + point_code2 + "'").uniqueResult(0);
|
|
|
|
|
jsonAttr.put("storagevehicle_code", "");
|
|
|
|
|
wo_Attr.update(jsonAttr);
|
|
|
|
|
//更新仓位
|
|
|
|
|
LambdaUpdateWrapper<Structattr> queryWrapper = new LambdaUpdateWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(Structattr::getStruct_code, point_code2)
|
|
|
|
|
.eq(Structattr::getIs_delete, "0");
|
|
|
|
|
queryWrapper.set(Structattr::getStoragevehicle_code,"");
|
|
|
|
|
structattrMapper.update(null,queryWrapper);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
@@ -182,8 +190,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
public void deleteByIdTwo(String moveinv_id) {
|
|
|
|
|
//任务表
|
|
|
|
|
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
|
|
|
|
//仓位表
|
|
|
|
|
WQLObject wo_Attr = WQLObject.getWQLObject("st_ivt_structattr");
|
|
|
|
|
|
|
|
|
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
|
|
|
|
String nickName = SecurityUtils.getCurrentNickName();
|
|
|
|
|
@@ -239,10 +245,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
jo_mst.setUpdate_time(now);
|
|
|
|
|
moveStorMapper.updateById(jo_mst);
|
|
|
|
|
|
|
|
|
|
// 更新移入仓位
|
|
|
|
|
JSONObject jsonAttr = wo_Attr.query("struct_code = '" + point_code2 + "'").uniqueResult(0);
|
|
|
|
|
jsonAttr.put("storagevehicle_code", "");
|
|
|
|
|
wo_Attr.update(jsonAttr);
|
|
|
|
|
//更新仓位
|
|
|
|
|
LambdaUpdateWrapper<Structattr> queryWrapper = new LambdaUpdateWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(Structattr::getStruct_code, point_code2)
|
|
|
|
|
.eq(Structattr::getIs_delete, "0");
|
|
|
|
|
queryWrapper.set(Structattr::getStoragevehicle_code,"");
|
|
|
|
|
structattrMapper.update(null,queryWrapper);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -300,7 +308,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public JSONObject roadInsertDtl(JSONObject map) {
|
|
|
|
|
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
|
|
|
|
/*
|
|
|
|
|
1.货位上是空托盘:直接生成点对点任务
|
|
|
|
|
2.货位上是木箱:走正常流程
|
|
|
|
|
@@ -310,38 +317,52 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
String block_num = map.getString("block_num");
|
|
|
|
|
|
|
|
|
|
// 判断此区有没有被锁住的货位
|
|
|
|
|
JSONArray resultJSONArray = attrTab.query("block_num = '" + block_num + "' and is_used = '1' and is_delete = '0' and row_num = '7' and lock_type <> '1'").getResultJSONArray(0);
|
|
|
|
|
if (ObjectUtil.isNotEmpty(resultJSONArray)) {
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(block_num), Structattr::getBlock_num, block_num)
|
|
|
|
|
.eq(Structattr::getRow_num, "7")
|
|
|
|
|
.eq(Structattr::getIs_used, "1")
|
|
|
|
|
.eq(Structattr::getIs_delete, "0")
|
|
|
|
|
.ne( Structattr::getLock_type,"1");
|
|
|
|
|
Integer listsize = structattrMapper.selectCount(queryWrapper);
|
|
|
|
|
|
|
|
|
|
if (listsize>0) {
|
|
|
|
|
throw new BadRequestException("有正在运行的任务或已锁定未生成任务");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 找出所有货位
|
|
|
|
|
JSONArray boxArr = attrTab.query("block_num = '" + block_num + "' and is_used = '1' and is_delete = '0' and IFNULL(storagevehicle_code,'') <> '' and lock_type = '1' and row_num = '7' order by out_order_seq DESC").getResultJSONArray(0);
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapperAll = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapperAll.eq(ObjectUtil.isNotEmpty(block_num), Structattr::getBlock_num, block_num)
|
|
|
|
|
.eq(Structattr::getRow_num, "7")
|
|
|
|
|
.eq(Structattr::getIs_used, "1")
|
|
|
|
|
.eq(Structattr::getIs_delete, "0")
|
|
|
|
|
.eq( Structattr::getLock_type,"1")
|
|
|
|
|
.ne(Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
List<Structattr> boxArr = structattrMapper.selectList(queryWrapperAll);
|
|
|
|
|
|
|
|
|
|
// 判断是否是空托盘区
|
|
|
|
|
boolean is_ktp = boxArr.stream()
|
|
|
|
|
.map(row -> (JSONObject) row)
|
|
|
|
|
.anyMatch(row -> StrUtil.equals(row.getString("sect_code"), "KTP01"));
|
|
|
|
|
|
|
|
|
|
.anyMatch(row -> StrUtil.equals(row.getSect_code(), "KTP01"));
|
|
|
|
|
JSONArray dtlArr = new JSONArray();
|
|
|
|
|
|
|
|
|
|
if (is_ktp) {
|
|
|
|
|
// 空托盘
|
|
|
|
|
for (int i = 0; i < boxArr.size(); i++) {
|
|
|
|
|
JSONObject json = boxArr.getJSONObject(i);
|
|
|
|
|
Structattr json = boxArr.get(i);
|
|
|
|
|
// 调用空托盘入库
|
|
|
|
|
JSONObject param = new JSONObject();
|
|
|
|
|
param.put("block_num", json.getString("block_num"));
|
|
|
|
|
param.put("row_num", json.getString("row_num"));
|
|
|
|
|
JSONObject jsonEmp = queryEmp(param);
|
|
|
|
|
param.put("block_num", json.getBlock_num());
|
|
|
|
|
param.put("row_num", json.getRow_num());
|
|
|
|
|
Structattr jsonEmp = queryEmp(param);
|
|
|
|
|
|
|
|
|
|
// 生成空托盘移库任务
|
|
|
|
|
JSONObject param2 = new JSONObject();
|
|
|
|
|
param2.put("task_type", "010505");
|
|
|
|
|
param2.put("task_name", "空托盘转库任务");
|
|
|
|
|
param2.put("vehicle_code", json.getString("storagevehicle_code"));
|
|
|
|
|
param2.put("point_code1", json.getString("struct_code"));
|
|
|
|
|
param2.put("point_code2", jsonEmp.getString("struct_code"));
|
|
|
|
|
param2.put("vehicle_code", json.getStoragevehicle_code());
|
|
|
|
|
param2.put("point_code1", json.getStruct_code());
|
|
|
|
|
param2.put("point_code2", jsonEmp.getStruct_code());
|
|
|
|
|
String task_id = empMoveTask.createTask(param2);
|
|
|
|
|
|
|
|
|
|
// 下发任务
|
|
|
|
|
@@ -350,20 +371,19 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
} else {
|
|
|
|
|
// 货位
|
|
|
|
|
for (int i = 0; i < boxArr.size(); i++) {
|
|
|
|
|
JSONObject json = boxArr.getJSONObject(i);
|
|
|
|
|
|
|
|
|
|
Structattr json = boxArr.get(i);
|
|
|
|
|
// 找到一个移入货位
|
|
|
|
|
JSONObject moveParam = new JSONObject();
|
|
|
|
|
moveParam.put("box_no", json.getString("storagevehicle_code"));
|
|
|
|
|
moveParam.put("box_no", json.getStoragevehicle_code());
|
|
|
|
|
moveParam.put("sect_id", RegionTypeEnum.ZZ01.getId());
|
|
|
|
|
moveParam.put("layer_num", json.getString("layer_num"));
|
|
|
|
|
moveParam.put("layer_num", json.getLayer_num());
|
|
|
|
|
|
|
|
|
|
JSONObject jsonMove = rawAssistIStorService.autoDisMove(moveParam);
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isEmpty(jsonMove)) {
|
|
|
|
|
throw new BadRequestException("没有可用暂存位");
|
|
|
|
|
}
|
|
|
|
|
List<BoxIvt> jsonIvt = moveStorDtlMapper.getStoragevehicleIvtByPackageBoxSn(json.getString("storagevehicle_code"));
|
|
|
|
|
List<BoxIvt> jsonIvt = moveStorDtlMapper.getStoragevehicleIvtByPackageBoxSn(json.getStoragevehicle_code());
|
|
|
|
|
jsonIvt.forEach(boxIvt -> {
|
|
|
|
|
JSONObject row = (JSONObject) JSONObject.toJSON(boxIvt);
|
|
|
|
|
row.put("wrok_status", "01");
|
|
|
|
|
@@ -376,7 +396,9 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
dtlArr.add(row);
|
|
|
|
|
});
|
|
|
|
|
jsonMove.put("lock_type", "7");
|
|
|
|
|
attrTab.update(jsonMove);
|
|
|
|
|
Structattr structattr = new Structattr();
|
|
|
|
|
structattr.copyFrom(jsonMove);
|
|
|
|
|
structattrMapper.updateById(structattr);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
map.put("tableData", dtlArr);
|
|
|
|
|
@@ -384,12 +406,14 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public JSONObject queryEmp(JSONObject whereJson) {
|
|
|
|
|
public Structattr queryEmp(JSONObject whereJson) {
|
|
|
|
|
|
|
|
|
|
whereJson.put("flag", "21");
|
|
|
|
|
|
|
|
|
|
JSONArray emptyArr = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(whereJson).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
JSONObject struct_jo = new JSONObject();
|
|
|
|
|
Structattr struct_bean = new Structattr();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < emptyArr.size(); i++) {
|
|
|
|
|
JSONObject empty_row = emptyArr.getJSONObject(i);
|
|
|
|
|
|
|
|
|
|
@@ -397,50 +421,129 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
String row_num = empty_row.getString("row_num");
|
|
|
|
|
String placement_type = empty_row.getString("placement_type");
|
|
|
|
|
|
|
|
|
|
JSONArray isLock = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('4','5') AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1'").getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapperAll = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapperAll.eq(ObjectUtil.isNotEmpty(block_num), Structattr::getBlock_num, block_num)
|
|
|
|
|
.eq(Structattr::getPlacement_type, placement_type)
|
|
|
|
|
.eq(Structattr::getIs_used, "1")
|
|
|
|
|
.eq(Structattr::getIs_delete, "0")
|
|
|
|
|
.in(Structattr::getLock_type, Arrays.asList("4", "5"))
|
|
|
|
|
.eq( Structattr::getRow_num,row_num);
|
|
|
|
|
List<Structattr> isLock = structattrMapper.selectList(queryWrapperAll);
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isEmpty(isLock)) {
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(block_num), Structattr::getBlock_num, block_num)
|
|
|
|
|
.eq( Structattr::getLock_type,"1")
|
|
|
|
|
.eq(Structattr::getPlacement_type, placement_type)
|
|
|
|
|
.eq(Structattr::getRow_num, row_num)
|
|
|
|
|
.eq(Structattr::getIs_used, "1")
|
|
|
|
|
.eq(Structattr::getIs_delete, "0");
|
|
|
|
|
if ("03".equals(placement_type)) {
|
|
|
|
|
// 右通
|
|
|
|
|
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq desc").uniqueResult(0);
|
|
|
|
|
queryWrapper.and(la -> la.eq(Structattr::getStoragevehicle_code,"").or().isNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
).orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
|
|
|
|
|
List<Structattr> boxArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
if(boxArr.size()>0){
|
|
|
|
|
struct_bean = boxArr.get(0);
|
|
|
|
|
}
|
|
|
|
|
//struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq desc").uniqueResult(0);
|
|
|
|
|
break;
|
|
|
|
|
} else if ("02".equals(placement_type)) {
|
|
|
|
|
// 左通
|
|
|
|
|
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq").uniqueResult(0);
|
|
|
|
|
queryWrapper.and(la -> la.eq(Structattr::getStoragevehicle_code,"").or().isNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
).orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
List<Structattr> boxArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
if(boxArr.size()>0){
|
|
|
|
|
struct_bean = boxArr.get(0);
|
|
|
|
|
}
|
|
|
|
|
//struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq").uniqueResult(0);
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
// 双通
|
|
|
|
|
|
|
|
|
|
queryWrapper.ne(Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
// 双通
|
|
|
|
|
// 先倒序找到第一个托盘、判断上一个是否有货位
|
|
|
|
|
JSONObject jsonDescStruct = new JSONObject();
|
|
|
|
|
JSONObject jsonDescBox = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq DESC").uniqueResult(0);
|
|
|
|
|
if (ObjectUtil.isNotEmpty(jsonDescBox)) {
|
|
|
|
|
String out_order_seq = jsonDescBox.getString("out_order_seq");
|
|
|
|
|
List<Structattr> jsonDescStructs = new ArrayList<>();
|
|
|
|
|
List<Structattr> jsonDescBoxs = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
//JSONObject jsonDescBox = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq DESC").uniqueResult(0);
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper2 = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper2.eq(ObjectUtil.isNotEmpty(block_num), Structattr::getBlock_num, block_num)
|
|
|
|
|
.eq( Structattr::getLock_type,"1")
|
|
|
|
|
.eq(Structattr::getPlacement_type, placement_type)
|
|
|
|
|
.eq(Structattr::getRow_num, row_num)
|
|
|
|
|
.eq(Structattr::getIs_used, "1")
|
|
|
|
|
.eq(Structattr::getIs_delete, "0");
|
|
|
|
|
|
|
|
|
|
if (jsonDescBoxs.size()>0) {
|
|
|
|
|
|
|
|
|
|
String out_order_seq = jsonDescBoxs.get(0).getOut_order_seq();
|
|
|
|
|
|
|
|
|
|
queryWrapper2.and(la -> la.eq(Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.or()
|
|
|
|
|
.isNull(Structattr::getStoragevehicle_code))
|
|
|
|
|
.gt(Structattr::getOut_order_seq,out_order_seq)
|
|
|
|
|
.orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
// 上一个货位顺序号
|
|
|
|
|
jsonDescStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' and out_order_seq > '" + out_order_seq + "' order by out_order_seq ASC").uniqueResult(0);
|
|
|
|
|
//jsonDescStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' and out_order_seq > '" + out_order_seq + "' order by out_order_seq ASC").uniqueResult(0);
|
|
|
|
|
jsonDescStructs = structattrMapper.selectList(queryWrapper2);
|
|
|
|
|
} else {
|
|
|
|
|
queryWrapper2.and(la -> la.eq(Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.or()
|
|
|
|
|
.isNull(Structattr::getStoragevehicle_code))
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
// 倒序找到第一个空位
|
|
|
|
|
jsonDescStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq DESC").uniqueResult(0);
|
|
|
|
|
//jsonDescStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq DESC").uniqueResult(0);
|
|
|
|
|
jsonDescStructs = structattrMapper.selectList(queryWrapper2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(jsonDescStruct)) {
|
|
|
|
|
struct_jo = jsonDescStruct;
|
|
|
|
|
if (jsonDescStructs.size()>0) {
|
|
|
|
|
struct_bean = jsonDescStructs.get(0);
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
// 没有就正序找到第一个托盘、判断上一个是否有货位
|
|
|
|
|
JSONObject jsonAscStruct = new JSONObject();
|
|
|
|
|
JSONObject jsonAscBox = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq ASC").uniqueResult(0);
|
|
|
|
|
if (ObjectUtil.isNotEmpty(jsonAscBox)) {
|
|
|
|
|
String out_order_seq2 = jsonAscBox.getString("out_order_seq");
|
|
|
|
|
// 上一个货位顺序号
|
|
|
|
|
jsonAscStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' and out_order_seq < '" + out_order_seq2 + "' order by out_order_seq DESC").uniqueResult(0);
|
|
|
|
|
} else {
|
|
|
|
|
jsonAscStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq ASC").uniqueResult(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(jsonAscStruct)) {
|
|
|
|
|
struct_jo = jsonAscStruct;
|
|
|
|
|
|
|
|
|
|
queryWrapper2.ne(Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
|
|
|
|
|
// 没有就正序找到第一个托盘、判断上一个是否有货位
|
|
|
|
|
List<Structattr> jsonAscStructs = new ArrayList<>();
|
|
|
|
|
List<Structattr> jsonAscBoxs = structattrMapper.selectList(queryWrapper2);
|
|
|
|
|
//JSONObject jsonAscBox = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq ASC").uniqueResult(0);
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper3 = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper3.eq(ObjectUtil.isNotEmpty(block_num), Structattr::getBlock_num, block_num)
|
|
|
|
|
.eq( Structattr::getLock_type,"1")
|
|
|
|
|
.eq(Structattr::getPlacement_type, placement_type)
|
|
|
|
|
.eq(Structattr::getRow_num, row_num)
|
|
|
|
|
.eq(Structattr::getIs_used, "1")
|
|
|
|
|
.eq(Structattr::getIs_delete, "0")
|
|
|
|
|
.and(la -> la.eq(Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.or()
|
|
|
|
|
.isNull(Structattr::getStoragevehicle_code));
|
|
|
|
|
|
|
|
|
|
if (jsonAscBoxs.size()>0) {
|
|
|
|
|
|
|
|
|
|
String out_order_seq2 = jsonAscBoxs.get(0).getOut_order_seq();
|
|
|
|
|
|
|
|
|
|
queryWrapper3.lt(Structattr::getOut_order_seq,out_order_seq2)
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
// 上一个货位顺序号
|
|
|
|
|
//jsonAscStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' and out_order_seq < '" + out_order_seq2 + "' order by out_order_seq DESC").uniqueResult(0);
|
|
|
|
|
jsonAscStructs = structattrMapper.selectList(queryWrapper3);
|
|
|
|
|
} else {
|
|
|
|
|
queryWrapper3.orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
//jsonAscStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq ASC").uniqueResult(0);
|
|
|
|
|
jsonAscStructs = structattrMapper.selectList(queryWrapper3);
|
|
|
|
|
}
|
|
|
|
|
if (jsonAscStructs.size()>0) {
|
|
|
|
|
struct_bean = jsonAscStructs.get(0);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -450,10 +553,10 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isEmpty(struct_jo)) {
|
|
|
|
|
if (ObjectUtil.isEmpty(struct_bean)) {
|
|
|
|
|
throw new BadRequestException("未查询到可用的空载具存放点位!");
|
|
|
|
|
}
|
|
|
|
|
return struct_jo;
|
|
|
|
|
return struct_bean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@@ -626,8 +729,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
|
|
|
|
//点位表
|
|
|
|
|
WQLObject wo_Point = WQLObject.getWQLObject("SCH_BASE_Point");
|
|
|
|
|
//载具扩展属性
|
|
|
|
|
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
|
|
|
|
//定义返回数据
|
|
|
|
|
JSONObject ret = new JSONObject();
|
|
|
|
|
//传值进来的
|
|
|
|
|
@@ -710,12 +811,13 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
task.put("point_code2", jodtl.getTurnin_struct_code());
|
|
|
|
|
}
|
|
|
|
|
task.put("vehicle_code", jodtl.getStoragevehicle_code());
|
|
|
|
|
|
|
|
|
|
List<Storagevehicleex> jsonExts = storagevehicleexMapper.selectList(new LambdaQueryWrapper<Storagevehicleex>().eq(Storagevehicleex::getPcsn, jodtl.getStoragevehicle_code()));
|
|
|
|
|
// 查询木箱对应载具
|
|
|
|
|
JSONObject jsonExt = extTab.query("pcsn = '" + jodtl.getStoragevehicle_code() + "'").uniqueResult(0);
|
|
|
|
|
if (ObjectUtil.isEmpty(jsonExt)) {
|
|
|
|
|
if (jsonExts.size() == 0) {
|
|
|
|
|
throw new BadRequestException("此木箱对应载具不存在!"+jodtl.getStoragevehicle_code());
|
|
|
|
|
}
|
|
|
|
|
task.put("vehicle_code2", jsonExt.getString("storagevehicle_code"));
|
|
|
|
|
task.put("vehicle_code2", jsonExts.get(0).getStoragevehicle_code());
|
|
|
|
|
task.put("handle_class", HandMoveStorAcsTask.class.getName());
|
|
|
|
|
task.put("finished_type", "");
|
|
|
|
|
task.put("is_delete", "0");
|
|
|
|
|
@@ -1063,8 +1165,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
public void handdown(JSONObject whereJson) {
|
|
|
|
|
//任务表
|
|
|
|
|
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
|
|
|
|
//仓位表
|
|
|
|
|
WQLObject wo_attr = WQLObject.getWQLObject("st_ivt_structattr");
|
|
|
|
|
|
|
|
|
|
HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask();
|
|
|
|
|
|
|
|
|
|
@@ -1089,7 +1189,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
if (!StrUtil.equals(bill_type, "30")) {
|
|
|
|
|
// 判断起点是否被挡
|
|
|
|
|
JSONObject jsonTask = wo_Task.query("task_id = '" + task_id + "'").uniqueResult(0);
|
|
|
|
|
JSONObject jsonAttr = wo_attr.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(Structattr::getStruct_code, jsonTask.getString("point_code1"))
|
|
|
|
|
.eq(Structattr::getIs_delete, "0");
|
|
|
|
|
|
|
|
|
|
Structattr jsonAttr = structattrMapper.selectOne(queryWrapper);
|
|
|
|
|
|
|
|
|
|
// 调用共用判断是否阻挡并生成任务、移库单
|
|
|
|
|
this.isBlock(jsonAttr);
|
|
|
|
|
}
|
|
|
|
|
@@ -1145,7 +1250,7 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
.ne( Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByAsc(Structattr::getBlock_num)
|
|
|
|
|
.orderByDesc(Structattr::getBlock_num);//neededit out_order_seq DESC
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
|
|
|
|
|
List<Structattr> boxArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
|
|
|
|
|
@@ -1227,11 +1332,9 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public Integer isBlock(JSONObject whereJson) {
|
|
|
|
|
String placement_type = whereJson.getString("placement_type");
|
|
|
|
|
CheckOutBillServiceImpl bean = SpringContextHolder.getBean(CheckOutBillServiceImpl.class);
|
|
|
|
|
public Integer isBlock(Structattr whereJson) {
|
|
|
|
|
String placement_type = whereJson.getPlacement_type();
|
|
|
|
|
|
|
|
|
|
//JSONArray jsonLockArr = new JSONArray();
|
|
|
|
|
List<Structattr> jsonLockArr = new ArrayList<>();
|
|
|
|
|
if (StrUtil.equals(placement_type, "01")) {
|
|
|
|
|
/*
|
|
|
|
|
@@ -1241,20 +1344,20 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
// 判断右边边被阻挡个数
|
|
|
|
|
JSONObject isNumMap = new JSONObject();
|
|
|
|
|
isNumMap.put("flag", "3");
|
|
|
|
|
isNumMap.put("block_num", whereJson.getString("block_num"));
|
|
|
|
|
isNumMap.put("row_num", whereJson.getString("row_num"));
|
|
|
|
|
isNumMap.put("out_order_seq", whereJson.getString("out_order_seq"));
|
|
|
|
|
isNumMap.put("block_num", whereJson.getBlock_num());
|
|
|
|
|
isNumMap.put("row_num", whereJson.getRow_num());
|
|
|
|
|
isNumMap.put("out_order_seq", whereJson.getOut_order_seq());
|
|
|
|
|
JSONArray numArrFirst = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
// 调用共用方法计算被挡个数
|
|
|
|
|
JSONArray rightNumArr = bean.isNum(numArrFirst);
|
|
|
|
|
JSONArray rightNumArr = checkOutBillService.isNum(numArrFirst);
|
|
|
|
|
|
|
|
|
|
// 判断左边被挡个数
|
|
|
|
|
isNumMap.put("flag", "4");
|
|
|
|
|
JSONArray numArrLast = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
// 调用共用方法计算被挡个数
|
|
|
|
|
JSONArray leftNumArr = bean.isNum(numArrLast);
|
|
|
|
|
JSONArray leftNumArr = checkOutBillService.isNum(numArrLast);
|
|
|
|
|
|
|
|
|
|
if (rightNumArr.size() > leftNumArr.size()) {
|
|
|
|
|
/*
|
|
|
|
|
@@ -1264,7 +1367,7 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
isNumMap.put("flag", "5");
|
|
|
|
|
JSONArray isLockArr = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
JSONArray numArr = bean.isNum(isLockArr);
|
|
|
|
|
JSONArray numArr = checkOutBillService.isNum(isLockArr);
|
|
|
|
|
// 不为空则返回报错
|
|
|
|
|
if (ObjectUtil.isNotEmpty(numArr)) {
|
|
|
|
|
String error = "";
|
|
|
|
|
@@ -1283,12 +1386,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
//isNumMap.put("row_num", whereJson.getString("row_num"));
|
|
|
|
|
//isNumMap.put("out_order_seq", whereJson.getString("out_order_seq"));
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getString("block_num")), Structattr::getBlock_num, whereJson.getString("block_num"))
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getString("row_num")), Structattr::getBlock_num, whereJson.getString("row_num"))//neededit
|
|
|
|
|
.gt(ObjectUtil.isNotEmpty(whereJson.getString("out_order_seq")), Structattr::getBlock_num, whereJson.getString("out_order_seq"))//neededit
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getBlock_num()), Structattr::getBlock_num, whereJson.getBlock_num())
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getRow_num()), Structattr::getRow_num, whereJson.getRow_num())
|
|
|
|
|
.gt(ObjectUtil.isNotEmpty(whereJson.getOut_order_seq()), Structattr::getOut_order_seq, whereJson.getOut_order_seq())
|
|
|
|
|
.ne( Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByDesc(Structattr::getBlock_num);//neededit out_order_seq
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
jsonLockArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
//isNumMap.put("flag", "6");
|
|
|
|
|
//jsonLockArr = WQL.getWO("QST_IVT_HANDMOVESTOR").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
@@ -1301,7 +1404,7 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
isNumMap.put("flag", "6");
|
|
|
|
|
JSONArray isLockArr = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
JSONArray numArr = bean.isNum(isLockArr);
|
|
|
|
|
JSONArray numArr = checkOutBillService.isNum(isLockArr);
|
|
|
|
|
|
|
|
|
|
// 不为空则返回报错
|
|
|
|
|
if (ObjectUtil.isNotEmpty(numArr)) {
|
|
|
|
|
@@ -1320,12 +1423,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
//jsonLockArr = WQL.getWO("QST_IVT_HANDMOVESTOR").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getString("block_num")), Structattr::getBlock_num, whereJson.getString("block_num"))
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getString("row_num")), Structattr::getBlock_num, whereJson.getString("row_num"))//neededit
|
|
|
|
|
.lt(ObjectUtil.isNotEmpty(whereJson.getString("out_order_seq")), Structattr::getBlock_num, whereJson.getString("out_order_seq"))//neededit
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getBlock_num()), Structattr::getBlock_num, whereJson.getBlock_num())
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getRow_num()), Structattr::getRow_num, whereJson.getRow_num())
|
|
|
|
|
.lt(ObjectUtil.isNotEmpty(whereJson.getOut_order_seq()), Structattr::getOut_order_seq, whereJson.getOut_order_seq())
|
|
|
|
|
.ne( Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByAsc(Structattr::getBlock_num);//neededit out_order_seq
|
|
|
|
|
.orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
jsonLockArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
} else {
|
|
|
|
|
/*
|
|
|
|
|
@@ -1335,7 +1438,7 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
isNumMap.put("flag", "6");
|
|
|
|
|
JSONArray isLockArr = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
JSONArray numArr = bean.isNum(isLockArr);
|
|
|
|
|
JSONArray numArr = checkOutBillService.isNum(isLockArr);
|
|
|
|
|
|
|
|
|
|
// 不为空则返回报错
|
|
|
|
|
if (ObjectUtil.isNotEmpty(numArr)) {
|
|
|
|
|
@@ -1353,12 +1456,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
//isNumMap.put("flag", "7");
|
|
|
|
|
//jsonLockArr = WQL.getWO("QST_IVT_HANDMOVESTOR").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getString("block_num")), Structattr::getBlock_num, whereJson.getString("block_num"))
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getString("row_num")), Structattr::getBlock_num, whereJson.getString("row_num"))//neededit
|
|
|
|
|
.lt(ObjectUtil.isNotEmpty(whereJson.getString("out_order_seq")), Structattr::getBlock_num, whereJson.getString("out_order_seq"))//neededit
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getBlock_num()), Structattr::getBlock_num, whereJson.getBlock_num())
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getRow_num()), Structattr::getRow_num, whereJson.getRow_num())
|
|
|
|
|
.lt(ObjectUtil.isNotEmpty(whereJson.getOut_order_seq()), Structattr::getOut_order_seq, whereJson.getOut_order_seq())
|
|
|
|
|
.ne( Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByAsc(Structattr::getBlock_num);//neededit out_order_seq
|
|
|
|
|
.orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
jsonLockArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1370,12 +1473,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
// 查询仓位被锁住的货位
|
|
|
|
|
JSONObject isNumMap = new JSONObject();
|
|
|
|
|
isNumMap.put("flag", "5");
|
|
|
|
|
isNumMap.put("block_num", whereJson.getString("block_num"));
|
|
|
|
|
isNumMap.put("row_num", whereJson.getString("row_num"));
|
|
|
|
|
isNumMap.put("out_order_seq", whereJson.getString("out_order_seq"));
|
|
|
|
|
isNumMap.put("block_num", whereJson.getBlock_num());
|
|
|
|
|
isNumMap.put("row_num", whereJson.getRow_num());
|
|
|
|
|
isNumMap.put("out_order_seq", whereJson.getOut_order_seq());
|
|
|
|
|
JSONArray isLockArr = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
JSONArray numArr = bean.isNum(isLockArr);
|
|
|
|
|
JSONArray numArr = checkOutBillService.isNum(isLockArr);
|
|
|
|
|
// 不为空则返回报错
|
|
|
|
|
if (ObjectUtil.isNotEmpty(numArr)) {
|
|
|
|
|
String error = "";
|
|
|
|
|
@@ -1392,12 +1495,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
//isNumMap.put("flag", "6");
|
|
|
|
|
//jsonLockArr = WQL.getWO("QST_IVT_HANDMOVESTOR").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getString("block_num")), Structattr::getBlock_num, whereJson.getString("block_num"))
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getString("row_num")), Structattr::getBlock_num, whereJson.getString("row_num"))//neededit
|
|
|
|
|
.gt(ObjectUtil.isNotEmpty(whereJson.getString("out_order_seq")), Structattr::getBlock_num, whereJson.getString("out_order_seq"))//neededit
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getBlock_num()), Structattr::getBlock_num, whereJson.getBlock_num())
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getRow_num()), Structattr::getRow_num, whereJson.getRow_num())
|
|
|
|
|
.gt(ObjectUtil.isNotEmpty(whereJson.getOut_order_seq()), Structattr::getOut_order_seq, whereJson.getOut_order_seq())
|
|
|
|
|
.ne( Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByDesc(Structattr::getBlock_num);//neededit out_order_seq
|
|
|
|
|
.orderByDesc(Structattr::getOut_order_seq);
|
|
|
|
|
jsonLockArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
|
|
|
|
|
} else if (StrUtil.equals(placement_type, "03")) {
|
|
|
|
|
@@ -1408,12 +1511,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
// 查询仓位被锁住的货位
|
|
|
|
|
JSONObject isNumMap = new JSONObject();
|
|
|
|
|
isNumMap.put("flag", "6");
|
|
|
|
|
isNumMap.put("block_num", whereJson.getString("block_num"));
|
|
|
|
|
isNumMap.put("row_num", whereJson.getString("row_num"));
|
|
|
|
|
isNumMap.put("out_order_seq", whereJson.getString("out_order_seq"));
|
|
|
|
|
isNumMap.put("block_num", whereJson.getBlock_num());
|
|
|
|
|
isNumMap.put("row_num", whereJson.getRow_num());
|
|
|
|
|
isNumMap.put("out_order_seq", whereJson.getOut_order_seq());
|
|
|
|
|
JSONArray isLockArr = WQL.getWO("ST_OUTIVT04").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
|
|
|
|
|
JSONArray numArr = bean.isNum(isLockArr);
|
|
|
|
|
JSONArray numArr = checkOutBillService.isNum(isLockArr);
|
|
|
|
|
|
|
|
|
|
// 不为空则返回报错
|
|
|
|
|
if (ObjectUtil.isNotEmpty(numArr)) {
|
|
|
|
|
@@ -1431,12 +1534,12 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
//isNumMap.put("flag", "7");
|
|
|
|
|
//jsonLockArr = WQL.getWO("QST_IVT_HANDMOVESTOR").addParamMap(isNumMap).process().getResultJSONArray(0);
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getString("block_num")), Structattr::getBlock_num, whereJson.getString("block_num"))
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getString("row_num")), Structattr::getBlock_num, whereJson.getString("row_num"))//neededit
|
|
|
|
|
.lt(ObjectUtil.isNotEmpty(whereJson.getString("out_order_seq")), Structattr::getBlock_num, whereJson.getString("out_order_seq"))//neededit
|
|
|
|
|
queryWrapper.eq(ObjectUtil.isNotEmpty(whereJson.getBlock_num()), Structattr::getBlock_num, whereJson.getBlock_num())
|
|
|
|
|
.eq(ObjectUtil.isNotEmpty(whereJson.getRow_num()), Structattr::getRow_num, whereJson.getRow_num())
|
|
|
|
|
.lt(ObjectUtil.isNotEmpty(whereJson.getOut_order_seq()), Structattr::getOut_order_seq, whereJson.getOut_order_seq())
|
|
|
|
|
.ne( Structattr::getStoragevehicle_code,"")
|
|
|
|
|
.isNotNull(Structattr::getStoragevehicle_code)
|
|
|
|
|
.orderByAsc(Structattr::getBlock_num);//neededit out_order_seq
|
|
|
|
|
.orderByAsc(Structattr::getOut_order_seq);
|
|
|
|
|
jsonLockArr = structattrMapper.selectList(queryWrapper);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1451,7 +1554,7 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
moveParam.put("jsonAllBlockPoint", jsonLockArr);
|
|
|
|
|
moveParam.put("is_move", "1");
|
|
|
|
|
moveParam.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId());
|
|
|
|
|
bean.createMove(moveParam, null);
|
|
|
|
|
checkOutBillService.createMove(moveParam, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return jsonLockArr.size();
|
|
|
|
|
@@ -1464,14 +1567,16 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
public void createMoveExpansion(JSONObject whereJson) {
|
|
|
|
|
//任务表
|
|
|
|
|
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
|
|
|
|
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
|
|
|
|
|
|
|
|
|
JSONArray needMoveList = whereJson.getJSONArray("needMoveList");
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < needMoveList.size(); i++) {
|
|
|
|
|
JSONObject json = needMoveList.getJSONObject(i);
|
|
|
|
|
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
|
|
|
|
|
queryWrapper.eq(Structattr::getStruct_code, json.getString("struct_code"))
|
|
|
|
|
.eq(Structattr::getIs_delete, "0");
|
|
|
|
|
|
|
|
|
|
JSONObject jsonAttr = attrTab.query("struct_code = '" + json.getString("struct_code") + "'").uniqueResult(0);
|
|
|
|
|
Structattr jsonAttr = structattrMapper.selectOne(queryWrapper);
|
|
|
|
|
|
|
|
|
|
JSONObject mapParam = new JSONObject();// 生成移库单传入参数
|
|
|
|
|
JSONArray table = new JSONArray(); // 明细参数
|
|
|
|
|
@@ -1490,7 +1595,7 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
|
|
|
|
|
JSONObject moveParam = new JSONObject();
|
|
|
|
|
moveParam.put("box_no", json.getString("storagevehicle_code"));
|
|
|
|
|
moveParam.put("sect_id", RegionTypeEnum.ZZ01.getId());
|
|
|
|
|
moveParam.put("layer_num", jsonAttr.getString("layer_num"));
|
|
|
|
|
moveParam.put("layer_num", jsonAttr.getLayer_num());
|
|
|
|
|
JSONObject jsonMove = rawAssistIStorService.autoDisMove(moveParam);
|
|
|
|
|
// 查询移出货位的库存物料
|
|
|
|
|
JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03")
|
|
|
|
|
|