diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskprocServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskprocServiceImpl.java index 8ce6abbe..a128d9d4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskprocServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskprocServiceImpl.java @@ -337,6 +337,8 @@ public class ProducetaskprocServiceImpl implements ProducetaskprocService { device_map.put(device_id,rows); } } + //已预排月计划 + HashMap have_map = new HashMap(); //排序 HashMap device_map2 = new HashMap(); device_map.forEach((key,rows)->{ @@ -375,7 +377,34 @@ public class ProducetaskprocServiceImpl implements ProducetaskprocService { } }); rows = JSONArray.parseArray(JSON.toJSONString(list)); - device_map2.put(key,rows); + JSONArray new_rows = new JSONArray(); + for(int i=0;i 0){ JSONObject ProcessRoute = WQL.getWO("QPDM_PRODUCTPLANPROC").addParam("flag","5") .addParam("material_code",jo.getString("material_id")).process().uniqueResult(0); @@ -485,6 +537,7 @@ public class ProducetaskprocServiceImpl implements ProducetaskprocService { fact_weight = 0; } } + jo_before = jo; }else{//若初始日期为空,获取日计划表设备标识=此分组设备的最后一个计划 //第一条查数据库 @@ -599,6 +652,33 @@ public class ProducetaskprocServiceImpl implements ProducetaskprocService { } } }else{ + JSONObject last = MPS_BD_ProductDailyPlan.query("device_id='"+jo.getString("device_id")+"'","planstart_date desc,create_time desc").uniqueResult(0); + if(last ==null ){ + throw new BadRequestException("日计划表此分组设备的最后一个计划为空!"); + } + JSONObject mater = MD_ME_ProducMaterialExt.query("material_id='"+last.getString("material_id")+"'").uniqueResult(0); + String old_mark = mater.getString("old_mark"); + + if(jo.getString("old_mark").equals(old_mark)) { + JSONObject total_last = WQL.getWO("QPDM_PRODUCTPLANPROC") + .addParam("flag", "6") + .addParam("device_id", jo.getString("device_id")) + .addParam("planstart_date", last.getString("planstart_date")) + .process() + .uniqueResult(0); + pcsn_num_day = totalproducecapacity_qty - total_last.getInteger("total_product_num"); + + nowstart_date = last.getString("planstart_date"); + date = DateUtil.parse(nowstart_date); + if (pcsn_num_day <= 0) { + date = DateUtil.offsetDay(date, 1); + } + }else{ + nowstart_date = last.getString("planstart_date"); + date = DateUtil.parse(nowstart_date); + date = DateUtil.offsetDay(date,1); + pcsn_num_day = 0; + } while(pcsn_num > 0){ JSONObject ProcessRoute = WQL.getWO("QPDM_PRODUCTPLANPROC").addParam("flag","5") .addParam("material_code",jo.getString("material_id")).process().uniqueResult(0);