diff --git a/src/main/java/com/dev/swms/server/model/base/Item.java b/src/main/java/com/dev/swms/server/model/base/Item.java index 5b96016..c678845 100644 --- a/src/main/java/com/dev/swms/server/model/base/Item.java +++ b/src/main/java/com/dev/swms/server/model/base/Item.java @@ -135,7 +135,7 @@ public class Item extends Entity { private boolean beUnpacking=false;//是否最小包装 private boolean beWholeLine=false;//是否整行发料,不满足整行需要备注。 - + private Position position;//库位组 private Double multipleOrder=0d;// @@ -188,7 +188,15 @@ public class Item extends Entity { private Number largeHeight; - public boolean isBeWholeLine() { + public Position getPosition() { + return position; + } + + public void setPosition(Position position) { + this.position = position; + } + + public boolean isBeWholeLine() { return beWholeLine; } diff --git a/src/main/java/com/dev/swms/server/model/base/Location.java b/src/main/java/com/dev/swms/server/model/base/Location.java index ae0164f..85e371d 100644 --- a/src/main/java/com/dev/swms/server/model/base/Location.java +++ b/src/main/java/com/dev/swms/server/model/base/Location.java @@ -61,6 +61,7 @@ public class Location extends VersionalEntity { private double dimension;//面积 private boolean beInventorys=false;//是否库存地(LOC)混放 + private boolean beUrgent=false;//加急交单位 /** */ private double usedRate; /** 过道 */ @@ -135,6 +136,12 @@ public class Location extends VersionalEntity { + public boolean isBeUrgent() { + return beUrgent; + } + public void setBeUrgent(boolean beUrgent) { + this.beUrgent = beUrgent; + } public boolean isBeInventorys() { return beInventorys; } diff --git a/src/main/java/com/dev/swms/server/model/base/WorkOrderAllocationInfo.java b/src/main/java/com/dev/swms/server/model/base/WorkOrderAllocationInfo.java index 4513b10..f1f953c 100644 --- a/src/main/java/com/dev/swms/server/model/base/WorkOrderAllocationInfo.java +++ b/src/main/java/com/dev/swms/server/model/base/WorkOrderAllocationInfo.java @@ -6,6 +6,11 @@ import com.dev.energy.server.model.Entity; public class WorkOrderAllocationInfo extends Entity{ /** + * + */ + private static final long serialVersionUID = 807304520483810163L; + + /** * 工单的编号 */ private String workOrderNumber; @@ -121,7 +126,4 @@ public class WorkOrderAllocationInfo extends Entity{ public void setAllocationDate(Date allocationDate) { this.allocationDate = allocationDate; } - - // Getter 和 Setter 方法 - } \ No newline at end of file diff --git a/src/main/java/com/dev/swms/server/model/base/item.hbm.xml b/src/main/java/com/dev/swms/server/model/base/item.hbm.xml index 52df8a8..c94b03f 100644 --- a/src/main/java/com/dev/swms/server/model/base/item.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/base/item.hbm.xml @@ -177,6 +177,10 @@ + + + + diff --git a/src/main/java/com/dev/swms/server/model/base/location.hbm.xml b/src/main/java/com/dev/swms/server/model/base/location.hbm.xml index 8bc884d..7d848b5 100644 --- a/src/main/java/com/dev/swms/server/model/base/location.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/base/location.hbm.xml @@ -134,7 +134,7 @@ - + \ No newline at end of file diff --git a/src/main/java/com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml b/src/main/java/com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml index 861eb3d..6214362 100644 --- a/src/main/java/com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml @@ -1,25 +1,37 @@ - + + + + + - - - + + - seq_wms_WorkOrderAllocationInfo + wms_WorkOrderAllocationInfo START WITH 1000 - - + - + - - - + + + - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java index aedd797..24ce255 100644 --- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java +++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java @@ -2298,7 +2298,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask DateUtil.formatDateYMDToStr(day)+"' group by CONVERT(varchar(100), agv.createTime, 23) "; List list=commonDao.findByQuery(hql); if(list.size()>0) { - h=list.get(0)-1; + h=list.get(0)-10; } } for(Long id:ids) { @@ -2307,9 +2307,13 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask if(agv.isBeIssue()&&agv.getStatus().equals(STATUS.ATCALL)) { if(agv.getJobPriorityType()>0&&agv.getJobPriority()>200) { break; +// agv.setJobPriorityType(1L); +// agv.setJobPriority(1000L+agv.getJobPriority()); + }else { + agv.setJobPriorityType(1L); + agv.setJobPriority(h); } - agv.setJobPriorityType(1L); - agv.setJobPriority(h); + String str = interfaceReqManager.doWmsReqAgv(ApiURL.eoutAGV,agv.yxjAGVJSON(agv),agv.getRobotJobId()); try { JSONObject jsonStr = JSONObject.fromObject(URLDecoder.decode(str,"UTF-8")); diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java index b7db53a..9ecc4c0 100644 --- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java +++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java @@ -146,6 +146,8 @@ public class DefaultItemManager extends DefaultBaseManager implements i.setBeUnpacking(item.isBeUnpacking()); i.setDefaultWarehouseArea(item.getDefaultWarehouseArea()); i.setSmallUnit(item.getSmallUnit()); + i.setBeWholeLine(item.isBeWholeLine()); + i.setPosition(item.getPosition()); double a=length*width*height; // if(i.getPackNumber()>0) { // i.setVolume(a/i.getPackNumber()); diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultStockManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultStockManager.java index d6d73a6..90c106c 100644 --- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultStockManager.java +++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultStockManager.java @@ -369,7 +369,7 @@ public class DefaultStockManager extends DefaultBaseManager implements StockMana List stocks=new ArrayList(); List lStocks=new ArrayList(); StringBuffer sbsql1=new StringBuffer(); - sbsql1.append(" select *from " + sbsql1.append(" select * from " +" (select COUNT(loc.STATUS) as num,s.ID from LOCATION loc " +" right join STOCK s on s.ID=loc.stock " +" left join containerType ct on s.containerType=ct.ID " diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java index 2e27437..df1bfdd 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java @@ -150,6 +150,9 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I eitem.setShipRules(shipRules); } eitem.setUnit(unit); + if(unit.equals("MR")||unit.equals("MM")||unit.equals("FT")) { + eitem.setBeWholeLine(true); + } // eitem.setGoodType("小件"); if (warehouseAreas.size()>0) { eitem.setWarehouseArea(warehouseAreas.get(0)); @@ -2566,6 +2569,8 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I String strBill8=pickTicket.has("ZOUTWMS") ? pickTicket.getString("ZOUTWMS") : ""; //是否出WMS仓 X表示”是“;空表示”否” String planQuantity=pickTicket.has("ZCHWMG") ? pickTicket.getString("ZCHWMG") : ""; //数量 String ZDLK=pickTicket.has("ZDLK") ? pickTicket.getString("ZDLK") : ""; //是否解K false/true + String PROPC3=pickTicket.has("PROPC3") ? pickTicket.getString("PROPC3") : ""; //K + String PROPC5=pickTicket.has("STRBILL4") ? pickTicket.getString("STRBILL4") : ""; //供应商 Warehouse warehouse=this.load(Warehouse.class, 1L); Item item=null; List Items = commonDao.findByQuery(" from Item item where item.code=:code", @@ -2619,6 +2624,8 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I NewLotInfo newLotInfo=new NewLotInfo(); newLotInfo.setPropC2(swaCode); newLotInfo.setPropC9(strBill9);//发货工厂 + newLotInfo.setPropC3(PROPC3);// + newLotInfo.setPropC5(PROPC5);// newLotInfo.setPropL1(propL1); newLotInfo.setPropL2(propL2); newLotInfo.setPropL3(propL3); diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java index def79c8..75bc5aa 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java @@ -3547,6 +3547,12 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA Double invQuantity= (Double) commonDao.findByQuery("select IsNULL(sum(ROUND(inv.quantity,3)),0) from Inventory inv " + "where inv.quantity>0 and inv.location.id="+loc.getId()+" and inv.itemKey.item.code='"+item.getCode()+"' ").get(0); obj.put("invQuantity", invQuantity+" "+item.getUnit()); + if(thb.getPropC2()!=null) { + Double invLocQuantity= (Double) commonDao.findByQuery("select IsNULL(sum(ROUND(inv.quantity,3)),0) from Inventory inv " + + "where inv.quantity>0 and inv.location.id="+loc.getId()+" and inv.itemKey.item.code='"+item.getCode()+"'" + + " and inv.itemKey.lotInfo.propC2='"+thb.getPropC2()+"'").get(0); + obj.put("invQuantity"," 库位库存"+ invQuantity+" , "+thb.getPropC2()+"库存"+invLocQuantity+" "+item.getUnit()); + } data=obj.toString(); status = "1"; @@ -4251,7 +4257,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } sql1.append(" and s.containerType = 16 " + " and s.agvFlag=1 and s.ENABLED=0 " - + "group by s.id order by count(s.id) desc"); + + "group by s.id order by count(s.id) desc ,max(s.SALE_TIME) "); stocks=jdbcManager.getObjects(sql1.toString()); }else if (stocks.size()<1) { List ids = jdbcManager.getObjects("select id from stock where LP in ("+LP+")"); diff --git a/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java b/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java index c0fb3b1..b7685d0 100644 --- a/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java +++ b/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java @@ -43,6 +43,7 @@ import com.dev.swms.server.model.base.TurnOverMode; import com.dev.swms.server.model.base.Warehouse; import com.dev.swms.server.model.base.WarehouseArea; import com.dev.swms.server.model.base.WarehouseAreaStatus; +import com.dev.swms.server.model.base.WorkOrderAllocationInfo; import com.dev.swms.server.model.base.Worker; import com.dev.swms.server.model.delivery.UrgentOrder; import com.dev.swms.server.model.inventory.AgvTask; @@ -2416,7 +2417,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if(ptd.getItem().getIsBOM()) { hql1+=" and CONVERT(varchar(100), i.itemKey.lotInfo.propD2, 23)>='"+DateUtil.formatDateYMDToStr(new Date())+"' "; } - //排序 + List Inventorys = commonDao.findByQuery( hql1+hql2,new String[] { "id" },new Object[] { ptd.getItem().getId() }); @@ -2451,13 +2452,22 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } for (Inventory inventory : Inventorys) { int j = 0; + //未分配数量 if (unQty == 0) { break; } - allocateQty = inventory.getQuantity()- inventory.getQueuedQuantity();//可分配数量 + //可分配数量 + allocateQty = inventory.getQuantity()- inventory.getQueuedQuantity(); if (allocateQty == 0) { continue; } + //判断料号是不是整行库存发料 + if(ptd.getItem().isBeWholeLine()&&unQty>allocateQty) { + //保存跳过记录 + saveWorkOrderAllocationInfo(inventory, ptd, unQty, allocateQty); + continue; + } + if (unQty < allocateQty) { allocateQty = unQty; } @@ -3074,7 +3084,12 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if (allocateQty == 0) { continue; } - + //判断料号是不是整行库存发料 + if(ptd.getItem().isBeWholeLine()&&unQty>allocateQty) { + //保存跳过记录 + saveWorkOrderAllocationInfo(inventory, ptd, unQty, allocateQty); + continue; + } if (unQty < allocateQty) { allocateQty = unQty; } @@ -3816,8 +3831,27 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } } } - - + //判断料号是不是整行库存发料,报错跳过库存行的记录。 + public void saveWorkOrderAllocationInfo(Inventory inventory,PickTicketDetail ptd, + double unQty,double allocateQty) { + WorkOrderAllocationInfo woa=new WorkOrderAllocationInfo(); + woa.setWorkOrderNumber(ptd.getPickTicket().getCode()); + if(ptd.getLineNumber()!=null) { + try { + woa.setLineNumber(Integer.parseInt(ptd.getLineNumber())); + }catch (Exception e) { + + } + } + woa.setMaterialNumber(ptd.getItem().getCode()); + woa.setQuantity((int)unQty); + woa.setLocationNumber(inventory.getLocation().getCode()); + woa.setFactory(inventory.getItemKey().getLotInfo().getPropC9()); + woa.setLoc(inventory.getItemKey().getLotInfo().getPropC2()); + woa.setAllocationDate(new Date()); + woa.setRemarks("库存数量:"+allocateQty); + commonDao.store(woa); + } diff --git a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java index 5fb1453..1341fbc 100644 --- a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java +++ b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java @@ -2205,9 +2205,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc List receivedRecords = commonDao.findByQuery( " from ReceivedRecord rrd where rrd.beMoved=0 and rrd.srcLP.LP=:code and rrd.locationStorage is null", new String[] { "code" }, new Object[] { st.getLP() }); - List inventorys = commonDao.findByQuery( - "select inv.id from Inventory inv where inv.location.stock.id=:code and inv.quantity>0 ", - new String[] { "code" }, new Object[] { st.getId() }); + if (receivedRecords.size()>0) { for (ReceivedRecord rd : receivedRecords) { @@ -2217,6 +2215,17 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc } ASNDetail ad = this.load(ASNDetail.class, rd.getAsnDetail().getId()); + if(ad!=null&&ad.getLotInfo()!=null&&ad.getLotInfo().getPropC2()!=null + &&ad.getLotInfo().getPropC2().length()>0) { + List listPlan=commonDao.findByQuery(" from PlantLocation p" + + " where p.code='"+ad.getLotInfo().getPropC2()+"' "); + if(listPlan.size()>0) { + PlantLocation pl=listPlan.get(0); + if(pl.isBeRegister()) { + throw new BusinessException(ad.getLotInfo().getPropC2()+"不良品库存,不能入库立库"); + } + } + } Item item = this.load(Item.class, ad.getItem().getId()); ASN asn = this.load(ASN.class, ad.getAsn().getId()); BillType bt=commonDao.load(BillType.class, asn.getBillType().getId()); @@ -2230,12 +2239,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc if(adids.size()>adids1.size()) { throw new BusinessException("未整理完成,不能入库,单号:"+ad.getStrBill7()); } -// if(asn.getExpectedQuantity()>asn.getReceivedQuantity()) { -// throw new BusinessException("未整理完成,不能入库,单号:"+asn.getCode()); -// } Stock stock = commonDao.load(Stock.class, rd.getSrcLP().getId()); -// stock.setLocationStorage(locationStorage); -// commonDao.store(stock); rd.setLocationStorage(locationStorage); List invs = commonDao.findByQuery(" from Inventory inv where inv.receivedRecordId=" + rd.getId() + ")"); @@ -2343,14 +2347,16 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc this.commonDao.store(rd); } - }else if(inventorys.size()>0) { + }else { + List inventorys = commonDao.findByQuery( + "select inv.id from Inventory inv where inv.location.stock.id=:code and inv.quantity>0 ", + new String[] { "code" }, new Object[] { st.getId() }); + if(inventorys.size()>0) { logger.info(st.getLP()+"有库存信息"); locationStorage.setStatus(WarehouseAreaStatus.OCCUPY); this.commonDao.store(locationStorage); -// st.setLocationStorage(locationStorage); -// commonDao.store(st); - }else { + }else { LibraryTask t=EntityFactory.getEntity(LibraryTask.class); t.setMes("没有整理数据"); t.setFromCellCode(ssk); @@ -2358,6 +2364,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc commonDao.store(t); interfaceReqManager.receiveLEDinfo(t); throw new BusinessException("没有整理数据"); + } } } public void putAwayFor6(Stock st, Long lsId,String ssk) { @@ -2503,7 +2510,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc //第二优先浅位空闲,深有货品 public LocationStorage findLocationStorageFor7(Stock st) { //查询深浅都是空闲 - + synchronized (DefaultMoveDocManager.class) { //查询有任务的库位 String sql5=" select loc3.relevanceCode from LocationStorage loc3 where " + " (loc3.name in( select t1.toCellCode from LibraryTask t1 " @@ -2571,6 +2578,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc } else { return ls.get(0); } + } } public void finishLibraryTask(List ids) { @@ -4050,36 +4058,11 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc //入库获取目标点位,第一优先级两个都空闲的,放深 //第二优先浅位空闲,深有货品 public LocationStorage moveLocationStorageFor8(LocationStorage st) { + synchronized (DefaultMoveDocManager.class) { //查询深浅都是空闲 String sql1="select loc.relevanceCode from LocationStorage loc where loc.status='FREE' and loc.disabled=false " + " and loc.type='存储点' group by loc.relevanceCode having count(*)>=2 "; - -// //查询浅位是空闲,优先深位没有任务的空闲浅位 -// String sql2="select loc.relevanceCode from LocationStorage loc where ((loc.status='FREE' and loc.sqType=1) " -// + " or (loc.status='OCCUPY' and loc.sqType=2)) " -// + " and loc.disabled=false " -// + " and loc.type='存储点' "; -// //深位有任务的关联号 -// String sql3=" select loc.relevanceCode from LocationStorage loc1 where " -// + " loc.name not in( select toCellCode from LibraryTask t " -// + " where t.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) " -// + " and loc.name not in( select fromCellCode from LibraryTask t " -// + " where t.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) " -// + " and loc.disabled=false " -// + " and loc.type='存储点' "; - - //查询浅位是空闲,优先深位没有任务的空闲浅位 -// String sql2="select loc2.relevanceCode from LocationStorage loc2 where loc2.status='FREE' and loc2.sqType=1 " -// + " and loc2.disabled=false " -// + " and loc2.type='存储点' "; - //深位有任务的关联号 -// String sql3=" select loc1.relevanceCode from LocationStorage loc1 where " -// + " loc1.name not in( select t.toCellCode from LibraryTask t " -// + " where t.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) " -// + " and loc1.name not in( select t1.fromCellCode from LibraryTask t1 " -// + " where t1.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) " -// + " and loc1.disabled=false " -// + " and loc1.type='存储点' "; + //查询有任务的库位 String sql5=" select loc3.relevanceCode from LocationStorage loc3 where " + " (loc3.name in( select t1.toCellCode from LibraryTask t1 " @@ -4089,12 +4072,8 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc + " and loc3.disabled=false " + " and loc3.type='存储点' "; -// sql2=sql2+" and loc2.relevanceCode not in("+sql5+") "; //立库有坐标点位的托盘 String sql4=" select s2.locationStorage.id from Stock s2 where s2.locationStorage.id is not null and s2.LP like 'Y00%' "; - - - String sql = " from LocationStorage l where l.warehouseArea.id=1766 " + " and l.type='存储点' and l.status='" + WarehouseAreaStatus.FREE + "' " + " and l.disabled=false and l.id not in("+sql4+")"; @@ -4141,6 +4120,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc } else { return ls.get(0); } + } } public boolean queryTask(String str){ diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java index d6cd785..8eb3601 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java @@ -9745,8 +9745,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick if(ptd.getSOI()!=null&& (ptd.getSOI().equals("U") ||ptd.getSOI().equals("X")) - &&(dstLoc.getCode().indexOf("1FEM")==-1 && - dstLoc.getCode().indexOf("2FEM")==-1)) { + &&(!dstLoc.isBeUrgent())) { throw new BusinessException("该地位不是加急交接点"); } } @@ -10148,7 +10147,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick } } - public synchronized String printLocationCodePick(String code, Long workerId,Long wid) { + public synchronized String printLocationCodePick(String code, Long workerId,Long wid) { String data=""; JSONObject obj = new JSONObject(); if(code!=null&&code.length()>2) { @@ -10185,6 +10184,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick data=obj.toString(); return data; + } public void reprintPrintTask(String barCode,Long pId,int nuber,Long workerId) { @@ -10324,6 +10324,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick if(pt!=null) { refreshOrderQuantity(pt); } + } } \ No newline at end of file diff --git a/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java b/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java index cd3039b..13f93fe 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java @@ -458,7 +458,7 @@ public class ASNReceiveServlet extends HttpServlet { //PDA扫描料号 String taskId =json.has("taskId")?json.getString("taskId"):""; String jhItem =json.has("jhItem")?json.getString("jhItem"):""; - synchronized (lock) { + synchronized (QueryAppManager.class) { resultJson=app.scanpickItemCode(taskId,jhItem,workerId, wId); } }else if("picking".equals(methodType)){ @@ -505,7 +505,7 @@ public class ASNReceiveServlet extends HttpServlet { jdbcManager.saveExceptionLog("任务号:"+taskId+"料号:"+itemCode+ "数量:"+quantity+"子任务:"+billCode+",原因:"+e.getMessage()); resultJson.put("status", "0"); - resultJson.put("msg", "拣货失败,联系运维人员!"+e.getMessage()); + resultJson.put("msg", "拣货失败,"+e.getMessage()); resultJson.put("data", ""); } }else if("skip".equals(methodType)){ @@ -773,7 +773,7 @@ public class ASNReceiveServlet extends HttpServlet { jdbcManager.saveExceptionLog("任务号:"+taskid+"料号:"+itemCode+ "工作站:"+lsCode+"数量:"+quantity+"子任务:"+billCocd+" 库位:"+srcLoc+",原因:"+e.getMessage()); resultJson.put("status", "0"); - resultJson.put("msg", "拣货失败,联系运维人员"+e.getMessage()); + resultJson.put("msg", "拣货失败,"+e.getMessage()); resultJson.put("data", ""); } diff --git a/src/main/java/com/dev/swms/server/web/servlet/PickingServlet.java b/src/main/java/com/dev/swms/server/web/servlet/PickingServlet.java index 25e98dd..de8d280 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/PickingServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/PickingServlet.java @@ -232,7 +232,9 @@ public class PickingServlet extends HttpServlet { }else if("printLocationCode".equals(methodType)){ //获取容器号 String location_code =json.has("location_code")?json.getString("location_code"):""; + synchronized (QueryAppManager.class) { resultJson=this.printLocationCode(location_code,workerId, wId); + } } logger.info("======"+resultJson.toString()); diff --git a/src/main/java/daoContext.xml b/src/main/java/daoContext.xml index 37f898f..e5c72d8 100644 --- a/src/main/java/daoContext.xml +++ b/src/main/java/daoContext.xml @@ -1217,9 +1217,9 @@ com/dev/swms/server/model/base/sapOutType.hbm.xml - - - - - + + + com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml + + \ No newline at end of file diff --git a/src/test/yao/2025.sql b/src/test/yao/2025.sql index 20e667b..d721998 100644 --- a/src/test/yao/2025.sql +++ b/src/test/yao/2025.sql @@ -42,4 +42,18 @@ GO ALTER TABLE ASN_DETAIL add PROP_LC5 varchar(50) COLLATE Chinese_PRC_CI_AS NULL; GO ALTER TABLE ASN_DETAIL add PROP_LC6 varchar(50) COLLATE Chinese_PRC_CI_AS NULL; -GO \ No newline at end of file +GO + + +------------2025-04-08 +ALTER TABLE ITEM add POSITION_ID numeric(19) NULL; +GO +ALTER TABLE ITEM +ADD CONSTRAINT FK_Item_POSITION_ID FOREIGN KEY (POSITION_ID) +REFERENCES [POSITION](ID); +GO + +ALTER TABLE LOCATION add be_Urgent tinyint NULL; +GO +update LOCATION set be_Urgent=0 where be_Urgent is null; +GO diff --git a/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml index 44bd8dc..a4ee725 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml @@ -101,7 +101,16 @@ where 1=1 ]]> - + + + + diff --git a/src/webapp/WEB-INF/classes/config/origen/base/editLocationPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/editLocationPage.xml index 603b08a..be843df 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/editLocationPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/editLocationPage.xml @@ -84,6 +84,7 @@ --> + diff --git a/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPage.xml index aa5be4f..11bf766 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPage.xml @@ -82,6 +82,8 @@ item.beWeight, item.beInv, item.beSAPItem, + item.beWholeLine, + item.position.name, item.saleTime, item.strExtend1, item.strExtend2, @@ -89,6 +91,7 @@ from Item item left join item.warehouseArea warehouseArea left join item.defaultWarehouseArea + left join item.position where 1=1 /~item.code: and item.code like {item.code} ~/ /~item.warehouseArea.id: and item.warehouseArea.id = {item.warehouseArea.id} ~/ @@ -168,6 +171,10 @@ horizonAlign="center" /> + + + diff --git a/src/webapp/WEB-INF/classes/config/origen/base/maintainWorkOrderAllocationPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/maintainWorkOrderAllocationPage.xml index d514ccc..955d9b9 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/maintainWorkOrderAllocationPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/maintainWorkOrderAllocationPage.xml @@ -1,5 +1,5 @@ - + @@ -36,7 +36,7 @@ /~materialNumber: and workOrder.materialNumber like {materialNumber} ~/ /~beginDate: AND CONVERT(varchar(100), workOrder.allocationDate, 23) = {beginDate} ~/ /~endDate: or (CONVERT(varchar(100), workOrder.allocationDate, 23)>= {beginDate} and CONVERT(varchar(100), workOrder.allocationDate, 23)<= {endDate}) ~/ - ]]> + order by workOrder.id desc ]]> @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@ - + \ No newline at end of file diff --git a/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml b/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml index 3447cfb..44f9aa6 100644 --- a/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml +++ b/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml @@ -148,7 +148,7 @@ - + diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainTaskPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainTaskPage.xml index 9046d08..f9a187b 100644 --- a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainTaskPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainTaskPage.xml @@ -180,6 +180,7 @@ pickTicketDetail.strBill12, t.inventoryStatus, t.strBill10, + t.ncrCode, pickTicketDetail.lineNumber, t.smallUnit, pickTicket.updateTime, @@ -325,6 +326,7 @@ +