poi解析Excel

写了一早的代码感觉很有成就感,大家一块看看;

package org.ilp.utils.poi;

import java.beans.Transient;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.Column;
import javax.persistence.Table;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.ilp.entity.sale.detail.SaleDetailEntity;

import com.google.common.collect.Lists;
/**
 * Poi处理Excel
 * @author pengbaowei
 *
 */
public class PoiUtil {
	
	public static  void main(String[] args)  {
		SaleDetailEntity entity=new SaleDetailEntity();
		Class<?> clazz=entity.getClass();
		File file=new File("D:\\销售订单模板.xls");
		List<?> readExcel = readExcel(clazz, file);
		for (Object object : readExcel) {
			SaleDetailEntity entity1=(SaleDetailEntity)object;
			System.out.println(entity1.getProofDate());
		}
	}
	   
	
	
	
	 public static List<?> readExcel(Class<?> clazz,File file){
			List<Object> list=Lists.newArrayList();
			try {
				   InputStream	is = new FileInputStream(file);
				   HSSFWorkbook workbook = new HSSFWorkbook(is);
				   HSSFSheet sheet = workbook.getSheetAt(0);
					//表头字段数组
				   String[][] headerTable = null;
					//获取行数量
				   int rowNum = sheet.getLastRowNum();
				   for (int i = 0; i <=rowNum; i++) {
						//取出第一个sheet
					    HSSFRow firstrRow = sheet.getRow(0);
					    //获取一行中有多少个单元格
					    int collNum = firstrRow.getPhysicalNumberOfCells(); 
					    //第一行为表头
		                if(i==0&&collNum>0){
		                         headerTable=new String[1][collNum];
		                         for (int j = 0; j < collNum; j++) {
		       			    	 HSSFCell cell = firstrRow.getCell((short) j);
		       				     String stringCellValue = (String)getStringCellValue(cell);
		       				     headerTable[0][j]=stringCellValue.toUpperCase();
		       				}
					   } else if(collNum>0){
						        HSSFRow row = sheet.getRow(i);
						        Map<String, String> map = getHaveAnnotation(clazz);
						        if( map.containsKey("tableName")){//表存在
						         Object obj = clazz.newInstance();
						        for(int l =0;l<headerTable[0].length; l++){
						                 String columnName=headerTable[0][l];
						                if(map.containsKey(columnName)){
						                	String columnNameAndMethod=map.get(columnName);
						                	String methodName = columnNameAndMethod.split(";")[1];
						                	//找到该方法所对应的字段类型【传参用】
						                	String firstChar = methodName.substring(3,4).toLowerCase();
						                	String lastChar = methodName.substring(4, methodName.length());
						                	Field field = clazz.getDeclaredField(firstChar+lastChar);
						                	Class<?> type = field.getType();
						                	String name = type.getName();
						                	String setMethodName = methodName.replace("get", "set");
						                	Method declaredMethod = clazz.getDeclaredMethod(setMethodName, getExecutableMethodParameterType(name));
						                	declaredMethod.invoke(obj,getStringCellValue(row.getCell(l)) );
						                }
						            }
						    	 list.add(obj);
						        }  
		    			}  
				}
			} catch (Exception e) {
				   e.printStackTrace();
			}
		return list;
	 }
	
	
       
	   private static Class<?> getExecutableMethodParameterType(String type){
		   //jdk7 switch开始支持String类型
		   Class<?> clazz=null;
		    switch (type) {
		case "java.lang.String":
			    clazz=String.class;
		    	break;
		 case "java.util.Date":
		    clazz=Date.class;
	    	break;
		case "java.math.BigDecimal":
		    clazz=BigDecimal.class;
	    	break;
	    	//后续添加类型
		default:
			 break;
		}
		return clazz;
	  }
	
	   private static  Object getStringCellValue(HSSFCell cell){ 
		    Object strCell =""; 
	       switch(cell.getCellType()){ 
	        case HSSFCell.CELL_TYPE_STRING:  //字符串型
	            strCell = cell.getStringCellValue(); 
	            break ; 
	        case HSSFCell.CELL_TYPE_NUMERIC:  //数字类型
	            strCell=new BigDecimal(String.valueOf(cell.getNumericCellValue()).toString());
	        break; 
	        case HSSFCell.CELL_TYPE_BOOLEAN:  //布尔型
	             strCell = String.valueOf(cell.getBooleanCellValue()); 
	        break ; 
	         case HSSFCell.CELL_TYPE_BLANK:    //空类型
	        strCell ="" ;
	        break ; 
	        case HSSFCell.CELL_TYPE_FORMULA:  //公式类型
	        	if(HSSFDateUtil.isCellDateFormatted(cell)){
	        		   strCell = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
	        	}
	 	     break ; 
	        default:
	            strCell ="" ;
	        break ; 
	        } 
	        if(strCell.equals("")|| strCell == null){ 
	        	 strCell ="" ;
	        } 
	        return strCell;
	    } 
	   
