From aa4b5e57c086234ebc3a0f5e36fb9224899a0e3c Mon Sep 17 00:00:00 2001 From: userName Date: Wed, 5 Feb 2025 15:48:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=A7=9A=E5=86=8D=E5=BF=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/AjaxJettyLauncher.java | 6 +- .../dev/swms/server/model/inventory/Task.java | 12 +- .../server/model/shipping/PickTicket.java | 4 +- .../count/pojo/DefaultCountPlanManager.java | 49 ++- .../pojo/DefaultInterfaceRespManager.java | 50 +-- .../pojo/DefaultQueryAppManager.java | 57 ++- .../allocate/DefaultAutoAllocator.java | 61 +-- .../pojo/DefaultTaskIssuedManager.java | 3 + .../export/impl/XLSExportGenerator.java | 368 +++++++++++++++++- .../shipping/maintainPickTicketPage.xml | 9 +- 10 files changed, 505 insertions(+), 114 deletions(-) diff --git a/src/main/java/AjaxJettyLauncher.java b/src/main/java/AjaxJettyLauncher.java index 3370b2e..642d4eb 100644 --- a/src/main/java/AjaxJettyLauncher.java +++ b/src/main/java/AjaxJettyLauncher.java @@ -14,12 +14,9 @@ public class AjaxJettyLauncher { String currentDir = System.getProperty("user.dir"); logger.info("当前根目录是: " + currentDir); PropertyConfigurator.configure("log4j.properties"); - - - + logger.error("JVM编码"+System.getProperty("file.encoding")); AjaxJettyLauncher jl = new AjaxJettyLauncher(); jl.run(); - } @@ -34,6 +31,7 @@ public class AjaxJettyLauncher { server.addWebApplication("/" + getContextName() , getDeployPath()); server.start(); logger.error("1232221231"); + logger.error("JVM编码"+System.getProperty("file.encoding")); } protected int getPort() { diff --git a/src/main/java/com/dev/swms/server/model/inventory/Task.java b/src/main/java/com/dev/swms/server/model/inventory/Task.java index 51e08b7..48681f3 100644 --- a/src/main/java/com/dev/swms/server/model/inventory/Task.java +++ b/src/main/java/com/dev/swms/server/model/inventory/Task.java @@ -106,7 +106,7 @@ public class Task extends VersionalEntity { private OutBoxCount outBoxCount;// private boolean bePrint = Boolean.FALSE;//是否拣货 - private double yc_qty;//下发数量 + private double yc_qty;//下发数量 private String endRegion;//-工作站 private int skip=0;//跳过 @@ -127,7 +127,7 @@ public class Task extends VersionalEntity { private String operator;//操作人 private Date dateline;//交单日期 private String setTask;//集套交单任务 - private int agvStatus =0;//任务状态 0-未下发 1=已下发 2=执行中,3=完成,-1已分配工作站未下发AGV。 + private int agvStatus =0;//任务状态 0-未下发 1=已下发 2=执行中,3=完成。 private Date operatorDate;//合单日期 /**任务号 1已绑定工作站,0还没开始的任务*/ private int libraryStatus=0; @@ -140,10 +140,10 @@ public class Task extends VersionalEntity { private String strBill4;//合单库位 private String strBill5;//合单人 private String strBill6;//是否未未拆包装 - private String strBill7;//大容器号 - private String strBill8;//头物料拼接号 + private String strBill7;// + private String strBill8;// private String strBill9;// - private String strBill10;// + private String strBill10;//退料属性(T) private Date dateBill1=new Date();//下发日期 private Date dateBill2;//合单移动日期 private Date dateBill3;//合单任务完成日期 @@ -156,6 +156,8 @@ public class Task extends VersionalEntity { private String oldGzz;//原工作站 private String oldZrw;//原子任务 + + public String getOldGzz() { return oldGzz; } diff --git a/src/main/java/com/dev/swms/server/model/shipping/PickTicket.java b/src/main/java/com/dev/swms/server/model/shipping/PickTicket.java index b9610d3..b142f07 100644 --- a/src/main/java/com/dev/swms/server/model/shipping/PickTicket.java +++ b/src/main/java/com/dev/swms/server/model/shipping/PickTicket.java @@ -83,8 +83,8 @@ public class PickTicket extends AbstractMoveDoc { private String equatedQuantity;//优先级 private String driverName;//相关单号 private String lictrailer;//头物料描述 - private String deliveryMode;// - private String shipmentMethod; // + private String deliveryMode;//receiver + private String shipmentMethod; //交接位置 private String shipToName;//NON-STOCK的申请人名字 private String department;// private String logisticsCompany;//工作中心 diff --git a/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java b/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java index eb6d1f1..eb642eb 100644 --- a/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java +++ b/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java @@ -33,6 +33,7 @@ import com.dev.swms.server.model.base.PackageUnit; import com.dev.swms.server.model.base.Structure; 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.Worker; import com.dev.swms.server.model.base.Workstation; import com.dev.swms.server.model.count.CountDetail; @@ -75,12 +76,10 @@ import com.dev.energy.server.model.EntityFactory; import com.dev.energy.server.service.pojo.DefaultBaseManager; import com.dev.energy.server.util.LocalizedMessage; import com.dev.energy.server.web.security.UserHolder; -import org.apache.log4j.Logger; @SuppressWarnings("unchecked") public class DefaultCountPlanManager extends DefaultBaseManager implements CountPlanManager { - private static Logger logger = Logger.getLogger(DefaultCountPlanManager.class); protected final InventoryManager inventoryManager; protected final ItemManager itemManager; protected final BussinessCodeManager bussinessCodeManager; @@ -101,7 +100,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements * @see com.dev.swms.server.service.count.CountPlanManager#active(java.lang.Long) */ public void active(RowData rowData) { - logger.info(new Date()); + System.out.println(new Date()); Long countPlanId = (Long) rowData.getColumnValue(0); CountPlan countPlan = commonDao.load(CountPlan.class, countPlanId); if (countPlan.active()) { @@ -110,13 +109,13 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements || CountMethod.MOVED_ITEM.equals(countPlan.getCountMethod()) || CountMethod.ABC.equals(countPlan.getCountMethod())) { //按货品盘点 - logger.info(new Date()); + System.out.println(new Date()); List cdlists= commonDao.findByQuery(" from CountDetail c where c.countPlan.id="+countPlanId); for (CountDetail countDetail : cdlists) { Item item = ((CountDetailItem) countDetail).getItem(); createCountRecordByItem(countPlan, item,countDetail); } - logger.info(new Date()); + System.out.println(new Date()); } else { //按库位动碰盘点&&按库位盘点 for (CountDetail countDetail : countPlan.getDetails()) { @@ -140,7 +139,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements } else { throw new BusinessException("countPlan.active.failed"); } - logger.info(new Date()); + System.out.println(new Date()); } /** @@ -181,7 +180,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements // return; // } // } -// logger.info(inventories.size()); +// System.out.println(inventories.size()); item.setCycleDate(new Date()); if(inventories.size()>0) createCountRecordByInventories(countPlan, inventories); @@ -239,6 +238,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements record.setQuantity(inventory.getQtyOfMasterPack()); record.setOperator(UserHolder.getUser().getName()); record.setOccurTime(new Date()); + record.setBarCode(inventory.getBarCode()); commonDao.store(record); inventory.setCounPlan(countPlan.getCode()); commonDao.store(inventory); @@ -1122,7 +1122,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements commonDao.store(cr); // inv.setCounPlan(countPlan.getCode()); // commonDao.store(inv); - logger.info(inv.getId() ); + System.out.println(inv.getId() ); js++; } // countPlan.setStatus(CountStatus.ACTIVE); @@ -1222,7 +1222,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements commonDao.store(cr); // inv.setCounPlan(countPlan.getCode()); // commonDao.store(inv); - logger.info(inv.getId() ); + System.out.println(inv.getId() ); js++; } // countPlan.setStatus(CountStatus.ACTIVE); @@ -1375,6 +1375,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements List CountRecords = commonDao.findByQuery(" from CountRecord cr where cr.countPlan.id=:id and cr.needCount=1 and cr.delta=0", new String[] { "id"},new Object[] {countPlanId}); for(CountRecord cr:CountRecords){ + //是否盘点,是否有差异 if(cr.isNeedCount()&&cr.getCountQuantity()-cr.getQuantity()!=0) { if(cr.getIndId()==null) { cr.setIndId(0L); @@ -1387,7 +1388,19 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements inv.setQuantity(cr.getCountQuantity()); inv.setCounPlan(null); InventoryLog log1 = new InventoryLog(InventoryLogType.CHECK_ADJUST,inv.getSOI(), 1, w==null?"":w.getName(), inv.getLocation(), cr.getItemKey(), new Date(), inv.getQuantity(), null, "盘点调整", null, null); - commonDao.store(inv); + if(inv.getQtyOfMasterPack()==0) { + commonDao.delete(inv); + List list=commonDao.findByQuery("select inv.id from Inventory inv where inv.location.id="+inv.getLocation().getId()+" and " + + " inv.quantity>0 "); + if(list.size()==0) { + Location invloc=this.load(Location.class, inv.getLocation().getId()); + invloc.setStatus(WarehouseAreaStatus.FREE); + commonDao.store(invloc); + } + }else { + commonDao.store(inv); + } + Inventory moveInv=new Inventory(); List incs=commonDao.findByQuery(" from Inventory inv where inv.location.id=97197 and " + " inv.itemKey.id="+cr.getItemKey().getId()+" "); @@ -1457,12 +1470,8 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements dInv.setStatus("已入库"); dInv.setStorageDate(new Date()); commonDao.store(dInv); -// cr.setDelta(1); -// commonDao.store(cr); -// InventoryLog log3 = new InventoryLog(InventoryLogType.CHECK_ADJUST,dInv.getSOI(), 1, w==null?"":w.getName(), loc, cr.getItemKey(), new Date(), moveInv.getQuantity(), null, null, null, null); -// log3.setSerial(dInv.getBarCode()); -// log3.setSrcLoc(cr.getLocation()); -// commonDao.store(log3); + loc.setStatus(WarehouseAreaStatus.OCCUPY); + commonDao.store(loc); } }else { if(cr.isNeedCount()&&cr.getCountQuantity()-cr.getQuantity()==0) { @@ -2136,7 +2145,13 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements if (userId > 0) { if (warehouseId > 0) { Worker worker1=commonDao.load(Worker.class, userId); - List Tasks= commonDao.findByQuery(" from CountRecord t where t.delta=0 and t.id in("+crIds+") order by t.itemKey.lotInfo.propC3 desc"); + String hql=" from CountRecord t where t.delta=0 and t.id in("+crIds + +") "; + if(propD2!=null&&propD2.length()>0) { + hql+=" and CONVERT(varchar(100), t.itemKey.lotInfo.propD2, 23)='"+propD2+"'"; + } + hql+=" order by t.itemKey.lotInfo.propC3 desc"; + List Tasks= commonDao.findByQuery(hql); if(Tasks.size()>0){ double pqty=Double.parseDouble(countQuantity); double qty=0; 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 2722507..2682b46 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 @@ -71,7 +71,7 @@ import com.dev.swms.server.service.sequence.BussinessCodeManager; import com.dev.swms.server.service.shipping.PickTicketManager; import com.dev.swms.server.utils.TimeNumberUtils; import com.dev.swms.server.web.filter.WarehouseHolder; -import org.apache.log4j.Logger; + public class DefaultInterfaceRespManager extends DefaultBaseManager implements InterfaceRespManager{ protected final InterfaceManager interfaceManager; protected final ASNManager asnManager; @@ -83,7 +83,6 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I protected LocationStorageManager locationStorageManager; protected final AgvTaskManager agvTaskManager; protected final MoveDocManager moveDocManager; - private static Logger logger = Logger.getLogger(DefaultInterfaceRespManager.class); public DefaultInterfaceRespManager(InterfaceManager interfaceManager,ASNManager asnManager,PickTicketManager pickTicketManager, BussinessCodeManager manager3,JdbcManager jdbcManager,ItemManager itemManager,InterfaceReqManager interfaceReqManager, LocationStorageManager locationStorageManager,AgvTaskManager agvTaskManager,MoveDocManager moveDocManager) { @@ -219,7 +218,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I JSONArray pickTickets=json.getJSONArray("header"); for(int j=0;j billTypes=commonDao.findByQuery(" from BillType bt where bt.code='"+billTypess+"'");//单据类型查询 for(int j=0;j billTypes=commonDao.findByQuery(" from BillType bt where bt.code='"+billType+"'");//单据类型查询 for(int j=0;j billTypes=commonDao.findByQuery(" from BillType bt where bt.code='"+billType+"'"); JSONObject objectItem=new JSONObject(); JSONObject asn=JSONObject.fromObject(jsonArray.get(j)); -// logger.info(asn); +// System.out.println(asn); // String billType=""; String PO=asn.has("sourceId") ? asn.getString("sourceId") : ""; //入库序号 int lineNo=asn.has("lineNo") ? asn.getInt("lineNo") : 0; //行号 @@ -1726,7 +1729,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I List billTypes=commonDao.findByQuery(" from BillType bt where bt.code='"+billType+"'"); JSONObject objectItem=new JSONObject(); JSONObject asn=JSONObject.fromObject(jsonArray.get(j)); -// logger.info(asn); +// System.out.println(asn); // String billType=""; String PO=asn.has("sourceId") ? asn.getString("sourceId") : ""; //入库序号 @@ -2210,7 +2213,6 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I }else { asnDetail.setExpectedQuantity(expectedQuantity); } - asnDetail.setItem(items.get(0)); asnDetail.setStrBill2(strBill2); // asnDetail.setStrBill1(strBill1); @@ -2269,7 +2271,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I List billTypes=commonDao.findByQuery(" from BillType bt where bt.code='"+billType+"'"); JSONObject objectItem=new JSONObject(); JSONObject asn=JSONObject.fromObject(jsonArray.get(j)); - logger.info(asn); + System.out.println(asn); // String billType=""; log.setFunction("盘点差异"); String MATNR=asn.has("MATNR") ? asn.getString("MATNR") : ""; //物料号 @@ -2362,7 +2364,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I CountPlan countPlan=null; for(int j=0;j agvTasks = commonDao.findByQuery(" from AgvTask agvTask where agvTask.robotJobId='"+taskCode+"' or agvTask.robotJobId='A"+taskCode+"'"); -// logger.info("打印3--"+agvTasks.size()); +// System.out.println("打印3--"+agvTasks.size()); if (agvTasks.size()>0) { AgvTask agvTask=agvTasks.get(0); @@ -2711,7 +2713,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I agvTask.setStationCode(locationStorage.get(0).getGzzCode()); commonDao.store(agvTask); } -// logger.info("打印3"+agvTask.getRobotJobId()); +// System.out.println("打印3"+agvTask.getRobotJobId()); //判断接驳口状态是否可用 // if(WcsCSDCode.getWmsJbkCode1(WcsCSDCode.getWmsCSDCode(work))) { string = interfaceReqManager.sendAgvTask(agvTask)+""; @@ -2759,7 +2761,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I String msg=""; for(int j=0;j0) { for(int j=0;j list= (List)query.list(); String sql1=" select ad.id,asn.code,ad.be_quality from ASN_DETAIL ad " @@ -238,7 +236,6 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA List asnds=(List)query1.list(); String sql2=sql1+" and ad.EXPECTED_QUANTITY=ad.RECEIVED_QUANTITY "; -// logger.info(sql2); //整理完成 Query query2 = session.createSQLQuery(sql2); List asds=(List)query2.list(); @@ -257,7 +254,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA obj.put("strBill7", arrier[i++]==null?"":arrier[i-1]);//行号 obj.put("propC5", arrier[i++]==null?"":arrier[i-1]); obj.put("propC2", arrier[i++]==null?"":arrier[i-1]); -// logger.info(arrier[8].toString()+"----"); +// System.out.println(arrier[8].toString()+"----"); if(itemcode!=null&&!itemcode.equals("")) { if(arrier[8]!=null&&arrier[8].toString().length()>0) { @@ -1104,7 +1101,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA // sql+=" and (upper(md.RELATEBILLCODE) like upper('%"+ asn_code + "%') or upper(s.LP) like upper('%"+ asn_code +"%'))"; // } sql+=" order by mdd.ID "; - logger.info(sql); +// System.out.println(sql); Query query = session.createSQLQuery(sql); List list= (List)query.list(); if(list.size()>0){ @@ -1245,7 +1242,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA if(moveDocDetail.getStrBill11()!=null&&moveDocDetail.getStrBill11().equals("1")) { msg="加急料号"+item.getCode()+",需要出库"; } -// logger.info(moveDocDetail.getStrBill11()); +// System.out.println(moveDocDetail.getStrBill11()); data1.put("beMarkWeight", beMarkWeight); array.add(data1); } @@ -1346,7 +1343,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA sql+=" and z.id = "+zoneId; } sql+=" group by md.RELATEBILLCODE,z.name,s.LP order by mdd.ID "; - logger.info(sql); +// System.out.println(sql); Query query = session.createSQLQuery(sql); List list= (List)query.list(); if(list.size()>0){ @@ -1510,7 +1507,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } } long etime1 = System.currentTimeMillis(); - logger.infof(bigTask.getCode()+"亮灯时长:"+(etime1 - stime1)); + System.out.printf(bigTask.getCode()+"亮灯时长:"+(etime1 - stime1)); } taskids = sb.substring(0,sb.length()-1).toString(); @@ -1558,7 +1555,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA data = array.toString(); status = "1"; long etime2 = System.currentTimeMillis(); - logger.infof("料箱列表显示时长:"+(etime2 - stime2)); + System.out.printf("料箱列表显示时长:"+(etime2 - stime2)); }else{ msg = "找不到相应记录!"; @@ -1635,7 +1632,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } } long etime1 = System.currentTimeMillis(); - logger.info(agvTask.getRobotJobId()+"亮灯时长:"+(etime1 - stime1)+"\n"); +// System.out.printf(agvTask.getRobotJobId()+"亮灯时长:"+(etime1 - stime1)+"\n"); } agvid = sb.substring(0,sb.length()-1).toString(); @@ -1683,7 +1680,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } } long etime2 = System.currentTimeMillis(); - logger.info("料箱列表显示时长:"+(etime2 - stime2)+"\n"); +// System.out.printf("料箱列表显示时长:"+(etime2 - stime2)+"\n"); }else{ msg = "locode参数错误或为空!"; @@ -3797,7 +3794,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA msg+=",加急单"; data1.put("zoneName", zoneCode); } - logger.info(":"+jsondata1); +// System.out.println(":"+jsondata1); obj.put("data1", jsondata1); status = "1"; } @@ -5449,7 +5446,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA }else{ xlh=strBill2; } - logger.info("料号="+item_code+" ,序列号="+xlh); +// System.out.println("料号="+item_code+" ,序列号="+xlh); String sql=" from ASNDetail ad where ad.item.code='"+item_code+"' and ad.strBill2='"+xlh+"' "; List ASNDetails = commonDao.findByQuery(sql); @@ -5879,7 +5876,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } sql+=" order by mdd.ID "; - logger.info(sql); +// System.out.println(sql); Query query = session.createSQLQuery(sql); List list= (List)query.list(); @@ -5998,7 +5995,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA if (userId > 0) { if (warehouseId > 0) { - logger.info("PC货架上架完成返库:DefaultQueryAppManager:submitAndPcStockPutHJ"); +// System.out.println("PC货架上架完成返库:DefaultQueryAppManager:submitAndPcStockPutHJ"); List locs=commonDao.findByQuery(" from Location l where l.code='"+stockCode+"' and l.disabled=0 "); if(locs.size()>0) { Location loc=locs.get(0); @@ -6012,7 +6009,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA ag.setType("货架返库"); commonDao.store(ag); boolean bo= interfaceReqManager.sendAgvTask(ag); - logger.info(bo+"--"+ag.getClassification()+"--"+ag.getCode()); +// System.out.println(bo+"--"+ag.getClassification()+"--"+ag.getCode()); if(bo&&ag.getClassification().equals("盘点")&&ag.getCode()!=null) { pickTicketManager.quercountPlan(ag, userId); } @@ -6025,7 +6022,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } } }else { - logger.info("无agvTask 任务"); + System.out.println("无agvTask 任务"); } status="1"; @@ -6263,7 +6260,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA List invqty= commonDao.findByQuery(sql2); if(invqty.size()>0) { tqty=invqty.get(0); - logger.info("灯数量"+tqty); +// System.out.println("灯数量"+tqty); } InterWMStask iwt=InterWMStasks.get(i); iwt.setQuant((int)tqty); @@ -6799,7 +6796,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA List invqty= commonDao.findByQuery(sql2); if(invqty.size()>0) { tqty=invqty.get(0); - logger.info("打印数量"+tqty); +// System.out.println("打印数量"+tqty); } //打印拣货标签 submitPrintTask( userId, number, mac, lsCode, t , ptd, pt, @@ -7054,7 +7051,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA // }else { barcode+="/"+ymd.format(new Date()); // } - logger.info(barcode); +// System.out.println(barcode); String emergent=""; if(pt!=null&&bt.getName().indexOf("工单")>=0&&pt.getEquatedQuantity()!=null &&(pt.getEquatedQuantity().equals("H")||pt.getEquatedQuantity().equals("U") @@ -7341,7 +7338,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA String countCode=taskcode.replace(",","','"); sql+=" and t.countCode in('"+countCode+"') "; }else { - logger.info("请选择盘点单号"); + System.out.println("请选择盘点单号"); becount=false; } @@ -7413,7 +7410,9 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA +" where 1=1 and b.COUNT_PLAN_ID=max(cr.COUNT_PLAN_ID)" +" and b.count_Code=cr.count_Code " +" and loc2.id=l.ID and cr.NEED_COUNT=b.NEED_COUNT" - +" and item2.id=i.id " + +" and item2.id=i.id and " + + "( CONVERT(varchar(100), ik.PROP_D2, 23)=CONVERT(varchar(100), ik2.PROP_D2, 23) " + + " or (ik.PROP_D2 is null and ik2.PROP_D2 is null )) " +" for xml Path('')),1,1,'') as tId," +" cr.NEED_COUNT,max(i.NAME) ,max(i.UNIT) UNIT," + "l.CODE as lcode,max(l.id) as lid," @@ -7435,7 +7434,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA String countCode=taskcode.replace(",","','"); sql+=" and cr.count_Code in('"+countCode+"') "; }else { - logger.info("请选择盘点单号"); + System.out.println("请选择盘点单号"); } sql+=" group by c.id,cr.count_Code,l.code,l.ID ,cr.NEED_COUNT,i.id,i.code,ik.PROP_C1,ik.PROP_D2,\r\n" + " i.SINGLE_ITEM,i.BE_MARK_WEIGHT,i.isBOM "; @@ -7896,7 +7895,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } } catch (Exception e) { e.printStackTrace(); - logger.info("连接失败"); + System.out.print("连接失败"); }finally{ session.close(); } @@ -7976,7 +7975,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA xlh=serial; } -// logger.info("料号="+item_code+" ,序列号="+xlh); +// System.out.println("料号="+item_code+" ,序列号="+xlh); String hql=" from Inventory inv where inv.quantity>0 " + " and inv.itemKey.item.code='"+item_code+"'" + " and inv.status='已入库'" @@ -8983,7 +8982,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA if(zone.getId()==1763) { //容器返库3#料箱区 if(srcLocation.getStock()!=null) { -// logger.info("容器返库1"); +// System.out.println("容器返库1"); Stock stock= commonDao.load(Stock.class, srcLocation.getStock().getId()); List tsks=commonDao.findByQuery(" from Task t where 1=1 " + " and t.endRegion='"+t.getEndRegion()+"'" @@ -8997,7 +8996,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA AgvTask agv=commonDao.load(AgvTask.class, t.getAgvTask().getId()); if(agv.getStatus().equals("ATPICK")) { interfaceReqManager.wcsNextPT(agv.getRobotJobId(), s.getLP(), WcsCSDCode.getWcsCSDCode(t.getEndRegion())); -// logger.info("容器返库2"); +// System.out.println("容器返库2"); } } } @@ -9829,7 +9828,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA }else { data1.put("t_count", "清点");//q } -// logger.info("-"+arrier[6].toString()); +// System.out.println("-"+arrier[6].toString()); } data1.put("lc_code", arrier[7]==null?"":arrier[7]);//地标码 String hx=arrier[8]==null?"":arrier[8].toString();//相差分钟 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 13c098a..bcfd2fd 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 @@ -97,7 +97,7 @@ import com.dev.energy.server.model.EntityFactory; import com.dev.energy.server.service.pojo.DefaultBaseManager; import com.dev.energy.server.util.LocalizedMessage; import com.dev.energy.server.web.security.UserHolder; -import org.apache.log4j.Logger; + /** * @author dev * @@ -112,7 +112,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo protected final JdbcManager jdbcManager; protected final AgvTaskManager agvTaskManager; protected final InterfaceReqManager interfaceReqManager; - private static Logger logger = Logger.getLogger(DefaultAutoAllocator.class); + public DefaultAutoAllocator(ItemManager manager,InventoryManager manager1, @@ -295,7 +295,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo //List inventories =sortByRule(tempInventories,moveDocDetail.getItem().getWarehouseItemStorageRule(), pickItemRule,turnOverMode); //tempInventories.clear(); // for(Inventory inv:inventories){ -// logger.info(inv.getId()+"===="+inv.getAvaliableQuantity()); +// System.out.println(inv.getId()+"===="+inv.getAvaliableQuantity()); // } //拣货分配,累加已分配数量 totalQty += allocateInventory(inventories, moveDocDetail); @@ -309,7 +309,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if((moveDocDetail.getPreAllocatedQuantity()-moveDocDetail.getAllocatedQuantity())<=0){ break; }else{ - logger.info(moveDocDetail.getItem()+"===="+moveDocDetail.getAllocatedQuantity()); + System.out.println(moveDocDetail.getItem()+"===="+moveDocDetail.getAllocatedQuantity()); } } @@ -395,7 +395,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if((DoubleUtils.format4F(moveDocDetail.getPreAllocatedQuantity())-DoubleUtils.format4F(moveDocDetail.getAllocatedQuantity()))<=0){ return null; }else{ - logger.info(moveDocDetail.getItem()+"===="+moveDocDetail.getAllocatedQuantity()); + System.out.println(moveDocDetail.getItem()+"===="+moveDocDetail.getAllocatedQuantity()); } // } return errmsg; @@ -527,10 +527,10 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo pickTicketDetails=commonDao.findByQuery(" from PickTicketDetail ptd where ptd.pickTicket.id in ("+StringUtils.strip(pickTicketId.toString(),"[]")+") " + "and ptd.pickTicket.billType.code in('GPUTPTC') order by ptd.pickTicket.id,ptd.id"); if(pickTicketDetails.size()>0) { - logger.info(pickTicketDetails.size()+" 行数!"); + System.out.println(pickTicketDetails.size()+" 行数!"); preAllocate(pickTicketDetails); }else { - logger.info("今天无工单出库出库信息!"); + System.out.println("今天无工单出库出库信息!"); } return ""; } @@ -1581,7 +1581,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo task.setWarehouseArea(inventory.getWarehouseArea()); task.setBarCode(inventory.getBarCode()); task.setSrcLP(inventory.getLocation().getStock()); - logger.info(inventory.getLocation().getId()); + System.out.println(inventory.getLocation().getId()); commonDao.store(task); } @@ -1592,7 +1592,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } shuaXinWaveDoc(id);//刷新波次单 }else{ - logger.info("无波次任务!"+"\n"); + System.out.println("无波次任务!"+"\n"); } } @@ -1764,7 +1764,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo WaveDocDetail wdd = t.getWaveDocDetail(); SeedWall sw = wdd.getSeedWall(); LocationStorage ls = sw.getLocationStorage();//工作站 - logger.info("任务:"+t.getCode()+"\n"); + System.out.println("任务:"+t.getCode()+"\n"); String outsueAGVJSON = interfaceManager.outsueAGVJSON("kckq", ls.getDescription(), "QP_OUTBOUND", "", 1,0, "SI_QUICK_PICK", true, t.getCode(), 1, t.getSrcLoc().getCode(), 0); String result = interfaceManager.doSslPost(ApiURL.issueAGV,outsueAGVJSON); JSONObject json = JSONObject.fromObject(result); @@ -1794,19 +1794,19 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo int waveSum=(int) (inv.get(i).getQtyOfMasterPack()-inv.get(i).getQueuedQuantity()); if (sum-waveSum>=0) { - logger.info("料箱整箱:"+inv.get(i).getLocation().getCode()); + System.out.println("料箱整箱:"+inv.get(i).getLocation().getCode()); String outsueAGVJSON=interfaceManager.outsueAGVJSON("kckq", ls.getDescription(), "QP_OUTBOUND", "", 1, 0, "SI_QUICK_PICK", true, robotJobId, 1l,inv.get(i).getLocation().getCode(),0); interfaceManager.doSslPost(ApiURL.issueAGV, outsueAGVJSON); } else{ - logger.info("料箱单拣:"+inv.get(i).getLocation().getCode()); + System.out.println("料箱单拣:"+inv.get(i).getLocation().getCode()); String outsueAGVJSON=interfaceManager.outsueAGVJSON("kckq", ls.getDescription(), "QP_OUTBOUND", "", 1, 0, "SI_QUICK_PICK", true, robotJobId, 1,inv.get(i).getLocation().getCode(),0); interfaceManager.doSslPost(ApiURL.issueAGV, outsueAGVJSON); } sum=sum-waveSum; if (sum<=0) { - logger.info("呼叫完成:"); + System.out.println("呼叫完成:"); return; } } @@ -1821,9 +1821,9 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo // .getPickTicket().getLx().getCode() List robotJobIds=new ArrayList(); String returnAGVJSON=interfaceManager.returnAGVJSON(robotJobIds,1l,"", false,"RETURN_WAREHOUSE"); - logger.info("json:"+returnAGVJSON); + System.out.println("json:"+returnAGVJSON); }*/ -// logger.info("回传入库:"+inv.get(i).getLocation().getCode()); +// System.out.println("回传入库:"+inv.get(i).getLocation().getCode()); List robotJobIds=new ArrayList(); String returnAGVJSON=interfaceManager.returnAGVJSON(robotJobIds,1L,containerCode, false,"RETURN_WAREHOUSE"); interfaceManager.doSslPost(ApiURL.returnAGV, returnAGVJSON); @@ -1892,7 +1892,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo Map map= new HashMap(); map.put("waveDoc.id", id); getQuantityMap(map); - logger.info("取消分配执行时长:"+(etime - stime)+"\n"); + System.out.printf("取消分配执行时长:"+(etime - stime)+"\n"); jdbcManager.saveExceptionLog(UserHolder.getUser().getName()+"取消分配!"); } } @@ -1976,7 +1976,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } shuaxinPick(pt);//刷新出库单 long etime = System.currentTimeMillis(); - logger.info("取消分配执行时长:"+(etime - stime)+"\n"); + System.out.printf("取消分配执行时长:"+(etime - stime)+"\n"); } } @@ -2048,7 +2048,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo // } shuaxinPick(pt);//刷新出库单 long etime = System.currentTimeMillis(); - logger.info("取消分配执行时长:"+(etime - stime)+"\n"); + System.out.printf("取消分配执行时长:"+(etime - stime)+"\n"); } } @@ -2379,7 +2379,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo }else { String bsql=" from BillTypeConfig b where b.billType.id="+pt.getBillType().getId(); - if(ptd.getNewLotInfo()!=null&&ptd.getNewLotInfo().getPropC9()!=null&&!ptd.getNewLotInfo().getPropC9().equals("")) { + if(ptd.getNewLotInfo().getPropC9()!=null&&!ptd.getNewLotInfo().getPropC9().equals("")) { bsql+=" and b.plantCode='"+ptd.getNewLotInfo().getPropC9()+"'"; } List bts=commonDao.findByQuery(bsql); @@ -2483,6 +2483,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo task.setPlanQuantity(allocateQty); task.setPlanQuantityMU(allocateQty); task.setInventoryStatus(inventory.getStatus()); + task.setStrBill10(inventory.getStatuss()); task.setCreateTime(new Date()); task.setWarehouseArea(inventory.getWarehouseArea()); task.setBarCode(inventory.getBarCode()); @@ -2517,7 +2518,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo // interfaceReqManager.wmsSapZhuantaihuichuang(listtask, 0,"",1);//状态回传 // } // }else { -// logger.info(pt.getCode()+"自动分配,无回传状态"); +// System.out.println(pt.getCode()+"自动分配,无回传状态"); // } // // shuaxinPick(pt);//刷新订单 @@ -2566,7 +2567,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo try { commonDao.store(pt); }catch(Exception e){ - logger.info(pt.getId()+"保存失败"); + System.out.println(pt.getId()+"保存失败"); } } } @@ -2688,7 +2689,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } shuaXinWaveDoc(id);//刷新波次单 }else{ - logger.info("无波次任务!"+"\n"); + System.out.println("无波次任务!"+"\n"); } } @@ -3130,6 +3131,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo task.setCreateTime(new Date()); task.setWarehouseArea(inventory.getWarehouseArea()); task.setBarCode(inventory.getBarCode()); + task.setStrBill10(inventory.getStatuss()); task.setSrcLP(inventory.getLocation().getStock()); if(UserHolder.getUser()!=null) { task.setOperator(UserHolder.getUser().getName()); @@ -3193,10 +3195,10 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo WarehouseArea wa=this.load(WarehouseArea.class, Long.parseLong(obj[0].toString())); if(wa.getName().equals("料箱区")){ createAGV(obj[1].toString(),pickTicketDetailIds, wa.getId(),ave); - logger.info(obj[1]); + System.out.println(obj[1]); }else if(wa.getName().equals("货架区")){ createAGV(obj[1].toString(),pickTicketDetailIds, wa.getId(),ave); - logger.info(obj[1]); + System.out.println(obj[1]); } } @@ -3222,10 +3224,9 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo public void taskIssuedAgv(List ids) { for(Long id:ids) { WaveDoc w= commonDao.load(WaveDoc.class, id); - List tids=commonDao.findByQuery(" from Task t where t.agvStatus=0 and t.waveDoc.id= "+id); + List tids=commonDao.findByQuery(" from Task t where t.agvStatus in(0,-1) and t.waveDoc.id= "+id); Boolean beEnd=false; for(Task t:tids) { - PickTicketDetail ptd=commonDao.load(PickTicketDetail.class, t.getPickTicketDetail().getId()); PickTicket pt=commonDao.load(PickTicket.class, ptd.getPickTicket().getId()); pt.setStatus(PickTicketStatus.CHECK); @@ -3353,7 +3354,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } }else { - logger.info("无出库单明细"); + System.out.println("无出库单明细"); } } @@ -3440,7 +3441,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if(zone.getId()==1763) { //容器返库 if(srcLocation.getStock()!=null) { - logger.info("容器返库1"); + System.out.println("容器返库1"); Stock stock= commonDao.load(Stock.class, srcLocation.getStock().getId()); List tsks=commonDao.findByQuery(" from Task t where 1=1 " + " and t.endRegion='"+t.getEndRegion()+"'" @@ -3453,7 +3454,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo AgvTask agv=commonDao.load(AgvTask.class, t.getAgvTask().getId()); if(agv.getStatus().equals("ATPICK")) { interfaceReqManager.wcsNextPT(agv.getRobotJobId(), s.getLP(), WcsCSDCode.getWcsCSDCode(t.getEndRegion())); - logger.info("容器返库2"); + System.out.println("容器返库2"); } } } @@ -3506,7 +3507,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo //未回传的 List tasks2 = commonDao.findByQuery("select p.id from Task p where p.billCode='" + billCode + "' and p.popular=0 " + " and p.pickTicketDetail.pickTicket.id=" + pt.getId()); - logger.info(tasks1.size() + "-----" + tasks2.size()); + System.out.println(tasks1.size() + "-----" + tasks2.size()); // 是否回传SAP,其他出库不出WMS仓,出库完成不用回传,自动生成入库单,入库完成后在回传。 BillType bt = commonDao.load(BillType.class, pt.getBillType().getId()); if (tasks1.size() > 0 && tasks1.size() == tasks2.size()) { diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java index 766f2c0..c0cd140 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java @@ -518,6 +518,9 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task PickTicket pt = commonDao.load(PickTicket.class, pickTicketId); if (pt != null) { pt.setStatus(PickTicketStatus.CHECK); + if(des!=null&&!des.equals("")) { + pt.setDeliveryMode(des); + } commonDao.store(pt); } } diff --git a/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java b/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java index aca0392..3ceb839 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java +++ b/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java @@ -8,6 +8,19 @@ import com.dev.energy.server.util.LocalizedMessage; import com.dev.swms.server.utils.ConvertEnumName; import com.dev.swms.server.web.servlet.export.ExportExcelGenerator; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.net.URLDecoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -19,8 +32,13 @@ import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + import javax.servlet.http.HttpServletResponse; + import jxl.Workbook; +import jxl.WorkbookSettings; import jxl.biff.EmptyCell; import jxl.format.Border; import jxl.format.BorderLineStyle; @@ -35,6 +53,7 @@ import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import net.mlw.vlh.ValueList; + import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; @@ -47,8 +66,350 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont private static final WritableCellFormat detFormat = new WritableCellFormat(detFont); private SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + + public String GetHql(String hql ){ + int s1=hql.indexOf("where"); + if(s1<0){ + s1=hql.indexOf("WHERE"); + } + int s2=hql.indexOf("and 1=1"); + if(s2>0){ + if(s2-s1<=50){ + String str=hql.substring(s1, s2); + hql=hql.replace(str, "where 1=1 "); + } + } + return hql; + } + + + public void makeDir(String folderPath){ + File folder = new File(folderPath); + boolean success = folder.mkdirs(); + if (success) { + System.out.println("文件夹创建成功"); + } else { + System.out.println("文件夹创建失败"); + } + } + + protected String GetTitle(TableConfig tableConfig, String model, String locale) throws Exception { + + StringBuffer sb=new StringBuffer(); + List columnProperties = tableConfig.getColumnProperties(); + for(int col = 0; col < columnProperties.size(); ++col) { + ColumnProperty property = (ColumnProperty)columnProperties.get(col); + if(property.isExportExcel()) { + sb.append(URLDecoder.decode(property.getTitle(),"utf-8")+","); + } + } + return sb.toString(); + } + + protected String writeCSVByType(ApplicationContext ac, ColumnProperty property, List values, String model, String locale) { + String data=""; + if(property.isExportExcel()) { + Object value = values.get(property.getValueIndex()); + if(value != null && !"-".equals(value) && !"".equals(value)) { + if(value instanceof Number) { + data=NumberUtils.createDouble(value.toString()).doubleValue()+""; + + } else if(value instanceof java.sql.Date) { + data=dateFormatter.format(value); + + } else if(value instanceof Timestamp) { + if(property.getTitle().indexOf("日期")!=-1){ + data="\t"+dateFormatter.format(value)+"\t"; + }else{ + data="\t"+datetimehoursFormatter.format(value)+"\t"; + } + } else { + if(property.getFormat() != null && property.getFormat().length() > 0) { + Formatter formatter = (Formatter)ac.getBean(property.getFormat()); + value =convertFormat(formatter, value, property, values, model, locale); + } + try { + data=URLDecoder.decode( value.toString(),"utf-8"); + }catch(Exception e) { + data=value.toString(); + } + + if(data.indexOf(",")>-1){ + data="\""+data.replace("\"", "\"\"")+"\""; + } + } + } else { + data=""; + } + + } + return data; + } + + public void delFile(String filePath){ + Path path = Paths.get(filePath); + try { + Files.delete(path); + //System.out.println("文件删除成功"); + } catch (IOException e) { + //System.out.println("文件删除失败: " + e.getMessage()); + } + } + + public void exportExcel(ApplicationContext ac,String hql, Map params, TableConfig tableConfig, HttpServletResponse res, String referenceModel, String locale) throws Exception { + hql=GetHql(hql);//处理下HQL语句 + String maxSizeofPage="10000"; + String pageName = this.sdf.format(new Date()); + Pattern pattern = Pattern.compile("\\s+"); + Matcher matcher = pattern.matcher(pageName); + pageName = matcher.replaceAll(""); + + String header = "attachment; filename=" + pageName + ".csv"; + res.setCharacterEncoding("utf-8"); + res.setContentType("application/ms-excel; charset=utf-8"); + res.setHeader("content-disposition", header); + + makeDir("C://ZhongWei/ZIP"); + + params.put("pagingNumberPer", maxSizeofPage); + params.put("pagingPage", "1"); + ValueListQueryManager gridQueryManager = (ValueListQueryManager)ac.getBean("valueListQueryManager"); + + List files =new ArrayList(); + //查询第一页数据 + //System.out.print("查询HQL:"+(hql)); + Long time =System.currentTimeMillis(); + ValueList valueList = gridQueryManager.queryByValueList(hql, params); + Long endtime =System.currentTimeMillis(); + System.out.print("查询用时1:"+(endtime-time)); + time=endtime; + int sheetNumber = 1; + int exportTotalPages = valueList.getValueListInfo().getTotalNumberOfPages(); + + if(exportTotalPages>20){ + exportTotalPages=20; + //最大限制100W条数据 + } + endtime =System.currentTimeMillis(); + System.out.print("查询用时:2"+(endtime-time)); + String filePath="C://ZhongWei/ZIP/"+pageName+"_"+1+".csv"; + String charsetName = "UTF-8";//GBK,UTF-8,ANSI +// BufferedWriter writer = new BufferedWriter(new FileWriter(filePath)); + BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(Files.newOutputStream(Paths.get(filePath)), charsetName)); +// writer.write("这是一些文本"); + writer.write("\ufeff"); + writer.write(this.GetTitle(tableConfig, referenceModel, locale)); + writer.newLine(); + time=endtime; + do { + int row_index = 1; + + + files.add(filePath); + if(sheetNumber>1){ + params.put("pagingNumberPer", maxSizeofPage); + params.put("pagingPage", "" + sheetNumber); + valueList = gridQueryManager.queryValueList(hql, params); + } + endtime =System.currentTimeMillis(); + System.out.print("查询用时:"+(endtime-time)); + time=endtime; + + try{ + for(Iterator col_index = valueList.getList().iterator(); col_index.hasNext(); ++row_index) { + Object[] objs= (Object[])col_index.next(); + ArrayList list = new ArrayList(); + Collections.addAll(list, objs); + List columnProperties = tableConfig.getColumnProperties(); + int cloSize=columnProperties.size(); + StringBuffer sb=new StringBuffer(); + for(int col = 0; col files =new ArrayList(); + //查询第一页数据 + //System.out.print("查询HQL:"+(hql)); + Long time =System.currentTimeMillis(); + ValueList valueList = gridQueryManager.queryByValueList(hql, params); + Long endtime =System.currentTimeMillis(); + System.out.print("查询用时1:"+(endtime-time)); + time=endtime; + int sheetNumber = 1; + int exportTotalPages = valueList.getValueListInfo().getTotalNumberOfPages(); + + + endtime =System.currentTimeMillis(); + System.out.print("查询用时:2"+(endtime-time)); + time=endtime; + do { + int row_index = 1; + + String filePath="C://ZhongWei/ZIP/"+pageName+"_"+sheetNumber+".xls"; + + + files.add(filePath); + WritableWorkbook workbook = Workbook.createWorkbook(new File(filePath)); + + WritableSheet sheet = workbook.createSheet(pageName, sheetNumber); + this.exportXLSTitle(tableConfig, sheet, referenceModel, locale); + if(sheetNumber>1){ + params.put("pagingNumberPer", maxSizeofPage); + params.put("pagingPage", "" + sheetNumber); + + valueList = gridQueryManager.queryValueList(hql, params); + } + endtime =System.currentTimeMillis(); + System.out.print("查询用时:"+(endtime-time)); + + time=endtime; + for(Iterator col_index = valueList.getList().iterator(); col_index.hasNext(); ++row_index) { + Object[] objs= (Object[])col_index.next(); + ArrayList list = new ArrayList(); + Collections.addAll(list, objs); + List columnProperties = tableConfig.getColumnProperties(); + int cloSize=columnProperties.size(); + + for(int col = 1; col srcFiles, String destZipFile) throws IOException { + try ( + FileOutputStream fos = new FileOutputStream(destZipFile); + ZipOutputStream zipOut = new ZipOutputStream(fos); + ) { + for (String srcFile : srcFiles) { + File fileToZip = new File(srcFile); + FileInputStream fis = new FileInputStream(fileToZip); + ZipEntry zipEntry = new ZipEntry(fileToZip.getName()); + zipOut.putNextEntry(zipEntry); + + byte[] bytes = new byte[1024]; + int length; + while ((length = fis.read(bytes)) >= 0) { + zipOut.write(bytes, 0, length); + } + + fis.close(); + } + } + } + + + + public void exportExcel2(ApplicationContext ac,String hql, Map params, TableConfig tableConfig, HttpServletResponse res, String referenceModel, String locale) throws Exception { String pagingNumberPer="40000"; String pageName = this.sdf.format(new Date()); Pattern pattern = Pattern.compile("\\s+"); @@ -91,6 +452,7 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont } for(Iterator var26 = valueList.getList().iterator(); var26.hasNext(); ++var27) { Object[] objs= (Object[])var26.next(); + System.out.println(objs); ArrayList list = new ArrayList(); Collections.addAll(list, objs); List columnProperties = tableConfig.getColumnProperties(); @@ -100,12 +462,14 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont ColumnProperty property = (ColumnProperty)columnProperties.get(col); this.writeSheetByType(ac,sheet, property, list, referenceModel, locale, var27, col-1); } + } + System.out.println("打印"+offset); } while(offset++ < exportTotalPages); workbook.write(); workbook.close(); - res.getOutputStream().flush(); - res.getOutputStream().close(); + + } protected void exportXLSTitle(TableConfig tableConfig, WritableSheet sheet, String model, String locale) throws Exception { diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml index b1b6d00..f213842 100644 --- a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml @@ -55,7 +55,10 @@ pickTicket.jiaodanDate, pickTicket.workerName1, pickTicket.workerName4, + pickTicket.deliveryMode, + pickTicket.shipmentMethod, pickTicket.type, + pickTicket.sourceId, pickTicket.userName from PickTicket pickTicket @@ -82,7 +85,7 @@ + visible="true" horizonAlign="center" /> + +