no message
parent
b4d3f96e41
commit
82bebe402e
|
|
@ -40,29 +40,50 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
ShiXiao hj_sx = commonDao.get(ShiXiao.class, NewWaveFlag.LKQ);
|
||||
ShiXiao lk_sx = commonDao.get(ShiXiao.class, NewWaveFlag.LKQ);
|
||||
// 得到工作站剩余任务行数
|
||||
List<String> lx_codes=getGzzCodes(NewWaveFlag.LXQ);
|
||||
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();
|
||||
Map<String, Integer> maps = gzzCount();// 所有工作站没完成的任务
|
||||
int lxCount = 0;// 工作站任务未处理任务数
|
||||
int hjCount = 0;
|
||||
int lkCount = 0;
|
||||
try {
|
||||
for (String code : lx_codes) {
|
||||
lxCount += maps.get(code);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
lxCount = 0;
|
||||
}
|
||||
try {
|
||||
for (String code : hj_codes) {
|
||||
hjCount += maps.get(code);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
hjCount = 0;
|
||||
}
|
||||
try {
|
||||
for (String code : lk_codes) {
|
||||
lkCount += maps.get(code);
|
||||
}
|
||||
allocateGZZ(waveDoc.getCode(),NewWaveFlag.LKQ, lx_codes,(int)lx_sx.getTaskD(),(int)lx_sx.getNumber(),lxCount,maps);
|
||||
allocateGZZ(waveDoc.getCode(),NewWaveFlag.HJQ, hj_codes,(int)hj_sx.getTaskD(),(int)hj_sx.getNumber(),hjCount,maps);
|
||||
allocateGZZ(waveDoc.getCode(),NewWaveFlag.LKQ, lk_codes,(int)lk_sx.getTaskD(),(int)lk_sx.getNumber(),lkCount,maps);
|
||||
} catch (Exception e) {
|
||||
lkCount = 0;
|
||||
}
|
||||
allocateGZZ(waveDoc.getCode(), NewWaveFlag.LKQ, lx_codes,
|
||||
(int) lx_sx.getTaskD(), (int) lx_sx.getNumber(), lxCount,
|
||||
maps);
|
||||
allocateGZZ(waveDoc.getCode(), NewWaveFlag.HJQ, hj_codes,
|
||||
(int) hj_sx.getTaskD(), (int) hj_sx.getNumber(), hjCount,
|
||||
maps);
|
||||
allocateGZZ(waveDoc.getCode(), NewWaveFlag.LKQ, lk_codes,
|
||||
(int) lk_sx.getTaskD(), (int) lk_sx.getNumber(), lkCount,
|
||||
maps);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void allocateGZZ(String waveDocCode, Long zone_id,List<String> gzz_codes,int cfhs,int jhxl,int syhs,Map<String, Integer> gzz_maps) {
|
||||
public void allocateGZZ(String waveDocCode, Long zone_id,
|
||||
List<String> gzz_codes, int cfhs, int jhxl, int syhs,
|
||||
Map<String, Integer> gzz_maps) {
|
||||
Session session = ((HibernateDaoSupport) this.commonDao)
|
||||
.getSessionFactory().openSession();
|
||||
/* try { */
|
||||
|
|
@ -99,8 +120,7 @@ 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 wd.code='"
|
||||
+ waveDocCode
|
||||
+ "' and t.WAVE_DOC_ID is not null ";
|
||||
+ waveDocCode + "' and t.WAVE_DOC_ID is not null ";
|
||||
if (zone_id != null) {
|
||||
sql += " and z.id=" + zone_id;
|
||||
}
|
||||
|
|
@ -197,18 +217,20 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
for (GdPaiXu gdPaiXu : gd_paixuList) {
|
||||
|
||||
// 获取当前头物料
|
||||
String twl = gdPaiXu.twl;
|
||||
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;
|
||||
String gdh_in = touwuliao_map.get(twlKey).get(0).gdh;
|
||||
String twl_in = touwuliao_map.get(twlKey).get(0).twl + "_"
|
||||
+ touwuliao_map.get(twlKey).get(0).list.get(0).wllx;
|
||||
int currCount_in = touwuliao_map.get(twlKey).get(0).hangshu;
|
||||
if (twl_in.equals(twl)
|
||||
if (twl_in.equals(fenzu)
|
||||
&& Math.abs(currCount - currCount_in) <= 4) {
|
||||
// 在分配好的数据中找到了相同的头物料 且 数量差小于4
|
||||
List<GdPaiXu> old = touwuliao_map.get(twlKey);
|
||||
|
|
@ -222,7 +244,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
// 未匹配到数据,自己单独一组
|
||||
List<GdPaiXu> llist = new ArrayList<GdPaiXu>();
|
||||
llist.add(gdPaiXu);
|
||||
touwuliao_map.put(twl + "_" + gdh, llist);
|
||||
touwuliao_map.put(fenzu + "_" + gdh, llist);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -234,7 +256,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
for (String twlKey : touwuliao_map.keySet()) {
|
||||
List<GdPaiXu> list_show = touwuliao_map.get(twlKey);
|
||||
for (GdPaiXu fenPei2 : list_show) {
|
||||
logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh+ " twlKey:" + twlKey + " GDHCount:"+ fenPei2.hangshu);
|
||||
logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh
|
||||
+ " twlKey:" + twlKey + " GDHCount:"
|
||||
+ fenPei2.hangshu);
|
||||
twl_count++;
|
||||
StringBuffer rqm = new StringBuffer();
|
||||
for (FenPei fff : fenPei2.list) {
|
||||
|
|
@ -268,10 +292,12 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
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) + ")" + ",");
|
||||
rqm_str.append(rqh + " __" + stt + "("
|
||||
+ rq_showTime.get(rqh) + ")" + ",");
|
||||
} else {
|
||||
rq_showTime.put(rqh, 1);
|
||||
rqm_str.append(rqh + " __" + 0 + "("+ rq_showTime.get(rqh) + ")" + ",");
|
||||
rqm_str.append(rqh + " __" + 0 + "("
|
||||
+ rq_showTime.get(rqh) + ")" + ",");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -302,8 +328,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
for (String twlKey : touwuliao_map.keySet()) {
|
||||
List<GdPaiXu> list_show = touwuliao_map.get(twlKey);
|
||||
for (GdPaiXu fenPei2 : list_show) {
|
||||
logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh+ " twlKey:" + twlKey + " GDHCount:"+ fenPei2.hangshu);
|
||||
twl_count++;
|
||||
logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh
|
||||
+ " twlKey:" + twlKey + " GDHCount:"
|
||||
+ fenPei2.hangshu);
|
||||
StringBuffer rqm = new StringBuffer();
|
||||
for (FenPei fff : fenPei2.list) {
|
||||
rqm.append(fff.rqh + "(" + fff.show_time + ") ");
|
||||
|
|
@ -315,6 +342,29 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
|
||||
}
|
||||
|
||||
List<TwlFenZu> paixu = new ArrayList<>();
|
||||
for (String twlKey : touwuliao_map.keySet()) {
|
||||
List<GdPaiXu> list_show = touwuliao_map.get(twlKey);
|
||||
TwlFenZu twlFenZu = new TwlFenZu(list_show);
|
||||
paixu.add(twlFenZu);
|
||||
}
|
||||
Collections.sort(paixu);
|
||||
|
||||
for (TwlFenZu twlFenZu : paixu) {
|
||||
List<GdPaiXu> list_show = twlFenZu.gdPaiXus;
|
||||
for (GdPaiXu fenPei2 : list_show) {
|
||||
logger.info("twl" + fenPei2.twl + " GDH:" + fenPei2.gdh
|
||||
+ " GDHCount:" + fenPei2.hangshu);
|
||||
StringBuffer rqm = new StringBuffer();
|
||||
for (FenPei fff : fenPei2.list) {
|
||||
rqm.append(fff.rqh + "(" + fff.show_time + ") ");
|
||||
}
|
||||
logger.info(rqm.toString());
|
||||
}
|
||||
logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------");
|
||||
logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------");
|
||||
|
||||
}
|
||||
|
||||
int count_all = syhs + list_fenpei.size();// 所有未处理的数据
|
||||
int gzz_nx_avg = count_all / gzz_codes.size();// 得到工作站的平均能效,
|
||||
|
|
@ -324,6 +374,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
// 分配工作站,每个工作站剩余可分配订单数
|
||||
for (String code : gzz_codes) {
|
||||
int gzz_nx = gzz_nx_avg - gzz_maps.get(code);
|
||||
|
||||
}
|
||||
|
||||
// 写入数据库
|
||||
|
|
@ -355,6 +406,26 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
}
|
||||
}
|
||||
|
||||
class TwlFenZu implements Comparable<TwlFenZu> {
|
||||
List<GdPaiXu> gdPaiXus;
|
||||
public int wl_count = 0;
|
||||
|
||||
public TwlFenZu(List<GdPaiXu> gdPaiXus) {
|
||||
this.gdPaiXus = gdPaiXus;
|
||||
int count = 0;
|
||||
for (GdPaiXu gdPaiXu : gdPaiXus) {
|
||||
count = count + gdPaiXu.list.size();
|
||||
}
|
||||
this.wl_count = count;
|
||||
}
|
||||
|
||||
public int compareTo(TwlFenZu other) {
|
||||
// TODO Auto-generated method stub
|
||||
return other.wl_count - this.wl_count;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class GdPaiXu implements Comparable<GdPaiXu> {
|
||||
public String gdh; // 工单号
|
||||
public int hangshu;// 工单行数
|
||||
|
|
@ -519,7 +590,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
}
|
||||
|
||||
public Map<String, Integer> gzzCount() {
|
||||
Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession();
|
||||
Session session = ((HibernateDaoSupport) this.commonDao)
|
||||
.getSessionFactory().openSession();
|
||||
String sql = "select v.gzz,count(v.gzz) gzz_count from "
|
||||
+ " (SELECT MAX ( t.END_REGION ) AS gzz FROM task t "
|
||||
+ " LEFT JOIN PICK_TICKET_DETAIL ptd ON ptd.id= t.PICK_TICKET_DETAIL_ID "
|
||||
|
|
@ -537,19 +609,19 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
Query query = session.createSQLQuery(sql);
|
||||
List<Object[]> objs = (List<Object[]>) query.list();
|
||||
Map<String, Integer> gdCount = new HashMap<String, Integer>();
|
||||
if(objs.size()>0){
|
||||
for (int i = 0; i < objs.size(); i++) {
|
||||
Object[] obj = objs.get(i);
|
||||
if(obj[0]==null||obj[0].toString().equals("")){
|
||||
break;
|
||||
}else{
|
||||
gdCount.put(obj[0].toString(), getValueInt(obj,1));
|
||||
|
||||
gdCount.put(obj[0].toString()+"", getValueInt(obj, 1));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
session.close();
|
||||
return gdCount;
|
||||
}
|
||||
|
||||
|
||||
public ShiXiao kqShiXiao(Long zone_id) {
|
||||
String hql = " from ShiXiao sx where sx.warehouseArea.id=" + zone_id;
|
||||
List<ShiXiao> list = commonDao.findByQuery(hql);
|
||||
|
|
@ -559,6 +631,4 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue