|
@@ -203,7 +203,7 @@ public class contractCostController {
|
|
|
|
|
|
|
|
String OUT_RULE = DBSql.getString("SELECT OUT_RULE FROM BO_EU_DNIVT_PRODUCT WHERE ID=?", new Object[]{stockMap.getString("PRODUCT_ID")});
|
|
String OUT_RULE = DBSql.getString("SELECT OUT_RULE FROM BO_EU_DNIVT_PRODUCT WHERE ID=?", new Object[]{stockMap.getString("PRODUCT_ID")});
|
|
|
//1031 FIFO先进先出 1032 LIFO后进先出
|
|
//1031 FIFO先进先出 1032 LIFO后进先出
|
|
|
- List<RowMap> lotList = DBSql.getMaps("SELECT b.* FROM bo_eu_dnivt_warehouse_product a JOIN BO_EU_DNIVT_WAREHOUSE_PRODUCT_LOT b ON a.BINDID=b.BINDID WHERE b.QUANTITY>0 AND a.ID=? ORDER BY b.CREATEDATE " + (OUT_RULE!=null&&OUT_RULE.equals("1032") ? "DESC" : "ASC"), new Object[]{warehouseProductId});
|
|
|
|
|
|
|
+ List<RowMap> lotList = DBSql.getMaps("SELECT b.* FROM bo_eu_dnivt_warehouse_product a JOIN BO_EU_DNIVT_WAREHOUSE_PRODUCT_LOT b ON a.BINDID=b.BINDID WHERE b.QUANTITY>0 AND a.ID=? ORDER BY b.CREATEDATE " + (OUT_RULE != null && OUT_RULE.equals("1032") ? "DESC" : "ASC"), new Object[]{warehouseProductId});
|
|
|
|
|
|
|
|
//已被拣货数量
|
|
//已被拣货数量
|
|
|
List<RowMap> pickList = DBSql.getMaps("SELECT a.* from BO_EU_DNCTT_CONTRACT_COST_PRODUCT a JOIN BO_EU_DNCTT_CONTRACT_COST b ON a.CONTRACT_COST_ID=b.ID WHERE a.WAREHOUSE_ID=? AND b.PRODUCT_ID=?", new Object[]{stockMap.getString("WAREHOUSE_ID"), stockMap.getString("PRODUCT_ID")});
|
|
List<RowMap> pickList = DBSql.getMaps("SELECT a.* from BO_EU_DNCTT_CONTRACT_COST_PRODUCT a JOIN BO_EU_DNCTT_CONTRACT_COST b ON a.CONTRACT_COST_ID=b.ID WHERE a.WAREHOUSE_ID=? AND b.PRODUCT_ID=?", new Object[]{stockMap.getString("WAREHOUSE_ID"), stockMap.getString("PRODUCT_ID")});
|
|
@@ -211,42 +211,50 @@ public class contractCostController {
|
|
|
List<String> selectedSns = new ArrayList<>();//默认选择
|
|
List<String> selectedSns = new ArrayList<>();//默认选择
|
|
|
for (RowMap lotMap : lotList) {
|
|
for (RowMap lotMap : lotList) {
|
|
|
String lotSNs = lotMap.getString("SN");
|
|
String lotSNs = lotMap.getString("SN");
|
|
|
- if (StringUtils.isBlank(lotSNs)) continue;
|
|
|
|
|
-
|
|
|
|
|
- List<String> lotsns = new ArrayList<>();//本批次允许拣货数量
|
|
|
|
|
- for (String SN : lotSNs.split(",")) {
|
|
|
|
|
- boolean isPicked = false;
|
|
|
|
|
- for (RowMap pickMap : pickList) {
|
|
|
|
|
- String pickSNs = pickMap.getString("SN");
|
|
|
|
|
- if (StringUtils.isBlank(pickSNs)) continue;
|
|
|
|
|
- for (String pickSN : pickSNs.split(",")) {
|
|
|
|
|
- if (SN.equals(pickSN)) {
|
|
|
|
|
- //已被拣货
|
|
|
|
|
- isPicked = true;
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(lotSNs)) {
|
|
|
|
|
+ List<String> lotsns = new ArrayList<>();//本批次允许拣货数量
|
|
|
|
|
+ for (String SN : lotSNs.split(",")) {
|
|
|
|
|
+ boolean isPicked = false;
|
|
|
|
|
+ for (RowMap pickMap : pickList) {
|
|
|
|
|
+ String pickSNs = pickMap.getString("SN");
|
|
|
|
|
+ if (StringUtils.isBlank(pickSNs)) continue;
|
|
|
|
|
+ for (String pickSN : pickSNs.split(",")) {
|
|
|
|
|
+ if (SN.equals(pickSN)) {
|
|
|
|
|
+ //已被拣货
|
|
|
|
|
+ isPicked = true;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ if (isPicked) break;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!isPicked) {
|
|
|
|
|
+ lotsns.add(SN);
|
|
|
}
|
|
}
|
|
|
- if (isPicked) break;
|
|
|
|
|
- }
|
|
|
|
|
- if (!isPicked) {
|
|
|
|
|
- lotsns.add(SN);
|
|
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- if (lotsns.size() > quantity)//允许挑选
|
|
|
|
|
- {
|
|
|
|
|
- for (String sn : lotsns) {
|
|
|
|
|
- BO bo = new BO();
|
|
|
|
|
- bo.set("SN", sn);
|
|
|
|
|
- bo.setBindId(bindid);
|
|
|
|
|
- SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_PRODUCT_PICKSN", bo, uc);
|
|
|
|
|
|
|
+ if (lotsns.size() > quantity)//允许挑选
|
|
|
|
|
+ {
|
|
|
|
|
+ for (String sn : lotsns) {
|
|
|
|
|
+ BO bo = new BO();
|
|
|
|
|
+ bo.set("SN", sn);
|
|
|
|
|
+ bo.setBindId(bindid);
|
|
|
|
|
+ SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_PRODUCT_PICKSN", bo, uc);
|
|
|
|
|
+ }
|
|
|
|
|
+ quantity = 0;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //全部拣货,不允许挑选
|
|
|
|
|
+ quantity -= lotsns.size();
|
|
|
|
|
+ selectedSns.addAll(lotsns);
|
|
|
}
|
|
}
|
|
|
- quantity = 0;
|
|
|
|
|
|
|
+ if (quantity <= 0) break;
|
|
|
} else {
|
|
} else {
|
|
|
- //全部拣货,不允许挑选
|
|
|
|
|
- quantity -= lotsns.size();
|
|
|
|
|
- selectedSns.addAll(lotsns);
|
|
|
|
|
|
|
+ //没有序列号的
|
|
|
|
|
+ int lotQuantity = lotMap.getInt("QUANTITY");//库存数量
|
|
|
|
|
+ if (quantity > lotQuantity) {
|
|
|
|
|
+ quantity = quantity - lotQuantity;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ quantity = 0;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- if (quantity <= 0) break;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (quantity > 0) {
|
|
if (quantity > 0) {
|