diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java index 611fbb4..1487037 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java @@ -36,7 +36,16 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWaveManager { private static Logger logger = Logger .getLogger(DefaultNewWaveManager.class); - + + private static Boolean log_sql=true; + private static Boolean log_TouWuLiaoChaiFen=true; + private static Boolean log_GongZuoZhanMinXi=true; + private static Boolean log_GongZuoZhanFenPeiJieGuo=true; + private static Boolean log_GongZuoZhanPiPeiForRqhAndGzzx=true; + private static Boolean log_PirntGongdanMap=true; + private static Boolean log_PirntGongDanMingXiList=true; + private static Boolean log_PirntFirstTouwuLiaoMap=true; + public void allocateGZZ(List ids) { for (Long id : ids) { WaveDoc waveDoc = commonDao.get(WaveDoc.class, id); @@ -122,11 +131,11 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements // sql += " and t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 "; sql += "group by pt.code,t.BILLCODE,item.id,item.code,item.BE_MARK_WEIGHT,loc.id,loc.code,ik.PROP_C1,ik.PROP_C2,ik.PROP_C3,ik.PROP_D1,ik.PROP_D2,item.ISBOM " + "order by min(t.skips ),max(loc.code) asc, item.id,pt.code,t.BILLCODE "; - logger.info(sql); + LogPrint(log_sql,sql); Query query = session.createSQLQuery(sql); List list = (List) query.list(); int GongDan_wuLiaoMingXiCout = list.size(); - + List list_fenpei = new ArrayList(); List list_fenpei_wgzz = new ArrayList();// 无需分配工作站数据 for (int i = 0; i < list.size(); i++) { @@ -158,30 +167,15 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } else { list_fenpei_wgzz.add(bean); } - - // logger.info(bean.gdh+"---"+bean.twl); - } - // 1个工单对应一个头物料拆分号。 - // 工单号 ; 容器号 ; 料号 物料类型 ; 库区 ; 工作中心 //头物料 拆分号 工单总行数 - // 1100382814B X8001315 A0101 A 3#料箱区 kanban 512-00004567-F04B 1 5 - // 1100382814B X8001315 A0102 A 3#料箱区 kanban 512-00004567-F04B 1 5 - // 1100382814B X8001315 A0101 A 3#料箱区 kanban 512-00004567-F04B 1 5 - // 1100382814B X8001315 A0102 A 3#料箱区 kanban 512-00004567-F04B 1 5 - // 1100382814B X8001315 A0101 A 3#料箱区 kanban 512-00004567-F04B 1 5 - // 1100382814A X8001315 A0102 A 3#料箱区 kanban 512-00004567-F04A - // 1100382814A X8001315 A0101 A 3#料箱区 kanban 512-00004567-F04A - // 1100382814A X8001315 A0102 A 3#料箱区 kanban 512-00004567-F04A - // 1100382814A X8001315 A0101 A 3#料箱区 kanban 512-00004567-F04A - // 1100382814A X8001315 A0102 A 3#料箱区 kanban 512-00004567-F04A + - // 根据(工单号+物料类型)分组 - Map> GongDan_WuLiao_Map = new HashMap<>(); + Listlist_fen=Paixu(list_fenpei,cfhs); - + //初始化 GongDan_WuLiao_Map 根据(工单号+物料类型+拆分组号)分组 + Map> GongDan_WuLiao_Map = new HashMap<>(); for (FenPei fenPei : list_fen) { - String GongDan_WuLiao = fenPei.gdh + fenPei.wllx+fenPei.chf_fz; if (((java.util.Map) GongDan_WuLiao_Map).containsKey(GongDan_WuLiao)) { List list_count = GongDan_WuLiao_Map.get(GongDan_WuLiao); @@ -193,25 +187,16 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements GongDan_WuLiao_Map.put(GongDan_WuLiao, list_count); } } - + //打印分组情况 + PirntGongdanMap(GongDan_WuLiao_Map,"最终工单分组"); - //打印第一次分组,根据大小件拆分工单 - //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - for (String key : GongDan_WuLiao_Map.keySet()) { - //logger.info("GongDan_WuLiao:" +key); - List list_ff =GongDan_WuLiao_Map.get(key); - for (FenPei fenPei : list_ff) { - //logger.info(":" +fenPei.gdh+"--"+fenPei.wllx+"---"+fenPei.twl+"---"+fenPei.rqh+"---"+fenPei.chf_fz+"---"+fenPei.chf); - } - } - //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ - //打印第一次分组,根据大小件拆分工单 + // 记录每个工单 的数目 List GongDan_List = new ArrayList(); for (String key : GongDan_WuLiao_Map.keySet()) { - // logger.info("gdh: "+key+" count:"+gdCount.get(key).size()); + // LogPrint("gdh: "+key+" count:"+gdCount.get(key).size()); List list_ll1 = GongDan_WuLiao_Map.get(key); Collections.sort(list_ll1); @@ -220,19 +205,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } Collections.sort(GongDan_List); + //打印排序结果 + PirntGongDanMingXiList(GongDan_List,"最终工单排序"); - //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - //logger.info("---------------------List GongDan_List = new ArrayList();-------------------------------------------"); - //logger.info("---------------------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓-------------------------------------------"); - for (GongDanMingXi gdPaiXu : GongDan_List) { - //logger.info("GongDan_WuLiao:" +gdPaiXu.gdh); - List list_FenPei =gdPaiXu.list; - for (FenPei fenPei : list_FenPei) { - //logger.info(":" +fenPei.gdh+"--"+fenPei.wllx+"---"+fenPei.twl+"---"+fenPei.rqh); - } - } - //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ - // 先根据头物料分组 如果头物料相同 且工单总行数 差异小于4的工单分到一个组里面 (尽量分配到同一工作站) Map> touwuliao_map = new HashMap<>(); @@ -246,7 +221,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements // 获取当前工单的数量 int currCount = gdPaiXu.hangshu; - // logger.info("---gdh:"+gdh+" currCount:"+currCount); + // LogPrint("---gdh:"+gdh+" currCount:"+currCount); // 在touwuliao_map中进行匹配 boolean isFind = false; for (String twlKey : touwuliao_map.keySet()) { @@ -270,60 +245,40 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } } - //logger.info("-----------------------------------------------------------------------"); - //logger.info("-----------------------------------------------------------------------"); - //logger.info("---------------------------打印计算结果--------------------------------------------"); - int twl_count = 0; - for (String twlKey : touwuliao_map.keySet()) { - List list_show = touwuliao_map.get(twlKey); - for (GongDanMingXi fenPei2 : list_show) { - //logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh+ " twlKey:" + twlKey + " GDHCount:"+ fenPei2.hangshu); - twl_count++; - StringBuffer rqm = new StringBuffer(); - for (FenPei fff : fenPei2.list) { - rqm.append(fff.rqh + ","); - } - - } - //logger.info("-----------------------------------------------------------------------"); - - } + + //打印头物料分组后的情况 + PirntFirstTouwuLiaoMap(touwuliao_map,"最终头物料分组"); - // 计算没个容器号出现得次数(在每个头物料得分组里面) - //logger.info("-------------------------------------------------------------------------------打印工单容器号----------------------------------------------------------------------------------------------------------------------------"); - + for (String twlKey : touwuliao_map.keySet()) { - List list_show = touwuliao_map.get(twlKey); - + List GongDanList = touwuliao_map.get(twlKey); + //初始化rq_showTime 记录容器号次数 Map rq_showTime = new HashMap<>(); - - for (GongDanMingXi fenPei2 : list_show) { + //循环工单中所有任务 + for (GongDanMingXi fenPei2 : GongDanList) { +// 初始化set_rqh 记录本工单容器号出现次数,(set保证同一工单中一个容器号只计算一次) Set set_rqh = new HashSet<>(); - StringBuffer rqm_str = new StringBuffer(); for (FenPei fff : fenPei2.list) { // 通过set记录容器号 set_rqh.add(fff.rqh); } - + //循环 set_rqh 把统计的容器号写入rq_showTime (记录本头物料中 每个容器号出现次数) for (String rqh : set_rqh) { if (rq_showTime.containsKey(rqh)) { int stt = rq_showTime.get(rqh); rq_showTime.put(rqh, stt + 1); - rqm_str.append(rqh + " __" + stt + "(" - + rq_showTime.get(rqh) + ")" + ","); } else { rq_showTime.put(rqh, 1); - rqm_str.append(rqh + " __" + 0 + "(" - + rq_showTime.get(rqh) + ")" + ","); } } } // 给touwuliao_map的 中 按照容器出现次数进行排序 + //循环GongDanList 并给所有工单 中所有任务,写入任务中容器出现次数,并按容器次数进行排序;刷新touwuliao_map(头物料分组合集); List list_show_new = new ArrayList<>(); - for (GongDanMingXi fenPei2 : list_show) { + for (GongDanMingXi fenPei2 : GongDanList) { List list_new = new ArrayList<>(); for (FenPei f1 : fenPei2.list) { f1.show_time = rq_showTime.get(f1.rqh); @@ -334,58 +289,59 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements fenPei2.list = list_new; list_show_new.add(fenPei2); } + //刷新touwuliao_map(头物料分组合集) touwuliao_map.put(twlKey, list_show_new); } - //按照 拆分头物料工单总行数进行排序 - List paixu = new ArrayList<>(); + //初始化 List twlFenZuList 给所有数据写入twlFenZuList + List twlFenZuList = new ArrayList<>(); for (String twlKey : touwuliao_map.keySet()) { List list_show = touwuliao_map.get(twlKey); TwlFenZu twlFenZu = new TwlFenZu(list_show); - paixu.add(twlFenZu); + twlFenZuList.add(twlFenZu); } - Collections.sort(paixu); - logger.info("---------------------------------------------------头物料拆分结果-----------------------------------------------------------------------------------------------"); - logger.info("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); + //根据 头物料 中所有工单总任务数进行 排序 + Collections.sort(twlFenZuList); + LogPrint(log_TouWuLiaoChaiFen,"---------------------------------------------------头物料拆分排序结果-----------------------------------------------------------------------------------------------"); + LogPrint(log_TouWuLiaoChaiFen,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); int wlcountString=0; - for (TwlFenZu twlFenZu : paixu) { + for (TwlFenZu twlFenZu : twlFenZuList) { List list_show = twlFenZu.gdPaiXus; for (GongDanMingXi fenPei2 : list_show) { - logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh + LogPrint(log_TouWuLiaoChaiFen,"twl" + fenPei2.twl + " GDH:" + fenPei2.gdh + " GDHCount:" + fenPei2.hangshu+" FenZu:"+fenPei2.list.get(0).chf_fz); StringBuffer rqm = new StringBuffer(); for (FenPei fff : fenPei2.list) { rqm.append(fff.rqh + "(" + fff.show_time + "/"+fff.chf+") "); wlcountString=wlcountString+1; } - logger.info(rqm.toString()); + LogPrint(log_TouWuLiaoChaiFen,rqm.toString()); } - logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------"); + LogPrint(log_TouWuLiaoChaiFen,"--------------------------------------------------------------------------------------------------------------------------------------------------"); } - logger.info("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); - logger.info("---------------------------------------------------头物料拆分结果-----------------------------------------------------------------------------------------------"); + LogPrint(log_TouWuLiaoChaiFen,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); + LogPrint(log_TouWuLiaoChaiFen,"---------------------------------------------------头物料拆分结果-----------------------------------------------------------------------------------------------"); - logger.info("GongDan_wuLiaoMingXiCout:"+GongDan_wuLiaoMingXiCout+"wlcountString:"+wlcountString); + LogPrint(log_TouWuLiaoChaiFen,"GongDan_wuLiaoMingXiCout:"+GongDan_wuLiaoMingXiCout+"wlcountString:"+wlcountString); Map gzzMap = new HashMap<>(); int count_all = syhs + list_fenpei.size();// 所有未处理的数据 int gzz_nx_avg = count_all / gzz_codes.size();// 得到工作站的平均能效, - if (gzz_nx_avg < jhxl) {// 小于默认值则取默认 + if (gzz_nx_avg < jhxl) { + // 小于默认值则取默认 ,且根据需要关闭多余的工作站 gzz_nx_avg = jhxl; int fenpeiALl=0; for (String code : gzz_codes) { int notFinished=(gzz_maps.get(code)==null?0:gzz_maps.get(code)); int fenpeicount=gzz_nx_avg-notFinished; if(fenpeiALl-count_all<=0){ - fenpeiALl=fenpeiALl+fenpeicount; GongZuoZhan gzz=new GongZuoZhan(code, notFinished, gzz_nx_avg, true); gzzMap.put(code,gzz); }else{ - //fenpeiALl=fenpeiALl+fenpeicount; GongZuoZhan gzz=new GongZuoZhan(code, notFinished, gzz_nx_avg, false); gzzMap.put(code,gzz); } @@ -394,6 +350,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } }else{ + //计算能效大于默认能效,则每个工作站能效 扩大至 计算值。所有工作站都需要使用 // 分配工作站,每个工作站剩余可分配订单数 for (String code : gzz_codes) { int notFinished=(gzz_maps.get(code)==null?0:gzz_maps.get(code)); @@ -402,21 +359,21 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements gzzMap.put(code,gzz); } } - logger.info("---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------"); - logger.info("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); + LogPrint(log_GongZuoZhanMinXi,"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------"); + LogPrint(log_GongZuoZhanMinXi,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); for (String key : gzzMap.keySet()) { GongZuoZhan gongZuoZhan=gzzMap.get(key); - logger.info("Code:"+gongZuoZhan.code+" notFinished:"+gongZuoZhan.notFinished+" maxRenWu:"+gongZuoZhan.maxRenWu+" isEnble:"+gongZuoZhan.isEnble); + LogPrint(log_GongZuoZhanMinXi,"Code:"+gongZuoZhan.code+" notFinished:"+gongZuoZhan.notFinished+" maxRenWu:"+gongZuoZhan.maxRenWu+" isEnble:"+gongZuoZhan.isEnble); } - logger.info("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); - logger.info("---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------"); - for (TwlFenZu twlFenZu : paixu) { - List list_show = twlFenZu.gdPaiXus; //当前头物料所有的工单组合,以及每个工单的物料明细 + LogPrint(log_GongZuoZhanMinXi,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); + LogPrint(log_GongZuoZhanMinXi,"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------"); + for (TwlFenZu twlFenZu : twlFenZuList) { + List gongDanList = twlFenZu.gdPaiXus; //当前头物料所有的工单组合,以及每个工单的物料明细 int this_fenzuCount=twlFenZu.wl_count; //当前分组总物料行数 ListlistGzz= FaiXuGzz(gzzMap); //工作站根据可分配数量进行排序 - if(list_show.size()==1){ - GongDanMingXi gongDanMingXi=list_show.get(0); + if(gongDanList.size()==1){ + GongDanMingXi gongDanMingXi=gongDanList.get(0); GongZuoZhan curr_gzz=PiPeiGongZuoZhanForGzzxAndRqh(listGzz,gongDanMingXi,cfhs); List list_wList=gongDanMingXi.list; for (FenPei fenPei : list_wList) { @@ -428,28 +385,28 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements }else{ //多个工单匹配进行 - int gzz_index=0; //当前分配工作站的排序下标 + int gzz_index=0; //当前分配工作站的排序下标 GongZuoZhan curr_gzz=listGzz.get(0); - for (int index=0;index list_wList=gongDanMingXi.list; + int chao=(list_wList.size()+curr_gzz.notFinished+curr_gzz.renWuList.size())-curr_gzz.maxRenWu; - //logger.info(listGzz.size()); - if(chao<=cfhs||index==list_show.size()-1){ - //logger.info("11=="+listGzz.get(gzz_index)); + //LogPrint(listGzz.size()); + if(chao<=cfhs||index==gongDanList.size()-1){ + //LogPrint("11=="+listGzz.get(gzz_index)); //如果当前待分配+此工作站未完成+已分配任务数 小于最大任务数 //将当前任务分配到此工作站 for (FenPei fenPei : list_wList) { curr_gzz.renWuList.add(fenPei); curr_gzz.RongQIHaoMap.put(fenPei.rqh,""); curr_gzz.GongZuoZhongXinMap.put(fenPei.gzzx,""); } - if(index==list_show.size()-1){ + if(index==gongDanList.size()-1){ //最后一个工单 gzzMap.put(curr_gzz.code, curr_gzz); } }else{ - logger.info("2=="+listGzz.get(gzz_index)); gzzMap.put(curr_gzz.code, curr_gzz); //如果当前待分配+此工作站未完成+已分配任务数 大于最大任务数 //将当前任务分配到下个工作站 gzz_index=gzz_index+1; @@ -459,7 +416,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements curr_gzz.RongQIHaoMap.put(fenPei.rqh,""); curr_gzz.GongZuoZhongXinMap.put(fenPei.gzzx,""); } - if(index==list_show.size()-1){ + if(index==gongDanList.size()-1){ //最后一个工单 gzzMap.put(curr_gzz.code, curr_gzz); } @@ -473,9 +430,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements int fenPeiCount=0; for (String key : gzzMap.keySet()) { GongZuoZhan gongZuoZhan=gzzMap.get(key); - logger.info("----------------------------------------------------开始分配----------------------------------------------------------------------"); - logger.info("Code:"+gongZuoZhan.code+" notFinished:"+gongZuoZhan.notFinished+" maxRenWu:"+gongZuoZhan.maxRenWu+" isEnble:"+gongZuoZhan.isEnble); - logger.info("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); + LogPrint(log_GongZuoZhanFenPeiJieGuo,"----------------------------------------------------开始分配----------------------------------------------------------------------"); + LogPrint(log_GongZuoZhanFenPeiJieGuo,"Code:"+gongZuoZhan.code+" notFinished:"+gongZuoZhan.notFinished+" maxRenWu:"+gongZuoZhan.maxRenWu+" isEnble:"+gongZuoZhan.isEnble); + LogPrint(log_GongZuoZhanFenPeiJieGuo,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); for (FenPei fenPei : gongZuoZhan.renWuList) { fenPeiCount=fenPeiCount+1; String[] ids=fenPei.tsakId.split(","); @@ -489,34 +446,40 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements task.setEndRegion(gongZuoZhan.code); //task.setAgvStatus(1);//下发 this.commonDao.store(task); - //logger.info("one:"+task.getBillCode()+"---"+task.getEndRegion()+"--two:-"+task.getOldGzz()+"---"+task.getOldZrw()+"--three:-"+fenPei.gdh+"-"+fenPei.chf_fz+"-----"+gongZuoZhan.code); + //LogPrint("one:"+task.getBillCode()+"---"+task.getEndRegion()+"--two:-"+task.getOldGzz()+"---"+task.getOldZrw()+"--three:-"+fenPei.gdh+"-"+fenPei.chf_fz+"-----"+gongZuoZhan.code); } - logger.info("工作站:"+gongZuoZhan.code+" 工单号:"+fenPei.gdh+" 容器号:"+fenPei.rqh+" 拆分号:"+fenPei.chf+" 拆分组:"+fenPei.chf_fz+" 头物料:"+fenPei.twl_fz); - //logger.info(""+fenPei.twl_fz+"---"+fenPei.chf_fz+"---"+fenPei.chf+"---"+fenPei.gdh+"---"+fenPei.rqh); + LogPrint(log_GongZuoZhanFenPeiJieGuo,"工作站:"+gongZuoZhan.code+" 工单号:"+fenPei.gdh+" 容器号:"+fenPei.rqh+" 拆分号:"+fenPei.chf+" 拆分组:"+fenPei.chf_fz+" 头物料:"+fenPei.twl_fz); + //LogPrint(""+fenPei.twl_fz+"---"+fenPei.chf_fz+"---"+fenPei.chf+"---"+fenPei.gdh+"---"+fenPei.rqh); } - logger.info("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); + LogPrint(log_GongZuoZhanFenPeiJieGuo,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); } - logger.info("GongDan_wuLiaoMingXiCout:"+GongDan_wuLiaoMingXiCout+"wlcountString:"+wlcountString+" fenPeiCount:"+fenPeiCount); + LogPrint(log_GongZuoZhanFenPeiJieGuo,"GongDan_wuLiaoMingXiCout:"+GongDan_wuLiaoMingXiCout+"wlcountString:"+wlcountString+" fenPeiCount:"+fenPeiCount); // 写入数据库 /* - * }catch (Exception e) { logger.info(e.toString()); session.close(); + * }catch (Exception e) { LogPrint(e.toString()); session.close(); * }finally { session.close(); } */ session.close(); } + public void LogPrint(boolean isshow,String msg){ + if(isshow){ + logger.info(msg); + } + } + public GongZuoZhan PiPeiGongZuoZhanForGzzxAndRqh(ListlistGzz,GongDanMingXi gongDanMingXi,int cfhs){ List list_wList=gongDanMingXi.list; GongZuoZhan check=listGzz.get(0); int max_rqh_count=0; int max_gzzx=0; - logger.info("------------------------匹配容器号和工作中心-----------------------------------------------"); - logger.info("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); - logger.info("当前工单号:"+gongDanMingXi.gdh); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"------------------------匹配容器号和工作中心-----------------------------------------------"); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"当前工单号:"+gongDanMingXi.gdh); for (GongZuoZhan gzz : listGzz) { - logger.info("当前工作站:"+gzz.code); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"当前工作站:"+gzz.code); Listlist=gzz.renWuList; StringBuffer sb_gzzx=new StringBuffer(); StringBuffer sb_rqh=new StringBuffer(); @@ -525,9 +488,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements sb_rqh.append(fenPei.rqh+" , "); } int chao=(list_wList.size()+gzz.notFinished+gzz.renWuList.size())-gzz.maxRenWu; - //logger.info(listGzz.size()); + //LogPrint(listGzz.size()); if(chao>cfhs){ - logger.info("工作站:"+gzz.code+"超出:"+chao+"无法分配,跳过此工作站"); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"工作站:"+gzz.code+"超出:"+chao+"无法分配,跳过此工作站"); continue; } StringBuffer sb_pipei=new StringBuffer(); @@ -542,10 +505,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements sb_pipei.append(fenPei.rqh); } } - logger.info("工作站:"+gzz.code+" gzzx:"+gzzx+" rqh_count:"+rqh_count); - logger.info(sb_gzzx.toString()); - logger.info(sb_rqh.toString()); - logger.info("匹配上的容器号: "+sb_pipei.toString()); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"工作站:"+gzz.code+" gzzx:"+gzzx+" rqh_count:"+rqh_count); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,sb_gzzx.toString()); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,sb_rqh.toString()); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"匹配上的容器号: "+sb_pipei.toString()); Boolean isPiPeiGzzx=false;//true 优先按照工作中心匹配,再按照容器号。false直接按照容器号匹配散单 if(isPiPeiGzzx){ if(max_gzzx==0 && gzzx==0 && rqh_count>max_rqh_count){ @@ -582,9 +545,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } } - logger.info("容器号匹配次数:"+max_rqh_count+" 工作中心匹配次数:"+max_gzzx+" 工单号:"+gongDanMingXi.gdh+" 工作站:"+check.code); - logger.info("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); - logger.info("------------------------匹配容器号和工作中心-----------------------------------------------"); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"容器号匹配次数:"+max_rqh_count+" 工作中心匹配次数:"+max_gzzx+" 工单号:"+gongDanMingXi.gdh+" 工作站:"+check.code); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"------------------------匹配容器号和工作中心-----------------------------------------------"); return check; } @@ -627,11 +590,11 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements public List Paixu(Listlist_fenpei ,int cfhs){ Map> GongDan_WuLiao_Map = new HashMap<>(); - + //第一步:给所有任务进行分组(根据工单号,和物料类型) for (FenPei fenPei : list_fenpei) { - String GongDan_WuLiao = fenPei.gdh + fenPei.wllx; if (((java.util.Map) GongDan_WuLiao_Map).containsKey(GongDan_WuLiao)) { + List list_count = GongDan_WuLiao_Map.get(GongDan_WuLiao); list_count.add(fenPei); GongDan_WuLiao_Map.put(GongDan_WuLiao, list_count); @@ -641,61 +604,36 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements GongDan_WuLiao_Map.put(GongDan_WuLiao, list_count); } } - int sumCout = 0; - - //打印第一次分组,根据大小件拆分工单 - //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - - for (String key : GongDan_WuLiao_Map.keySet()) { - //logger.info("GongDan_WuLiao:" +key); - List list_FenPei =GongDan_WuLiao_Map.get(key); - for (FenPei fenPei : list_FenPei) { - //logger.info(":" +fenPei.gdh+"--"+fenPei.wllx+"---"+fenPei.twl+"---"+fenPei.rqh); - } - } - //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ - //打印第一次分组,根据大小件拆分工单 - - // 记录每个工单 的数目 + //打印分组情况 + PirntGongdanMap(GongDan_WuLiao_Map,"首次工单分组"); + int sumCout = 0; //所有工单总任务数 + //给分组后的结果写入 GongDanMingXi 类中,记录工单(头物料,行数,工单号),并按工单的任务行数进行排序 List GongDan_List = new ArrayList(); for (String key : GongDan_WuLiao_Map.keySet()) { - // logger.info("gdh: "+key+" count:"+gdCount.get(key).size()); sumCout = sumCout + GongDan_WuLiao_Map.get(key).size(); + //对工单中的任务明细,根据任务的容器号名称进行排序 List list_ll1 = GongDan_WuLiao_Map.get(key); Collections.sort(list_ll1); GongDanMingXi gdPaiXu = new GongDanMingXi(key, list_ll1); GongDan_List.add(gdPaiXu); } + //对所有工单进行排序 (按工单的任务行数进行排序) Collections.sort(GongDan_List); - - - //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ + //打印排序结果 + PirntGongDanMingXiList(GongDan_List,"首次工单排序"); - for (GongDanMingXi gdPaiXu : GongDan_List) { - //logger.info("GongDan_WuLiao:" +gdPaiXu.gdh); - List list_FenPei =gdPaiXu.list; - for (FenPei fenPei : list_FenPei) { - //logger.info(":" +fenPei.gdh+"--"+fenPei.wllx+"---"+fenPei.twl+"---"+fenPei.rqh); - } - } // 先根据头物料分组 如果头物料相同 且工单总行数 差异小于4的工单分到一个组里面 (尽量分配到同一工作站) - Map> touwuliao_map = new HashMap<>(); - for (GongDanMingXi gdPaiXu : GongDan_List) { // 获取当前头物料 String fenzu = gdPaiXu.twl +"_"+ gdPaiXu.list.get(0).wllx; - String gdh = gdPaiXu.gdh; - // 获取当前工单的数量 int currCount = gdPaiXu.hangshu; - // logger.info("---gdh:"+gdh+" currCount:"+currCount); - // 在touwuliao_map中进行匹配 boolean isFind = false; for (String twlKey : touwuliao_map.keySet()) { String twl_in = touwuliao_map.get(twlKey).get(0).twl + "_"+ touwuliao_map.get(twlKey).get(0).list.get(0).wllx; @@ -718,60 +656,40 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } } - //logger.info("-----------------------------------------------------------------------"); - //logger.info("-----------------------------------------------------------------------"); - //logger.info("---------------------------打印计算结果--------------------------------------------"); - int twl_count = 0; - for (String twlKey : touwuliao_map.keySet()) { - List list_show = touwuliao_map.get(twlKey); - for (GongDanMingXi fenPei2 : list_show) { - //logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh+ " twlKey:" + twlKey + " GDHCount:"+ fenPei2.hangshu); - twl_count++; - StringBuffer rqm = new StringBuffer(); - for (FenPei fff : fenPei2.list) { - rqm.append(fff.rqh + ","); - } - - } - //logger.info("-----------------------------------------------------------------------"); - - } + //打印头物料分组后的情况 + PirntFirstTouwuLiaoMap(touwuliao_map,"首次头物料分组"); // 计算没个容器号出现得次数(在每个头物料得分组里面) - //logger.info("-------------------------------------------------------------------------------打印工单容器号----------------------------------------------------------------------------------------------------------------------------"); - for (String twlKey : touwuliao_map.keySet()) { - List list_show = touwuliao_map.get(twlKey); - + List GongDanList = touwuliao_map.get(twlKey); + //初始化rq_showTime 记录容器号次数 Map rq_showTime = new HashMap<>(); - - for (GongDanMingXi fenPei2 : list_show) { + //循环工单中所有任务 + for (GongDanMingXi fenPei2 : GongDanList) { + // 初始化set_rqh 记录本工单容器号出现次数,(set保证同一工单中一个容器号只计算一次) Set set_rqh = new HashSet<>(); - StringBuffer rqm_str = new StringBuffer(); for (FenPei fff : fenPei2.list) { // 通过set记录容器号 set_rqh.add(fff.rqh); } - + //循环 set_rqh 把统计的容器号写入rq_showTime (记录本头物料中 每个容器号出现次数) for (String rqh : set_rqh) { if (rq_showTime.containsKey(rqh)) { int stt = rq_showTime.get(rqh); rq_showTime.put(rqh, stt + 1); - rqm_str.append(rqh + " __" + stt + "(" - + rq_showTime.get(rqh) + ")" + ","); } else { rq_showTime.put(rqh, 1); - rqm_str.append(rqh + " __" + 0 + "(" - + rq_showTime.get(rqh) + ")" + ","); + } } } // 给touwuliao_map的 中 按照容器出现次数进行排序 + //循环GongDanList 并给所有工单 中所有任务,写入任务中容器出现次数,并按容器次数进行排序;刷新touwuliao_map(头物料分组合集); List list_show_new = new ArrayList<>(); - for (GongDanMingXi fenPei2 : list_show) { + for (GongDanMingXi fenPei2 : GongDanList) { List list_new = new ArrayList<>(); for (FenPei f1 : fenPei2.list) { f1.show_time = rq_showTime.get(f1.rqh); @@ -782,17 +700,18 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements fenPei2.list = list_new; list_show_new.add(fenPei2); } + //刷新touwuliao_map(头物料分组合集) touwuliao_map.put(twlKey, list_show_new); } - // 对touwuliao_map 的单个工单大于拆分书数的进行拆分 - Map> touwuliao_new_Map = new HashMap<>(); + // 对touwuliao_map(头物料分组合集) 的单个工单大于拆分行数数的进行拆分 + //初始化 list_new (记录拆分后的标识,提供给后无进行分组) List list_new =new ArrayList<>(); for (String twlKey : touwuliao_map.keySet()) { List list_show = touwuliao_map.get(twlKey); int max_len=0; - //得出最大列数 + //计算本头物料中的 工单的最大任务数(多个工单最多的任务的工单) if(list_show.size()>0){ for (GongDanMingXi gdPaiXu : list_show) { if(max_len list_fen=gdPaiXu.list; + //防止本工单没有这么多任务数 if(fz_col(); } @@ -852,6 +772,63 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements return list_new; } + + public void PirntFirstTouwuLiaoMap(Map> touwuliao_map ,String title){ + LogPrint(log_PirntFirstTouwuLiaoMap,""); + LogPrint(log_PirntFirstTouwuLiaoMap,""); + LogPrint(log_PirntFirstTouwuLiaoMap,"-------------------------------------------------------------------------------------------------------"); + LogPrint(log_PirntFirstTouwuLiaoMap,"------------------------------------"+title+"------------------------------------------"); + for (String twlKey : touwuliao_map.keySet()) { + List list_show = touwuliao_map.get(twlKey); + for (GongDanMingXi gongDan : list_show) { + LogPrint(log_PirntFirstTouwuLiaoMap,"头物料 " + gongDan.twl + " 工单号:" + gongDan.gdh+ " 头物料分组KEY:" + twlKey + " 任务行数:"+ gongDan.hangshu); + + StringBuffer rqm = new StringBuffer(); + for (FenPei fff : gongDan.list) { + rqm.append(fff.rqh + ","); + } + LogPrint(log_PirntFirstTouwuLiaoMap,"容器号: "+rqm.toString()); + + } + LogPrint(log_PirntFirstTouwuLiaoMap,"-----------------------------------------------------------------------"); + LogPrint(log_PirntFirstTouwuLiaoMap,""); + LogPrint(log_PirntFirstTouwuLiaoMap,""); + + } + } + + public void PirntGongDanMingXiList(List GongDan_List ,String title){ + LogPrint(log_PirntGongDanMingXiList,""); + LogPrint(log_PirntGongDanMingXiList,""); + LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------"); + LogPrint(log_PirntFirstTouwuLiaoMap,"------------------------------------"+title+"------------------------------------------"); + for (GongDanMingXi gdPaiXu : GongDan_List) { + LogPrint(log_PirntGongDanMingXiList,"工单号:" +gdPaiXu.gdh); + List list_FenPei =gdPaiXu.list; + for (FenPei fenPei : list_FenPei) { + LogPrint(log_PirntGongDanMingXiList,"工单号:" +fenPei.gdh+" 物料类型:"+fenPei.wllx+" 头物料:"+fenPei.twl+" 容器号: "+fenPei.rqh); + } + LogPrint(log_PirntGongdanMap,""); + LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------"); + } + } + + public void PirntGongdanMap(Map> GongDan_WuLiao_Map,String title){ + LogPrint(log_PirntGongDanMingXiList,""); + LogPrint(log_PirntGongDanMingXiList,""); + LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------"); + LogPrint(log_PirntFirstTouwuLiaoMap,"------------------------------------"+title+"------------------------------------------"); + for (String key : GongDan_WuLiao_Map.keySet()) { + LogPrint(log_PirntGongdanMap,"工单号:" +key); + LogPrint(log_PirntGongdanMap,""); + List list_FenPei =GongDan_WuLiao_Map.get(key); + for (FenPei fenPei : list_FenPei) { + LogPrint(log_PirntGongdanMap,"工单号:" +fenPei.gdh+" 物料类型:"+fenPei.wllx+" 头物料:"+fenPei.twl+" 容器号: "+fenPei.rqh); + } + LogPrint(log_PirntGongdanMap,""); + LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------"); + } + } class TwlFenZu implements Comparable { @@ -993,7 +970,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements try { str = Integer.parseInt(obj[i].toString()); } catch (Exception e) { - logger.info(i + "" + e.toString()); + //LogPrint(i + "" + e.toString()); str = -1; } return str; @@ -1004,7 +981,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements try { str = (String) obj[i]; } catch (Exception e) { - logger.info(i + "" + e.toString()); + //LogPrint(i + "" + e.toString()); str = ""; } return str; @@ -1015,7 +992,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements try { str = Long.parseLong(obj[i].toString()); } catch (Exception e) { - logger.info(i + "" + e.toString()); + //LogPrint(i + "" + e.toString()); str = 0l; } return str; @@ -1027,7 +1004,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements v = Float.parseFloat(obj[i].toString()); } catch (Exception e) { v = 0; - logger.info(i + "" + e.toString()); + //LogPrint(i + "" + e.toString()); } return v; } @@ -1062,7 +1039,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements + " AND t.WAVE_DOC_ID IS NOT NULL " + " GROUP BY pt.code,t.BILLCODE,loc.id,loc.code,ik.PROP_C1,ik.PROP_C2,ik.PROP_C3,ik.PROP_D1,ik.PROP_D2,item.ISBOM ) v " + " GROUP BY v.gzz"; - logger.info(sql); + LogPrint(log_sql,sql); Query query = session.createSQLQuery(sql); List objs = (List) query.list(); Map gdCount = new HashMap();