diff --git a/src/main/java/com/dev/swms/server/service/shipping/NewWaveManager.java b/src/main/java/com/dev/swms/server/service/shipping/NewWaveManager.java index 5f19f39..83cf3db 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/NewWaveManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/NewWaveManager.java @@ -13,4 +13,7 @@ public interface NewWaveManager extends BaseManager { */ @Transactional void allocateGZZ(List ids); + //波次下发 + @Transactional + void alloteWaveDoc(long waveDocId,boolean lx1,boolean lx2,boolean lx3,boolean lx4,boolean lx5,boolean lx6,boolean lx7,boolean lx8,boolean lx9,boolean lx10,boolean lx11,boolean lx12,boolean lx13,boolean lx14,boolean lx15,boolean hj1,boolean hj2,boolean hj3,boolean hj4,boolean hj5,boolean hj6,boolean hj7,boolean lk1,boolean lk2,boolean lk3,boolean lk4,boolean lk5); } 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 fb4e02b..404e086 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 @@ -18,12 +18,14 @@ import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import com.dev.energy.server.exception.BusinessException; import com.dev.energy.server.model.EntityFactory; import com.dev.energy.server.service.pojo.DefaultBaseManager; import com.dev.sequence.model.sequence.Sequence; import com.dev.sequence.service.sequence.SequenceManager; import com.dev.swms.server.model.base.ShiXiao; import com.dev.swms.server.model.inventory.Task; +import com.dev.swms.server.model.receiving.SlotType; import com.dev.swms.server.model.shipping.NewWaveFlag; import com.dev.swms.server.model.shipping.WaveDoc; import com.dev.swms.server.service.shipping.NewWaveManager; @@ -1414,5 +1416,156 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } return null; } + public void alloteWaveDoc(long waveDocId, boolean lx1, boolean lx2, + boolean lx3, boolean lx4, boolean lx5, boolean lx6, boolean lx7, + boolean lx8, boolean lx9, boolean lx10, boolean lx11, boolean lx12, + boolean lx13, boolean lx14, boolean lx15, boolean hj1, boolean hj2, + boolean hj3, boolean hj4, boolean hj5, boolean hj6, boolean hj7, + boolean lk1, boolean lk2, boolean lk3, boolean lk4, boolean lk5){ + + WaveDoc waveDoc = commonDao.get(WaveDoc.class, waveDocId); + ShiXiao lx_sx = kqShiXiao(NewWaveFlag.LXQ); + ShiXiao hj_sx = kqShiXiao(NewWaveFlag.HJQ); + ShiXiao lk_sx = kqShiXiao(NewWaveFlag.LKQ); + // 获取开启的工作站 + /*List lx_codes = getGzzCodes(NewWaveFlag.LXQ);// 自动创波工作站 + List hj_codes = getGzzCodes(NewWaveFlag.HJQ); + List lk_codes = getGzzCodes(NewWaveFlag.LKQ);*/ + List lx_codes=new ArrayList(); + List hj_codes=new ArrayList(); + List lk_codes=new ArrayList(); + if (lx1) { + lx_codes.add("201"); + } + if (lx2) { + lx_codes.add("202"); + } + if (lx3) { + lx_codes.add("203"); + } + if (lx4) { + lx_codes.add("204"); + } + if (lx5) { + lx_codes.add("205"); + } + if (lx6) { + lx_codes.add("206"); + } + if (lx7) { + lx_codes.add("207"); + } + if (lx8) { + lx_codes.add("208"); + } + if (lx9) { + lx_codes.add("209"); + } + if (lx10) { + lx_codes.add("210"); + } + if (lx11) { + lx_codes.add("211"); + } + if (lx12) { + lx_codes.add("212"); + } + if (lx13) { + lx_codes.add("213"); + } + if (lx14) { + lx_codes.add("214"); + } + if (lx15) { + lx_codes.add("215"); + } + if (hj1) { + hj_codes.add("101"); + } + if (hj2) { + hj_codes.add("102"); + } + if (hj3) { + hj_codes.add("103"); + } + if (hj4) { + hj_codes.add("104"); + } + if (hj5) { + hj_codes.add("105"); + } + if (hj6) { + hj_codes.add("106"); + } + if (lk1) { + lk_codes.add("601"); + } + if (lk2) { + lk_codes.add("602"); + } + if (lk3) { + lk_codes.add("603"); + } + if (lk4) { + lk_codes.add("604"); + } + if (lk5) { + lk_codes.add("605"); + } + + // 得到工作站剩余任务行数 + Map gzz_maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务 + int lxCount = 0;// 工作站任务未处理任务数 + int hjCount = 0; + int lkCount = 0; + for (String code : lx_codes) { + + lxCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code); + } + //定义工作站最小能效数,自适应开启工作站数 + //自适应合理开启工作站数gzz_codes,每个工作站暂定60 + int lx_jianHuoXiaoLv=getValueGzzNumber(lx_sx); + List lx_wwc_list=getTaskList(waveDoc.getCode(), NewWaveFlag.LXQ); + if(lx_wwc_list.size()<=lx_jianHuoXiaoLv*5){//lx_jianHuoXiaoLv*lx_codes.size()/2 + List gzlistGongZuoZhans = new ArrayList(); + 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(); + 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 += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code); + } + for (String code : lk_codes) { + lkCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code); + } + 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, + gzz_maps); + allocateGZZ(getTaskList(waveDoc.getCode(), NewWaveFlag.LKQ), lk_codes, + (int) lk_sx.getTaskD(), getValueGzzNumber(lk_sx), lkCount, + gzz_maps); + + + + } } diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/editbkfpPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/editbkfpPage.xml new file mode 100644 index 0000000..2e86cf2 --- /dev/null +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/editbkfpPage.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/modifyIssuedAgvTaskPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/modifyIssuedAgvTaskPage.xml index 23e6a1c..c48cf00 100644 --- a/src/webapp/WEB-INF/classes/config/origen/shipping/modifyIssuedAgvTaskPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/modifyIssuedAgvTaskPage.xml @@ -48,6 +48,10 @@ containId="false" pageId="editbkcbPage2" > + + +