300行以下订单自适应开启工作站个数
parent
52ab113fb8
commit
719494249a
|
|
@ -54,39 +54,60 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
List<String> lx_codes = getGzzCodes(NewWaveFlag.LXQ);// 自动创波工作站
|
||||
List<String> hj_codes = getGzzCodes(NewWaveFlag.HJQ);
|
||||
List<String> lk_codes = getGzzCodes(NewWaveFlag.LKQ);
|
||||
Map<String, Integer> maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务
|
||||
Map<String, Integer> gzz_maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务
|
||||
int lxCount = 0;// 工作站任务未处理任务数
|
||||
int hjCount = 0;
|
||||
int lkCount = 0;
|
||||
|
||||
for (String code : lx_codes) {
|
||||
|
||||
lxCount += maps.get(code) == null ? 0 : maps.get(code);
|
||||
lxCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
|
||||
}
|
||||
//定义工作站最小能效数,自适应开启工作站数
|
||||
//自适应合理开启工作站数gzz_codes,每个工作站暂定60
|
||||
int lx_jianHuoXiaoLv=getValueGzzNumber(lx_sx);
|
||||
List<Object[]> lx_wwc_list=getTaskList(waveDoc.getCode(), NewWaveFlag.LXQ);
|
||||
if(lx_wwc_list.size()<=lx_jianHuoXiaoLv*5){//lx_jianHuoXiaoLv*lx_codes.size()/2
|
||||
List<GongZuoZhan> gzlistGongZuoZhans = new ArrayList<DefaultNewWaveManager.GongZuoZhan>();
|
||||
for (String gongzuozhancode : lx_codes) {
|
||||
int notFinished = (gzz_maps.get(gongzuozhancode) == null ? 0
|
||||
: gzz_maps.get(gongzuozhancode));
|
||||
GongZuoZhan gongZuoZhan = new GongZuoZhan(gongzuozhancode,
|
||||
notFinished, 0, true);
|
||||
gzlistGongZuoZhans.add(gongZuoZhan);
|
||||
}
|
||||
Collections.sort(gzlistGongZuoZhans);
|
||||
|
||||
lx_codes=new ArrayList<String>();
|
||||
int wcc_count=0;
|
||||
for(GongZuoZhan gzz:gzlistGongZuoZhans){
|
||||
wcc_count+=lx_jianHuoXiaoLv-gzz.notFinished;
|
||||
lx_codes.add(gzz.code);
|
||||
logger.info("开启工作站========="+gzz.code+"====剩余未完成任务数==========="+gzz.notFinished);
|
||||
if(wcc_count>=lx_wwc_list.size()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String code : hj_codes) {
|
||||
hjCount += maps.get(code) == null ? 0 : maps.get(code);
|
||||
}
|
||||
|
||||
hjCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
|
||||
}
|
||||
for (String code : lk_codes) {
|
||||
lkCount += maps.get(code) == null ? 0 : maps.get(code);
|
||||
lkCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
|
||||
}
|
||||
|
||||
allocateGZZ(waveDoc.getCode(), NewWaveFlag.LXQ, lx_codes,
|
||||
(int) lx_sx.getTaskD(), getValueGzzNumber(lx_sx), lxCount,
|
||||
maps);
|
||||
allocateGZZ(waveDoc.getCode(), NewWaveFlag.HJQ, hj_codes,
|
||||
allocateGZZ(lx_wwc_list, lx_codes,
|
||||
(int) lx_sx.getTaskD(), lx_jianHuoXiaoLv, lxCount,
|
||||
gzz_maps);
|
||||
allocateGZZ(getTaskList(waveDoc.getCode(), NewWaveFlag.HJQ), hj_codes,
|
||||
(int) hj_sx.getTaskD(), getValueGzzNumber(hj_sx), hjCount,
|
||||
maps);
|
||||
allocateGZZ(waveDoc.getCode(), NewWaveFlag.LKQ, lk_codes,
|
||||
gzz_maps);
|
||||
allocateGZZ(getTaskList(waveDoc.getCode(), NewWaveFlag.LKQ), lk_codes,
|
||||
(int) lk_sx.getTaskD(), getValueGzzNumber(lk_sx), lkCount,
|
||||
maps);
|
||||
gzz_maps);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void allocateGZZ(String waveDocCode, Long zone_id,
|
||||
List<String> gzz_codes, int cfhs, int jianHuoXiaoLv, int FenPeiWeiChuLiRenWu,
|
||||
Map<String, Integer> gzz_maps) {
|
||||
public List<Object[]> getTaskList(String waveDocCode, Long zone_id){
|
||||
Session session = ((HibernateDaoSupport) this.commonDao)
|
||||
.getSessionFactory().openSession();
|
||||
/* try { */
|
||||
|
|
@ -123,9 +144,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
+ "left join STOCK s1 on s1.id=loc.stock "
|
||||
+ "left join WAVE_DOC wd on wd.id=t.WAVE_DOC_ID "
|
||||
+ "where 1=1 and pt.BILL_TYPE_ID=1094 "
|
||||
// + "and t.agv_status in (0,-1) "
|
||||
+ "and wd.code='" + waveDocCode
|
||||
+ "' and t.WAVE_DOC_ID is not null";
|
||||
// + "and t.agv_status in (0,-1) "
|
||||
+ "and wd.code='" + waveDocCode+ "' "
|
||||
+ "and t.WAVE_DOC_ID is not null";
|
||||
if (zone_id != null) {
|
||||
sql += " and z.id=" + zone_id;
|
||||
}
|
||||
|
|
@ -136,8 +157,11 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
|
||||
Query query = session.createSQLQuery(sql);
|
||||
List<Object[]> list = (List<Object[]>) query.list();
|
||||
session.close();
|
||||
return list;
|
||||
}
|
||||
public void allocateGZZ(List<Object[]> list,List<String> gzz_codes, int cfhs, int jianHuoXiaoLv, int FenPeiWeiChuLiRenWu,Map<String, Integer> gzz_maps) {
|
||||
int GongDan_wuLiaoMingXiCout = list.size();
|
||||
|
||||
List<FenPei> list_fenpei = new ArrayList<FenPei>();
|
||||
List<FenPei> list_fenpei_wgzz = new ArrayList<FenPei>();// 无需分配工作站数据
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
|
|
@ -351,6 +375,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
gzlistGongZuoZhans.add(gongZuoZhan);
|
||||
}
|
||||
Collections.sort(gzlistGongZuoZhans);
|
||||
|
||||
|
||||
int count_all = FenPeiWeiChuLiRenWu + list_fenpei.size();// 所有未处理的数据
|
||||
int gzz_nx_avg = count_all / gzz_codes.size();// 得到工作站的平均能效,
|
||||
|
|
@ -585,6 +610,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
log_GongZuoZhanFenPeiJieGuo,
|
||||
"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
|
||||
}
|
||||
Session session = ((HibernateDaoSupport) this.commonDao)
|
||||
.getSessionFactory().openSession();
|
||||
for (String gdhkey: gdNextMax_ALL.keySet()) {
|
||||
Sequence s = gdNextMaps.get(gdhkey);
|
||||
int maxB=0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue