rev:一期入库层数优化
This commit is contained in:
@@ -309,19 +309,32 @@ public class ProductInstorServiceImpl implements ProductInstorService {
|
|||||||
.findFirst().orElse(null);
|
.findFirst().orElse(null);
|
||||||
|
|
||||||
if (jsonOne.getDoubleValue("num") <= Double.parseDouble(download_attr_num)) {
|
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 {
|
} else {
|
||||||
List<JSONObject> layerList = attrList.stream()
|
List<JSONObject> layerList = attrList.stream()
|
||||||
.filter(row -> "2,3".contains(row.getString("layer_num")))
|
.filter(row -> "2,3".contains(row.getString("layer_num")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
JSONObject jsonAttr = layerList.stream()
|
int num = layerList.stream()
|
||||||
.filter(row -> row.getDoubleValue("num") <= Double.parseDouble(download_attr_num))
|
.map(row -> row.getBigDecimal("num"))
|
||||||
.findFirst().orElse(null);
|
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||||
|
.intValue();
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(jsonAttr)) {
|
if (num <= (Integer.parseInt(download_attr_num) * 2)) {
|
||||||
throw new BadRequestException(jsonAttr.getString("layer_num") + "层主存区仓位数不足" + download_attr_num + "个,不允许入库!");
|
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)) {
|
if (box_high > Double.parseDouble(in_up_box_high)) {
|
||||||
throw new BadRequestException("木箱:" + sub_jo.getString("package_box_sn") + "高度不符合要求,请检查!");
|
throw new BadRequestException("木箱:" + sub_jo.getString("package_box_sn") + "高度不符合要求,请检查!");
|
||||||
}
|
}
|
||||||
row_map.put("in_layer_num", in_layer_num);
|
|
||||||
|
|
||||||
//查询到当前可用的巷道
|
//查询到当前可用的巷道
|
||||||
JSONArray rowArr2 = new JSONArray();
|
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)) {
|
if (box_high <= Double.parseDouble(in_download_box_high)) {
|
||||||
// 优先入1层
|
// 判断1层主存区是否超过阈值
|
||||||
row_map.put("layer_num", "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);
|
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
||||||
|
|
||||||
// 如果为空则进行扩容
|
|
||||||
if (ObjectUtil.isEmpty(rowArr2)) {
|
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则在进行查询一次
|
if (ObjectUtil.isEmpty(rowArr2)) {
|
||||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
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)) {
|
if (ObjectUtil.isEmpty(rowArr2)) {
|
||||||
row_map.put("layer_num", "");
|
|
||||||
row_map.put("flag", "111");
|
row_map.put("flag", "111");
|
||||||
rowArr2 = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
|
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();
|
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)) {
|
if (ObjectUtil.isNotEmpty(empty_row)) {
|
||||||
String block_num2 = empty_row.getString("block_num");
|
String block_num2 = empty_row.getString("block_num");
|
||||||
String row_num2 = empty_row.getString("row_num");
|
String row_num2 = empty_row.getString("row_num");
|
||||||
@@ -1212,7 +1265,12 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
|||||||
}
|
}
|
||||||
} else {
|
} 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++) {
|
for (int j = 0; j < haveArr.size(); j++) {
|
||||||
JSONObject have_row = haveArr.getJSONObject(j);
|
JSONObject have_row = haveArr.getJSONObject(j);
|
||||||
@@ -1333,7 +1391,11 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
|||||||
}
|
}
|
||||||
} else {
|
} 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++) {
|
for (int j = 0; j < haveArr.size(); j++) {
|
||||||
JSONObject have_row = haveArr.getJSONObject(j);
|
JSONObject have_row = haveArr.getJSONObject(j);
|
||||||
|
|
||||||
|
|||||||
@@ -474,7 +474,6 @@
|
|||||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id
|
||||||
WHERE
|
WHERE
|
||||||
sa.sect_id = 输入.sect_id
|
sa.sect_id = 输入.sect_id
|
||||||
AND IFNULL(sa.storagevehicle_code,"") = ''
|
|
||||||
AND sa.is_used = '1'
|
AND sa.is_used = '1'
|
||||||
AND sa.is_delete = '0'
|
AND sa.is_delete = '0'
|
||||||
AND sa.lock_type = '1'
|
AND sa.lock_type = '1'
|
||||||
@@ -485,10 +484,11 @@
|
|||||||
sub.sale_order_name = 输入.sale_order_name
|
sub.sale_order_name = 输入.sale_order_name
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|
||||||
OPTION 输入.layer_num <> ""
|
OPTION 输入.in_layer_num <> ""
|
||||||
sa.layer_num = 输入.layer_num
|
sa.layer_num IN 输入.in_layer_num
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|
||||||
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
sa.block_num,sa.row_num,sa.placement_type
|
sa.block_num,sa.row_num,sa.placement_type
|
||||||
ORDER BY
|
ORDER BY
|
||||||
@@ -513,8 +513,8 @@
|
|||||||
and ifnull(sa.storagevehicle_code,'') = ''
|
and ifnull(sa.storagevehicle_code,'') = ''
|
||||||
and sa.lock_type = '1'
|
and sa.lock_type = '1'
|
||||||
|
|
||||||
OPTION 输入.layer_num <> ""
|
OPTION 输入.in_layer_num <> ""
|
||||||
sa.layer_num = 输入.layer_num
|
sa.layer_num IN 输入.in_layer_num
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
|
|||||||
Reference in New Issue
Block a user