rev:一期入库层数优化
This commit is contained in:
@@ -309,19 +309,32 @@ public class ProductInstorServiceImpl implements ProductInstorService {
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (jsonOne.getDoubleValue("num") <= Double.parseDouble(download_attr_num)) {
|
||||
throw new BadRequestException(jsonOne.getString("layer_num") + "层主存区仓位数不足" + download_attr_num + "个,不允许入库!");
|
||||
List<JSONObject> layerList = attrList.stream()
|
||||
.filter(row -> "2,3".contains(row.getString("layer_num")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
int num = layerList.stream()
|
||||
.map(row -> row.getBigDecimal("num"))
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.intValue();
|
||||
|
||||
if (num <= (Integer.parseInt(download_attr_num) * 2)) {
|
||||
throw new BadRequestException("立库主存区仓位数不足" + download_attr_num + "个,不允许入库!");
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
List<JSONObject> layerList = attrList.stream()
|
||||
.filter(row -> "2,3".contains(row.getString("layer_num")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
JSONObject jsonAttr = layerList.stream()
|
||||
.filter(row -> row.getDoubleValue("num") <= Double.parseDouble(download_attr_num))
|
||||
.findFirst().orElse(null);
|
||||
int num = layerList.stream()
|
||||
.map(row -> row.getBigDecimal("num"))
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.intValue();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonAttr)) {
|
||||
throw new BadRequestException(jsonAttr.getString("layer_num") + "层主存区仓位数不足" + download_attr_num + "个,不允许入库!");
|
||||
if (num <= (Integer.parseInt(download_attr_num) * 2)) {
|
||||
throw new BadRequestException("2、3层立库主存区仓位数不足" + download_attr_num + "个,不允许入库!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -996,36 +996,84 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
if (box_high > Double.parseDouble(in_up_box_high)) {
|
||||
throw new BadRequestException("木箱:" + sub_jo.getString("package_box_sn") + "高度不符合要求,请检查!");
|
||||
}
|
||||
row_map.put("in_layer_num", in_layer_num);
|
||||
|
||||
//查询到当前可用的巷道
|
||||
JSONArray rowArr2 = new JSONArray();
|
||||
|
||||
// 仓位下限阈值
|
||||
String download_attr_num = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("download_attr_num").getValue();
|
||||
|
||||
List<JSONObject> attrListAll = WQL.getWO("PDA_ST_01").addParam("flag", "10")
|
||||
.addParam("layer_num", "('1','2','3')").process()
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
if (box_high <= Double.parseDouble(in_download_box_high)) {
|
||||
// 优先入1层
|
||||
row_map.put("layer_num", "1");
|
||||
// 判断1层主存区是否超过阈值
|
||||
JSONObject jsonOne = attrListAll.stream()
|
||||
.filter(row -> row.getString("layer_num").equals("1"))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||
if (jsonOne.getDoubleValue("num") <= Double.parseDouble(download_attr_num)) {
|
||||
in_layer_num = "('2','3')";
|
||||
// 判断2层3层的仓位是否够
|
||||
List<JSONObject> layerList = attrListAll.stream()
|
||||
.filter(row -> "2,3".contains(row.getString("layer_num")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
JSONObject jsonAttr = layerList.stream()
|
||||
.filter(row -> row.getDoubleValue("num") <= Double.parseDouble(download_attr_num))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonAttr)) {
|
||||
if (jsonAttr.getString("layer_num").equals("2")) {
|
||||
in_layer_num = "('3')";
|
||||
} else {
|
||||
in_layer_num = "('2')";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 优先入1层
|
||||
row_map.put("in_layer_num", "('1')");
|
||||
|
||||
if (ObjectUtil.isEmpty(rowArr2)) {
|
||||
// 如果1层没有相同物料订单号的则找有空位的一排
|
||||
row_map.put("flag", "1111");
|
||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||
|
||||
// 如果为空则进行扩容
|
||||
if (ObjectUtil.isEmpty(rowArr2)) {
|
||||
boolean is_expansion = updateStructSectOne();
|
||||
// 如果1层没有相同物料订单号的则找有空位的一排
|
||||
row_map.put("flag", "1111");
|
||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||
|
||||
if (is_expansion) {
|
||||
// 如果为true则在进行查询一次
|
||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||
// 如果为空则进行扩容
|
||||
if (ObjectUtil.isEmpty(rowArr2)) {
|
||||
boolean is_expansion = updateStructSectOne();
|
||||
|
||||
if (is_expansion) {
|
||||
// 如果为true则在进行查询一次
|
||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 判断2层3层的仓位是否够
|
||||
List<JSONObject> layerList = attrListAll.stream()
|
||||
.filter(row -> "2,3".contains(row.getString("layer_num")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
JSONObject jsonAttr = layerList.stream()
|
||||
.filter(row -> row.getDoubleValue("num") <= Double.parseDouble(download_attr_num))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonAttr)) {
|
||||
if (jsonAttr.getString("layer_num").equals("2")) {
|
||||
in_layer_num = "('3')";
|
||||
} else {
|
||||
in_layer_num = "('2')";
|
||||
}
|
||||
}
|
||||
}
|
||||
row_map.put("in_layer_num", in_layer_num);
|
||||
|
||||
if (ObjectUtil.isEmpty(rowArr2)) {
|
||||
row_map.put("layer_num", "");
|
||||
row_map.put("flag", "111");
|
||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||
}
|
||||
@@ -1181,7 +1229,12 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
int box_num = (int) Math.ceil(plan_rows.size() / 2) + box_rows.size();
|
||||
|
||||
//查询数量与订单物料箱子数量相近的一排
|
||||
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("sect_id", sect_id).addParam("flag", "13").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num),block_num,row_num").process().uniqueResult(0);
|
||||
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR")
|
||||
.addParam("sect_id", sect_id)
|
||||
.addParam("in_layer_num",in_layer_num)
|
||||
.addParam("flag", "13")
|
||||
.addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num),block_num,row_num")
|
||||
.process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(empty_row)) {
|
||||
String block_num2 = empty_row.getString("block_num");
|
||||
String row_num2 = empty_row.getString("row_num");
|
||||
@@ -1212,7 +1265,12 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
}
|
||||
} else {
|
||||
//如果查询不到空的一排,则查询有空位双通的一排
|
||||
JSONArray haveArr = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("sect_id", sect_id).addParam("flag", "14").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)").process().getResultJSONArray(0);
|
||||
JSONArray haveArr = WQL.getWO("QST_IVT_RAWASSISTISTOR")
|
||||
.addParam("sect_id", sect_id)
|
||||
.addParam("flag", "14")
|
||||
.addParam("in_layer_num",in_layer_num)
|
||||
.addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)")
|
||||
.process().getResultJSONArray(0);
|
||||
|
||||
for (int j = 0; j < haveArr.size(); j++) {
|
||||
JSONObject have_row = haveArr.getJSONObject(j);
|
||||
@@ -1333,7 +1391,11 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
}
|
||||
} else {
|
||||
//如果查询不到空的一排,则查询有空位双通的一排
|
||||
JSONArray haveArr = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("in_layer_num", in_layer_num).addParam("sect_id", sect_id).addParam("flag", "14").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)").process().getResultJSONArray(0);
|
||||
JSONArray haveArr = WQL.getWO("QST_IVT_RAWASSISTISTOR")
|
||||
.addParam("in_layer_num", in_layer_num)
|
||||
.addParam("sect_id", sect_id).addParam("flag", "14")
|
||||
.addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)")
|
||||
.process().getResultJSONArray(0);
|
||||
for (int j = 0; j < haveArr.size(); j++) {
|
||||
JSONObject have_row = haveArr.getJSONObject(j);
|
||||
|
||||
|
||||
@@ -474,7 +474,6 @@
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id
|
||||
WHERE
|
||||
sa.sect_id = 输入.sect_id
|
||||
AND IFNULL(sa.storagevehicle_code,"") = ''
|
||||
AND sa.is_used = '1'
|
||||
AND sa.is_delete = '0'
|
||||
AND sa.lock_type = '1'
|
||||
@@ -485,10 +484,11 @@
|
||||
sub.sale_order_name = 输入.sale_order_name
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.layer_num <> ""
|
||||
sa.layer_num = 输入.layer_num
|
||||
OPTION 输入.in_layer_num <> ""
|
||||
sa.layer_num IN 输入.in_layer_num
|
||||
ENDOPTION
|
||||
|
||||
|
||||
GROUP BY
|
||||
sa.block_num,sa.row_num,sa.placement_type
|
||||
ORDER BY
|
||||
@@ -513,8 +513,8 @@
|
||||
and ifnull(sa.storagevehicle_code,'') = ''
|
||||
and sa.lock_type = '1'
|
||||
|
||||
OPTION 输入.layer_num <> ""
|
||||
sa.layer_num = 输入.layer_num
|
||||
OPTION 输入.in_layer_num <> ""
|
||||
sa.layer_num IN 输入.in_layer_num
|
||||
ENDOPTION
|
||||
|
||||
GROUP BY
|
||||
|
||||
Reference in New Issue
Block a user