	   private static  Map<String,String> getHaveAnnotation(Class<?> clazz){
		   Map<String,String> map=new HashMap<String,String>();
		   //判断类上有没有@Table注解
		   if(clazz.isAnnotationPresent(Table.class)){
			         Table annotation = clazz.getAnnotation(Table.class);
			         if(!annotation.name().equals("")){
			        	  //将表名保存到map中
			        	  map.put("tableName", annotation.name());
			        	  List<Method> methodList = Arrays.asList(clazz.getDeclaredMethods());
						  for(Method  method : methodList){
							 //判断是否有注解@Column并且不存在@Transient注解
							  if(method.isAnnotationPresent(Column.class)&&!method.isAnnotationPresent(Transient.class)){
								   //得到字段的名称
								   String name = method.getAnnotation(Column.class).name().toUpperCase();
								  if(!"".equals(name)){
									  //得到方法名
									  String methodName = method.getName();
									  map.put(name,name+";"+methodName);
								   }
							  }
						  }
			        }
		   }
		  return map;
	   }
	   
 
   
     
}
package org.ilp.entity.sale.detail;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.Digits;
import javax.validation.constraints.Past;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import com.alibaba.fastjson.annotation.JSONField;

/**   
 * @Title: Entity
 * @Description: 销售明细
 * @author 
 * @date 2017-04-20 15:32:25
 * @version V1.0   
 *
 */
