no message

main
768863620@qq.com 2025-01-07 15:46:28 +08:00
parent 6d9461548b
commit 52603ba6e8
1 changed files with 348 additions and 316 deletions

View File

@ -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;
} }
} }