1.freemarker页面
<div class="pageHeader"> <form id="pagerForm" onsubmit="return iframeCallback(this);" enctype="multipart/form-data" action="sales/salesTmallStoreOrder.do?opType=UPLOAD" method="post"> <div class="searchBar"> <table class="searchContent"> <tr> <td>选择时间:</td> <td><input type="text" name="storedate" class="date required" readonly="true" /></td> <td>天猫超市库存Excel:<input type="file" name="excel" /></td> <td><div class="buttonActive"><div class="buttonContent"><button type="submit">提交</button></div></div></td> </tr> </table> </div> </form> </div>
2.struts配置文件
<struts> <package name="sales" extends="struts-tonicare" namespace="/mgmt/sales"> <global-results> <result name="notLogin" type="freemarker">/WEB-INF/template${theme}/mgmt/main/ajaxResult.ftl</result> </global-results> <action name="salesTmallStoreOrder" class="mgmt.sales.SalesTmallStoreOrderAction"> <result name="success" type="freemarker">/WEB-INF/template${theme}/mgmt/sales/salesTmallStoreOrder.ftl</result> </action> </package> </struts>
3.相关的Java读取代码
import java.io.File; import java.io.FileInputStream; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.tonicare.action.mgmt.sales.vo.SalesTmallStoreOrderVo; import com.tonicare.data.bean.CsStoreDate; import com.tonicare.data.bean.LmProduct; import com.tonicare.data.dao.SalesTMallDao; import com.tonicare.framework.layer.MgmtService; import com.tonicare.framework.layer.TonicareException; import com.tonicare.framework.layer.AjaxResultVo.StatusCode; import com.tonicare.util.BeanFactory; import com.tonicare.util.Config; import com.tonicare.util.Const; import com.tonicare.util.LogHelper; public class SalesTmallStoreOrderService extends MgmtService { @Override public Object invoke(Object inData) throws TonicareException { // TODO Auto-generated method stub SalesTmallStoreOrderVo vo=(SalesTmallStoreOrderVo) inData; if (Const.OPERATE_UPLOAD.equals(vo.getOpType())) { if (Config.DEBUG) LogHelper.info("ExcelFileName=" + vo.getExcelFileName() + "\tExcelContentType=" + vo.getExcelContentType() + "\tExcel.AbsolutePath=" + vo.getExcel().getAbsolutePath()); vo.getAjaxResult().init(StatusCode.error); if (vo.getExcel()!=null) { Date now = new Date(); String fileName = DateFormatUtils.format(now, Const.TIME_FORMAT_NUMBER); int records= this.readExcel(vo.getExcel(), fileName,vo); vo.getAjaxResult().init(StatusCode.ok); vo.getAjaxResult().setMessage("文件 " + vo.getExcelFileName() + "(" + records + "条订单) 导入成功!"); } } return null; } public int readExcel(File aExcel, String aFile,SalesTmallStoreOrderVo vo) throws TonicareException{ int number=0; FileInputStream ins=null; try { Map<Long,LmProduct> maps=this.getProductsBymap(); SalesTMallDao dao=(SalesTMallDao) BeanFactory.getDao(Const.DAO_SALES_SALESTMALLDAO); ins=new FileInputStream(aExcel); HSSFWorkbook wb=new HSSFWorkbook(ins);//通过得到的文件流 创建一个HSSFWorkbook对象 HSSFSheet sheet=wb.getSheetAt(0);//第一个工作表 int rows=sheet.getLastRowNum(); HSSFRow row=null; //遍历 for(int i=1;i<rows;i++){ row=sheet.getRow(i); String sDate=vo.getStoredate().toString(); String aId=String.valueOf(this.getCellLong(row, 2)); String store_status=this.getCellString(row, 7); String warehouse=this.getCellString(row, 11); List<CsStoreDate> store=dao.getCsStoreDateByDateAndID(sDate, aId, store_status, warehouse); CsStoreDate storebean=null; if(store.size()<=0 ||store==null){ storebean=new CsStoreDate(); }else{ storebean=store.get(0); storebean.setId(store.get(0).getId()); } storebean.setStoreDate(DateUtils.parseDate(vo.getStoredate(), Const.DEFAULT_DATE_FORMAT_ARRAY)); storebean.setStoreCode(this.getCellString(row, 0)); storebean.setStoreName(this.getCellString(row, 1)); storebean.setProductId(String.valueOf(this.getCellLong(row, 2))); storebean.setProductName(this.getCellString(row, 3)); storebean.setSkuId(this.getCellString(row, 4)); storebean.setGoodId(this.getCellString(row, 6)); storebean.setStoreStatus(this.getCellString(row, 7); storebean.setLockup((int)this.getCellLong(row, 8)); storebean.setWarehouse(this.getCellString(row, 11); storebean.setStore((int)this.getCellLong(row, 9)); storebean.setOccupy((int)this.getCellLong(row, 10); storebean.setCatId(String.valueOf(this.getCellLong(row, 12))); storebean.setCatName(this.getCellString(row, 13)); storebean.setSupplierCode((int)this.getCellLong(row, 14)); storebean.setSupplierName(this.getCellString(row, 15)); storebean.setWaiter(this.getCellString(row, 16)); storebean.setMca1(this.getCellString(row, 17)); storebean.setMca2(this.getCellString(row, 18)); storebean.setMca3(this.getCellString(row, 19)); storebean.setMcaLast(this.getCellString(row, 20)); storebean.setCreateTime(new Date()); LmProduct pros=this.dealProduct(storebean,maps); if(pros!=null){ storebean.setDeleted(0); }else{ storebean.setDeleted(1);//删除标志 } dao.saveOrUpdate(storebean);//添加cs_store_date number++; } this.saveProductByMap(maps);//订单中有新品存在 就保存 this.saveExcel(aExcel, aFile);//备份excel文件 } catch (Exception e) { // TODO: handle exception number = 0; e.printStackTrace(); throw new TonicareException(); } return number; } //lmproduct产品表里面有的产品 库存表里面在标记为正常否则为删除商品 private LmProduct dealProduct(CsStoreDate aOrder, Map<Long,LmProduct> aMap) { LmProduct result = null; if (aOrder!=null) { Long productId = Long.valueOf(aOrder.getProductId().toString()); result = aMap.get(productId); if (result==null) { result = new LmProduct(); result.setId(Long.valueOf(aOrder.getProductId().toString())); result.setUpdateTime(new Date()); } result.setName(aOrder.getProductName()); result.setCode(aOrder.getGoodId()); aMap.put(productId, result); } return result; } //将导入的库存的信息里面的新产品添加进产品信息里面 如果是已经存在的产品则更新产品名称和产品条码 private void saveProductByMap(Map<Long,LmProduct> aMap) { if (aMap!=null) { SalesTMallDao dao = (SalesTMallDao) BeanFactory.getDao(Const.DAO_SALES_SALESTMALLDAO); try { Iterator it = aMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Long,LmProduct> entry = (Map.Entry<Long,LmProduct>) it.next(); long key = entry.getKey(); LmProduct val = entry.getValue(); LmProduct bean = dao.getProductById(key); if (bean==null) { bean = new LmProduct(); bean.setId(key);//商品id bean.setPlatform(2);//2 代表的是天猫平台 bean.setDeleted(0);//0 代表在售商品 bean.setUpdateTime(new Date()); } bean.setName(val.getName());//商品名称 bean.setCode(val.getCode());//商品条码 dao.saveOrUpdate(bean); } } catch(Exception ex) { ex.printStackTrace(); } } } //得到天猫所有的产品 private Map<Long,LmProduct> getProductsBymap(){ Map<Long, LmProduct> map=new HashMap<Long, LmProduct>(); SalesTMallDao dao=(SalesTMallDao) BeanFactory.getDao(Const.DAO_SALES_SALESTMALLDAO); try { List<LmProduct> list=dao.getTmallProduct(); for(LmProduct row:list){ map.put(row.getId(),row); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return map; } //保存excel文件 private boolean saveExcel(File aSrc, String aFileName) { boolean result = false; String path = Config.UPLOAD_PATH + File.separator + "tmall" + File.separator + aFileName + ".xls"; try { File dst = new File(path); FileUtils.moveFile(aSrc, dst); result = true; }catch (Exception e) { result = false; e.printStackTrace(); } return result; } private String getCellString(HSSFRow aRow, int aIndex) { String result = StringUtils.EMPTY; if (aRow!=null) { HSSFCell cell = aRow.getCell(aIndex); if (cell!=null){ result = cell.toString(); } } return result; } private long getCellLong(HSSFRow aRow, int aIndex) { long result = 0; if (aRow!=null) { double t = this.getCellDouble(aRow, aIndex); result = Math.round(t); } return result; } private double getCellDouble(HSSFRow aRow, int aIndex) { double result = 0; if (aRow!=null) { HSSFCell cell = aRow.getCell(aIndex); if (cell!=null) result = cell.getNumericCellValue(); } return result; } }
相关推荐
jd_jui,专业的java的class文件反编译,可以把war包中文件重新编译成java文件,重新打包
1. **下载JD-JUI**:从官方网站或者其他可靠的资源获取jd-jui的安装包,包含的文件如jd-gui.cfg是配置文件,jd-gui.exe是主执行文件,readme.txt则是使用说明。 2. **解压与运行**:将安装包解压缩,找到jd-gui.exe...
Java反编译工具JD-JUI是一款专为Java开发者设计的工具,它允许用户查看和理解Java字节码,将已编译的.class文件转换回可读的.java源代码。这款工具支持Mac和Windows操作系统,因此无论是苹果用户还是Windows用户都能...
1. **安装**: 首先,你需要下载适用于Mac系统的JD-JUI压缩包,其中包含JD-GUI.app文件。 2. **运行**: 双击JD-GUI.app启动应用,界面会显示一个空的工作区。 3. **加载字节码**: 点击“Open Class File”或“Open ...
标题提到的"jd-jui jar包代码查看"是一个这样的场景,它涉及到使用JD-GUI工具来查看.jar文件中的代码。JD-GUI是一个独立的图形用户界面工具,它能够帮助开发者快速地浏览和分析Java字节码,从而查看到类和方法的源...
此外,jd-jui还可以直接反编译包含在其他归档文件(如.zip或.tar.gz)中的Java字节码,极大地拓展了其适用范围。 在使用jd-jui时,我们可以观察到反编译过程中的各种细节,例如类结构、方法定义、变量声明等。尽管...
JUI富文本框架是一款专为前端开发者设计的高效、易用的文本编辑工具。它集成在DWZ(Dynamic Web Zone)框架之中,旨在提供一个轻量级且功能强大的解决方案,帮助开发者快速实现网页内容的编辑和展示。本文将深入探讨...
2. 然后,使用`dx --java --output classes_classes.jar classes.dex`将.dex转换为可以直接被jd-gui读取的Java类文件集合(.jar)。 3. 最后,启动jd-gui,通过菜单栏选择"File" -> "Open File",找到并加载`classes...
最后,使用jd-gui(`jd-jui`的一部分)打开生成的`.jar`文件,即可查看对应的`.class`文件,并进一步反编译为`.java`源代码。 需要注意的是,反编译的结果可能并不完全与原始的Java源代码一致,因为编译器在优化...
从压缩包中的`dwz_jui-master`来看,这很可能是框架的源码仓库,包含了所有必要的文件和目录,如CSS样式文件、JavaScript脚本、图片资源、示例页面以及可能的文档。通过解压并查看这些文件,开发者可以深入理解框架...
标题提到的"jui"可能是"Java反编译器"的简称或者是某个特定工具的名称,但在这个上下文中,我们更倾向于将其理解为Java反编译工具的一般讨论。 "jd-gui.cfg"和"jd-gui.exe"这两个文件是Java反编译工具JD-GUI的相关...
1. **引入B-JUI资源**:首先需要将B-JUI的CSS样式文件和JavaScript库添加到项目的公共头部文件中,确保在每个页面都能访问到这些资源。这通常是在布局页面(_Layout.cshtml)中完成的。 2. **创建视图**:在MVC3的...
特殊情况,只有.class文件,或者自己把源代码弄丢,就需要修改.class文件文件了。有.class文件的反编译工具,可以将.class文件反编译成java源码,修改以后再编译成....可以使用JD-jui和FrontEndPlus反编码工具来实现。
**DWZ-JUI** 是一个基于 jQuery 的前端框架,专为构建高效、易用的 Web 应用程序而设计。这个框架集成了丰富的组件和页面布局,提供了完整的前端解决方案,帮助开发者快速搭建企业级的 Web 管理系统。在“DWZ-JUI ...
- **B-JUI**: B-JUI 框架的核心文件夹,包含框架的 JavaScript 和 CSS 文件以及必要的图片和图标。 ### 四、使用与开发流程 1. **下载与引入**:首先从官方仓库获取 B-JUI 的最新版本,将相关文件引入到项目中。 2...
在Java开发中,由于源代码通常会被编译成字节码(.class文件),而这些字节码是不可读的,对于开发者来说,了解他人编写的已编译Java程序的内部工作原理或者进行逆向工程时,就需要用到反编译工具。JD-GUI就是这样一...
roncoocom roncoo-jui springboot master roncoocom roncoo-jui springboot master roncoocom roncoo-jui springboot master
Java反编译技术是软件开发领域中的一种重要技能,它允许开发者查看已编译的Java类文件(.class文件)的源代码,这对于理解和学习已有的闭源软件、调试问题或者进行逆向工程非常有用。"jui java反编译浏览器"就是这样...
【压缩包子文件的文件名称列表】中,"dwzteam-dwz_jui-master.zip"是主压缩文件,可能包含了DWZ UI框架的源代码、样式表、JavaScript文件、示例代码以及其他相关资源。"dwz_jui"可能是解压后的文件夹名称,其中包含...
B-JUI前端框架:基于JavaScript开发,包含603个文件,包括166个GIF图像文件、150个JavaScript文件、142个HTML文件、69个PNG图像文件、31个CSS样式文件、19个JPG图像文件、4个PHP文件、3个SWF文件、2个EOT字体文件和2...