diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java index 1a0752d..a96123f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java @@ -810,7 +810,6 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { public void unDivStruct(Map jo) { WQLObject dis_wql = WQLObject.getWQLObject("ST_IVT_IOStorInvDis"); WQLObject point_table = WQLObject.getWQLObject("SCH_BASE_Point"); - WQLObject struct_table = WQLObject.getWQLObject("ST_IVT_StructAttr"); ArrayList rows = (ArrayList) jo.get("tableMater"); HashMap whereJson = rows.get(0); @@ -825,7 +824,17 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { unlock_map.put("inv_id", ""); unlock_map.put("inv_code", ""); point_table.update(unlock_map, "point_code = '" + whereJson.get("struct_code") + "'"); - struct_table.update(unlock_map, "struct_code = '" + whereJson.get("struct_code") + "'"); + + LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper(); + queryWrapper.set(Structattr::getLock_type,"1"); + queryWrapper.set(Structattr::getTaskdtl_type,""); + queryWrapper.set(Structattr::getTaskdtl_id,""); + queryWrapper.set(Structattr::getTask_code,""); + queryWrapper.set(Structattr::getInv_code,""); + queryWrapper.set(Structattr::getInv_type,""); + queryWrapper.set(Structattr::getInv_id,""); + queryWrapper.eq(Structattr::getStruct_code,whereJson.get("struct_code")); + structattrMapper.update(null,queryWrapper); //减去原货位的待入数 JSONArray dis_rows = dis_wql.query("struct_code = '" + whereJson.get("struct_code") + "' AND work_status < '99'").getResultJSONArray(0); @@ -1800,7 +1809,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String col_num = whereJson.getString("layer_num"); // 转库时用 - JSONObject struct_jo = new JSONObject(); + Structattr struct_jo = new Structattr(); JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + box_no + "' AND status < 3").uniqueResult(0); if (ObjectUtil.isEmpty(sub_jo)) { @@ -1831,15 +1840,40 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String placement_type = row_jo.getString("placement_type"); // 判断此排是否有除:入库锁、移入锁以外的锁 - JSONArray isLock = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type not in ('1','2','7') 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); - if (ObjectUtil.isEmpty(isLock)) { + + // 判断此排是否有除:入库锁、移入锁以外的锁 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.in(Structattr::getLock_type,"1","2","7") + .eq(Structattr::getBlock_num,block_num) + .eq(Structattr::getPlacement_type,placement_type) + .eq(Structattr::getRow_num,row_num) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1"); + + Integer isLock = structattrMapper.selectCount(queryWrapper); + + if (isLock==0) { + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper(); + queryWrapper2.eq(Structattr::getLock_type,"1") + .eq(Structattr::getBlock_num,block_num) + .eq(Structattr::getPlacement_type,placement_type) + .eq(Structattr::getRow_num,row_num) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1"); 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 ASC").uniqueResult(0); - + queryWrapper2.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByAsc(Structattr::getOut_order_seq); + // 左通 + List struct_jos = structattrMapper.selectList(queryWrapper2); + if(struct_jos.size()>0){ + struct_jo = struct_jos.get(0); + } // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -1847,11 +1881,17 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { break; } else 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); - + queryWrapper2.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByDesc(Structattr::getOut_order_seq); + List struct_jos = structattrMapper.selectList(queryWrapper2); + if(struct_jos.size()>0){ + struct_jo = struct_jos.get(0); + } // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -1861,28 +1901,60 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { // 双通 // 先倒序找到第一个木箱、判断上一个是否有货位 - 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 queryWrapper4 = new LambdaQueryWrapper(queryWrapper2); - JSONObject jsonDescStruct = new JSONObject(); - if (ObjectUtil.isNotEmpty(jsonDescBox)) { - String out_order_seq = jsonDescBox.getString("out_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); - } else { + queryWrapper4.isNotNull(Structattr::getStoragevehicle_code) + .ne(Structattr::getStoragevehicle_code,"") + .orderByDesc(Structattr::getOut_order_seq); + List jsonDescBoxs = structattrMapper.selectList(queryWrapper4); + Structattr jsonDescStruct = new Structattr(); + if (jsonDescBoxs.size()>0) { + String out_order_seq = jsonDescBoxs.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper5 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper5.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq) + .orderByAsc(Structattr::getOut_order_seq); + List jsonDescStructs = structattrMapper.selectList(queryWrapper5); + if(jsonDescStructs.size()>0){ + jsonDescStruct = jsonDescStructs.get(0); + } + } + else { // 先倒序找到第一个入库锁或者移库锁、判断上一个是否有货位 - JSONObject jsonDescEmpStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('2','7') 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(jsonDescEmpStruct)) { - String out_order_seq = jsonDescEmpStruct.getString("out_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); + LambdaQueryWrapper queryWrapper5 = new LambdaQueryWrapper(); + queryWrapper5.in(Structattr::getLock_type,"2","7") + .eq(Structattr::getBlock_num,block_num) + .eq(Structattr::getPlacement_type,placement_type) + .eq(Structattr::getRow_num,row_num) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByDesc(Structattr::getOut_order_seq); + List jsonDescEmpStructs = structattrMapper.selectList(queryWrapper5); + if (jsonDescEmpStructs.size()>0) { + String out_order_seq = jsonDescEmpStructs.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper6 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper6.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq) + .orderByAsc(Structattr::getOut_order_seq); + List jsonDescStructs = structattrMapper.selectList(queryWrapper6); + if(jsonDescStructs.size()>0){ + jsonDescStruct = jsonDescStructs.get(0); + } } } if (ObjectUtil.isNotEmpty(jsonDescStruct)) { struct_jo = jsonDescStruct; - // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -1890,19 +1962,51 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { break; } else { // 没有就正序找到第一个物料、判断上一个是否有货位 - 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); - - JSONObject jsonAscStruct = new JSONObject(); - if (ObjectUtil.isNotEmpty(jsonAscBox)) { - String out_order_seq2 = jsonAscBox.getString("out_order_seq"); + LambdaQueryWrapper queryWrapper5 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper5.isNotNull(Structattr::getStoragevehicle_code) + .ne(Structattr::getStoragevehicle_code,"") + .orderByAsc(Structattr::getOut_order_seq); + List jsonAscBoxs = structattrMapper.selectList(queryWrapper5); + Structattr jsonAscStruct = new Structattr(); + if (jsonAscBoxs.size()>0) { + String out_order_seq2 = jsonAscBoxs.get(0).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); - } else { - JSONObject jsonAscEmpStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('2','7') 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(jsonAscEmpStruct)) { - String out_order_seq2 = jsonAscEmpStruct.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); + LambdaQueryWrapper queryWrapper6 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper6.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .lt(Structattr::getOut_order_seq,out_order_seq2) + .orderByDesc(Structattr::getOut_order_seq); + List jsonAscStructs = structattrMapper.selectList(queryWrapper6); + if(jsonAscStructs.size()>0){ + jsonAscStruct = jsonAscStructs.get(0); + } + } + else { + LambdaQueryWrapper queryWrapper6 = new LambdaQueryWrapper(); + queryWrapper6.in(Structattr::getLock_type,"2","7") + .eq(Structattr::getBlock_num,block_num) + .eq(Structattr::getPlacement_type,placement_type) + .eq(Structattr::getRow_num,row_num) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByAsc(Structattr::getOut_order_seq); + List jsonAscEmpStructS = structattrMapper.selectList(queryWrapper6); + if (jsonAscEmpStructS.size()>0) { + String out_order_seq2 = jsonAscEmpStructS.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper7 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper7.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .lt(Structattr::getOut_order_seq,out_order_seq2) + .orderByDesc(Structattr::getOut_order_seq); + List jsonAscStructs = structattrMapper.selectList(queryWrapper7); + if(jsonAscStructs.size()>0){ + jsonAscStruct = jsonAscStructs.get(0); + } } } @@ -1910,8 +2014,8 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { struct_jo = jsonAscStruct; // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -1940,23 +2044,22 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String row_num2 = empty_row.getString("row_num"); String placement_type2 = empty_row.getString("placement_type"); - if ("02".equals(placement_type)) { - struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num2 + "' AND row_num = '" + row_num2 + "' AND placement_type = '" + placement_type2 + "' AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_order_seq ASC").uniqueResult(0); - - // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { - struct_jo = null; - continue; - } - } - break; - } else { - struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num2 + "' AND row_num = '" + row_num2 + "' AND placement_type = '" + placement_type2 + "'AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_order_seq DESC").uniqueResult(0); - + LambdaQueryWrapper queryWrapper8 = new LambdaQueryWrapper(); + queryWrapper8.eq(Structattr::getLock_type,"1") + .eq(Structattr::getBlock_num,block_num2) + .eq(Structattr::getPlacement_type,placement_type2) + .eq(Structattr::getRow_num,row_num2) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1") + .orderByAsc("02".equals(placement_type),Structattr::getOut_order_seq) + .orderByDesc(!("02".equals(placement_type)),Structattr::getOut_order_seq); + + List struct_jos = structattrMapper.selectList(queryWrapper8); + if(struct_jos.size()>0){ + struct_jo = struct_jos.get(0); // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -1973,23 +2076,69 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String block_num3 = have_row.getString("block_num"); String row_num3 = have_row.getString("row_num"); - JSONArray isLock2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type not in ('1','2','7') AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1'").getResultJSONArray(0); - - if (ObjectUtil.isEmpty(isLock2)) { + LambdaQueryWrapper queryWrapper9 = new LambdaQueryWrapper(); + queryWrapper9.in(Structattr::getLock_type,"1","2","7") + .eq(Structattr::getBlock_num,block_num3) + .eq(Structattr::getRow_num,row_num3) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1"); + + List isLock2s = structattrMapper.selectList(queryWrapper9); + + LambdaQueryWrapper queryWrapper10 = new LambdaQueryWrapper(); + queryWrapper10.eq(Structattr::getBlock_num,block_num3) + .eq(Structattr::getRow_num,row_num3) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1"); + //如果没加锁 + if (isLock2s.size()==0) { // 先倒序找到第一个木箱、判断上一个是否有货位 - JSONObject jsonDescBox2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq DESC").uniqueResult(0); + LambdaQueryWrapper queryWrapper11 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper11.eq(Structattr::getLock_type,"1") + .ne(Structattr::getStoragevehicle_code,"") + .isNotNull(Structattr::getStoragevehicle_code) + .orderByDesc(Structattr::getOut_order_seq); - JSONObject jsonDescStruct2 = new JSONObject(); - if (ObjectUtil.isNotEmpty(jsonDescBox2)) { - String out_order_seq = jsonDescBox2.getString("out_order_seq"); - jsonDescStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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); - } else { + List jsonDescBox2s = structattrMapper.selectList(queryWrapper11); + Structattr jsonDescStruct2 = new Structattr(); + if (jsonDescBox2s.size()>0) { + String out_order_seq = jsonDescBox2s.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper12 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper12.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq) + .orderByAsc(Structattr::getOut_order_seq); + List jsonDescStruct2s = structattrMapper.selectList(queryWrapper12); + if(jsonDescStruct2s.size()>0){ + jsonDescStruct2 = jsonDescStruct2s.get(0); + } + }else { // 先倒序找到第一个入库锁或者移库锁、判断上一个是否有货位 - JSONObject jsonDescEmpStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('2','7') AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq DESC").uniqueResult(0); - - if (ObjectUtil.isNotEmpty(jsonDescEmpStruct)) { - String out_order_seq = jsonDescEmpStruct.getString("out_order_seq"); - jsonDescStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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); + LambdaQueryWrapper queryWrapper12 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper12.in(Structattr::getLock_type,"2","7") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByDesc(Structattr::getOut_order_seq); + + List jsonDescEmpStructs = structattrMapper.selectList(queryWrapper12); + + if (jsonDescEmpStructs.size()>0) { + String out_order_seq = jsonDescEmpStructs.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper13 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper13.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq) + .orderByAsc(Structattr::getOut_order_seq); + + List jsonDescStruct2s = structattrMapper.selectList(queryWrapper13); + if(jsonDescStruct2s.size()>0){ + jsonDescStruct2 = jsonDescStruct2s.get(0); + } } } @@ -1997,8 +2146,8 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { struct_jo = jsonDescStruct2; // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -2006,28 +2155,62 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { break; } else { // 没有就正序找到第一个物料、判断上一个是否有货位 - JSONObject jsonAscBox2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq ASC").uniqueResult(0); - - JSONObject jsonAscStruct2 = new JSONObject(); - if (ObjectUtil.isNotEmpty(jsonAscBox2)) { - String out_order_seq2 = jsonAscBox2.getString("out_order_seq"); + LambdaQueryWrapper queryWrapper14 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper14.eq(Structattr::getLock_type,"1") + .ne(Structattr::getStoragevehicle_code,"") + .isNotNull(Structattr::getStoragevehicle_code) + .orderByAsc(Structattr::getOut_order_seq); + List jsonAscBox2s = structattrMapper.selectList(queryWrapper14); + + Structattr jsonAscStruct2 = new Structattr(); + if (jsonAscBox2s.size()>0) { + String out_order_seq2 = jsonAscBox2s.get(0).getOut_order_seq(); // 上一个货位顺序号 - jsonAscStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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 { - JSONObject jsonAscEmpStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('2','7') AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq ASC").uniqueResult(0); - - if (ObjectUtil.isNotEmpty(jsonAscEmpStruct)) { - String out_order_seq2 = jsonAscEmpStruct.getString("out_order_seq"); - jsonAscStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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); + LambdaQueryWrapper queryWrapper15 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper15.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .lt(Structattr::getOut_order_seq,out_order_seq2) + .orderByDesc(Structattr::getOut_order_seq); + List jsonAscStruct2s = structattrMapper.selectList(queryWrapper15); + if(jsonAscStruct2s.size()>0) { + jsonAscStruct2 = jsonAscStruct2s.get(0); + } + }else { + LambdaQueryWrapper queryWrapper15 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper15.in(Structattr::getLock_type,"2","7") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByAsc(Structattr::getOut_order_seq); + + List jsonAscEmpStructs = structattrMapper.selectList(queryWrapper15); + + if (jsonAscEmpStructs.size()>0) { + String out_order_seq2 = jsonAscEmpStructs.get(0).getOut_order_seq(); + + LambdaQueryWrapper queryWrapper16 = new LambdaQueryWrapper(queryWrapper10); + queryWrapper16.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .lt(Structattr::getOut_order_seq,out_order_seq2) + .orderByDesc(Structattr::getOut_order_seq); + List jsonAscStruct2s = structattrMapper.selectList(queryWrapper16); + if(jsonAscStruct2s.size()>0){ + jsonAscStruct2 = jsonAscStruct2s.get(0); + } } + } if (ObjectUtil.isNotEmpty(jsonAscStruct2)) { struct_jo = jsonAscStruct2; // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -2078,10 +2261,18 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String row_num = empty_row.getString("row_num"); String placement_type = empty_row.getString("placement_type"); - if ("02".equals(placement_type)) { - struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND placement_type = '" + placement_type + "' AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_order_seq ASC").uniqueResult(0); - } else { - struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND placement_type = '" + placement_type + "'AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_order_seq DESC").uniqueResult(0); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.eq(Structattr::getLock_type,"1") + .eq(Structattr::getBlock_num,block_num) + .eq(Structattr::getPlacement_type,placement_type) + .eq(Structattr::getRow_num,row_num) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1") + .orderByAsc("02".equals(placement_type),Structattr::getOut_order_seq) + .orderByDesc(!("02".equals(placement_type)),Structattr::getOut_order_seq); + List struct_jos = structattrMapper.selectList(queryWrapper); + if(struct_jos.size()>0){ + struct_jo = struct_jos.get(0); } } else { @@ -2093,23 +2284,68 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String block_num3 = have_row.getString("block_num"); String row_num3 = have_row.getString("row_num"); - JSONArray isLock2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type not in ('1','2','7') AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1'").getResultJSONArray(0); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.notIn(Structattr::getLock_type,"1","2","7") + .eq(Structattr::getBlock_num,block_num3) + .eq(Structattr::getRow_num,row_num3) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1"); + + Integer isLock2 = structattrMapper.selectCount(queryWrapper); + - if (ObjectUtil.isEmpty(isLock2)) { + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper(); + queryWrapper2.eq(Structattr::getLock_type,"1") + .eq(Structattr::getBlock_num,block_num3) + .eq(Structattr::getRow_num,row_num3) + .eq(Structattr::getIs_delete,"0") + .eq(Structattr::getIs_used,"1"); + if (isLock2 == 0) { // 先倒序找到第一个木箱、判断上一个是否有货位 - JSONObject jsonDescBox2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq DESC").uniqueResult(0); + LambdaQueryWrapper queryWrapper3 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper3.ne(Structattr::getStoragevehicle_code,"") + .isNotNull(Structattr::getStoragevehicle_code) + .orderByDesc(Structattr::getOut_order_seq); - JSONObject jsonDescStruct2 = new JSONObject(); - if (ObjectUtil.isNotEmpty(jsonDescBox2)) { - String out_order_seq = jsonDescBox2.getString("out_order_seq"); - jsonDescStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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); + + List jsonDescBox2s = structattrMapper.selectList(queryWrapper3); + + + Structattr jsonDescStruct2 = new Structattr(); + if (jsonDescBox2s.size()>0) { + String out_order_seq = jsonDescBox2s.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper4 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper4.and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq) + .orderByAsc(Structattr::getOut_order_seq); + List jsonDescStruct2s = structattrMapper.selectList(queryWrapper4); + if(jsonDescStruct2s.size()>0){ + jsonDescStruct2 = jsonDescStruct2s.get(0); + } } else { // 先倒序找到第一个入库锁或者移库锁、判断上一个是否有货位 - JSONObject jsonDescEmpStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('2','7') AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq DESC").uniqueResult(0); - - if (ObjectUtil.isNotEmpty(jsonDescEmpStruct)) { - String out_order_seq = jsonDescEmpStruct.getString("out_order_seq"); - jsonDescStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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); + LambdaQueryWrapper queryWrapper4 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper4.in(Structattr::getLock_type,"1","2","7") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByDesc(Structattr::getOut_order_seq); + List jsonDescEmpStructs = structattrMapper.selectList(queryWrapper4); + if (jsonDescEmpStructs.size()>0) { + String out_order_seq = jsonDescEmpStructs.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper5 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper5.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq) + .orderByAsc(Structattr::getOut_order_seq); + List jsonDescStruct2s = structattrMapper.selectList(queryWrapper5); + if(jsonDescStruct2s.size()>0){ + jsonDescStruct2 = jsonDescStruct2s.get(0); + } } } @@ -2117,8 +2353,8 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { struct_jo = jsonDescStruct2; // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -2126,19 +2362,50 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { break; } else { // 没有就正序找到第一个物料、判断上一个是否有货位 - JSONObject jsonAscBox2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq ASC").uniqueResult(0); + LambdaQueryWrapper queryWrapper5 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper5.eq(Structattr::getLock_type,"1") + .ne(Structattr::getStoragevehicle_code,"") + .isNotNull(Structattr::getStoragevehicle_code) + .orderByAsc(Structattr::getOut_order_seq); + List jsonAscBox2s = structattrMapper.selectList(queryWrapper5); - JSONObject jsonAscStruct2 = new JSONObject(); - if (ObjectUtil.isNotEmpty(jsonAscBox2)) { - String out_order_seq2 = jsonAscBox2.getString("out_order_seq"); + Structattr jsonAscStruct2 = new Structattr(); + if (jsonAscBox2s.size()>0) { + String out_order_seq2 = jsonAscBox2s.get(0).getOut_order_seq(); // 上一个货位顺序号 - jsonAscStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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 { - JSONObject jsonAscEmpStruct = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type in ('2','7') AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq ASC").uniqueResult(0); + LambdaQueryWrapper queryWrapper4 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper4.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .gt(Structattr::getOut_order_seq,out_order_seq2) + .orderByDesc(Structattr::getOut_order_seq); + List jsonAscStruct2s = structattrMapper.selectList(queryWrapper4); + if(jsonAscStruct2s.size()>0){ + jsonAscStruct2 = jsonAscStruct2s.get(0); + } + }else { + LambdaQueryWrapper queryWrapper4 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper4.in(Structattr::getLock_type,"2","7") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .orderByAsc(Structattr::getOut_order_seq); + List jsonAscEmpStructS = structattrMapper.selectList(queryWrapper4); - if (ObjectUtil.isNotEmpty(jsonAscEmpStruct)) { - String out_order_seq2 = jsonAscEmpStruct.getString("out_order_seq"); - jsonAscStruct2 = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num3 + "' AND row_num = '" + row_num3 + "' 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); + if (jsonAscEmpStructS.size()>0) { + String out_order_seq2 = jsonAscEmpStructS.get(0).getOut_order_seq(); + LambdaQueryWrapper queryWrapper6 = new LambdaQueryWrapper(queryWrapper2); + queryWrapper6.eq(Structattr::getLock_type,"1") + .and(lam->lam.eq(Structattr::getStoragevehicle_code,"") + .or() + .isNull(Structattr::getStoragevehicle_code)) + .lt(Structattr::getOut_order_seq,out_order_seq2) + .orderByDesc(Structattr::getOut_order_seq); + List jsonAscStruct2s = structattrMapper.selectList(queryWrapper4); + if(jsonAscStruct2s.size()>0){ + jsonAscStruct2 = jsonAscStruct2s.get(0); + } } } @@ -2146,8 +2413,8 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { struct_jo = jsonAscStruct2; // 判断是否是第三层 且高度是否超过仓位高度 - if (StrUtil.equals(struct_jo.getString("layer_num"), "3")) { - if (box_high > struct_jo.getDoubleValue("height")) { + if (StrUtil.equals(struct_jo.getLayer_num(), "3")) { + if (box_high > struct_jo.getHeight().doubleValue()) { struct_jo = null; continue; } @@ -2161,7 +2428,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { } } } - return struct_jo; + return (JSONObject) JSONObject.toJSON(struct_jo); } @Override