@Entity
@Table(name = "sale_detail", schema = "")
@DynamicUpdate(true)
@DynamicInsert(true)
@SuppressWarnings("serial")
public class SaleDetailEntity implements java.io.Serializable {
	/**id*/
	private java.lang.String id;
	/**机构id*/
	@NotEmpty(message="机构编码不能为空")
	@Length(max=20,message="机构id长度不能为空")
	private java.lang.String orgId;
	/**销售单号 前加org_id*/
	@NotEmpty(message="销售单号不能为空")
	@Length(max=20,message="销售单号 前加org_id长度不能大于20")
	private java.lang.String proofId;
	/**原单号(erp传过来)*/
	@Length(max=200,message="原单号长度不能大于200")
	private java.lang.String srcProofId;
	/**原行号*/
	@Length(max=20,message="原行号长度不能大于20")
	private java.lang.String srcLineId;
	/**出库类型,销售出库、调拨出库、退厂出库、取样出库、销售退票*/
	@Length(max=10,message="出库类型长度不能大于10")
	private java.lang.String saleType;
	/**开票日期、时间*/
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@Past(message="开票日期、时间为时间类型")
	private java.util.Date proofDate;
	/**客户编号*/
	@Length(max=20,message="客户编号长度不能大于20")
	private java.lang.String customerId;
	/**商品系统编号*/
	@Length(max=20,message="客户编号长度不能大于20")
	private java.lang.String goodsId;
	/**批次*/
	@Length(max=20,message="批次长度不能大于20")
	private java.lang.String lotNo;
	/**批号*/
	@Length(max=20,message="批号长度不能大于20")
	private java.lang.String batchNo;
	/**效期*/
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private java.util.Date validDate;
	/**生产日期*/
	@Length(max=20,message="生产日期不能大于20")
	private java.lang.String productDate;
	/**销售数量*/
	@Digits(integer=22,fraction=4,message="销售数量的整数位22,小数位4")
	private BigDecimal quantity;
	/**销售单价*/
	@Digits(integer=22,fraction=4,message="销售单价的整数位22,小数位4")
	private BigDecimal price;
	/**销售金额*/
	@Digits(integer=22,fraction=4,message="销售金额的整数位22,小数位4")
	private BigDecimal goodsAmount;
	/**批发单价*/
	@Digits(integer=22,fraction=4,message="批发单价的整数位22,小数位4")
	private BigDecimal wsPrice;
	/**零售单价*/
	@Digits(integer=22,fraction=4,message="零售单价的整数位22,小数位4")
	private BigDecimal rtPrice;
	/**销售扣率*/
	@Digits(integer=22,fraction=4,message="销售扣率的整数位22,小数位4")
	private BigDecimal discount;
	/**销售实价*/
	@Digits(integer=22,fraction=4,message="销售实价的整数位22,小数位4")
	private BigDecimal realPrice;
	/**物流中心编码*/
	@Length(max=10,message="物流中心编码长度不能大于10")
	private java.lang.String warehostId;
	/**结算方式*/
	@Length(max=20,message="结算方式长度不能大于20")
	private java.lang.String billStyle;
	/**开票人*/
	@Length(max=20,message="开票人长度不能大于20")
	private java.lang.String proofHuman;
	/**经办人*/
	@Length(max=20,message="经办人长度不能大于20")
	private java.lang.String doMan;
	/**复核人*/
	@Length(max=20,message="复核人长度不能大于20")
	private java.lang.String chkMan;
	/**税金*/
	@Digits(integer=22,fraction=2,message="税金的整数位22,小数位2")
	private BigDecimal tax;
	/**税率*/
	@Digits(integer=22,fraction=2,message="税率为数值类型")
	private BigDecimal taxPer;
	/**去税金额*/
	@Digits(integer=22,fraction=2,message="去税金额的整数位22,小数位2")
	private BigDecimal amountTax;
	/**收款日期*/
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@Past(message="收款日期为时间类型")
	private java.util.Date getDate;
	/**开票种类(待确认)*/
	@Length(max=60,message="开票种类(待确认)的长度不能大于60")
	private java.lang.String proofStyle;
	/**client_style*/
	@Length(max=10,message="client_style的长度不能大于10")
	private java.lang.String clientStyle;
	/**备注*/
	@Length(max=200,message="备注的长度不能大于200")
	private java.lang.String memo;
	/**票据等级*/
	@Length(max=10,message="票据等级的长度不能大于10")
	private java.lang.String billLevel;
	/**出货时间*/
	@Length(max=34,message="发货时间长度不能大于34")
	private String sendTime;
	/**分公司编号*/
	@Length(max=10,message="分公司编号的长度不能大于10")
	private java.lang.String companyId;
	/**电子监管码*/
	@Length(max=60,message="电子监管码的长度不能大于60")
	private java.lang.String drugSuperviseSn;
	/**进价*/
	@Digits(integer=18,fraction=6,message="进价的整数位18,小数位6")
	private BigDecimal buyPrice;
	/**付款类型*/
	@Length(max=10,message="付款类型的长度不能大于10")
	private java.lang.String paymentType;
	/**状态*/
	@Length(max=10,message="状态的长度不能大于10")
	private java.lang.String state;
	/**质量标识*/
	@Length(max=10,message="质量标识的长度不能大于10")
	private java.lang.String qualityFlag;
	/**账务标识*/
	@Length(max=10,message="账务标识的长度不能大于10")
	private java.lang.String accountFlag;
	/**备用1*/
	@Length(max=200,message="备用1的长度不能大于200")
	private java.lang.String memoFile1;
	/**备用2*/
	@Length(max=200,message="备用2的长度不能大于200")
	private java.lang.String memoFile2;
	/**备用3*/
	@Length(max=200,message="备用3的长度不能大于200")
	private java.lang.String memoFile3;
	/**拼单标识*/
	@Digits(integer=38,fraction=4,message="拼单标识的整数部分为38")
	private BigDecimal monomark;
	/**事业部编码*/
	@Length(max=10,message="事业部编码的长度不能大于10")
	private java.lang.String departId2;
	/**货主id*/
	@Length(max=20,message="事货主id的长度不能大于20")
	private java.lang.String ownerId;
	/**是否删除*/
	private java.lang.String isdeleted;
	/**创建人机构序列 对应om_organization 中的 orgseq*/
	@Length(max=512,message="创建人机构序列 的长度不能大于512")
	private java.lang.String createOrgseq;
	/**创建人机构 对应om_organization中的orgid*/
	@Length(max=2,message="创建人机构 对应om_organization中的orgid的长度不能大于2")
	private java.lang.String createRole;
	/**仓库类型*/
	@Length(max=10,message="仓库类型的长度不能大于10")
	private java.lang.String warehouseType;
	/**addId*/
	@Length(max=20,message="addId的长度不能大于20")
	private java.lang.String addId;
	/**商品编码*/
	@Length(max=20,message="商品编码的长度不能大于20")
	private java.lang.String goodssysId;
	/**公司编码*/
	@Length(max=20,message="公司编码的长度不能大于20")
	private java.lang.String customersysId;
	/**线路*/
	@Length(max=30,message="线路的长度不能大于30")
	private java.lang.String haulingtrack;
	/**药检报告*/
	@Length(max=10,message="药检报告的长度的为10")
	private java.lang.String yaojianFlag;
	/**goodsPcKillbac*/
	@Length(max=50,message="goodsPcKillbac的长度不能大于50")
	private java.lang.String goodsPcKillbac;
	/**proofLines*/
	@Digits(integer=22,fraction=2,message="proofLines为数值类型")
	private BigDecimal proofLines;
	/**赠品状态 y 有赠品n无赠品*/
	@Length(max=10,message="*赠品状态的长度不能大于10")
	private java.lang.String largessFlage;
	/**发票号*/
	private java.lang.String receiptNo;
	/**1直送2转运*/
	@DecimalMax(value="5",message="1直送2转运为5")
	private java.lang.String distlevel;
	/**发票方式*/
	@Length(max=200,message="发票方式的长度为200")
	private java.lang.String billType;
	/**是否扫描发票,0不需要,1需要*/
	@Digits(integer=38,fraction=4,message="税率整数位38")
	private BigDecimal billFlag;
	/**1.如果指定批号需要传此批号的对应的采购单号和行号 src_proof_id||src_line_id 2.如果不知道批号传空值*/
	@Length(max=200,message="指定批号需要传此批号的对应的采购单号和行号 的长度为200")
	private java.lang.String billSrcproofid;
	/**首营品种打印,0不打印,1打印*/
	@Digits(integer=38,fraction=4,message="首营品种打印整数位38")
	private BigDecimal goodsFlag;
	/**toLineId*/
	private java.lang.String toLineId;
	/**送货类型1正常,2,送货到家,3分包到家*/
	@Length(max=5,message="送货类型长度不能大于5")
	private java.lang.String transType;
	/**updState*/
	@Length(max=20,message="updState的长度不能大于20")
	private java.lang.String updState;
	/**updDate*/
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@Past(message="更新时间为时间类型")
	private java.util.Date updDate;
	
	
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  id
	 */
	
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name ="ID",nullable=false,length=20)
	public java.lang.String getId(){
		return this.id;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  id
	 */
	public void setId(java.lang.String id){
		this.id = id;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  机构id
	 */
	@Column(name ="ORG_ID",nullable=false,length=20)
	public java.lang.String getOrgId(){
		return this.orgId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  机构id
	 */
	public void setOrgId(java.lang.String orgId){
		this.orgId = orgId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  销售单号 前加org_id
	 */
	@Column(name ="PROOF_ID",nullable=true,length=20)
	public java.lang.String getProofId(){
		return this.proofId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  销售单号 前加org_id
	 */
	public void setProofId(java.lang.String proofId){
		this.proofId = proofId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  原单号(erp传过来)
	 */
	@Column(name ="SRC_PROOF_ID",nullable=false,length=20)
	public java.lang.String getSrcProofId(){
		return this.srcProofId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  原单号(erp传过来)
	 */
	public void setSrcProofId(java.lang.String srcProofId){
		this.srcProofId = srcProofId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  原行号
	 */
	@Column(name ="SRC_LINE_ID",nullable=false,length=20)
	public java.lang.String getSrcLineId(){
		return this.srcLineId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  原行号
	 */
	public void setSrcLineId(java.lang.String srcLineId){
		this.srcLineId = srcLineId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  出库类型,销售出库、调拨出库、退厂出库、取样出库、销售退票
	 */
	@Column(name ="SALE_TYPE",nullable=false,length=10)
	public java.lang.String getSaleType(){
		return this.saleType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  出库类型,销售出库、调拨出库、退厂出库、取样出库、销售退票
	 */
	public void setSaleType(java.lang.String saleType){
		this.saleType = saleType;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  开票日期、时间
	 */
	@Column(name ="PROOF_DATE",nullable=false)
	public java.util.Date getProofDate(){
		return this.proofDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  开票日期、时间
	 */
	public void setProofDate(java.util.Date proofDate){
		this.proofDate = proofDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  客户编号
	 */
	@Column(name ="CUSTOMER_ID",nullable=false,length=20)
	public java.lang.String getCustomerId(){
		return this.customerId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  客户编号
	 */
	public void setCustomerId(java.lang.String customerId){
		this.customerId = customerId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  商品系统编号
	 */
	@Column(name ="GOODS_ID",nullable=false,length=20)
	public java.lang.String getGoodsId(){
		return this.goodsId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  商品系统编号
	 */
	public void setGoodsId(java.lang.String goodsId){
		this.goodsId = goodsId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  批次
	 */
	@Column(name ="LOT_NO",nullable=false,length=50)
	public java.lang.String getLotNo(){
		return this.lotNo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  批次
	 */
	public void setLotNo(java.lang.String lotNo){
		this.lotNo = lotNo;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  批号
	 */
	@Column(name ="BATCH_NO",nullable=false,length=50)
	public java.lang.String getBatchNo(){
		return this.batchNo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  批号
	 */
	public void setBatchNo(java.lang.String batchNo){
		this.batchNo = batchNo;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  效期
	 */
	@Column(name ="VALID_DATE",nullable=false)
	public java.util.Date getValidDate(){
		return this.validDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  效期
	 */
	public void setValidDate(java.util.Date validDate){
		this.validDate = validDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  生产日期
	 */
	@Column(name ="PRODUCT_DATE",nullable=false,length=20)
	public java.lang.String getProductDate(){
		return this.productDate;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  生产日期
	 */
	public void setProductDate(java.lang.String productDate){
		this.productDate = productDate;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  销售数量
	 */
	@Column(name ="QUANTITY",nullable=false,precision=26,scale=4)
	public BigDecimal getQuantity(){
		return this.quantity;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  销售数量
	 */
	public void setQuantity(BigDecimal quantity){
		this.quantity = quantity;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  销售单价
	 */
	@Column(name ="PRICE",nullable=false,precision=22,scale=4)
	public BigDecimal getPrice(){
		return this.price;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  销售单价
	 */
	public void setPrice(BigDecimal price){
		this.price = price;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  销售金额
	 */
	@Column(name ="GOODS_AMOUNT",nullable=false,precision=22,scale=2)
	public BigDecimal getGoodsAmount(){
		return this.goodsAmount;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  销售金额
	 */
	public void setGoodsAmount(BigDecimal goodsAmount){
		this.goodsAmount = goodsAmount;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  批发单价
	 */
	@Column(name ="WS_PRICE",nullable=false,precision=22,scale=4)
	public BigDecimal getWsPrice(){
		return this.wsPrice;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  批发单价
	 */
	public void setWsPrice(BigDecimal wsPrice){
		this.wsPrice = wsPrice;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  零售单价
	 */
	@Column(name ="RT_PRICE",nullable=false,precision=22,scale=4)
	public BigDecimal getRtPrice(){
		return this.rtPrice;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  零售单价
	 */
	public void setRtPrice(BigDecimal rtPrice){
		this.rtPrice = rtPrice;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  销售扣率
	 */
	@Column(name ="DISCOUNT",nullable=false,precision=22,scale=4)
	public BigDecimal getDiscount(){
		return this.discount;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  销售扣率
	 */
	public void setDiscount(BigDecimal discount){
		this.discount = discount;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  销售实价
	 */
	@Column(name ="REAL_PRICE",nullable=false,precision=22,scale=4)
	public BigDecimal getRealPrice(){
		return this.realPrice;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  销售实价
	 */
	public void setRealPrice(BigDecimal realPrice){
		this.realPrice = realPrice;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  物流中心编码
	 */
	@Column(name ="WAREHOST_ID",nullable=false,length=10)
	public java.lang.String getWarehostId(){
		return this.warehostId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  物流中心编码
	 */
	public void setWarehostId(java.lang.String warehostId){
		this.warehostId = warehostId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  结算方式
	 */
	@Column(name ="BILL_STYLE",nullable=false,length=10)
	public java.lang.String getBillStyle(){
		return this.billStyle;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  结算方式
	 */
	public void setBillStyle(java.lang.String billStyle){
		this.billStyle = billStyle;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  开票人
	 */
	@Column(name ="PROOF_HUMAN",nullable=false,length=20)
	public java.lang.String getProofHuman(){
		return this.proofHuman;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  开票人
	 */
	public void setProofHuman(java.lang.String proofHuman){
		this.proofHuman = proofHuman;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  经办人
	 */
	@Column(name ="DO_MAN",nullable=false,length=20)
	public java.lang.String getDoMan(){
		return this.doMan;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  经办人
	 */
	public void setDoMan(java.lang.String doMan){
		this.doMan = doMan;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  复核人
	 */
	@Column(name ="CHK_MAN",nullable=false,length=20)
	public java.lang.String getChkMan(){
		return this.chkMan;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  复核人
	 */
	public void setChkMan(java.lang.String chkMan){
		this.chkMan = chkMan;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  税金
	 */
	@Column(name ="TAX",nullable=false,precision=22,scale=2)
	public BigDecimal getTax(){
		return this.tax;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  税金
	 */
	public void setTax(BigDecimal tax){
		this.tax = tax;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  税率
	 */
	@Column(name ="TAX_PER",nullable=false,precision=5,scale=0)
	public BigDecimal getTaxPer(){
		return this.taxPer;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  税率
	 */
	public void setTaxPer(BigDecimal taxPer){
		this.taxPer = taxPer;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  去税金额
	 */
	@Column(name ="AMOUNT_TAX",nullable=false,precision=22,scale=2)
	public BigDecimal getAmountTax(){
		return this.amountTax;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  去税金额
	 */
	public void setAmountTax(BigDecimal amountTax){
		this.amountTax = amountTax;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  收款日期
	 */
	@Column(name ="GET_DATE",nullable=false)
	public java.util.Date getGetDate(){
		return this.getDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  收款日期
	 */
	public void setGetDate(java.util.Date getDate){
		this.getDate = getDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  开票种类(待确认)
	 */
	@Column(name ="PROOF_STYLE",nullable=false,length=60)
	public java.lang.String getProofStyle(){
		return this.proofStyle;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  开票种类(待确认)
	 */
	public void setProofStyle(java.lang.String proofStyle){
		this.proofStyle = proofStyle;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  client_style
	 */
	@Column(name ="CLIENT_STYLE",nullable=false,length=10)
	public java.lang.String getClientStyle(){
		return this.clientStyle;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  client_style
	 */
	public void setClientStyle(java.lang.String clientStyle){
		this.clientStyle = clientStyle;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备注
	 */
	@Column(name ="MEMO",nullable=false,length=200)
	public java.lang.String getMemo(){
		return this.memo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备注
	 */
	public void setMemo(java.lang.String memo){
		this.memo = memo;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  票据等级
	 */
	@Column(name ="BILL_LEVEL",nullable=false,length=10)
	public java.lang.String getBillLevel(){
		return this.billLevel;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  票据等级
	 */
	public void setBillLevel(java.lang.String billLevel){
		this.billLevel = billLevel;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  出货时间
	 */
	@Column(name ="SEND_TIME")
	public String getSendTime(){
		return this.sendTime;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  出货时间
	 */
	public void setSendTime(String sendTime){
		this.sendTime = sendTime;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  分公司编号
	 */
	@Column(name ="COMPANY_ID",nullable=false,length=10)
	public java.lang.String getCompanyId(){
		return this.companyId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  分公司编号
	 */
	public void setCompanyId(java.lang.String companyId){
		this.companyId = companyId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  电子监管码
	 */
	@Column(name ="DRUG_SUPERVISE_SN",nullable=false,length=60)
	public java.lang.String getDrugSuperviseSn(){
		return this.drugSuperviseSn;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  电子监管码
	 */
	public void setDrugSuperviseSn(java.lang.String drugSuperviseSn){
		this.drugSuperviseSn = drugSuperviseSn;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  进价
	 */
	@Column(name ="BUY_PRICE",nullable=false,precision=18,scale=4)
	public BigDecimal getBuyPrice(){
		return this.buyPrice;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  进价
	 */
	public void setBuyPrice(BigDecimal buyPrice){
		this.buyPrice = buyPrice;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  付款类型
	 */
	@Column(name ="PAYMENT_TYPE",nullable=false,length=10)
	public java.lang.String getPaymentType(){
		return this.paymentType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  付款类型
	 */
	public void setPaymentType(java.lang.String paymentType){
		this.paymentType = paymentType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  状态
	 */
	@Column(name ="STATE",nullable=false,length=10)
	public java.lang.String getState(){
		return this.state;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  状态
	 */
	public void setState(java.lang.String state){
		this.state = state;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  质量标识
	 */
	@Column(name ="QUALITY_FLAG",nullable=false,length=10)
	public java.lang.String getQualityFlag(){
		return this.qualityFlag;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  质量标识
	 */
	public void setQualityFlag(java.lang.String qualityFlag){
		this.qualityFlag = qualityFlag;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  账务标识
	 */
	@Column(name ="ACCOUNT_FLAG",nullable=false,length=10)
	public java.lang.String getAccountFlag(){
		return this.accountFlag;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  账务标识
	 */
	public void setAccountFlag(java.lang.String accountFlag){
		this.accountFlag = accountFlag;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备用1
	 */
	@Column(name ="MEMO_FILE1",nullable=false,length=200)
	public java.lang.String getMemoFile1(){
		return this.memoFile1;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备用1
	 */
	public void setMemoFile1(java.lang.String memoFile1){
		this.memoFile1 = memoFile1;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备用2
	 */
	@Column(name ="MEMO_FILE2",nullable=false,length=200)
	public java.lang.String getMemoFile2(){
		return this.memoFile2;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备用2
	 */
	public void setMemoFile2(java.lang.String memoFile2){
		this.memoFile2 = memoFile2;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备用3
	 */
	@Column(name ="MEMO_FILE3",nullable=false,length=200)
	public java.lang.String getMemoFile3(){
		return this.memoFile3;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备用3
	 */
	public void setMemoFile3(java.lang.String memoFile3){
		this.memoFile3 = memoFile3;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  拼单标识
	 */
	@Column(name ="MONOMARK",nullable=false,precision=10,scale=0)
	public BigDecimal getMonomark(){
		return this.monomark;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  拼单标识
	 */
	public void setMonomark(BigDecimal monomark){
		this.monomark = monomark;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  事业部编码
	 */
	@Column(name ="DEPART_ID2",nullable=false,length=10)
	public java.lang.String getDepartId2(){
		return this.departId2;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  事业部编码
	 */
	public void setDepartId2(java.lang.String departId2){
		this.departId2 = departId2;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  货主id
	 */
	@Column(name ="OWNER_ID",nullable=false,length=20)
	public java.lang.String getOwnerId(){
		return this.ownerId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  货主id
	 */
	public void setOwnerId(java.lang.String ownerId){
		this.ownerId = ownerId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  是否删除
	 */
	@Column(name ="ISDELETED",nullable=false,length=1)
	public java.lang.String getIsdeleted(){
		return this.isdeleted;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  是否删除
	 */
	public void setIsdeleted(java.lang.String isdeleted){
		this.isdeleted = isdeleted;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人机构序列 对应om_organization 中的 orgseq
	 */
	@Column(name ="CREATE_ORGSEQ",nullable=false,length=512)
	public java.lang.String getCreateOrgseq(){
		return this.createOrgseq;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人机构序列 对应om_organization 中的 orgseq
	 */
	public void setCreateOrgseq(java.lang.String createOrgseq){
		this.createOrgseq = createOrgseq;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人机构 对应om_organization中的orgid
	 */
	@Column(name ="CREATE_ROLE",nullable=false,length=50)
	public java.lang.String getCreateRole(){
		return this.createRole;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人机构 对应om_organization中的orgid
	 */
	public void setCreateRole(java.lang.String createRole){
		this.createRole = createRole;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  仓库类型
	 */
	@Column(name ="WAREHOUSE_TYPE",nullable=false,length=10)
	public java.lang.String getWarehouseType(){
		return this.warehouseType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  仓库类型
	 */
	public void setWarehouseType(java.lang.String warehouseType){
		this.warehouseType = warehouseType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  addId
	 */
	@Column(name ="ADD_ID",nullable=false,length=20)
	public java.lang.String getAddId(){
		return this.addId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  addId
	 */
	public void setAddId(java.lang.String addId){
		this.addId = addId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  商品编码
	 */
	@Column(name ="GOODSSYS_ID",nullable=false,length=20)
	public java.lang.String getGoodssysId(){
		return this.goodssysId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  商品编码
	 */
	public void setGoodssysId(java.lang.String goodssysId){
		this.goodssysId = goodssysId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  公司编码
	 */
	@Column(name ="CUSTOMERSYS_ID",nullable=false,length=20)
	public java.lang.String getCustomersysId(){
		return this.customersysId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  公司编码
	 */
	public void setCustomersysId(java.lang.String customersysId){
		this.customersysId = customersysId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  线路
	 */
	@Column(name ="HAULINGTRACK",nullable=false,length=30)
	public java.lang.String getHaulingtrack(){
		return this.haulingtrack;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  线路
	 */
	public void setHaulingtrack(java.lang.String haulingtrack){
		this.haulingtrack = haulingtrack;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  药检报告
	 */
	@Column(name ="YAOJIAN_FLAG",nullable=false,length=10)
	public java.lang.String getYaojianFlag(){
		return this.yaojianFlag;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  药检报告
	 */
	public void setYaojianFlag(java.lang.String yaojianFlag){
		this.yaojianFlag = yaojianFlag;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  goodsPcKillbac
	 */
	@Column(name ="GOODS_PC_KILLBAC",nullable=false,length=50)
	public java.lang.String getGoodsPcKillbac(){
		return this.goodsPcKillbac;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  goodsPcKillbac
	 */
	public void setGoodsPcKillbac(java.lang.String goodsPcKillbac){
		this.goodsPcKillbac = goodsPcKillbac;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  proofLines
	 */
	@Column(name ="PROOF_LINES",nullable=false,precision=10,scale=0)
	public BigDecimal getProofLines(){
		return this.proofLines;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  proofLines
	 */
	public void setProofLines(BigDecimal proofLines){
		this.proofLines = proofLines;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  赠品状态 y 有赠品n无赠品
	 */
	@Column(name ="LARGESS_FLAGE",nullable=false,length=50)
	public java.lang.String getLargessFlage(){
		return this.largessFlage;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  赠品状态 y 有赠品n无赠品
	 */
	public void setLargessFlage(java.lang.String largessFlage){
		this.largessFlage = largessFlage;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  发票号
	 */
	@Column(name ="RECEIPT_NO",nullable=false,length=20)
	public java.lang.String getReceiptNo(){
		return this.receiptNo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  发票号
	 */
	public void setReceiptNo(java.lang.String receiptNo){
		this.receiptNo = receiptNo;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  1直送2转运
	 */
	@Column(name ="DISTLEVEL",nullable=false,length=20)
	public java.lang.String getDistlevel(){
		return this.distlevel;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  1直送2转运
	 */
	public void setDistlevel(java.lang.String distlevel){
		this.distlevel = distlevel;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  发票方式
	 */
	@Column(name ="BILL_TYPE",nullable=false,length=20)
	public java.lang.String getBillType(){
		return this.billType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  发票方式
	 */
	public void setBillType(java.lang.String billType){
		this.billType = billType;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  是否扫描发票,0不需要,1需要
	 */
	@Column(name ="BILL_FLAG",nullable=false,precision=10,scale=0)
	public BigDecimal getBillFlag(){
		return this.billFlag;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  是否扫描发票,0不需要,1需要
	 */
	public void setBillFlag(BigDecimal billFlag){
		this.billFlag = billFlag;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  1.如果指定批号需要传此批号的对应的采购单号和行号 src_proof_id||src_line_id 2.如果不知道批号传空值
	 */
	@Column(name ="BILL_SRCPROOFID",nullable=false,length=200)
	public java.lang.String getBillSrcproofid(){
		return this.billSrcproofid;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  1.如果指定批号需要传此批号的对应的采购单号和行号 src_proof_id||src_line_id 2.如果不知道批号传空值
	 */
	public void setBillSrcproofid(java.lang.String billSrcproofid){
		this.billSrcproofid = billSrcproofid;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  首营品种打印,0不打印,1打印
	 */
	@Column(name ="GOODS_FLAG",nullable=false,precision=10,scale=0)
	public BigDecimal getGoodsFlag(){
		return this.goodsFlag;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  首营品种打印,0不打印,1打印
	 */
	public void setGoodsFlag(BigDecimal goodsFlag){
		this.goodsFlag = goodsFlag;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  toLineId
	 */
	@Column(name ="TO_LINE_ID",nullable=false,length=15)
	public java.lang.String getToLineId(){
		return this.toLineId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  toLineId
	 */
	public void setToLineId(java.lang.String toLineId){
		this.toLineId = toLineId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  送货类型1正常,2,送货到家,3分包到家
	 */
	@Column(name ="TRANS_TYPE",nullable=false,length=5)
	public java.lang.String getTransType(){
		return this.transType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  送货类型1正常,2,送货到家,3分包到家
	 */
	public void setTransType(java.lang.String transType){
		this.transType = transType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  updState
	 */
	@Column(name ="UPD_STATE",nullable=false,length=10)
	public java.lang.String getUpdState(){
		return this.updState;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  updState
	 */
	public void setUpdState(java.lang.String updState){
		this.updState = updState;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  updDate
	 */
	@Column(name ="UPD_DATE",nullable=false)
	public java.util.Date getUpdDate(){
		return this.updDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  updDate
	 */
	public void setUpdDate(java.util.Date updDate){
		this.updDate = updDate;
	}

}

猜你喜欢

转载自pengbaowei0311.iteye.com/blog/2392935