diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java index 9a53b198..61e2f5bc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java @@ -20,6 +20,7 @@ import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.atomic.AtomicReference; @@ -81,6 +82,9 @@ public class AutoformulaServiceImpl implements AutoformulaService { double new_qty = workorder_qty; //纯粉重量 double net_qty = workorder_qty; + //rf最高开单重量 + HashMap rf_plan_map = new HashMap(); + if(waste_limit_down==0 && waste_limit_up==0){//不添加软废 //新料配粉环节 JSONObject ret = this.autoCalculationBy01_xinliao(json); @@ -129,6 +133,7 @@ public class AutoformulaServiceImpl implements AutoformulaService { for(int i=0;i= sum_ivt_qty){ + jo.put("can_qty",sum_ivt_qty); + }else{ + jo.put("can_qty",can_qty); + } + ivts.add(jo); + } } if(ivts.size()!=0){ //软废纯粉库存总量 @@ -145,7 +164,13 @@ public class AutoformulaServiceImpl implements AutoformulaService { for(int i=0;i rf_plan_map = new HashMap(); //1.需添加软废 if(waste_limit_down==100 || waste_limit_up== 100){ throw new BadRequestException("软废含量上限或下限不能等于100%!"); @@ -1620,7 +1655,22 @@ public class AutoformulaServiceImpl implements AutoformulaService { .addParam("quality_scode","02") .addParam("flag","22") .process().getResultJSONArray(0); - ivts.addAll(now_ivts); + double add_rate = MaterialSet.getDouble("add_rate"); + for(int j=0;j= sum_ivt_qty){ + jo.put("can_qty",sum_ivt_qty); + }else{ + jo.put("can_qty",can_qty); + } + ivts.add(jo); + } } if(ivts.size()!=0){ //软废纯粉库存总量 @@ -1628,7 +1678,7 @@ public class AutoformulaServiceImpl implements AutoformulaService { JSONArray ivts_new = new JSONArray(); for(int i=0;i=waste_limit_down_weight){ - Number rf_left_weight = waste_limit_up_weight;; + Number rf_left_weight = waste_limit_up_weight; //需配软废总重 double rf_total_weight = 0; //需配软废纯粉总重 @@ -1659,7 +1709,8 @@ public class AutoformulaServiceImpl implements AutoformulaService { for(int i=0;i rf_plan_map = new HashMap(); + if(waste_limit_up!=0){//添加软废 //R下 double waste_limit_down_weight = workorder_qty * waste_limit_down/100.0; @@ -2869,7 +2939,23 @@ public class AutoformulaServiceImpl implements AutoformulaService { .addParam("workorder_id",workorder_id) .addParam("flag","22") .process().getResultJSONArray(0); - ivts.addAll(now_ivts); + double add_rate = MaterialSet.getDouble("add_rate"); + for(int j=0;j= sum_ivt_qty){ + jo.put("can_qty",sum_ivt_qty); + }else{ + jo.put("can_qty",can_qty); + } + + ivts.add(jo); + } } if(ivts.size()!=0){ //软废纯粉库存总量 @@ -2877,10 +2963,17 @@ public class AutoformulaServiceImpl implements AutoformulaService { JSONArray ivts_new = new JSONArray(); for(int i=0;i rf_plan_map = new HashMap(); //获取可分配的软废集合 JSONArray MaterialSets = WQL.getWO("QPF_AUTOFORMULA01") .addParam("material_id",material_id) @@ -3171,7 +3275,23 @@ public class AutoformulaServiceImpl implements AutoformulaService { .addParam("workorder_id",workorder_id) .addParam("flag","22") .process().getResultJSONArray(0); - ivts.addAll(now_ivts); + double add_rate = MaterialSet.getDouble("add_rate"); + for(int j=0;j= sum_ivt_qty){ + jo.put("can_qty",sum_ivt_qty); + }else{ + jo.put("can_qty",can_qty); + } + ivts.add(jo); + } } if(ivts.size()!=0){ //1.计算配粉所需重量环节 @@ -3211,10 +3331,11 @@ public class AutoformulaServiceImpl implements AutoformulaService { JSONArray ivts_new = new JSONArray(); for(int i=0;i doubles = new ArrayList(); doubles.add(ivt_qty); + doubles.add(can_left_qty); //doubles集合 HashMap doubles_map = new HashMap(); //获取软废Bom @@ -3294,6 +3424,10 @@ public class AutoformulaServiceImpl implements AutoformulaService { //进行集合排序 Collections.sort(doubles); double rf_up_formula_qty = doubles.get(0); + + can_jo.put("can_left_qty",can_left_qty-rf_up_formula_qty); + rf_plan_map.put(rf_material_id,can_jo); + //计算不需要移库的添加剂 doubles_map.forEach((key,fi_bomdtl)->{ String fi_bomdtl_material_id = fi_bomdtl.getString("material_id"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql index dfab8008..78f7cf28 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql @@ -339,6 +339,7 @@ WHERE 1 = 1 and producmaterialext.net_rate>0 + and ProductMaterialSet.add_rate>0 OPTION 输入.material_id <> "" ProductMaterialSet.material_id = 输入.material_id ENDOPTION