no message
parent
6d9461548b
commit
52603ba6e8
|
|
@ -27,17 +27,23 @@ import com.dev.swms.server.utils.interfaceUtil;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
public class DefaultNewWaveManager extends DefaultBaseManager implements NewWaveManager{
|
public class DefaultNewWaveManager extends DefaultBaseManager implements
|
||||||
private static Logger logger = Logger.getLogger(DefaultNewWaveManager.class);
|
NewWaveManager {
|
||||||
|
private static Logger logger = Logger
|
||||||
|
.getLogger(DefaultNewWaveManager.class);
|
||||||
|
|
||||||
public void allocateGZZ(List<Long> ids) {
|
public void allocateGZZ(List<Long> ids) {
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
WaveDoc waveDoc = commonDao.get(WaveDoc.class, id);
|
WaveDoc waveDoc = commonDao.get(WaveDoc.class, id);
|
||||||
allocateGZZ(waveDoc.getCode(),getGZZ(NewWaveFlag.LXQ),getGZZ(NewWaveFlag.HJQ),getGZZ(NewWaveFlag.LKQ));
|
allocateGZZ(waveDoc.getCode(), getGZZ(NewWaveFlag.LXQ),
|
||||||
|
getGZZ(NewWaveFlag.HJQ), getGZZ(NewWaveFlag.LKQ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void allocateGZZ(String waveDocCode,List<Long> lx_gzz_ids,List<Long> hj_gzz_ids,List<Long> lk_gzz_ids){
|
|
||||||
Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession();
|
public void allocateGZZ(String waveDocCode, List<Long> lx_gzz_ids,
|
||||||
|
List<Long> hj_gzz_ids, List<Long> lk_gzz_ids) {
|
||||||
|
Session session = ((HibernateDaoSupport) this.commonDao)
|
||||||
|
.getSessionFactory().openSession();
|
||||||
/* try { */
|
/* try { */
|
||||||
String sql = "select STUFF((select ','+CONVERT(nvarchar(10),b.id) "
|
String sql = "select STUFF((select ','+CONVERT(nvarchar(10),b.id) "
|
||||||
+ "from task b "
|
+ "from task b "
|
||||||
|
|
@ -71,8 +77,11 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
+ "left join STOCK s2 on s2.id=t.SRC_LP "
|
+ "left join STOCK s2 on s2.id=t.SRC_LP "
|
||||||
+ "left join STOCK s1 on s1.id=loc.stock "
|
+ "left join STOCK s1 on s1.id=loc.stock "
|
||||||
+ "left join WAVE_DOC wd on wd.id=t.WAVE_DOC_ID "
|
+ "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 "
|
+ "where 1=1 and pt.BILL_TYPE_ID=1094 and wd.code='"
|
||||||
//+ " t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 and t.agv_status=0 "
|
+ waveDocCode
|
||||||
|
+ "' and t.WAVE_DOC_ID is not null "
|
||||||
|
// +
|
||||||
|
// " t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 and t.agv_status=0 "
|
||||||
+ "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 "
|
+ "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 ";
|
+ "order by min(t.skips ),max(loc.code) asc, item.id,pt.code,t.BILLCODE ";
|
||||||
logger.info(sql);
|
logger.info(sql);
|
||||||
|
|
@ -95,15 +104,24 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
bean.gzzx = getValueString(list.get(i), 8);
|
bean.gzzx = getValueString(list.get(i), 8);
|
||||||
bean.kwh = getValueString(list.get(i), 9);
|
bean.kwh = getValueString(list.get(i), 9);
|
||||||
bean.rwzt = getValueInt(list.get(i), 10);
|
bean.rwzt = getValueInt(list.get(i), 10);
|
||||||
bean.wllx=getValueString(list.get(i),11);
|
String wllx_str = getValueString(list.get(i), 11);
|
||||||
|
if ("大件".equals(wllx_str)) {
|
||||||
|
wllx_str = "big";
|
||||||
|
} else {
|
||||||
|
wllx_str = "small";
|
||||||
|
}
|
||||||
|
bean.wllx = wllx_str;
|
||||||
|
|
||||||
bean.twl = getValueString(list.get(i), 12);
|
bean.twl = getValueString(list.get(i), 12);
|
||||||
if(bean.kuqu.equals(NewWaveFlag.LXQ)||bean.kuqu.equals(NewWaveFlag.HJQ)||bean.kuqu.equals(NewWaveFlag.LKQ)){
|
if (bean.kuqu.equals(NewWaveFlag.LXQ)
|
||||||
|
|| bean.kuqu.equals(NewWaveFlag.HJQ)
|
||||||
|
|| bean.kuqu.equals(NewWaveFlag.LKQ)) {
|
||||||
list_fenpei.add(bean);
|
list_fenpei.add(bean);
|
||||||
} else {
|
} else {
|
||||||
list_fenpei_wgzz.add(bean);
|
list_fenpei_wgzz.add(bean);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(bean.gdh+"---"+bean.twl);
|
// logger.info(bean.gdh+"---"+bean.twl);
|
||||||
|
|
||||||
}
|
}
|
||||||
// 1个工单对应一个头物料拆分号。
|
// 1个工单对应一个头物料拆分号。
|
||||||
|
|
@ -123,14 +141,15 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
Map<String, List<FenPei>> gdCount = new HashMap<>();
|
Map<String, List<FenPei>> gdCount = new HashMap<>();
|
||||||
|
|
||||||
for (FenPei fenPei : list_fenpei) {
|
for (FenPei fenPei : list_fenpei) {
|
||||||
if(((java.util.Map) gdCount).containsKey(fenPei.gdh)){
|
String key_gd_wl = fenPei.gdh + fenPei.wllx;
|
||||||
List<FenPei> list_count=gdCount.get(fenPei.gdh);
|
if (((java.util.Map) gdCount).containsKey(key_gd_wl)) {
|
||||||
|
List<FenPei> list_count = gdCount.get(key_gd_wl);
|
||||||
list_count.add(fenPei);
|
list_count.add(fenPei);
|
||||||
gdCount.put(fenPei.gdh, list_count);
|
gdCount.put(key_gd_wl, list_count);
|
||||||
} else {
|
} else {
|
||||||
List<FenPei> list_count = new ArrayList<FenPei>();
|
List<FenPei> list_count = new ArrayList<FenPei>();
|
||||||
list_count.add(fenPei);
|
list_count.add(fenPei);
|
||||||
gdCount.put(fenPei.gdh, list_count);
|
gdCount.put(key_gd_wl, list_count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int sumCout = 0;
|
int sumCout = 0;
|
||||||
|
|
@ -138,7 +157,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
|
|
||||||
List<GdPaiXu> gd_paixuList = new ArrayList<GdPaiXu>();
|
List<GdPaiXu> gd_paixuList = new ArrayList<GdPaiXu>();
|
||||||
for (String key : gdCount.keySet()) {
|
for (String key : gdCount.keySet()) {
|
||||||
logger.info("gdh: "+key+" count:"+gdCount.get(key).size());
|
// logger.info("gdh: "+key+" count:"+gdCount.get(key).size());
|
||||||
sumCout = sumCout + gdCount.get(key).size();
|
sumCout = sumCout + gdCount.get(key).size();
|
||||||
List<FenPei> list_ll1 = gdCount.get(key);
|
List<FenPei> list_ll1 = gdCount.get(key);
|
||||||
Collections.sort(list_ll1);
|
Collections.sort(list_ll1);
|
||||||
|
|
@ -159,14 +178,15 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
String gdh = gdPaiXu.gdh;
|
String gdh = gdPaiXu.gdh;
|
||||||
// 获取当前工单的数量
|
// 获取当前工单的数量
|
||||||
int currCount = gdPaiXu.hangshu;
|
int currCount = gdPaiXu.hangshu;
|
||||||
logger.info("---gdh:"+gdh+" currCount:"+currCount);
|
// logger.info("---gdh:"+gdh+" currCount:"+currCount);
|
||||||
// 在touwuliao_map中进行匹配
|
// 在touwuliao_map中进行匹配
|
||||||
boolean isFind = false;
|
boolean isFind = false;
|
||||||
for (String twlKey : touwuliao_map.keySet()) {
|
for (String twlKey : touwuliao_map.keySet()) {
|
||||||
String twl_in = touwuliao_map.get(twlKey).get(0).twl;
|
String twl_in = touwuliao_map.get(twlKey).get(0).twl;
|
||||||
String gdh_in = touwuliao_map.get(twlKey).get(0).gdh;
|
String gdh_in = touwuliao_map.get(twlKey).get(0).gdh;
|
||||||
int currCount_in = touwuliao_map.get(twlKey).get(0).hangshu;
|
int currCount_in = touwuliao_map.get(twlKey).get(0).hangshu;
|
||||||
if(twl_in.equals(twl)&&Math.abs(currCount-currCount_in)<=4){
|
if (twl_in.equals(twl)
|
||||||
|
&& Math.abs(currCount - currCount_in) <= 4) {
|
||||||
// 在分配好的数据中找到了相同的头物料 且 数量差小于4
|
// 在分配好的数据中找到了相同的头物料 且 数量差小于4
|
||||||
List<GdPaiXu> old = touwuliao_map.get(twlKey);
|
List<GdPaiXu> old = touwuliao_map.get(twlKey);
|
||||||
old.add(gdPaiXu);
|
old.add(gdPaiXu);
|
||||||
|
|
@ -183,7 +203,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
logger.info("-----------------------------------------------------------------------");
|
logger.info("-----------------------------------------------------------------------");
|
||||||
logger.info("-----------------------------------------------------------------------");
|
logger.info("-----------------------------------------------------------------------");
|
||||||
|
|
@ -233,42 +252,61 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(String key:rq_showTime.keySet()){
|
}
|
||||||
|
// 给touwuliao_map的 中 按照容器出现次数进行排序
|
||||||
|
List<GdPaiXu> list_show_new = new ArrayList<>();
|
||||||
|
for (GdPaiXu fenPei2 : list_show) {
|
||||||
|
List<FenPei> list_new = new ArrayList<>();
|
||||||
|
for (FenPei f1 : fenPei2.list) {
|
||||||
|
f1.show_time = rq_showTime.get(f1.rqh);
|
||||||
|
f1.paixu_type = 1;
|
||||||
|
list_new.add(f1);
|
||||||
|
}
|
||||||
|
Collections.sort(list_new);
|
||||||
|
fenPei2.list = list_new;
|
||||||
|
list_show_new.add(fenPei2);
|
||||||
|
}
|
||||||
|
touwuliao_map.put(twlKey, list_show_new);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("-----------"+rqm_str.toString());
|
logger.info("-----------------------------------------------------------------------");
|
||||||
}
|
logger.info("-----------------------------------------------------------------------");
|
||||||
logger.info("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
|
logger.info("---------------------------打印计算结果-------------------------------------------");
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 计算拆分号 (为了15个为一组的工单) 拆分号等于 工单总行数 /15(可配置) 根据容器号。物料
|
// 计算拆分号 (为了15个为一组的工单) 拆分号等于 工单总行数 /15(可配置) 根据容器号。物料
|
||||||
|
|
||||||
|
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++;
|
||||||
|
StringBuffer rqm = new StringBuffer();
|
||||||
|
for (FenPei fff : fenPei2.list) {
|
||||||
|
rqm.append(fff.rqh + "("+fff.show_time+") ");
|
||||||
|
}
|
||||||
|
logger.info(rqm.toString());
|
||||||
|
}
|
||||||
|
logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------");
|
||||||
|
logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 写入数据库
|
// 写入数据库
|
||||||
|
|
||||||
|
/*
|
||||||
/* }catch (Exception e) {
|
* }catch (Exception e) { logger.info(e.toString()); session.close();
|
||||||
logger.info(e.toString());
|
* }finally { session.close(); }
|
||||||
session.close();
|
*/
|
||||||
}finally {
|
|
||||||
session.close();
|
|
||||||
}*/
|
|
||||||
session.close();
|
session.close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void writeToDb(List<FenPei> list_fenpei) {
|
public void writeToDb(List<FenPei> list_fenpei) {
|
||||||
for (FenPei fp : list_fenpei) {
|
for (FenPei fp : list_fenpei) {
|
||||||
String[] ids = fp.tsakId.split(",");
|
String[] ids = fp.tsakId.split(",");
|
||||||
for (int i = 0; i <= ids.length; i++) {
|
for (int i = 0; i <= ids.length; i++) {
|
||||||
Task task=this.commonDao.get(Task.class, Long.parseLong(ids[i]));
|
Task task = this.commonDao.get(Task.class,
|
||||||
|
Long.parseLong(ids[i]));
|
||||||
// 保留原有信息字段做对比分析
|
// 保留原有信息字段做对比分析
|
||||||
if (task.getOldGzz() == null) {
|
if (task.getOldGzz() == null) {
|
||||||
task.setOldGzz(task.getEndRegion());
|
task.setOldGzz(task.getEndRegion());
|
||||||
|
|
@ -282,7 +320,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class GdPaiXu implements Comparable<GdPaiXu> {
|
class GdPaiXu implements Comparable<GdPaiXu> {
|
||||||
public String gdh; // 工单号
|
public String gdh; // 工单号
|
||||||
public int hangshu;// 工单行数
|
public int hangshu;// 工单行数
|
||||||
|
|
@ -336,8 +373,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
*/
|
*/
|
||||||
public String gdh;
|
public String gdh;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工作中心
|
* 工作中心
|
||||||
*/
|
*/
|
||||||
|
|
@ -380,17 +415,14 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
return this.show_time-old.show_time;
|
return old.show_time - this.show_time;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValueInt(Object[] obj, int i) {
|
public int getValueInt(Object[] obj, int i) {
|
||||||
|
|
@ -425,6 +457,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getValueFloat(Object[] obj, int i) {
|
public float getValueFloat(Object[] obj, int i) {
|
||||||
float v = 0.0f;
|
float v = 0.0f;
|
||||||
try {
|
try {
|
||||||
|
|
@ -436,12 +469,11 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements NewWave
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<Long> getGZZ(Long zone_id) {
|
public List<Long> getGZZ(Long zone_id) {
|
||||||
String hql="select id from LocationStorage l where l.type='拣货' and l.warehouseArea.id="+zone_id;//+" and l.beAuto=1";
|
String hql = "select id from LocationStorage l where l.type='拣货' and l.warehouseArea.id="
|
||||||
|
+ zone_id;// +" and l.beAuto=1";
|
||||||
List<Long> ids = commonDao.findByQuery(hql);
|
List<Long> ids = commonDao.findByQuery(hql);
|
||||||
return ids;
|
return ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue