tudc 3 tahun lalu
induk
melakukan
386e6f2493

+ 29 - 16
adm/src/main/java/com/minpay/guomao/invoicemanage/ScanInvoice4NewAction.java

@@ -1,13 +1,18 @@
 package com.minpay.guomao.invoicemanage;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.lang.StringUtils;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.read.listener.PageReadListener;
 import com.min.util.DateUtil;
 import com.minpay.common.bean.User;
 import com.minpay.common.format.IFormatService;
@@ -15,40 +20,26 @@ import com.minpay.common.service.ILogService;
 import com.minpay.common.service.IPublicService;
 import com.minpay.common.service.ISiService;
 import com.minpay.common.util.CommonUtil;
-import com.minpay.common.util.ListUtil;
-import com.minpay.db.table.mapper.ApBrandInfMapper;
 import com.minpay.db.table.mapper.ApCompanyInfMapper;
 import com.minpay.db.table.mapper.ApInvoiceDetailMapper;
 import com.minpay.db.table.mapper.ApInvoiceOrderMapper;
 import com.minpay.db.table.mapper.ApLvInvoiceMapper;
-import com.minpay.db.table.mapper.ApProductInfMapper;
-import com.minpay.db.table.mapper.ApProductSpecRelMapper;
 import com.minpay.db.table.mapper.ApScanInvoiceMapper;
-import com.minpay.db.table.mapper.ApWarehouseInfMapper;
 import com.minpay.db.table.mapper.ApWarehouseStockMapper;
-import com.minpay.db.table.model.ApBrandInf;
-import com.minpay.db.table.model.ApBrandInfExample;
 import com.minpay.db.table.model.ApCompanyInf;
-import com.minpay.db.table.model.ApContractInf;
 import com.minpay.db.table.model.ApInvoiceDetail;
 import com.minpay.db.table.model.ApInvoiceDetailExample;
 import com.minpay.db.table.model.ApInvoiceOrder;
 import com.minpay.db.table.model.ApInvoiceOrderExample;
 import com.minpay.db.table.model.ApLvInvoice;
-import com.minpay.db.table.model.ApProductInf;
-import com.minpay.db.table.model.ApProductInfExample;
-import com.minpay.db.table.model.ApProductSpecRel;
-import com.minpay.db.table.model.ApProductSpecRelExample;
 import com.minpay.db.table.model.ApScanInvoice;
 import com.minpay.db.table.model.ApScanInvoiceExample;
-import com.minpay.db.table.model.ApWarehouseInf;
 import com.minpay.db.table.model.ApWarehouseStock;
 import com.minpay.db.table.model.ApWarehouseStockExample;
-import com.minpay.db.table.model.OwnApCompanyInfExample;
-import com.minpay.db.table.model.OwnApWarehouseInfExample;
-import com.minpay.db.table.own.mapper.OrderManageMapper;
 import com.minpay.db.table.own.mapper.WarehouseInventoryMapper;
+import com.minpay.guomao.invoicemanage.model.InvoicesExcel;
 import com.startup.minpay.frame.business.IMINAction;
+import com.startup.minpay.frame.business.MINHttpServletRequestContext;
 import com.startup.minpay.frame.business.res.MINActionResult;
 import com.startup.minpay.frame.constant.IMINTransactionEnum;
 import com.startup.minpay.frame.exception.MINBusinessException;
@@ -95,6 +86,9 @@ public class ScanInvoice4NewAction implements IMINAction {
 	/**删除铝产品发票信息 */
 	public final static String	DELETE_LV_INVOICES			= "deleteLvInvoices";
 	
+	/**导入excel */
+	public final static String	EXCEL_UPLOAD			= "excelUpload";
+	
 	/**
 	 * 删除发票信息
 	 * @param fpId				发票ID
@@ -1064,4 +1058,23 @@ public class ScanInvoice4NewAction implements IMINAction {
 		
 		return res;
 	}
+	
+	@MINAction(value = EXCEL_UPLOAD)
+	public MINActionResult excelUpload(
+			MINHttpServletRequestContext  MINRequest,
+			MINSession session
+			) throws MINBusinessException, IOException {
+		MINActionResult res = new MINActionResult();
+		FileItem file = MINRequest.getFile("file");
+		InputStream inputStean = file.getInputStream();
+        // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
+		EasyExcel.read(inputStean, InvoicesExcel.class, new PageReadListener<InvoicesExcel>(dataList -> {
+			List<JSONObject> resList = new ArrayList<>();
+            for (InvoicesExcel demoData : dataList) {
+            	resList.add(JSONObject.fromObject(demoData));
+            }
+            res.set("excelData", resList);
+        })).sheet().doRead();
+		return res;
+	}
 }

+ 67 - 0
adm/src/main/java/com/minpay/guomao/invoicemanage/model/InvoicesExcel.java

@@ -0,0 +1,67 @@
+package com.minpay.guomao.invoicemanage.model;
+
+public class InvoicesExcel {
+	private String number;
+    private String name;
+    private String unit;
+    private String weight;
+    private String price;
+    private String taxRate;
+    private String amount;
+    private String tax;
+    private String specification;
+	public String getNumber() {
+		return number;
+	}
+	public void setNumber(String number) {
+		this.number = number;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public String getUnit() {
+		return unit;
+	}
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+	public String getWeight() {
+		return weight;
+	}
+	public void setWeight(String weight) {
+		this.weight = weight;
+	}
+	public String getPrice() {
+		return price;
+	}
+	public void setPrice(String price) {
+		this.price = price;
+	}
+	public String getTaxRate() {
+		return taxRate;
+	}
+	public void setTaxRate(String taxRate) {
+		this.taxRate = taxRate;
+	}
+	public String getAmount() {
+		return amount;
+	}
+	public void setAmount(String amount) {
+		this.amount = amount;
+	}
+	public String getTax() {
+		return tax;
+	}
+	public void setTax(String tax) {
+		this.tax = tax;
+	}
+	public String getSpecification() {
+		return specification;
+	}
+	public void setSpecification(String specification) {
+		this.specification = specification;
+	}
+}

+ 57 - 6
adm/src/main/webapp/admin/invoiceManage/addInvoiceLv.html

@@ -183,9 +183,15 @@
 	<div class="a-lowerpart">
 		<div class="a-lowerpart-title">发票明细信息</div>
 		<div class="shadow-content">
-			<div id = "tableDiv">
-            	<table id="tableTest" lay-filter="tableFilter"></table>
-		    </div>
+			<div class="gray-title demoTableOne">
+	  			<button class="layui-btn left-bnt1 in-b" id="excelupload">
+					<i class="layui-icon">&#xe61f;</i> excel导入
+	 			</button>
+	 			<a href="../../excel/addInvoiceLvExcel.xlsx" download="模板.xlsx">
+	 				<button type="button" class="layui-btn left-bnt1 in-b">下载模板</button>
+	 			</a>
+			</div>
+           	<table id="tableTest" lay-filter="tableFilter"></table>
 	    </div> 	
     </div>
     <div class="a-lowerpart" id = "orderTableDiv">
@@ -210,9 +216,7 @@
 					</div>
 				</div>
 			</div>
-			<div id = "tableDiv">
-            	<table id="orderTable" lay-filter="orderTableFilter"></table>
-		    </div>
+           	<table id="orderTable" lay-filter="orderTableFilter"></table>
 	    </div> 	
     </div>
     <div style="height: 60px;width: 100%;"></div>
@@ -962,6 +966,53 @@
 	    	$("#totalPrice").val(accAdd(allAmount,allTax,2));
 	    	$("#count").val(countArray.length);
 	    }
+	    
+	    layui.use(['upload', 'layer'], function(){
+	    	var upload = layui.upload;
+	    	var layer = layui.layer;
+	    	upload.render({
+	    	    elem: '#excelupload'
+    	    	,url: '../../ScanInvoice4NewAction/excelUpload'
+   	    		,field : 'file'
+   	    		,data: {
+   			    	MINView : 'JSON'
+   			    }
+	    		,exts: 'xls'
+	    		,acceptMime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+	    	    ,before: function(obj){
+	    	      layer.msg('上传中', {icon: 16, time: 0});
+	    	    }
+	    	    ,done: function(res){
+	    	      layer.close(layer.index);
+	    	      var excelData = res.excelData;
+	    	      
+	    	      var oldData =  table.cache["tableTest"];
+	    	      var lastData = oldData[oldData.length-1];
+	    	      if(isEmpty(lastData.number) && isEmpty(lastData.name) && isEmpty(lastData.unit) && isEmpty(lastData.weight) 
+	    	    	&& isEmpty(lastData.price) && isEmpty(lastData.taxRate) && isEmpty(lastData.amount) && isEmpty(lastData.tax) 
+	    	    	&& isEmpty(lastData.specification)) {
+	    	    	  oldData.splice(oldData.length-1, 1);
+	    	      }
+	    	      detailIsChange = true;
+	    	      for(var i = 0; i < excelData.length; i ++) {
+    	    	    var data = excelData[i];
+	    	    	if(!(isEmpty(data.number) && isEmpty(data.name) && isEmpty(data.unit) && isEmpty(data.weight) 
+	    	    	    	&& isEmpty(data.price) && isEmpty(data.taxRate) && isEmpty(data.amount) && isEmpty(data.tax) 
+	    	    	    	&& isEmpty(data.specification))) {
+	    	    		var id = a++;
+		    	    	data.trid = "isdecision" + id;
+						oldData.push(data);
+	    	    	}
+	    	      }
+	    	      table.reload('tableTest',{
+						data : oldData
+				  }); 
+	    	    }
+	    	    ,error: function(){
+	    	      
+	    	    }
+    	  });
+	    })
     </script>
  
  

TEMPAT SAMPAH
adm/src/main/webapp/excel/addInvoiceLvExcel.xlsx