Browse Source

init from phab

xielq 5 years ago
parent
commit
2d370b1890
76 changed files with 7475 additions and 0 deletions
  1. 0 0
      README.md
  2. 2 0
      Readme.md
  3. 101 0
      pom.xml
  4. 122 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/BrandInfoUas.java
  5. 255 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/BrandSubmitUas.java
  6. 138 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/BrandSubmitUasInfo.java
  7. 239 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/BrandUas.java
  8. 353 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/ComponentInfoUas.java
  9. 283 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/ComponentSubmitUas.java
  10. 112 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/ComponentSubmitUasInfo.java
  11. 157 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/EnterpriseUas.java
  12. 88 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/ExpressPriceUas.java
  13. 57 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/KindPropertyOptionUas.java
  14. 149 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/KindPropertyUas.java
  15. 70 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/KindPropertyUnitUas.java
  16. 145 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/KindUas.java
  17. 134 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/PropertySubmitUas.java
  18. 57 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/PropertyUas.java
  19. 52 0
      src/main/java/com/uas/api/b2c_erp/baisc/model/UserBaseInfoUas.java
  20. 33 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/BrandService.java
  21. 63 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/BrandSubmitUasService.java
  22. 56 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/ComponentService.java
  23. 55 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/ComponentSubmitUasService.java
  24. 34 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/ExpressService.java
  25. 28 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/FileUploadUasService.java
  26. 54 0
      src/main/java/com/uas/api/b2c_erp/baisc/service/KindService.java
  27. 99 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/AcceptNotify.java
  28. 59 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/AcceptNotifyDetail.java
  29. 286 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/B2cOrder.java
  30. 210 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/B2cOrderDetail.java
  31. 83 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/Payment.java
  32. 116 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/Purchase.java
  33. 114 0
      src/main/java/com/uas/api/b2c_erp/buyer/model/PurchaseDetail.java
  34. 40 0
      src/main/java/com/uas/api/b2c_erp/buyer/service/B2cOrderService.java
  35. 41 0
      src/main/java/com/uas/api/b2c_erp/buyer/service/InvoiceNotifyService.java
  36. 38 0
      src/main/java/com/uas/api/b2c_erp/buyer/service/PaymentService.java
  37. 26 0
      src/main/java/com/uas/api/b2c_erp/buyer/service/PurchaseService.java
  38. 84 0
      src/main/java/com/uas/api/b2c_erp/core/model/OperateErrorStatus.java
  39. 359 0
      src/main/java/com/uas/api/b2c_erp/operation/model/OperationInfoUas.java
  40. 27 0
      src/main/java/com/uas/api/b2c_erp/operation/service/OperationInfoUasService.java
  41. 69 0
      src/main/java/com/uas/api/b2c_erp/search/service/SearchService.java
  42. 87 0
      src/main/java/com/uas/api/b2c_erp/seller/model/Address.java
  43. 108 0
      src/main/java/com/uas/api/b2c_erp/seller/model/BankInfoERP.java
  44. 48 0
      src/main/java/com/uas/api/b2c_erp/seller/model/GoodsFUas.java
  45. 124 0
      src/main/java/com/uas/api/b2c_erp/seller/model/GoodsPriceUas.java
  46. 120 0
      src/main/java/com/uas/api/b2c_erp/seller/model/GoodsQtyPriceUas.java
  47. 459 0
      src/main/java/com/uas/api/b2c_erp/seller/model/GoodsSimpleUas.java
  48. 108 0
      src/main/java/com/uas/api/b2c_erp/seller/model/Invoice.java
  49. 64 0
      src/main/java/com/uas/api/b2c_erp/seller/model/InvoiceDetail.java
  50. 194 0
      src/main/java/com/uas/api/b2c_erp/seller/model/Order.java
  51. 216 0
      src/main/java/com/uas/api/b2c_erp/seller/model/OrderDetail.java
  52. 164 0
      src/main/java/com/uas/api/b2c_erp/seller/model/Prod.java
  53. 168 0
      src/main/java/com/uas/api/b2c_erp/seller/model/ProductDetailERP.java
  54. 23 0
      src/main/java/com/uas/api/b2c_erp/seller/service/BankInfoService.java
  55. 31 0
      src/main/java/com/uas/api/b2c_erp/seller/service/GoodsPriceService.java
  56. 48 0
      src/main/java/com/uas/api/b2c_erp/seller/service/GoodsUpAndDownService.java
  57. 29 0
      src/main/java/com/uas/api/b2c_erp/seller/service/InvoiceService.java
  58. 69 0
      src/main/java/com/uas/api/b2c_erp/seller/service/OrderService.java
  59. 50 0
      src/main/java/com/uas/api/b2c_erp/seller/service/ProdService.java
  60. 29 0
      src/main/java/com/uas/api/b2c_erp/seller/service/ProductDetailERPService.java
  61. 49 0
      src/main/java/com/uas/api/crypto/hessian/HandlerInterceptor.java
  62. 94 0
      src/main/java/com/uas/api/crypto/hessian/PermittedServiceExporter.java
  63. 20 0
      src/main/java/com/uas/api/crypto/hessian/SecretKeyService.java
  64. 13 0
      src/main/java/com/uas/api/crypto/hessian/SignedProxyFactory.java
  65. 35 0
      src/main/java/com/uas/api/crypto/hessian/SignedURLConnectionFactory.java
  66. 51 0
      src/main/java/com/uas/api/crypto/util/FlexJsonUtils.java
  67. 35 0
      src/main/java/com/uas/api/crypto/util/MD5Util.java
  68. 79 0
      src/main/java/com/uas/api/crypto/util/SecretUtil.java
  69. 63 0
      src/main/java/com/uas/api/domain/IPage.java
  70. 24 0
      src/main/java/com/uas/api/exception/B2CException.java
  71. 38 0
      src/main/java/com/uas/remoting/hessian/MultiProxyFactoryBean.java
  72. 248 0
      src/main/java/com/uas/remoting/support/HessianClientInterceptor.java
  73. 26 0
      src/main/java/com/uas/remoting/support/UrlBasedRemoteAccessor.java
  74. 27 0
      src/test/java/com/uas/api/AbstractTest.java
  75. 24 0
      src/test/java/com/uas/api/OrderServiceTest.java
  76. 22 0
      src/test/resources/hessian.xml

+ 0 - 0
README.md


+ 2 - 0
Readme.md

@@ -0,0 +1,2 @@
+# Platform B2c-erp-api
+This is the Platform B2c-erp-api project.

+ 101 - 0
pom.xml

@@ -0,0 +1,101 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<packaging>jar</packaging>
+	<name>b2c-erp-api</name>
+	<url>http://maven.apache.org</url>
+	<groupId>com.uas.api</groupId>
+	<artifactId>b2c-erp-api</artifactId>
+	<version>0.0.2-SNAPSHOT</version>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<junit.version>4.12</junit.version>
+		<servlet.version>3.0-alpha-1</servlet.version>
+		<spring.version>4.1.6.RELEASE</spring.version>
+		<log4j.version>1.2.16</log4j.version>
+		<hessian.version>4.0.33.r2</hessian.version>
+		<spring.data.commons>1.10.0.RELEASE</spring.data.commons>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-test</artifactId>
+			<version>${spring.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.caucho</groupId>
+			<artifactId>hessian</artifactId>
+			<version>${hessian.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-web</artifactId>
+			<version>${spring.version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-jdbc</artifactId>
+			<version>${spring.version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>${servlet.version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.data</groupId>
+			<artifactId>spring-data-commons</artifactId>
+			<version>${spring.data.commons}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.flexjson</groupId>
+			<artifactId>flexjson</artifactId>
+			<version>2.1</version>
+		</dependency>
+	</dependencies>
+	
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	
+	<distributionManagement>
+		<!-- 发布release仓库 -->
+		<repository>
+			<id>platform-release</id>
+			<name>platform-release</name>
+			<url>http://113.105.74.141:8081/artifactory/libs-release-local</url>
+		</repository>
+		<!-- 发布快照版本 -->
+		<snapshotRepository>
+			<id>platform-snapshots</id>
+			<name>platform-snapshots</name>
+			<url>http://113.105.74.141:8081/artifactory/libs-snapshot-local</url>
+		</snapshotRepository>
+	</distributionManagement>
+</project>

+ 122 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/BrandInfoUas.java

@@ -0,0 +1,122 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 商品品牌
+ * 
+ * @author suntg
+ * @since 2016年8月19日下午4:08:58
+ */
+public class BrandInfoUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 品牌uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 版本号
+	 */
+	private Short version;
+	
+	/**
+	 * 品牌中文名称
+	 */
+	private String nameCn;
+
+	/**
+	 * 品牌名称英文名
+	 */
+	private String nameEn;
+
+	/**
+	 * 品牌logo路径
+	 */
+	private String logoUrl;
+
+	/**
+	 * 权重参数
+	 */
+	private Double weight;
+
+	/**
+	 * 厂商
+	 */
+	private String venodr;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public Short getVersion() {
+		return version;
+	}
+
+	public void setVersion(Short version) {
+		this.version = version;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameEn() {
+		return nameEn;
+	}
+
+	public void setNameEn(String nameEn) {
+		this.nameEn = nameEn;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public Double getWeight() {
+		return weight;
+	}
+
+	public void setWeight(Double weight) {
+		this.weight = weight;
+	}
+
+	public String getVenodr() {
+		return venodr;
+	}
+
+	public void setVenodr(String venodr) {
+		this.venodr = venodr;
+	}
+
+}

+ 255 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/BrandSubmitUas.java

@@ -0,0 +1,255 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+public class BrandSubmitUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+
+	/**
+	 * 品牌中文名
+	 */
+	private String nameCn;
+
+	/**
+	 * 品牌英文名
+	 */
+	private String nameEn;
+
+	/**
+	 * 品牌uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 图片路径
+	 */
+	private String logoUrl;
+
+	/**
+	 * 官网地址
+	 */
+	private String url;
+
+	/**
+	 * 品牌厂商
+	 */
+	private String vendor;
+
+	/**
+	 * 简介
+	 */
+	private String brief;
+
+	/**
+	 * 产品系列
+	 */
+	private String series;
+
+	/**
+	 * 地区
+	 */
+	private String area;
+
+	/**
+	 * 应用领域
+	 */
+	private String application;
+
+	/**
+	 * 主要成就
+	 */
+	private String achievement;
+
+	/**
+	 * 状态(100 在录入,311 申请中,103 未通过, 104 已通过)
+	 */
+	private Integer status;
+
+	/**
+	 * 申请人uu
+	 */
+	private Long modifyuu;
+
+	/**
+	 * 申请人企业uu
+	 */
+	private Long modifyenuu;
+
+	/**
+	 * 审批人uu
+	 */
+	private Long audityuu;
+
+	/**
+	 * 审批意见
+	 */
+	private String auditOpinion;
+
+	/**
+	 * 即时通IMid
+	 */
+	private Long imid;
+
+	/**
+	 * 版本号
+	 */
+	private Short version;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameEn() {
+		return nameEn;
+	}
+
+	public void setNameEn(String nameEn) {
+		this.nameEn = nameEn;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getUrl() {
+		return url;
+	}
+
+	public void setUrl(String url) {
+		this.url = url;
+	}
+
+	public String getVendor() {
+		return vendor;
+	}
+
+	public void setVendor(String vendor) {
+		this.vendor = vendor;
+	}
+
+	public String getBrief() {
+		return brief;
+	}
+
+	public void setBrief(String brief) {
+		this.brief = brief;
+	}
+
+	public String getSeries() {
+		return series;
+	}
+
+	public void setSeries(String series) {
+		this.series = series;
+	}
+
+	public String getArea() {
+		return area;
+	}
+
+	public void setArea(String area) {
+		this.area = area;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getApplication() {
+		return application;
+	}
+
+	public void setApplication(String application) {
+		this.application = application;
+	}
+
+	public String getAchievement() {
+		return achievement;
+	}
+
+	public void setAchievement(String achievement) {
+		this.achievement = achievement;
+	}
+
+	public Long getModifyuu() {
+		return modifyuu;
+	}
+
+	public void setModifyuu(Long modifyuu) {
+		this.modifyuu = modifyuu;
+	}
+
+	public Long getModifyenuu() {
+		return modifyenuu;
+	}
+
+	public void setModifyenuu(Long modifyenuu) {
+		this.modifyenuu = modifyenuu;
+	}
+
+	public Long getAudityuu() {
+		return audityuu;
+	}
+
+	public void setAudityuu(Long audityuu) {
+		this.audityuu = audityuu;
+	}
+
+	public String getAuditOpinion() {
+		return auditOpinion;
+	}
+
+	public void setAuditOpinion(String auditOpinion) {
+		this.auditOpinion = auditOpinion;
+	}
+
+	public Long getImid() {
+		return imid;
+	}
+
+	public void setImid(Long imid) {
+		this.imid = imid;
+	}
+
+	public Short getVersion() {
+		return version;
+	}
+
+	public void setVersion(Short version) {
+		this.version = version;
+	}
+}

+ 138 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/BrandSubmitUasInfo.java

@@ -0,0 +1,138 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+public class BrandSubmitUasInfo implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+
+	/**
+	 * 品牌中文名
+	 */
+	private String nameCn;
+
+	/**
+	 * 品牌英文名
+	 */
+	private String nameEn;
+
+	/**
+	 * 品牌uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 图片路径
+	 */
+	private String logoUrl;
+
+	/**
+	 * 品牌厂商
+	 */
+	private String vendor;
+
+	/**
+	 * 地区
+	 */
+	private String area;
+
+	/**
+	 * 状态(100 在录入,311 申请中,103 未通过, 104 已通过)
+	 */
+	private Integer status;
+
+	/**
+	 * 审批意见
+	 */
+	private String auditOpinion;
+
+	/**
+	 * 即时通IMid
+	 */
+	private Long imid;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameEn() {
+		return nameEn;
+	}
+
+	public void setNameEn(String nameEn) {
+		this.nameEn = nameEn;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getVendor() {
+		return vendor;
+	}
+
+	public void setVendor(String vendor) {
+		this.vendor = vendor;
+	}
+
+	public String getArea() {
+		return area;
+	}
+
+	public void setArea(String area) {
+		this.area = area;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getAuditOpinion() {
+		return auditOpinion;
+	}
+
+	public void setAuditOpinion(String auditOpinion) {
+		this.auditOpinion = auditOpinion;
+	}
+
+	public Long getImid() {
+		return imid;
+	}
+
+	public void setImid(Long imid) {
+		this.imid = imid;
+	}
+}

+ 239 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/BrandUas.java

@@ -0,0 +1,239 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class BrandUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 品牌中文名称
+	 */
+	private String nameCn;
+
+	/**
+	 * 品牌英文名称
+	 */
+	private String nameEn;
+
+	/**
+	 * logo路径(暂存字节流)
+	 */
+	private String logoUrl;
+
+	/**
+	 * 官网地址
+	 */
+	private String url;
+
+	/**
+	 * 品牌所属厂商
+	 */
+	private String vendor;
+
+	/**
+	 * 品牌简介
+	 */
+	private String brief;
+
+	/**
+	 * 产品系列
+	 */
+	private String series;
+
+	/**
+	 * 主要成就
+	 */
+	private String achievement;
+
+	/**
+	 * 所属地区
+	 */
+	private String area;
+
+	/**
+	 * 应用领域
+	 */
+	private String application;
+
+	/**
+	 * 创建人
+	 */
+	private Long defineuu;
+
+	/**
+	 * 创建时间
+	 */
+	private Date createTime;
+
+	/**
+	 * 最近更新人
+	 */
+	private Long modifyuu;
+
+	/**
+	 * 最后修改时间
+	 */
+	private Date modifyTime;
+
+	/**
+	 * 版本号
+	 */
+	private Short version;
+
+	/**
+	 * 权重,可用于排序
+	 */
+	private Double weight;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameEn() {
+		return nameEn;
+	}
+
+	public void setNameEn(String nameEn) {
+		this.nameEn = nameEn;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getVendor() {
+		return vendor;
+	}
+
+	public void setVendor(String vendor) {
+		this.vendor = vendor;
+	}
+
+	public String getBrief() {
+		return brief;
+	}
+
+	public void setBrief(String brief) {
+		this.brief = brief;
+	}
+
+	public String getSeries() {
+		return series;
+	}
+
+	public void setSeries(String series) {
+		this.series = series;
+	}
+
+	public String getAchievement() {
+		return achievement;
+	}
+
+	public void setAchievement(String achievement) {
+		this.achievement = achievement;
+	}
+
+	public String getArea() {
+		return area;
+	}
+
+	public void setArea(String area) {
+		this.area = area;
+	}
+
+	public String getApplication() {
+		return application;
+	}
+
+	public void setApplication(String application) {
+		this.application = application;
+	}
+
+	public Long getDefineuu() {
+		return defineuu;
+	}
+
+	public void setDefineuu(Long defineuu) {
+		this.defineuu = defineuu;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Long getModifyuu() {
+		return modifyuu;
+	}
+
+	public void setModifyuu(Long modifyuu) {
+		this.modifyuu = modifyuu;
+	}
+
+	public Date getModifyTime() {
+		return modifyTime;
+	}
+
+	public void setModifyTime(Date modifyTime) {
+		this.modifyTime = modifyTime;
+	}
+
+	public Short getVersion() {
+		return version;
+	}
+
+	public void setVersion(Short version) {
+		this.version = version;
+	}
+
+	public Double getWeight() {
+		return weight;
+	}
+
+	public void setWeight(Double weight) {
+		this.weight = weight;
+	}
+
+}

+ 353 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/ComponentInfoUas.java

@@ -0,0 +1,353 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+public class ComponentInfoUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 器件的uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 版本号
+	 */
+	private Short version;
+
+	/**
+	 * 原厂型号
+	 */
+	private String code;
+
+	/**
+	 * 类目id
+	 */
+	private Long kindid;
+
+	/**
+	 * 品牌id
+	 */
+	private Long brandid;
+
+	/**
+	 * 器件规格
+	 */
+	private String spec;
+
+	/*
+	 * 器件规格
+	 */
+	private String packaging;
+
+	/**
+	 * 器件的标准单位
+	 */
+	private String unit;
+
+	/**
+	 * 单重(g)
+	 */
+	private Float weight;
+
+	/**
+	 * 附件id
+	 */
+	private String attach;
+
+	/**
+	 * 图片path
+	 */
+	private String img;
+
+	/**
+	 * 以下为器件的库存交易属性,由器件对应的上架商品发生变化时,更新反应到器件
+	 */
+
+	/**
+	 * 器件的库存
+	 */
+	private Double reserve;
+
+	/**
+	 * 器件的库存类型
+	 */
+	private Short reserveType;
+
+	/**
+	 * 器件的最低含税单价
+	 */
+	private Double minPrice;
+
+	/**
+	 * 器件的最高含税单价
+	 */
+	private Double maxPrice;
+
+	/**
+	 * 器件的最小起订量
+	 */
+	private Double minBuyQty;
+
+	/**
+	 * 器件最小送货周期
+	 */
+	private Short minDelivery;
+
+	/**
+	 * 器件最大送货周期
+	 */
+	private Short maxDelivery;
+
+	/**
+	 * 交易订单数 - 来自订单表中统计订单数
+	 */
+	private Double orderNumber;
+
+	/**
+	 * 交易数量 - 来自订单表中统计交易数量
+	 */
+	private Double orderQty;
+
+	/**
+	 * 样品数量汇总
+	 */
+	private Double sampleQty;
+
+	/**
+	 * 现货数量
+	 */
+	private Double originalQty;
+
+	/**
+	 * 呆滞库存数量
+	 */
+	private Double inactionStockQty;
+
+	/**
+	 * 呆滞库存数量
+	 */
+	// private Double wastageQty;
+
+	/**
+	 * 器件的品牌
+	 */
+	private BrandInfoUas brand;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public Short getVersion() {
+		return version;
+	}
+
+	public void setVersion(Short version) {
+		this.version = version;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Long getKindid() {
+		return kindid;
+	}
+
+	public void setKindid(Long kindid) {
+		this.kindid = kindid;
+	}
+
+	public Long getBrandid() {
+		return brandid;
+	}
+
+	public void setBrandid(Long brandid) {
+		this.brandid = brandid;
+	}
+
+	public String getSpec() {
+		return spec;
+	}
+
+	public void setSpec(String spec) {
+		this.spec = spec;
+	}
+
+	public String getPackaging() {
+		return packaging;
+	}
+
+	public void setPackaging(String packaging) {
+		this.packaging = packaging;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public Float getWeight() {
+		return weight;
+	}
+
+	public void setWeight(Float weight) {
+		this.weight = weight;
+	}
+
+	public String getAttach() {
+		return attach;
+	}
+
+	public void setAttach(String attach) {
+		this.attach = attach;
+	}
+
+	public String getImg() {
+		return img;
+	}
+
+	public void setImg(String img) {
+		this.img = img;
+	}
+
+	public Double getReserve() {
+		return reserve;
+	}
+
+	public void setReserve(Double reserve) {
+		this.reserve = reserve;
+	}
+
+	public Short getReserveType() {
+		return reserveType;
+	}
+
+	public void setReserveType(Short reserveType) {
+		this.reserveType = reserveType;
+	}
+
+	public Double getMinPrice() {
+		return minPrice;
+	}
+
+	public void setMinPrice(Double minPrice) {
+		this.minPrice = minPrice;
+	}
+
+	public Double getMaxPrice() {
+		return maxPrice;
+	}
+
+	public void setMaxPrice(Double maxPrice) {
+		this.maxPrice = maxPrice;
+	}
+
+	public Double getMinBuyQty() {
+		return minBuyQty;
+	}
+
+	public void setMinBuyQty(Double minBuyQty) {
+		this.minBuyQty = minBuyQty;
+	}
+
+	public Short getMinDelivery() {
+		return minDelivery;
+	}
+
+	public void setMinDelivery(Short minDelivery) {
+		this.minDelivery = minDelivery;
+	}
+
+	public Short getMaxDelivery() {
+		return maxDelivery;
+	}
+
+	public void setMaxDelivery(Short maxDelivery) {
+		this.maxDelivery = maxDelivery;
+	}
+
+	public Double getOrderNumber() {
+		return orderNumber;
+	}
+
+	public void setOrderNumber(Double orderNumber) {
+		this.orderNumber = orderNumber;
+	}
+
+	public Double getOrderQty() {
+		return orderQty;
+	}
+
+	public void setOrderQty(Double orderQty) {
+		this.orderQty = orderQty;
+	}
+
+	public Double getSampleQty() {
+		return sampleQty;
+	}
+
+	public void setSampleQty(Double sampleQty) {
+		this.sampleQty = sampleQty;
+	}
+
+	public Double getOriginalQty() {
+		return originalQty;
+	}
+
+	public void setOriginalQty(Double originalQty) {
+		this.originalQty = originalQty;
+	}
+
+	public Double getInactionStockQty() {
+		return inactionStockQty;
+	}
+
+	public void setInactionStockQty(Double inactionStockQty) {
+		this.inactionStockQty = inactionStockQty;
+	}
+
+	// public Double getWastageQty() {
+	// return wastageQty;
+	// }
+	//
+	// public void setWastageQty(Double wastageQty) {
+	// this.wastageQty = wastageQty;
+	// }
+
+	public BrandInfoUas getBrand() {
+		return brand;
+	}
+
+	public void setBrand(BrandInfoUas brand) {
+		this.brand = brand;
+	}
+}

+ 283 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/ComponentSubmitUas.java

@@ -0,0 +1,283 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+import java.util.Set;
+
+public class ComponentSubmitUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+
+	/**
+	 * 标准器件唯一标识符UUID
+	 */
+	private String uuid;
+
+	/**
+	 * 原厂型号
+	 */
+	private String code;
+
+	/**
+	 * 封装规格
+	 */
+	private String packaging;
+
+	/**
+	 * 品牌id
+	 */
+	private Long brandid;
+
+	/**
+	 * 品牌名(可以中英文名)
+	 */
+	private String brandName;
+
+
+	/**
+	 * 类目id
+	 */
+	private Long kindid;
+
+	/**
+	 * 类目中文名
+	 */
+	private String kindNameCn;
+
+	/**
+	 * 图片path
+	 */
+	private String img;
+
+	/**
+	 * 详细描述
+	 */
+	private String description;
+
+	/**
+	 * 状态(100 在录入,311 申请中,103 未通过, 104 已通过)
+	 */
+	private Integer status;
+
+	/**
+	 * 审批人uu
+	 */
+	private Long audityuu;
+
+	/**
+	 * 审批意见
+	 */
+	private String auditOpinion;
+
+	/**
+	 * 即时通IMid
+	 */
+	private Long imid;
+
+	/**
+	 * 版本号
+	 */
+	private Short version;
+
+	/**
+	 * 净重
+	 */
+	private Float weight;
+
+	/**
+	 * 单位
+	 */
+	private String unit;
+
+	/**
+	 * 附件
+	 */
+	private String attach;
+
+	/**
+	 * 申请人uu
+	 */
+	private Long modifyuu;
+
+	/**
+	 * 申请人企业uu
+	 */
+	private Long modifyenuu;
+
+	/**
+	 * 器件属性
+	 */
+	private Set<PropertySubmitUas> properties;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getPackaging() {
+		return packaging;
+	}
+
+	public void setPackaging(String packaging) {
+		this.packaging = packaging;
+	}
+
+	public Long getBrandid() {
+		return brandid;
+	}
+
+	public void setBrandid(Long brandid) {
+		this.brandid = brandid;
+	}
+
+	public String getBrandName() {
+		return brandName;
+	}
+
+	public void setBrandName(String brandName) {
+		this.brandName = brandName;
+	}
+
+	public Long getKindid() {
+		return kindid;
+	}
+
+	public void setKindid(Long kindid) {
+		this.kindid = kindid;
+	}
+
+	public String getKindNameCn() {
+		return kindNameCn;
+	}
+
+	public void setKindNameCn(String kindNameCn) {
+		this.kindNameCn = kindNameCn;
+	}
+
+	public String getImg() {
+		return img;
+	}
+
+	public void setImg(String img) {
+		this.img = img;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Long getImid() {
+		return imid;
+	}
+
+	public void setImid(Long imid) {
+		this.imid = imid;
+	}
+
+	public Short getVersion() {
+		return version;
+	}
+
+	public void setVersion(Short version) {
+		this.version = version;
+	}
+
+	public Long getAudityuu() {
+		return audityuu;
+	}
+
+	public void setAudityuu(Long audityuu) {
+		this.audityuu = audityuu;
+	}
+
+	public String getAuditOpinion() {
+		return auditOpinion;
+	}
+
+	public void setAuditOpinion(String auditOpinion) {
+		this.auditOpinion = auditOpinion;
+	}
+
+	public Long getModifyuu() {
+		return modifyuu;
+	}
+
+	public void setModifyuu(Long modifyuu) {
+		this.modifyuu = modifyuu;
+	}
+
+	public Long getModifyenuu() {
+		return modifyenuu;
+	}
+
+	public void setModifyenuu(Long modifyenuu) {
+		this.modifyenuu = modifyenuu;
+	}
+
+	public Set<PropertySubmitUas> getProperties() {
+		return properties;
+	}
+
+	public void setProperties(Set<PropertySubmitUas> properties) {
+		this.properties = properties;
+	}
+
+	public Float getWeight() {
+		return weight;
+	}
+
+	public void setWeight(Float weight) {
+		this.weight = weight;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public String getAttach() {
+		return attach;
+	}
+
+	public void setAttach(String attach) {
+		this.attach = attach;
+	}
+}

+ 112 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/ComponentSubmitUasInfo.java

@@ -0,0 +1,112 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+public class ComponentSubmitUasInfo implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+
+	/**
+	 * 标准器件唯一标识符UUID
+	 */
+	private String uuid;
+
+	/**
+	 * 原厂型号
+	 */
+	private String code;
+
+	/**
+	 * 品牌id
+	 */
+	private Long brandid;
+
+	/**
+	 * 类目id
+	 */
+	private Long kindid;
+
+	/**
+	 * 图片path
+	 */
+	private String img;
+
+	/**
+	 * 状态(100 在录入,311 申请中,103 未通过, 104 已通过)
+	 */
+	private Integer status;
+
+	/**
+	 * 审批意见
+	 */
+	private String auditOpinion;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Long getBrandid() {
+		return brandid;
+	}
+
+	public void setBrandid(Long brandid) {
+		this.brandid = brandid;
+	}
+
+	public Long getKindid() {
+		return kindid;
+	}
+
+	public void setKindid(Long kindid) {
+		this.kindid = kindid;
+	}
+
+	public String getImg() {
+		return img;
+	}
+
+	public void setImg(String img) {
+		this.img = img;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getAuditOpinion() {
+		return auditOpinion;
+	}
+
+	public void setAuditOpinion(String auditOpinion) {
+		this.auditOpinion = auditOpinion;
+	}
+}

+ 157 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/EnterpriseUas.java

@@ -0,0 +1,157 @@
+/*CopyRright (c)2014: <www.usoftchina.com>
+ */
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 企业信息
+ * 
+ * @author yingp
+ */
+public class EnterpriseUas implements Serializable {
+
+	private static final long serialVersionUID = 5007688949472876505L;
+
+	private Long uu;
+	/**
+	 * 公司名称
+	 */
+	private String enName;
+	/**
+	 * 简称
+	 */
+	private String enShortname;
+	/**
+	 * 公司类型
+	 */
+	private String enType;
+	/**
+	 * 企业注册地区
+	 */
+	private String enArea;
+	/**
+	 * 注册地址
+	 */
+	private String enAddress;
+	/**
+	 * 默认送货地址
+	 */
+	private String enDeliverAddr;
+	/**
+	 * 公司电话
+	 */
+	private String enTel;
+	/**
+	 * 传真
+	 */
+	private String enFax;
+	/**
+	 * 公司邮箱
+	 */
+	private String enEmail;
+	/**
+	 * 商业登记证号
+	 */
+	private String enBussinessCode;
+	/**
+	 * 所属行业
+	 */
+	private String enIndustry;
+
+	public Long getUu() {
+		return uu;
+	}
+
+	public void setUu(Long uu) {
+		this.uu = uu;
+	}
+
+	public String getEnName() {
+		return enName;
+	}
+
+	public void setEnName(String enName) {
+		this.enName = enName;
+	}
+
+	public String getEnShortname() {
+		return enShortname;
+	}
+
+	public void setEnShortname(String enShortname) {
+		this.enShortname = enShortname;
+	}
+
+	public String getEnType() {
+		return enType;
+	}
+
+	public void setEnType(String enType) {
+		this.enType = enType;
+	}
+
+	public String getEnArea() {
+		return enArea;
+	}
+
+	public void setEnArea(String enArea) {
+		this.enArea = enArea;
+	}
+
+	public String getEnAddress() {
+		return enAddress;
+	}
+
+	public void setEnAddress(String enAddress) {
+		this.enAddress = enAddress;
+	}
+
+	public String getEnDeliverAddr() {
+		return enDeliverAddr;
+	}
+
+	public void setEnDeliverAddr(String enDeliverAddr) {
+		this.enDeliverAddr = enDeliverAddr;
+	}
+
+	public String getEnTel() {
+		return enTel;
+	}
+
+	public void setEnTel(String enTel) {
+		this.enTel = enTel;
+	}
+
+	public String getEnFax() {
+		return enFax;
+	}
+
+	public void setEnFax(String enFax) {
+		this.enFax = enFax;
+	}
+
+	public String getEnEmail() {
+		return enEmail;
+	}
+
+	public void setEnEmail(String enEmail) {
+		this.enEmail = enEmail;
+	}
+
+	public String getEnBussinessCode() {
+		return enBussinessCode;
+	}
+
+	public void setEnBussinessCode(String enBussinessCode) {
+		this.enBussinessCode = enBussinessCode;
+	}
+
+	public String getEnIndustry() {
+		return enIndustry;
+	}
+
+	public void setEnIndustry(String enIndustry) {
+		this.enIndustry = enIndustry;
+	}
+}

+ 88 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/ExpressPriceUas.java

@@ -0,0 +1,88 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+public class ExpressPriceUas implements Serializable{
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 7471999295666337457L;
+
+	/**
+	 * 区域,省份、自治区等,必须
+	 */
+	private String area;
+	
+	/**
+	 * 目的地,市级,可选
+	 * 推荐相同价格信息的市级单位以,分隔传入
+	 * 其它流向则默认为null
+	 */
+	private String destination;
+	
+	/**
+	 * 首重,小于或等于1kg,必须
+	 */
+	private Integer initialPrice;
+	
+	/**
+	 * 续重,大于1kg,必须
+	 */
+	private Integer addPrice;
+	
+	/**
+	 * 单价,大于或等于30kg,可选
+	 */
+	private Integer unitPrice;
+	
+	public ExpressPriceUas() {
+	}
+
+	public String getArea() {
+		return area;
+	}
+
+	public void setArea(String area) {
+		this.area = area;
+	}
+
+	public String getDestination() {
+		return destination;
+	}
+
+	public void setDestination(String destination) {
+		this.destination = destination;
+	}
+
+	public Integer getInitialPrice() {
+		return initialPrice;
+	}
+
+	public void setInitialPrice(Integer initialPrice) {
+		this.initialPrice = initialPrice;
+	}
+
+	public Integer getAddPrice() {
+		return addPrice;
+	}
+
+	public void setAddPrice(Integer addPrice) {
+		this.addPrice = addPrice;
+	}
+
+	public Integer getUnitPrice() {
+		return unitPrice;
+	}
+
+	public void setUnitPrice(Integer unitPrice) {
+		this.unitPrice = unitPrice;
+	}
+
+	@Override
+	public String toString() {
+		return "ExpressPriceUas [area=" + area + ", destination=" + destination + ", initialPrice=" + initialPrice
+				+ ", addPrice=" + addPrice + ", unitPrice=" + unitPrice + "]";
+	}
+	
+}

+ 57 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/KindPropertyOptionUas.java

@@ -0,0 +1,57 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 类目属性的下拉可选项
+ * 
+ * @author suntg
+ * @since 2016年9月2日下午3:43:51
+ */
+public class KindPropertyOptionUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 值项
+	 */
+	private String option;
+
+	/**
+	 * 排序序号
+	 */
+	private Short detno;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getOption() {
+		return option;
+	}
+
+	public void setOption(String option) {
+		this.option = option;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+}

+ 149 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/KindPropertyUas.java

@@ -0,0 +1,149 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 类目对应的属性
+ * 
+ * @author suntg
+ * @since 2016年8月19日16:14:35
+ */
+public class KindPropertyUas implements Serializable {
+
+	/**
+	 * 序列号
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 类目id
+	 */
+	private Long kindId;
+
+	/**
+	 * 序号
+	 */
+	private Short detno;
+
+	/**
+	 * 属性id
+	 */
+	private Long propertyId;
+
+	/**
+	 * 属性
+	 */
+	private PropertyUas property;
+
+	/**
+	 * 类型
+	 */
+	private String type;
+
+	/**
+	 * 基准单位
+	 */
+	private String unit;
+
+	/**
+	 * 可选单位
+	 */
+	private List<KindPropertyUnitUas> multiUnits;
+
+	/**
+	 * 下拉可选项
+	 */
+	private List<KindPropertyOptionUas> options;
+
+	/**
+	 * 所有可能值
+	 */
+	private List<String> values;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public PropertyUas getProperty() {
+		return property;
+	}
+
+	public void setProperty(PropertyUas property) {
+		this.property = property;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public Long getKindId() {
+		return kindId;
+	}
+
+	public void setKindId(Long kindId) {
+		this.kindId = kindId;
+	}
+
+	public Long getPropertyId() {
+		return propertyId;
+	}
+
+	public void setPropertyId(Long propertyId) {
+		this.propertyId = propertyId;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public List<KindPropertyUnitUas> getMultiUnits() {
+		return multiUnits;
+	}
+
+	public void setMultiUnits(List<KindPropertyUnitUas> multiUnits) {
+		this.multiUnits = multiUnits;
+	}
+
+	public List<KindPropertyOptionUas> getOptions() {
+		return options;
+	}
+
+	public void setOptions(List<KindPropertyOptionUas> options) {
+		this.options = options;
+	}
+
+	public List<String> getValues() {
+		return values;
+	}
+
+	public void setValues(List<String> values) {
+		this.values = values;
+	}
+
+}

+ 70 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/KindPropertyUnitUas.java

@@ -0,0 +1,70 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 类目属性可选单位
+ * 
+ * @author suntg
+ * @since 2016年9月2日下午3:37:45
+ */
+public class KindPropertyUnitUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 单位
+	 */
+	private String unit;
+
+	/**
+	 * 对于类目属性基准单位的进制
+	 */
+	private Double radix;
+
+	/**
+	 * 排序序号
+	 */
+	private Short detno;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public Double getRadix() {
+		return radix;
+	}
+
+	public void setRadix(Double radix) {
+		this.radix = radix;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+}

+ 145 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/KindUas.java

@@ -0,0 +1,145 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+public class KindUas implements Serializable{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * ID号
+	 */
+	private Long id;
+
+	/**
+	 * 父级类目的id号
+	 */
+	private Long parentid;
+
+	/**
+	 * 是否为叶子类目 1是 0否
+	 */
+	private Short isLeaf;
+
+	/**
+	 * 在父级类目中的排序序号
+	 */
+	private Short detno;
+
+	/**
+	 * 类目的名称
+	 */
+	private String nameCn;
+
+	/**
+	 * 类目的英文名称
+	 */
+	private String nameEn;
+
+	/**
+	 * 类目包含的器件总数,包括其所有子类目下的
+	 */
+	private Long count;
+
+	/**
+	 * 类目的层级,从1开始,1、2、3、4
+	 */
+	private Short level;
+
+	/**
+	 * 器件编号前缀
+	 */
+	private String componentPrefix;
+
+	/**
+	 * 当前器件编号后缀游标
+	 */
+	private Long componentsuffix;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getParentid() {
+		return parentid;
+	}
+
+	public void setParentid(Long parentid) {
+		this.parentid = parentid;
+	}
+
+	public Short getIsLeaf() {
+		return isLeaf;
+	}
+
+	public void setIsLeaf(Short isLeaf) {
+		this.isLeaf = isLeaf;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameEn() {
+		return nameEn;
+	}
+
+	public void setNameEn(String nameEn) {
+		this.nameEn = nameEn;
+	}
+
+	public Long getCount() {
+		return count;
+	}
+
+	public void setCount(Long count) {
+		this.count = count;
+	}
+
+	public Short getLevel() {
+		return level;
+	}
+
+	public void setLevel(Short level) {
+		this.level = level;
+	}
+
+	public String getComponentPrefix() {
+		return componentPrefix;
+	}
+
+	public void setComponentPrefix(String componentPrefix) {
+		this.componentPrefix = componentPrefix;
+	}
+
+	public Long getComponentsuffix() {
+		return componentsuffix;
+	}
+
+	public void setComponentsuffix(Long componentsuffix) {
+		this.componentsuffix = componentsuffix;
+	}
+	
+	
+	
+
+}

+ 134 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/PropertySubmitUas.java

@@ -0,0 +1,134 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 用户提交器件属性值
+ * 
+ * @author suntg
+ * @since 2016年9月2日下午3:50:12
+ */
+public class PropertySubmitUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 属性id
+	 */
+	private Long propertyId;
+
+	/**
+	 * 值
+	 */
+	private String stringValue;
+
+	/**
+	 * 序号
+	 */
+	private Short detno;
+
+	/**
+	 * 数字值
+	 */
+	private Double numberic;
+
+	/**
+	 * 基准单位
+	 */
+	private String unit;
+
+	/**
+	 * 最小值
+	 */
+	private Double min;
+
+	/**
+	 * 最大值
+	 */
+	private Double max;
+
+	/**
+	 * 属性名称
+	 */
+	private String propertyName;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getPropertyId() {
+		return propertyId;
+	}
+
+	public void setPropertyId(Long propertyId) {
+		this.propertyId = propertyId;
+	}
+
+	public String getStringValue() {
+		return stringValue;
+	}
+
+	public void setStringValue(String stringValue) {
+		this.stringValue = stringValue;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public Double getNumberic() {
+		return numberic;
+	}
+
+	public void setNumberic(Double numberic) {
+		this.numberic = numberic;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public Double getMin() {
+		return min;
+	}
+
+	public void setMin(Double min) {
+		this.min = min;
+	}
+
+	public Double getMax() {
+		return max;
+	}
+
+	public void setMax(Double max) {
+		this.max = max;
+	}
+
+	public String getPropertyName() {
+		return propertyName;
+	}
+
+	public void setPropertyName(String propertyName) {
+		this.propertyName = propertyName;
+	}
+}

+ 57 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/PropertyUas.java

@@ -0,0 +1,57 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 标准属性
+ * 
+ * @author suntg
+ * @since 2016年8月19日16:14:27
+ */
+public class PropertyUas implements Serializable {
+
+	/**
+	 * 序列号
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 属性中文名
+	 */
+	private String labelCn;
+
+	/**
+	 * 属性名 英文
+	 */
+	private String labelEn;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getLabelCn() {
+		return labelCn;
+	}
+
+	public void setLabelCn(String labelCn) {
+		this.labelCn = labelCn;
+	}
+
+	public String getLabelEn() {
+		return labelEn;
+	}
+
+	public void setLabelEn(String labelEn) {
+		this.labelEn = labelEn;
+	}
+
+}

+ 52 - 0
src/main/java/com/uas/api/b2c_erp/baisc/model/UserBaseInfoUas.java

@@ -0,0 +1,52 @@
+package com.uas.api.b2c_erp.baisc.model;
+
+import java.io.Serializable;
+
+/**
+ * 只包含最基本的信息,用与跟单据关联展现
+ * @author suntg
+ *
+ */
+public class UserBaseInfoUas implements Serializable {
+
+	private static final long serialVersionUID = 467463862638684249L;
+
+	/**
+	 * 用户名
+	 */
+	private String userName;
+
+	/**
+	 * 用户邮箱地址
+	 */
+	private String userEmail;
+
+	/**
+	 * 用户手机号
+	 */
+	private String userTel;
+
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	public String getUserEmail() {
+		return userEmail;
+	}
+
+	public void setUserEmail(String userEmail) {
+		this.userEmail = userEmail;
+	}
+
+	public String getUserTel() {
+		return userTel;
+	}
+
+	public void setUserTel(String userTel) {
+		this.userTel = userTel;
+	}
+}

+ 33 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/BrandService.java

@@ -0,0 +1,33 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+import java.util.List;
+
+import com.uas.api.b2c_erp.baisc.model.BrandInfoUas;
+import com.uas.api.domain.IPage;
+
+public interface BrandService {
+
+	/**
+	 * 获取所有的品牌
+	 * 
+	 * @return
+	 */
+	public List<BrandInfoUas> getAll();
+
+	/**
+	 * 分页获取品牌信息
+	 * 
+	 * @param page
+	 * @param pageSize
+	 * @return
+	 */
+	public IPage<BrandInfoUas> getPage(int page, int pageSize);
+	
+	/**
+	 * 通过品牌名获取品牌信息
+	 * @param brandNameCn
+	 * @param brandNameEn
+	 * @return
+	 */
+	public List<BrandInfoUas> findByName(String brandNameCn, String brandNameEn);
+}

+ 63 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/BrandSubmitUasService.java

@@ -0,0 +1,63 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+import java.util.List;
+
+import com.uas.api.b2c_erp.baisc.model.BrandSubmitUas;
+import com.uas.api.b2c_erp.baisc.model.BrandSubmitUasInfo;
+import com.uas.api.exception.B2CException;
+
+/**
+ * 品牌申请接口
+ * 
+ * @author wangyc
+ *
+ */
+public interface BrandSubmitUasService {
+
+	/**
+	 * UAS保存品牌申请
+	 * 
+	 * @param brandSubmitUas
+	 * @return
+	 */
+	public List<BrandSubmitUas> save(List<BrandSubmitUas> brandSubmitUass) throws B2CException;
+
+	/**
+	 * UAS审核后提交品牌申请
+	 * 
+	 * @param brandSubmitUass
+	 * @return
+	 */
+	public BrandSubmitUasInfo submit(Long id) throws B2CException;
+
+	/**
+	 * 获取所有申请
+	 * 
+	 * @return
+	 */
+	public List<BrandSubmitUasInfo> findAllSubmit() throws B2CException;
+
+	/**
+	 * 获取单个品牌申请
+	 * 
+	 * @param id
+	 * @return
+	 */
+	public BrandSubmitUas findOne(Long id) throws B2CException;
+
+	/**
+	 * 通过名字获取最新版本品牌信息
+	 * 
+	 * @return
+	 */
+	public BrandSubmitUas findByName(String nameCn, String nameEn) throws B2CException;
+
+	/**
+	 * 通过品牌Uuid获取品牌信息
+	 * 
+	 * @param uuid
+	 * @return
+	 */
+	public BrandSubmitUas findByUuid(String uuid) throws B2CException;
+
+}

+ 56 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/ComponentService.java

@@ -0,0 +1,56 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.uas.api.b2c_erp.baisc.model.ComponentInfoUas;
+import com.uas.api.domain.IPage;
+
+public interface ComponentService {
+
+	/**
+	 * @Tip 对应原接口 sendGetRequest("/api/product/component/list?kindId=?&code=?)
+	 *      查找指定类目下的指定原厂型号器件
+	 */
+	public List<ComponentInfoUas> findComponentInfoUasByCodeAndKindId(Long kindId, String code);
+
+	/**
+	 * 分页查找类目下器件信息
+	 * 
+	 * @Tip 对应原接口
+	 *      sendGetRequest("/api/product/component/list?kindId=?&page=?&count=?)
+	 *      )
+	 * @return
+	 */
+	// public List<ComponentInfoUas> findAllComponentActiveSimpleInfo(int page,
+	// int pageSize, Long kindId, boolean reserve);
+
+	public IPage<ComponentInfoUas> findAllComponentActiveSimpleInfo(int page, int pageSize, Long kindId, boolean reserve);
+
+	/**
+	 * 根据UUIds获取器件摘要
+	 * 
+	 * @Tip 对应原接口 sendGetRequest("/api/product/component/Info/byUuids=?")
+	 * @param uuids
+	 *            (这里可以用","拼接多个uuid)
+	 * @return
+	 */
+	public List<ComponentInfoUas> getSimpleInfoByUuids(String uuids);
+
+	/**
+	 * 按分割字符拆分原厂型号查找
+	 * 
+	 * @Tip 对应原接口 sendGetRequest("/api/product/component?code=?")
+	 * @param code
+	 * @return
+	 */
+	public List<ComponentInfoUas> findByCode(String code);
+
+	/**
+	 * 获取全部封装规格(通过类目id)
+	 * 
+	 * @param kindid
+	 * @return
+	 */
+	public List<Map<String, String>> findPackaging(Long kindid);
+}

+ 55 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/ComponentSubmitUasService.java

@@ -0,0 +1,55 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+import java.util.List;
+
+import com.uas.api.b2c_erp.baisc.model.ComponentSubmitUas;
+import com.uas.api.b2c_erp.baisc.model.ComponentSubmitUasInfo;
+
+/**
+ * 器件申请接口
+ * 
+ * @author wangyc
+ *
+ */
+public interface ComponentSubmitUasService {
+
+	/**
+	 * UAS提交器件申请
+	 * 
+	 * @param componentSubmitUas
+	 * @return
+	 */
+	public List<ComponentSubmitUas> save(List<ComponentSubmitUas> componentSubmitUas);
+
+	/**
+	 * UAS审核后提交器件申请
+	 * 
+	 * @param brandSubmitUass
+	 * @return
+	 */
+	public Integer submit(Long id);
+
+	/**
+	 * 获取全部申请单
+	 * 
+	 * @param componentSubmitUas
+	 * @return
+	 */
+	public List<ComponentSubmitUasInfo> findAll();
+
+	/**
+	 * 获取单个器件申请
+	 * 
+	 * @param id
+	 * @return
+	 */
+	public ComponentSubmitUas findOne(Long id);
+
+	/**
+	 * 通过uuid获取器件信息
+	 * 
+	 * @param uuid
+	 * @return
+	 */
+	public ComponentSubmitUas findByUuid(String uuid);
+}

+ 34 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/ExpressService.java

@@ -0,0 +1,34 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+import java.util.List;
+
+import com.uas.api.b2c_erp.baisc.model.ExpressPriceUas;
+
+public interface ExpressService {
+
+	/**
+	 * 添加或修改运费始发价格信息
+	 * 
+	 * @param expressPrice 运费始发价格信息,区域、首重和续重必填
+	 * @return
+	 */
+	public ExpressPriceUas saveExpressPrice(ExpressPriceUas expressPrice);
+	
+	/**
+	 * 批量添加或修改运费始发价格信息
+	 * 
+	 * @param expressPrices 运费始发价格信息中区域、首重和续重必填
+	 * @return
+	 */
+	public List<ExpressPriceUas> saveExpressPrices(List<ExpressPriceUas> expressPrices);
+	
+	/**
+	 * 根据体积或重量计算运费
+	 * 
+	 * @param address
+	 * @param volume
+	 * @param weight
+	 * @return
+	 */
+	public Double getFreight(String address, Double volume, Double weight);
+}

+ 28 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/FileUploadUasService.java

@@ -0,0 +1,28 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+/**
+ * 处理文件的保存删除
+ * 
+ * @author wangyc
+ *
+ */
+public interface FileUploadUasService {
+
+	/**
+	 * 上传图片 return图片路径
+	 * 
+	 * @param file
+	 * @return
+	 */
+	public String imgUpload(String fileName, byte[] fileBytes);
+
+	/**
+	 * 上传文件 return文件路径
+	 * 
+	 * @param fileName
+	 * @param fileBytes
+	 * @return
+	 */
+	public String fileUpload(String fileName, byte[] fileBytes);
+
+}

+ 54 - 0
src/main/java/com/uas/api/b2c_erp/baisc/service/KindService.java

@@ -0,0 +1,54 @@
+package com.uas.api.b2c_erp.baisc.service;
+
+import com.uas.api.b2c_erp.baisc.model.KindPropertyUas;
+import com.uas.api.b2c_erp.baisc.model.KindUas;
+import com.uas.api.b2c_erp.baisc.model.PropertyUas;
+
+import java.util.List;
+import java.util.Map;
+
+public interface KindService {
+
+	/**
+	 * 商品类目的子类目
+	 * 
+	 * @Tip 对应原接口 sendGetRequest("/api/product/kind/" + parentid + "/children")
+	 * @param parentId
+	 * @return
+	 */
+	List<KindUas> getProductKinds(Long parentId);
+
+	/**
+	 * 根据型号搜索对应所有的当前类目和父级类目(兄弟类目不用)
+	 * 
+	 * @Tip 新增接口
+	 * @param code
+	 * @return
+	 */
+	public Map<String, List<KindUas>> getParentsByCode(String code);
+
+	/**
+	 * 根据类目id获取类目包含的标准属性
+	 * 
+	 * @param kindId
+	 * @return
+	 */
+	public List<PropertyUas> getPropertiesById(Long kindId);
+
+	/**
+	 * 根据类目id获取类目属性
+	 * 
+	 * @param kindId
+	 * @return
+	 */
+	public List<KindPropertyUas> getKindPropertiesById(Long kindId);
+
+	/**
+	 * 根据类目名模糊查询对应所有的当前类目和父级类目(兄弟类目不用)
+	 *
+	 * @param kindCode 类目名
+	 * @return 当前类目和父级类目
+	 */
+	public Map<String, List<KindUas>> getParentsByKindCode(String kindCode);
+
+}

+ 99 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/AcceptNotify.java

@@ -0,0 +1,99 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 收料通知
+ * 
+ * @author yingp
+ *
+ */
+public class AcceptNotify implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * B2C平台发货id(用于回写)
+	 */
+	private long id;
+
+	/**
+	 * 生成时间
+	 */
+	private Date createTime;
+
+	/**
+	 * 采购ID
+	 */
+	private long purchaseId;
+	
+	/**
+	 * 数量
+	 */
+	private Double qty;
+	
+	/**
+	 * 金额合计
+	 */
+	private Double price;
+
+	/**
+	 * 明细表
+	 */
+	private List<AcceptNotifyDetail> notifyDetail;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public long getPurchaseId() {
+		return purchaseId;
+	}
+
+	public void setPurchaseId(long purchaseId) {
+		this.purchaseId = purchaseId;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public List<AcceptNotifyDetail> getNotifyDetail() {
+		return notifyDetail;
+	}
+
+	public void setNotifyDetail(List<AcceptNotifyDetail> notifyDetail) {
+		this.notifyDetail = notifyDetail;
+	}
+	
+	
+}

+ 59 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/AcceptNotifyDetail.java

@@ -0,0 +1,59 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import java.io.Serializable;
+
+/**
+ * 收货通知单明细
+ *
+ * @author aof
+ * @version 2017年8月3日11:15:26 yuj 增加注释
+ */
+public class AcceptNotifyDetail implements Serializable{
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 批次号
+	 * @return
+	 */
+	private String batchcode;
+	
+	/**
+	 * 单价
+	 */
+	private Double price;
+	
+	/**
+	 * 数量
+	 */
+	private Double qty;
+
+	public String getBatchcode() {
+		return batchcode;
+	}
+
+	public void setBatchcode(String batchcode) {
+		this.batchcode = batchcode;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+	
+	
+}

+ 286 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/B2cOrder.java

@@ -0,0 +1,286 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import com.uas.api.b2c_erp.baisc.model.EnterpriseUas;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * UAS需要的属性有 id 记录了平台订单id
+ * 
+ * @author aof
+ * @time 创建时间:2016年6月28日
+ */
+public class B2cOrder implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 2704221965828254418L;
+
+	/**
+	 * 记录了平台订单id
+	 */
+	private Long id;
+
+	/**
+	 * 订单号
+	 */
+	private String orderid;
+
+	/**
+	 * 买方uu
+	 * 
+	 * @Tip 这里因为平台作为中间商,下达订单都看做给平台下达订单
+	 */
+	private Long buyeruu;
+
+	/**
+	 * 买方企业uu
+	 * 
+	 * @Tip 这里因为平台作为中间商,下达订单都看做给平台下达订单
+	 */
+	private Long buyerenuu;
+
+	/**
+	 * 企业卖方uu
+	 * 
+	 * @Tip 这里因为平台作为中间商,下达订单都看做给平台下达订单
+	 */
+	private Long sellerenuu;
+
+	/**
+	 * 卖方企业信息
+	 */
+	private EnterpriseUas sellerEnter;
+
+	/**
+	 * @TODO 是否需要增加此字段 卖家uu 记录卖家UU号,减少查询
+	 */
+
+	/**
+	 * 付款方式
+	 */
+	private Integer paytype;
+
+	/**
+	 * 配送方式
+	 */
+	private Integer deliverytype;
+
+	/**
+	 * 收货地址 这里使用json字符串的形式将收货地址整个存起来
+	 */
+	private String jsonAddress;
+
+	/**
+	 * 快递信息的Id
+	 */
+	private Long lgtId;
+
+	/**
+	 * 订单生成时间
+	 */
+	private Date creattime;
+
+	/**
+	 * 订单状态(1->2->3->4->5->6->7->8->9)
+	 * 
+	 * @Tip 必须严格按照顺序流转 1、TOBECONFIRMED(501, "待确认"), 2、TOBEPAID(503, "待付款"),
+	 *      3、PAID(504, "已付款"), 4、TOBESHIPPED(406, "待出货"), 5、SHIPPINGIN(403,
+	 *      "出货中"), 6、SHIPPED(407, "已出货"), 7、SENDING(408, "发货中"), 8、INBOUND(404,
+	 *      "待收货") 9、RECEIVED(405, "已收货"), 100、UNAVAILABLE(602, "无效的");
+	 */
+	private Integer status;
+
+	/**
+	 * 税金
+	 */
+	private Double taxes;
+
+	/**
+	 * 金额合计(含运费)
+	 */
+	private Double price;
+
+	/**
+	 * 运费
+	 */
+	private Double fare;
+
+	/**
+	 * 币别
+	 */
+	private String currency;
+
+	/**
+	 * 订单类型现货,呆滞库存和废料
+	 */
+	private Integer type;
+
+	/**
+	 * 订单总数量
+	 */
+	private Double qty;
+
+	/**
+	 * 订单明细
+	 */
+	private Set<B2cOrderDetail> orderDetails;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getOrderid() {
+		return orderid;
+	}
+
+	public void setOrderid(String orderid) {
+		this.orderid = orderid;
+	}
+
+	public Long getBuyeruu() {
+		return buyeruu;
+	}
+
+	public void setBuyeruu(Long buyeruu) {
+		this.buyeruu = buyeruu;
+	}
+
+	public Long getBuyerenuu() {
+		return buyerenuu;
+	}
+
+	public void setBuyerenuu(Long buyerenuu) {
+		this.buyerenuu = buyerenuu;
+	}
+
+	public Long getSellerenuu() {
+		return sellerenuu;
+	}
+
+	public void setSellerenuu(Long sellerenuu) {
+		this.sellerenuu = sellerenuu;
+	}
+
+	public EnterpriseUas getSellerEnter() {
+		return sellerEnter;
+	}
+
+	public void setSellerEnter(EnterpriseUas sellerEnter) {
+		this.sellerEnter = sellerEnter;
+	}
+
+	public Integer getPaytype() {
+		return paytype;
+	}
+
+	public void setPaytype(Integer paytype) {
+		this.paytype = paytype;
+	}
+
+	public Integer getDeliverytype() {
+		return deliverytype;
+	}
+
+	public void setDeliverytype(Integer deliverytype) {
+		this.deliverytype = deliverytype;
+	}
+
+	public Double getFare() {
+		return fare;
+	}
+
+	public void setFare(Double fare) {
+		this.fare = fare;
+	}
+
+	public String getJsonAddress() {
+		return jsonAddress;
+	}
+
+	public void setJsonAddress(String jsonAddress) {
+		this.jsonAddress = jsonAddress;
+	}
+
+	public Long getLgtId() {
+		return lgtId;
+	}
+
+	public void setLgtId(Long lgtId) {
+		this.lgtId = lgtId;
+	}
+
+	public Date getCreattime() {
+		if (creattime == null)
+			creattime = new Date();
+		return creattime;
+	}
+
+	public void setCreattime(Date creattime) {
+		this.creattime = creattime;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Double getTaxes() {
+		return taxes;
+	}
+
+	public void setTaxes(Double taxes) {
+		this.taxes = taxes;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Set<B2cOrderDetail> getOrderDetails() {
+		return orderDetails;
+	}
+
+	public void setOrderDetails(Set<B2cOrderDetail> orderDetails) {
+		this.orderDetails = orderDetails;
+	}
+
+}

+ 210 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/B2cOrderDetail.java

@@ -0,0 +1,210 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import java.io.Serializable;
+
+/**
+ *  商城订单明细
+ *
+ * @author aof
+ * @version 2017年8月3日11:11:35 yuj 增加注释
+ */
+public class B2cOrderDetail implements Serializable {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 7222285351044523810L;
+
+	private Long id;
+
+	/**
+	 * 明细序号 detailNO
+	 */
+	private Short detno;
+
+	/**
+	 * 订单明细编号
+	 */
+	private String detailid;
+
+	/**
+	 * 批次号
+	 */
+	private String batchCode;
+
+	/**
+	 * 对应的器件uuid
+	 */
+	private String uuid;
+
+	/**
+	 * ERP物料编号
+	 */
+	private String productCode;
+
+	/**
+	 * 原厂型号
+	 */
+	private String cmpCode;
+
+	/**
+	 * 器件品牌中文名
+	 */
+	private String brandNameCn;
+
+	/**
+	 * 器件品牌英文名
+	 */
+	private String brName;
+
+	/**
+	 * 图片path
+	 */
+	private String img;
+
+	/**
+	 * 单价,单位为元,含税
+	 */
+	private Double unitprice;
+
+	/**
+	 * 数量
+	 */
+	private Double number;
+
+	/**
+	 * 税金
+	 */
+	private Double taxes;
+
+	/**
+	 * 价税总计
+	 */
+	private Double price;
+	
+	/**
+	 * 税率
+	 */
+	private Short tax;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public Short getTax() {
+		return tax;
+	}
+
+	public void setTax(Short tax) {
+		this.tax = tax;
+	}
+
+	public String getDetailid() {
+		return detailid;
+	}
+
+	public void setDetailid(String detailid) {
+		this.detailid = detailid;
+	}
+
+	public String getBatchCode() {
+		return batchCode;
+	}
+
+	public void setBatchCode(String batchCode) {
+		this.batchCode = batchCode;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getProductCode() {
+		return productCode;
+	}
+
+	public void setProductCode(String productCode) {
+		this.productCode = productCode;
+	}
+
+	public String getCmpCode() {
+		return cmpCode;
+	}
+
+	public void setCmpCode(String cmpCode) {
+		this.cmpCode = cmpCode;
+	}
+
+	public String getImg() {
+		return img;
+	}
+
+	public void setImg(String img) {
+		this.img = img;
+	}
+
+	public Double getUnitprice() {
+		return unitprice;
+	}
+
+	public void setUnitprice(Double unitprice) {
+		this.unitprice = unitprice;
+	}
+
+	public Double getNumber() {
+		return number;
+	}
+
+	public void setNumber(Double number) {
+		this.number = number;
+	}
+
+	public Double getTaxes() {
+		return taxes;
+	}
+
+	public void setTaxes(Double taxes) {
+		this.taxes = taxes;
+	}
+
+	public String getBrandNameCn() {
+		return brandNameCn;
+	}
+
+	public void setBrandNameCn(String brandNameCn) {
+		this.brandNameCn = brandNameCn;
+	}
+
+	public String getBrName() {
+		return brName;
+	}
+
+	public void setBrName(String brName) {
+		this.brName = brName;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+}

+ 83 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/Payment.java

@@ -0,0 +1,83 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 付款信息
+ * 
+ * @author yingp
+ * @version 2017年8月3日11:14:09 yuj 增加注释
+ */
+public class Payment implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 付款方银行信息
+	 */
+	private String jsonPament;
+
+	/**
+	 * 图片路径
+	 */
+	private String imgUrl;
+
+	/**
+	 * 总金额
+	 */
+	private Double total;
+
+	/**
+	 * 商城订单号
+	 */
+	private String orderid;
+
+	/**
+	 * 转账的日期
+	 */
+	private Date transferTime;
+
+	public String getJsonPament() {
+		return jsonPament;
+	}
+
+	public void setJsonPament(String jsonPament) {
+		this.jsonPament = jsonPament;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+	public String getImgUrl() {
+		return imgUrl;
+	}
+
+	public void setImgUrl(String imgUrl) {
+		this.imgUrl = imgUrl;
+	}
+
+	public String getOrderid() {
+		return orderid;
+	}
+
+	public void setOrderid(String orderid) {
+		this.orderid = orderid;
+	}
+
+	public Date getTransferTime() {
+		return transferTime;
+	}
+
+	public void setTransferTime(Date transferTime) {
+		this.transferTime = transferTime;
+	}
+}

+ 116 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/Purchase.java

@@ -0,0 +1,116 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 平台对买家提供的采购接口
+ * 
+ * @author yingp
+ * @version 2017年8月3日11:14:42 yuj 增加注释
+ */
+public class Purchase implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 3371576049086615329L;
+
+	/**
+	 * UAS 采购的id
+	 */
+	private long id;
+
+	/**
+	 * 生成时间
+	 * 
+	 */
+	private Date createTime;
+
+	/**
+	 * 收货地址
+	 * 
+	 */
+	private String shipAddress;
+
+	/**
+	 * 税金
+	 */
+	private Double taxes;
+
+	/**
+	 * 价税合计
+	 * 
+	 */
+	private Double total;
+	
+	/**
+	 * 币别信息
+	 */
+	private String currencyName;
+
+	/**
+	 * 采购单明细
+	 */
+	private List<PurchaseDetail> details;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Date getCreateTime() {
+		if (createTime == null)
+			createTime = new Date();
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getShipAddress() {
+		return shipAddress;
+	}
+
+	public void setShipAddress(String shipAddress) {
+		this.shipAddress = shipAddress;
+	}
+
+	public String getCurrencyName() {
+		return currencyName;
+	}
+
+	public void setCurrencyName(String currencyName) {
+		this.currencyName = currencyName;
+	}
+
+	public Double getTaxes() {
+		return taxes;
+	}
+
+	public void setTaxes(Double taxes) {
+		this.taxes = taxes;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+	public List<PurchaseDetail> getDetails() {
+		return details;
+	}
+
+	public void setDetails(List<PurchaseDetail> details) {
+		this.details = details;
+	}
+
+}

+ 114 - 0
src/main/java/com/uas/api/b2c_erp/buyer/model/PurchaseDetail.java

@@ -0,0 +1,114 @@
+package com.uas.api.b2c_erp.buyer.model;
+
+import java.io.Serializable;
+
+/**
+ * 平台对买家提供的采购接口
+ * 
+ * @author yingp
+ * @version 2017年8月3日11:14:58 yuj 增加注释
+ */
+public class PurchaseDetail implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 6131059871909284852L;
+
+	/**
+	 * 采购明细id
+	 */
+	private long id;
+
+	/**
+	 * uas序号
+	 * 
+	 */
+	private Short detno;
+
+	/**
+	 * 商品的批次号
+	 * 
+	 */
+	private String batchCode;
+
+	/**
+	 * 单价
+	 * 
+	 */
+	private Double price;
+
+	/**
+	 * 购买数量
+	 * 
+	 */
+	private Double qty;
+
+	/**
+	 * 税金
+	 */
+	private Double taxes;
+
+	/**
+	 * 价税合计
+	 * 
+	 */
+	private Double total;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public String getBatchCode() {
+		return batchCode;
+	}
+
+	public void setBatchCode(String batchCode) {
+		this.batchCode = batchCode;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getTaxes() {
+		return taxes;
+	}
+
+	public void setTaxes(Double taxes) {
+		this.taxes = taxes;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+}

+ 40 - 0
src/main/java/com/uas/api/b2c_erp/buyer/service/B2cOrderService.java

@@ -0,0 +1,40 @@
+package com.uas.api.b2c_erp.buyer.service;
+
+import com.uas.api.b2c_erp.buyer.model.B2cOrder;
+import com.uas.api.b2c_erp.buyer.model.Payment;
+
+import java.util.List;
+
+/**
+ * 针对erp作为买家的操作
+ *
+ * @version 2017/10/31 15:38 wangyc
+ */
+public interface B2cOrderService {
+
+    /**
+     * 更新采购订单
+     * @return
+     */
+    public List<B2cOrder> getAllOrder();
+
+    /**
+     * 回写已下载采购订单
+     * @param orderids
+     * @return
+     */
+    public boolean backOrder(long[] orderids);
+
+    /**
+     * 确认付款
+     * @param payment
+     */
+    public boolean ensuryPay(Payment payment);
+
+    /**
+     * 确认收货
+     * @param orderid
+     * @return
+     */
+    public String ensury(String orderid);
+}

+ 41 - 0
src/main/java/com/uas/api/b2c_erp/buyer/service/InvoiceNotifyService.java

@@ -0,0 +1,41 @@
+package com.uas.api.b2c_erp.buyer.service;
+
+import com.uas.api.b2c_erp.buyer.model.AcceptNotify;
+
+import java.util.List;
+
+/**
+ * 买家 UAS端获取发货通知
+ *
+ * @author aof
+ * @time 创建时间 :2016年6月24日
+ * @version 2017年8月3日11:16:25 yuj  增加注释
+ */
+public interface InvoiceNotifyService {
+
+    /**
+     * 获取当前企业UU的发货通知单,通知UAS收料
+     *
+     * @return all invoice noitify
+     */
+    public List<AcceptNotify> getAllInvoiceNoitify();
+
+    /**
+     * 回写状态(成功获取并保存UAS发货通知后)
+     *
+     * @param ids the ids
+     */
+    public void backSuccess(long[] ids);
+
+    /**
+     * 确认收料,回写出货单状态
+     *
+     * @param ids the ids
+     */
+    public void agreeInvoice(long[] ids);
+
+    /**
+     * 拒接收料
+     */
+    public void refuseInvoice();
+}

+ 38 - 0
src/main/java/com/uas/api/b2c_erp/buyer/service/PaymentService.java

@@ -0,0 +1,38 @@
+package com.uas.api.b2c_erp.buyer.service;
+
+import com.uas.api.b2c_erp.buyer.model.Payment;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * 付款接口
+ * @author aof
+ * @version 2017年8月3日11:16:50 yuj 增加注释
+ */
+public interface PaymentService {
+
+    /**
+     * 付款(将付款信息、发票信息上传,由平台运维去确认)
+     * <p>
+     * <pre>
+     * 考虑erp买家的其他付款方式,比如直接在平台支付
+     * </pre>
+     *
+     * @param payment 付款单
+     * @param stream  附件文件流
+     */
+    public void pay(Payment payment, InputStream stream);
+
+    /**
+     * 平台审阅了买家的付款单
+     * <p>
+     * <pre>
+     * erp需要用短轮询不断获取;也可以使用消息中间件,平台在审阅时,写入消息;erp监听并获取审阅的结果
+     * </pre>
+     *
+     * @return list
+     */
+    public List<Payment> findAllUnReceived();
+
+}

+ 26 - 0
src/main/java/com/uas/api/b2c_erp/buyer/service/PurchaseService.java

@@ -0,0 +1,26 @@
+package com.uas.api.b2c_erp.buyer.service;
+
+import com.uas.api.b2c_erp.buyer.model.B2cOrder;
+import com.uas.api.b2c_erp.buyer.model.Purchase;
+
+/**
+ * 采购单接口
+ *
+ * @author aof
+ * @version 2017年8月3日11:17:27 yuj 增加注释
+ */
+public interface PurchaseService {
+
+    /**
+     * 上传采购单
+     * <p>
+     * <pre>
+     * erp请购转采购时直接调用即可,也可加个长轮询防止遗漏
+     * </pre>
+     *
+     * @param purchase the purchase
+     * @return the b 2 c order
+     */
+    public B2cOrder save(Purchase purchase);
+
+}

+ 84 - 0
src/main/java/com/uas/api/b2c_erp/core/model/OperateErrorStatus.java

@@ -0,0 +1,84 @@
+package com.uas.api.b2c_erp.core.model;
+
+/** 
+  * @author 作者 :yujia 
+  * @version 创建时间:2016年12月28日 下午3:56:38
+  * 记录操作失败的状态码
+  */
+/**
+  * @author yujia
+  *
+  */
+public enum OperateErrorStatus {
+	/**
+	 * {@code 100  批次不存在}
+	 */
+	GOODS_NOT_EXISTS(100, "该批次不存在"),
+	
+	/**
+	 * {@code 101  该批次已经下架}
+	 */
+	GOODS_DOWNED(101, "该批次已经下架"),
+	
+	/**
+	 * {@code 102  该批次在历史记录库存信息中找到}
+	 */
+	GOODS_HISTORY_FIND(102, "该批次在历史记录库存信息中找到"),
+	
+	/**
+	 * {@code 103  该批次不通过接口上架也不能通过接口下架}
+	 */
+	GOODS_NOT_PUBLISH_UAS(103, "该批次不通过接口上架也不能通过接口下架"),
+	
+	/**
+	 * {@code 104  操作非法,当前的批次不属于当前登录的公司 }
+	 */
+	GOODS_OPERATE_ILLEAGAL(104, "该批次不属于当前的公司");
+	
+	/**
+	  * @Fields 状态码
+	  */
+	private final int value;
+	
+	/**
+	  * @Fields 状态描述
+	  */
+	private final String phrase;
+	
+	private OperateErrorStatus(int value, String phrase) {
+		this.phrase = phrase;
+		this.value = value;
+	}
+
+	public int value() {
+		return this.value;
+	}
+
+	public String getPhrase() {
+		return this.phrase;
+	}
+	
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 */
+	public static OperateErrorStatus valueOf(int statusCode) {
+		for (OperateErrorStatus status : values()) {
+			if (status.value == statusCode) {
+				return status;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
+	}
+	
+	/**
+	 * 返回状态的编号
+	 */
+	@Override
+	public String toString() {
+		return Integer.toString(value);
+	}
+}

+ 359 - 0
src/main/java/com/uas/api/b2c_erp/operation/model/OperationInfoUas.java

@@ -0,0 +1,359 @@
+package com.uas.api.b2c_erp.operation.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 业务操作相关信息
+ * 
+ * @author hejq
+ * @time 创建时间:2016年9月13日
+ */
+public class OperationInfoUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 流水号
+	 */
+	private String smId;
+
+	/**
+	 * 业务代码
+	 */
+	private int serviceCode;
+
+	/**
+	 * 业务名称
+	 */
+	private String ServiceName;
+
+	/**
+	 * 商城业务单据编号
+	 */
+	private String brandCode;
+
+	/**
+	 * 商城业务单据id
+	 */
+	private Long b2cId;
+
+	/**
+	 * UAS业务单据编号
+	 */
+	private String uasCode;
+
+	/**
+	 * UAS业务单据id
+	 */
+	private Long uasId;
+
+	/**
+	 * 业务动作
+	 */
+	private Integer operation;
+
+	/**
+	 * 业务动作结果描述(状态码)
+	 */
+	private Integer operationResult;
+
+	/**
+	 * 备注信息
+	 */
+	private String operationRemark;
+
+	/**
+	 * 产生时间
+	 */
+	private Date operationDate;
+
+	/**
+	 * 发送企业UU
+	 */
+	private Long sendEnUU;
+
+	/**
+	 * 发送企业联系人UU
+	 */
+	private Long sendEmUU;
+
+	/**
+	 * 接收企业UU
+	 */
+	private Long receiveEnUU;
+
+	/**
+	 * 接收企业联系人UU
+	 */
+	private Long receiveEmUU;
+
+	/**
+	 * 下载状态
+	 */
+	private Integer sendStatus;
+
+	/**
+	 * 下载时间
+	 */
+	private Date sendDate;
+
+	/**
+	 * app发送状态
+	 */
+	private Integer appStatus;
+
+	/**
+	 * app发送时间
+	 */
+	private Date appSendDate;
+
+	/**
+	 * email发送状态
+	 */
+	private Integer emailStatus;
+
+	/**
+	 * email发送时间
+	 */
+	private Date emailSendDate;
+
+	/**
+	 * mes发送状态
+	 */
+	private Integer mesStatus;
+
+	/**
+	 * mes发送时间
+	 */
+	private Date mesSendDate;
+
+	/**
+	 * 来源表
+	 */
+	private String tableCaller;
+
+	/**
+	 * UUid
+	 * 
+	 * @return
+	 */
+	private String uuid;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getSmId() {
+		return smId;
+	}
+
+	public void setSmId(String smId) {
+		this.smId = smId;
+	}
+
+	public int getServiceCode() {
+		return serviceCode;
+	}
+
+	public void setServiceCode(int serviceCode) {
+		this.serviceCode = serviceCode;
+	}
+
+	public String getServiceName() {
+		return ServiceName;
+	}
+
+	public void setServiceName(String serviceName) {
+		ServiceName = serviceName;
+	}
+
+	public String getBrandCode() {
+		return brandCode;
+	}
+
+	public void setBrandCode(String brandCode) {
+		this.brandCode = brandCode;
+	}
+
+	public Long getB2cId() {
+		return b2cId;
+	}
+
+	public void setB2cId(Long b2cId) {
+		this.b2cId = b2cId;
+	}
+
+	public String getUasCode() {
+		return uasCode;
+	}
+
+	public void setUasCode(String uasCode) {
+		this.uasCode = uasCode;
+	}
+
+	public Long getUasId() {
+		return uasId;
+	}
+
+	public void setUasId(Long uasId) {
+		this.uasId = uasId;
+	}
+
+	public Integer getOperation() {
+		return operation;
+	}
+
+	public void setOperation(Integer brandOperation) {
+		this.operation = brandOperation;
+	}
+
+	public Integer getOperationResult() {
+		return operationResult;
+	}
+
+	public void setOperationResult(Integer brandOperationResult) {
+		this.operationResult = brandOperationResult;
+	}
+
+	public String getOperationRemark() {
+		return operationRemark;
+	}
+
+	public void setOperationRemark(String brandOperationRemark) {
+		this.operationRemark = brandOperationRemark;
+	}
+
+	public Date getOperationDate() {
+		return operationDate;
+	}
+
+	public void setOperationDate(Date operationDate) {
+		this.operationDate = operationDate;
+	}
+
+	public Long getSendEnUU() {
+		return sendEnUU;
+	}
+
+	public void setSendEnUU(Long sendEnUU) {
+		this.sendEnUU = sendEnUU;
+	}
+
+	public Long getSendEmUU() {
+		return sendEmUU;
+	}
+
+	public void setSendEmUU(Long sendEmUU) {
+		this.sendEmUU = sendEmUU;
+	}
+
+	public Long getReceiveEnUU() {
+		return receiveEnUU;
+	}
+
+	public void setReceiveEnUU(Long receiveEnUU) {
+		this.receiveEnUU = receiveEnUU;
+	}
+
+	public Long getReceiveEmUU() {
+		return receiveEmUU;
+	}
+
+	public void setReceiveEmUU(Long receiveEmUU) {
+		this.receiveEmUU = receiveEmUU;
+	}
+
+	public Integer getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Integer sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public Date getSendDate() {
+		return sendDate;
+	}
+
+	public void setSendDate(Date sendDate) {
+		this.sendDate = sendDate;
+	}
+
+	public Integer getAppStatus() {
+		return appStatus;
+	}
+
+	public void setAppStatus(Integer appStatus) {
+		this.appStatus = appStatus;
+	}
+
+	public Date getAppSendDate() {
+		return appSendDate;
+	}
+
+	public void setAppSendDate(Date appSendDate) {
+		this.appSendDate = appSendDate;
+	}
+
+	public Integer getEmailStatus() {
+		return emailStatus;
+	}
+
+	public void setEmailStatus(Integer emailStatus) {
+		this.emailStatus = emailStatus;
+	}
+
+	public Date getEmailSendDate() {
+		return emailSendDate;
+	}
+
+	public void setEmailSendDate(Date emailSendDate) {
+		this.emailSendDate = emailSendDate;
+	}
+
+	public Integer getMesStatus() {
+		return mesStatus;
+	}
+
+	public void setMesStatus(Integer mesStatus) {
+		this.mesStatus = mesStatus;
+	}
+
+	public Date getMesSendDate() {
+		return mesSendDate;
+	}
+
+	public void setMesSendDate(Date mesSendDate) {
+		this.mesSendDate = mesSendDate;
+	}
+
+	public String getTableCaller() {
+		return tableCaller;
+	}
+
+	public void setTableCaller(String tableCaller) {
+		this.tableCaller = tableCaller;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+}

+ 27 - 0
src/main/java/com/uas/api/b2c_erp/operation/service/OperationInfoUasService.java

@@ -0,0 +1,27 @@
+package com.uas.api.b2c_erp.operation.service;
+
+import com.uas.api.b2c_erp.operation.model.OperationInfoUas;
+
+import java.util.List;
+
+/**
+ * The interface Operation info uas service.
+ */
+public interface OperationInfoUasService {
+
+	/**
+	 * 根据业务代码获取对应业务信息
+	 *
+	 * @param servicecode the servicecode
+	 * @return submit
+	 */
+	public List<OperationInfoUas> getSubmit(Integer servicecode);
+
+	/**
+	 * 根据传过来的id进行状态更改
+	 *
+	 * @param ids the ids
+	 * @return string [ ]
+	 */
+	public String[] updateSendStatus(String ids);
+}

+ 69 - 0
src/main/java/com/uas/api/b2c_erp/search/service/SearchService.java

@@ -0,0 +1,69 @@
+package com.uas.api.b2c_erp.search.service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 器件搜索相关服务
+ * 
+ * @author suntg
+ * @since 2016年8月30日下午5:26:03
+ */
+public interface SearchService {
+
+	/**
+	 * 根据关键词获取联想品牌
+	 * 
+	 * @param keyword
+	 * @return map:包括id、uuid、nameCn、nameEn
+	 */
+	public List<Map<String, Object>> getAssociateBrands(String keyword);
+
+	/**
+	 * 根据关键词获取联想器件
+	 * 
+	 * @param keyword
+	 * @return map:包括id、uuid、code
+	 */
+	public List<Map<String, Object>> getAssoicateComponents(String keyword);
+
+	/**
+	 * 根据关键词获取联想类目
+	 * 
+	 * @param keyword
+	 * @return map:包括id、nameCn
+	 */
+	public List<Map<String, Object>> getAssoicateKinds(String keyword);
+
+	/**
+	 * 根据指定级别获取联想类目
+	 * 
+	 * @param kindName
+	 * @param level
+	 * @return
+	 */
+	public List<Map<String, Object>> getAssoicateKindsByLevel(String kindName, Short level);
+
+	/**
+	 * 根据输入的类目名获取末级类目联想词
+	 * 
+	 * @param kindName
+	 * @return
+	 */
+	public List<Map<String, Object>> getAssoicateLeafKinds(String kindName);
+
+	/**
+	 * 根据关键词获取联想 器件属性值(默认数量20个)
+	 * 
+	 * @param kindId
+	 *            类目id
+	 * @param propertyId
+	 *            属性id
+	 * @param keyword
+	 *            关键词
+	 * @param topNum
+	 *            最大显示数量(可选)
+	 * @return
+	 */
+	public List<Map<String, String>> getAssoicatePropertyValues(Long kindId, Long propertyId, String keyword, Long topNum);
+}

+ 87 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/Address.java

@@ -0,0 +1,87 @@
+package com.uas.api.b2c_erp.seller.model;
+
+/** 
+  * @author yujia 
+  * @version 创建时间:2016年8月10日 下午2:36:05 
+  * b2c-erp信息传输的地址信息
+  */
+public class Address {
+	
+	/**
+	 * 姓名
+	 */
+	private String name;
+
+	/**
+	 * 地区
+	 */
+	private String area;
+
+	/**
+	 * 详细地址
+	 */
+	private String detailAddress;
+
+	/**
+	 * 联系人电话
+	 */
+	private String tel;
+
+	/**
+	 * 联系人邮箱
+	 */
+	private String email;
+
+	/**
+	 * 关联企业UU
+	 */
+	private Long enuu;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getArea() {
+		return area;
+	}
+
+	public void setArea(String area) {
+		this.area = area;
+	}
+
+	public String getDetailAddress() {
+		return detailAddress;
+	}
+
+	public void setDetailAddress(String detailAddress) {
+		this.detailAddress = detailAddress;
+	}
+
+	public String getTel() {
+		return tel;
+	}
+
+	public void setTel(String tel) {
+		this.tel = tel;
+	}
+
+	public String getEmail() {
+		return email;
+	}
+
+	public void setEmail(String email) {
+		this.email = email;
+	}
+
+	public Long getEnuu() {
+		return enuu;
+	}
+
+	public void setEnuu(Long enuu) {
+		this.enuu = enuu;
+	}
+}

+ 108 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/BankInfoERP.java

@@ -0,0 +1,108 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 银行账户信息
+ * @Date 2017年11月10日13:43:32
+ * @author wangyc
+ */
+public class BankInfoERP implements Serializable{
+
+	/**
+	 * s
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 录erp科目编号
+	 */
+	private String erpNum;
+
+	/**
+	 * 企业uu
+	 */
+	private Long enuu;
+	
+	/**
+	 * 开户行名称
+	 */
+	private String bankname;
+	
+	/**
+	 * 开户名
+	 */
+	private String accountname;
+	
+	/**
+	 * 账号
+	 */
+	private String number;
+	
+	/**
+	 * 银行卡支持币别
+	 */
+	private String currency;
+
+	/**
+	 * 创建的时间
+	 */
+	private Date createTime;
+
+	public String getErpNum() {
+		return erpNum;
+	}
+
+	public void setErpNum(String erpNum) {
+		this.erpNum = erpNum;
+	}
+
+	public Long getEnuu() {
+		return enuu;
+	}
+
+	public void setEnuu(Long enuu) {
+		this.enuu = enuu;
+	}
+
+	public String getBankname() {
+		return bankname;
+	}
+
+	public void setBankname(String bankname) {
+		this.bankname = bankname;
+	}
+
+	public String getAccountname() {
+		return accountname;
+	}
+
+	public void setAccountname(String accountname) {
+		this.accountname = accountname;
+	}
+
+	public String getNumber() {
+		return number;
+	}
+
+	public void setNumber(String number) {
+		this.number = number;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+}

+ 48 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/GoodsFUas.java

@@ -0,0 +1,48 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+/**
+ * 上架商品的信息(接口返回专用)
+ * 
+ */
+public class GoodsFUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1258458816376356126L;
+
+	/**
+	 * 批次号
+	 */
+	private String batchCode;
+
+	/**
+	 * 唯一标识,用于接口调用
+	 * 
+	 * @example UAS里面上架申请单商品明细ID
+	 */
+	private Long sourceId;
+
+	public String getBatchCode() {
+		return batchCode;
+	}
+
+	public void setBatchCode(String batchCode) {
+		this.batchCode = batchCode;
+	}
+
+	public Long getSourceId() {
+		return sourceId;
+	}
+
+	public void setSourceId(Long sourceId) {
+		this.sourceId = sourceId;
+	}
+
+	public GoodsFUas() {
+
+	}
+
+}

+ 124 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/GoodsPriceUas.java

@@ -0,0 +1,124 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+/**
+ * 卖家商品价格信息
+ * 
+ * @author huxz
+ */
+public class GoodsPriceUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -8686552326403323059L;
+
+	/**
+	 * 对应的器件uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 币种名称
+	 */
+	private String currencyName;
+
+	/**
+	 * 税率
+	 */
+	private Short tax;
+
+	/**
+	 * 是否原厂原装,1311 现货,1312 呆滞库存,(暂时不用)1313 废料
+	 */
+	private Integer original = 1311;
+
+	/**
+	 * 未税价格,单位为元
+	 */
+	private Double price;
+
+	/**
+	 * 最小包装量
+	 */
+	private Double minPackQty;
+
+	/**
+	 * 最小起订量
+	 */
+	private Double minBuyQty;
+
+	/**
+	 * 价格调整幅度,-100~+100之间,可以为小数
+	 */
+	private Float range;
+
+	public GoodsPriceUas() {
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getCurrencyName() {
+		return currencyName;
+	}
+
+	public void setCurrencyName(String currencyName) {
+		this.currencyName = currencyName;
+	}
+
+	public Short getTax() {
+		return tax;
+	}
+
+	public void setTax(Short tax) {
+		this.tax = tax;
+	}
+
+	public Integer getOriginal() {
+		return original;
+	}
+
+	public void setOriginal(Integer original) {
+		this.original = original;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Float getRange() {
+		return range;
+	}
+
+	public void setRange(Float range) {
+		this.range = range;
+	}
+
+	public Double getMinBuyQty() {
+		return minBuyQty;
+	}
+
+	public void setMinBuyQty(Double minBuyQty) {
+		this.minBuyQty = minBuyQty;
+	}
+
+	public Double getMinPackQty() {
+		return minPackQty;
+	}
+
+	public void setMinPackQty(Double minPackQty) {
+		this.minPackQty = minPackQty;
+	}
+
+}

+ 120 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/GoodsQtyPriceUas.java

@@ -0,0 +1,120 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+/**
+ * 商品分段数量价格
+ * 
+ */
+public class GoodsQtyPriceUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 6337733212178845336L;
+
+	/**
+	 * 起始数量
+	 */
+	private Double start;
+
+	/**
+	 * 截止数量
+	 */
+	private Double end;
+
+	/**
+	 * 人民币含税价格(默认含税17%),单位元
+	 */
+	private Double RMBPrice;
+
+	/**
+	 * 人民币未税价格,单位元
+	 */
+	private Double RMBNTPrice;
+
+	/**
+	 * 美元价含税格(默认含税0%),单位美元
+	 */
+	private Double USDPrice;
+
+	/**
+	 * 美元未税价格,单位美元
+	 */
+	private Double USDNTPrice;
+	
+	// price和taxprice作兼容使用
+	/**
+	 * 未税价格,单位为元
+	 */
+	private Double price;
+
+	/**
+	 * 含税价格,单位为元
+	 */
+	private Double taxPrice;
+
+	public Double getStart() {
+		return start;
+	}
+
+	public void setStart(Double start) {
+		this.start = start;
+	}
+
+	public Double getEnd() {
+		return end;
+	}
+
+	public void setEnd(Double end) {
+		this.end = end;
+	}
+
+	public Double getRMBPrice() {
+		return RMBPrice;
+	}
+
+	public void setRMBPrice(Double RMBPrice) {
+		this.RMBPrice = RMBPrice;
+	}
+
+	public Double getRMBNTPrice() {
+		return RMBNTPrice;
+	}
+
+	public void setRMBNTPrice(Double RMBNTPrice) {
+		this.RMBNTPrice = RMBNTPrice;
+	}
+
+	public Double getUSDPrice() {
+		return USDPrice;
+	}
+
+	public void setUSDPrice(Double USDPrice) {
+		this.USDPrice = USDPrice;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Double getTaxPrice() {
+		return taxPrice;
+	}
+
+	public void setTaxPrice(Double taxPrice) {
+		this.taxPrice = taxPrice;
+	}
+
+	public Double getUSDNTPrice() {
+		return USDNTPrice;
+	}
+
+	public void setUSDNTPrice(Double USDNTPrice) {
+		this.USDNTPrice = USDNTPrice;
+	}
+}

+ 459 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/GoodsSimpleUas.java

@@ -0,0 +1,459 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import com.uas.api.crypto.util.FlexJsonUtils;
+import com.uas.api.exception.B2CException;
+import org.springframework.util.StringUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 上架商品的简单信息
+ * 
+ */
+public class GoodsSimpleUas implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1642382062617924018L;
+
+	/**
+	 * 批次号
+	 */
+	private String batchCode;
+
+	/**
+	 * 
+	 */
+	private Long sourceId;
+
+	/**
+	 * 交期(天)
+	 */
+	private Short deliveryTime;
+
+	/**
+	 * 产品生产日期
+	 */
+	private String produceDate;
+
+	/**
+	 * 创建日期
+	 */
+	private Date createdDate;
+
+	/**
+	 * 库存
+	 */
+	private Double reserve;
+
+	/**
+	 * 最小包装量
+	 */
+	private Double minPackQty;
+
+	/**
+	 * 器件uuid
+	 */
+	private String uuid;
+
+	/**
+	 * 发布备注
+	 */
+	private String remark;
+
+	/**
+	 * 最小起订量
+	 */
+	private Double minBuyQty;
+
+	/**
+	 * 含税分段报价(List)
+	 */
+	private List<GoodsQtyPriceUas> prices;
+
+	/**
+	 * 如果没有分段,可以简单设置一个含税单价price,getPrices方法会返回从0~{@code reserve}的分段价格
+	 */
+	private Double price;
+
+	/**
+	 * 分段报价(JSON串) eg:[{"start":0,"end":1000,"price":2.3,"taxPrice":2.5},...]
+	 */
+	private String qtyPrice;
+
+	/**
+	 * 库存类型, 现货 1311,呆滞库存 1312 ,(暂时不用) 废料 1313
+	 */
+	private Integer original;
+
+	/**
+	 * 供应商上架的样品数量(总数)
+	 */
+	private Double sampleQty;
+
+	/**
+	 * 币种名称
+	 */
+	private String currencyName;
+
+	/**
+	 * 是否支持7天无理由退货,1:支持,0:不支持
+	 */
+	private Short returnInWeek;
+
+	/**
+	 * 变更之前的原数量
+	 */
+	private Double oldReserve;
+	
+	/**
+	 * 大陆交期[供应商送平台的时间]
+	 */
+	private Short deliveryDemTime;
+	
+	/**
+	 * 香港交期[供应商送平台的时间]
+	 */
+	private Short deliveryHKTime;
+
+	/**
+	 * 货到香港交期最短,
+	 * 这边设置自己的香港最小交货时间
+	 */
+	private Short b2cDeliveryHKMinTime;
+
+	/**
+	 * 货到香港交期最长
+	 * 这边设置自己的香港最大交货时间
+	 */
+	private Short b2cDeliveryHKMaxTime;
+
+	/**
+	 * 货到大陆交期最短
+	 * 这边设置自己的国内最小交货时间
+	 */
+	private Short b2cDeliveryDemMinTime;
+
+	/**
+	 * 货到大陆交期最长
+	 * 这边设置自己的国内最大交货时间
+	 */
+	private Short b2cDeliveryDemMaxTime;
+	
+	/**
+	 * 产品型号
+	 */
+	private String code;
+	
+	/**
+	 * 单位
+	 */
+	private String unit;
+	
+	/**
+	 * 包装
+	 */
+	private String packaging;
+	
+	/**
+	 * 发布人
+	 */
+	private String publishName;
+	
+	/**
+	 * 发布人电话
+	 */
+	private String publishPhone;
+
+	/**
+	 * 是否是自营还是寄售
+	 * 1寄售,0 自营
+	 */
+	private Short isMallSale;
+
+	public Long getSourceId() {
+		return sourceId;
+	}
+
+	public void setSourceId(Long sourceId) {
+		this.sourceId = sourceId;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getPublishName() {
+		return publishName;
+	}
+
+	public void setPublishName(String publishName) {
+		this.publishName = publishName;
+	}
+
+	public String getPublishPhone() {
+		return publishPhone;
+	}
+
+	public void setPublishPhone(String publishPhone) {
+		this.publishPhone = publishPhone;
+	}
+
+	public Short getB2cDeliveryHKMinTime() {
+		return b2cDeliveryHKMinTime;
+	}
+
+	public void setB2cDeliveryHKMinTime(Short b2cDeliveryHKMinTime) {
+		this.b2cDeliveryHKMinTime = b2cDeliveryHKMinTime;
+	}
+
+	public Short getB2cDeliveryHKMaxTime() {
+		return b2cDeliveryHKMaxTime;
+	}
+
+	public void setB2cDeliveryHKMaxTime(Short b2cDeliveryHKMaxTime) {
+		this.b2cDeliveryHKMaxTime = b2cDeliveryHKMaxTime;
+	}
+
+	public Short getB2cDeliveryDemMinTime() {
+		return b2cDeliveryDemMinTime;
+	}
+
+	public void setB2cDeliveryDemMinTime(Short b2cDeliveryDemMinTime) {
+		this.b2cDeliveryDemMinTime = b2cDeliveryDemMinTime;
+	}
+
+	public Short getB2cDeliveryDemMaxTime() {
+		return b2cDeliveryDemMaxTime;
+	}
+
+	public void setB2cDeliveryDemMaxTime(Short b2cDeliveryDemMaxTime) {
+		this.b2cDeliveryDemMaxTime = b2cDeliveryDemMaxTime;
+	}
+
+	public Short getDeliveryDemTime() {
+		return deliveryDemTime;
+	}
+
+	public void setDeliveryDemTime(Short deliveryDemTime) {
+		this.deliveryDemTime = deliveryDemTime;
+	}
+
+	public Short getDeliveryHKTime() {
+		return deliveryHKTime;
+	}
+
+	public void setDeliveryHKTime(Short deliveryHKTime) {
+		this.deliveryHKTime = deliveryHKTime;
+	}
+
+	public String getPackaging() {
+		return packaging;
+	}
+
+	public void setPackaging(String packaging) {
+		this.packaging = packaging;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getBatchCode() {
+		return batchCode;
+	}
+
+	public void setBatchCode(String batchCode) {
+		this.batchCode = batchCode;
+	}
+
+	public Short getDeliveryTime() {
+		return deliveryTime;
+	}
+
+	public void setDeliveryTime(Short deliveryTime) {
+		this.deliveryTime = deliveryTime;
+	}
+
+	public String getProduceDate() {
+		if (produceDate == null)
+			produceDate = "";
+		return produceDate;
+	}
+
+	public void setProduceDate(String produceDate) {
+		this.produceDate = produceDate;
+	}
+
+	public Date getCreatedDate() {
+		if (createdDate == null)
+			createdDate = new Date();
+		return createdDate;
+	}
+
+	public void setCreatedDate(Date createdDate) {
+		this.createdDate = createdDate;
+	}
+
+	public Double getReserve() {
+		return reserve;
+	}
+
+	public void setReserve(Double reserve) {
+		this.reserve = reserve;
+	}
+
+	public Double getMinPackQty() {
+		return minPackQty;
+	}
+
+	public void setMinPackQty(Double minPackQty) {
+		this.minPackQty = minPackQty;
+	}
+
+	/**
+	 * 无参构造方法
+	 */
+	public GoodsSimpleUas() {
+	}
+
+	/**
+	 * @return the remark
+	 */
+	public String getRemark() {
+		return remark;
+	}
+
+	/**
+	 * @param remark
+	 *            the remark to set
+	 */
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	/**
+	 * @return the minBuyQty
+	 */
+	public Double getMinBuyQty() {
+		return minBuyQty;
+	}
+
+	public String getCurrencyName() {
+		return currencyName;
+	}
+
+	public void setCurrencyName(String currencyName) {
+		this.currencyName = currencyName;
+	}
+
+	public Short getReturnInWeek() {
+		return returnInWeek;
+	}
+
+	public void setReturnInWeek(Short returnInWeek) {
+		this.returnInWeek = returnInWeek;
+	}
+
+	/**
+	 * @param minBuyQty
+	 *            the minBuyQty to set
+	 */
+	public void setMinBuyQty(Double minBuyQty) {
+		this.minBuyQty = minBuyQty;
+	}
+
+	public List<GoodsQtyPriceUas> getPrices() {
+		if(StringUtils.isEmpty(this.qtyPrice)) {
+			throw new B2CException("分段价格的信息为空,请重新上传");
+		}
+		this.prices = FlexJsonUtils.fromJsonArray(qtyPrice, GoodsQtyPriceUas.class);
+		return this.prices;
+	}
+
+	public void setPrices(List<GoodsQtyPriceUas> prices) {
+		this.prices = prices;
+	}
+
+	/**
+	 * @return the sampleQty
+	 */
+	public Double getSampleQty() {
+		return sampleQty;
+	}
+
+	/**
+	 * @param sampleQty
+	 *            the sampleQty to set
+	 */
+	public void setSampleQty(Double sampleQty) {
+		this.sampleQty = sampleQty;
+	}
+
+	/**
+	 * @return the original
+	 */
+	public Integer getOriginal() {
+		return original;
+	}
+
+	/**
+	 * @param original
+	 *            the original to set
+	 */
+	public void setOriginal(Integer original) {
+		this.original = original;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public Double getOldReserve() {
+		return oldReserve;
+	}
+
+	public void setOldReserve(Double oldReserve) {
+		this.oldReserve = oldReserve;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public String getQtyPrice() {
+		return qtyPrice;
+	}
+
+	public void setQtyPrice(String qtyPrice) {
+		this.qtyPrice = qtyPrice;
+	}
+
+	public Short getIsMallSale() {
+		return isMallSale;
+	}
+
+	public GoodsSimpleUas setIsMallSale(Short isMallSale) {
+		this.isMallSale = isMallSale;
+		return this;
+	}
+}

+ 108 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/Invoice.java

@@ -0,0 +1,108 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 发货单
+ * 
+ * @author yingp
+ * @version 2017年8月3日11:18:59 yuj  增加注释
+ */
+public class Invoice implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3244191817323215610L;
+
+	private long orderId;
+
+	/**
+	 * 金额合计
+	 */
+	private Double total;
+
+	/**
+	 * 发货单号
+	 */
+	private String sendcode;
+
+	/**
+	 * 快递公司名称
+	 */
+	private String CompanyName;
+
+	/**
+	 * 快递单号
+	 */
+	private String CompanyNumber;
+
+	/**
+	 * 发货地址
+	 */
+	private String jsonSdAddress;
+
+
+	/**
+	 * 出货单明细
+	 */
+	private List<InvoiceDetail> details;
+
+	public long getOrderId() {
+		return orderId;
+	}
+
+	public void setOrderId(long orderId) {
+		this.orderId = orderId;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+	public List<InvoiceDetail> getDetails() {
+		return details;
+	}
+
+	public void setDetails(List<InvoiceDetail> details) {
+		this.details = details;
+	}
+
+	public String getSendcode() {
+		return sendcode;
+	}
+
+	public void setSendcode(String sendcode) {
+		this.sendcode = sendcode;
+	}
+
+	public String getJsonSdAddress() {
+		return jsonSdAddress;
+	}
+
+	public void setJsonSdAddress(String jsonSdAddress) {
+		this.jsonSdAddress = jsonSdAddress;
+	}
+
+	public String getCompanyName() {
+		return CompanyName;
+	}
+
+	public void setCompanyName(String companyName) {
+		CompanyName = companyName;
+	}
+
+	public String getCompanyNumber() {
+		return CompanyNumber;
+	}
+
+	public void setCompanyNumber(String companyNumber) {
+		CompanyNumber = companyNumber;
+	}
+
+}

+ 64 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/InvoiceDetail.java

@@ -0,0 +1,64 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+public class InvoiceDetail implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -8856254205044527826L;
+
+	/**
+	 * UAS序号
+	 */
+	private Short detno;
+
+	/**
+	 * 单价
+	 */
+	private Double price;
+
+	/**
+	 * 购买数量
+	 */
+	private Double qty;
+
+	/**
+	 * 金额合计
+	 */
+	private Double total;
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+}

+ 194 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/Order.java

@@ -0,0 +1,194 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import com.uas.api.b2c_erp.baisc.model.EnterpriseUas;
+import com.uas.api.b2c_erp.baisc.model.UserBaseInfoUas;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 平台对供应商系统提供的采购订单接口,供应商系统可获取并转化为自己的销售订单
+ * <p>
+ * 目前,如果企业资料里面{@code isErp=1}表示供应商有自己的供应链管理系统
+ * </p>
+ * <p>
+ * 供应商系统可以通过接口获取这一部分采购单;如果订单确认、修改发货状态,可以调用另外接口回执
+ * </p>
+ * 
+ * @author yingp
+ *
+ */
+public class Order implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3674032625563082895L;
+
+	private long id;
+
+	/**
+	 * 订单号
+	 */
+	private String orderid;
+
+	/**
+	 * 生成时间
+	 * 
+	 */
+	private Date createTime;
+
+	/**
+	 * 收货地址(这里是指平台运营的收货仓库地址)
+	 * 
+	 */
+	private String shipAddress;
+
+	/**
+	 * 价税合计
+	 * 
+	 */
+	private Double total;
+
+	/**
+	 * 运费
+	 */
+	private Double fare;
+
+	/**
+	 * 订单的状态,意向订单(501) 或 正式采购单(503之后)
+	 */
+	private Integer status;
+	
+	/**
+	 * 币别
+	 */
+	private String currency;
+
+	/**
+	 * 税率
+	 */
+	private Double taxes;
+
+	/**
+	 * 配送方式
+	 */
+	private Integer sendType;
+
+	/**
+	 * 买方人员
+	 */
+	private UserBaseInfoUas buyer;
+
+	/**
+	 * 买方企业
+	 */
+	private EnterpriseUas buyerEn;
+
+	private List<OrderDetail> details;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public Double getTaxes() {
+		return taxes;
+	}
+
+	public void setTaxes(Double taxes) {
+		this.taxes = taxes;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getShipAddress() {
+		return shipAddress;
+	}
+
+	public void setShipAddress(String shipAddress) {
+		this.shipAddress = shipAddress;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+	public Double getFare() {
+		return fare;
+	}
+
+	public void setFare(Double fare) {
+		this.fare = fare;
+	}
+
+	public String getOrderid() {
+		return orderid;
+	}
+
+	public void setOrderid(String orderid) {
+		this.orderid = orderid;
+	}
+
+	public List<OrderDetail> getDetails() {
+		return details;
+	}
+
+	public void setDetails(List<OrderDetail> details) {
+		this.details = details;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Integer getSendType() {
+		return sendType;
+	}
+
+	public void setSendType(Integer sendType) {
+		this.sendType = sendType;
+	}
+
+	public UserBaseInfoUas getBuyer() {
+		return buyer;
+	}
+
+	public void setBuyer(UserBaseInfoUas buyer) {
+		this.buyer = buyer;
+	}
+
+	public EnterpriseUas getBuyerEn() {
+		return buyerEn;
+	}
+
+	public void setBuyerEn(EnterpriseUas buyerEn) {
+		this.buyerEn = buyerEn;
+	}
+}

+ 216 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/OrderDetail.java

@@ -0,0 +1,216 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+/**
+ * 平台对供应商系统提供的采购单接口,供应商系统可获取并转化为自己的销售订单
+ * <p>
+ * 目前,如果b2c企业资料里面{@code isErp=1}表示供应商有自己的供应链管理系统
+ * </p>
+ * <p>
+ * 供应商系统可以通过接口获取这一部分采购订单
+ * </p>
+ * 
+ * @author yingp
+ *
+ */
+public class OrderDetail implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3185779324875324017L;
+
+	/**
+	 * 序号
+	 * 
+	 */
+	private Short detno;
+
+	/**
+	 * ERP物料编号
+	 */
+	private String code;
+
+	/**
+	 * 商品上架的批次号
+	 * 
+	 * <pre>
+	 * 这个在供应商系统应该是有存储的
+	 * </pre>
+	 * 
+	 */
+	private String batchCode;
+
+	/**
+	 * 发布人uu
+	 */
+	private Long publisheruu;
+
+	/**
+	 * 单价
+	 * 
+	 */
+	private Double price;
+
+	/**
+	 * 购买数量
+	 * 
+	 */
+	private Double qty;
+
+	/**
+	 * 金额合计
+	 * 
+	 */
+	private Double total;
+
+	/**
+	 * 对应的器件uuid
+	 */
+	private String uuid;
+	
+	/*
+	 * 含税单价
+	 */
+	private Double taxunitprice;
+	
+	/*
+	 * 税率
+	 */
+	private Short tax;
+	
+	/*
+	 * 税金
+	 */
+	private Double taxes;
+	
+	/*
+	 * 订单明细状态
+	 */
+	private Integer status;
+	
+	/*
+	 * 币别
+	 */
+	private String currency;
+	
+	/*
+	 * 明细的编号
+	 */
+	private String puDetail;
+
+	public Short getDetno() {
+		return detno;
+	}
+
+	public void setDetno(Short detno) {
+		this.detno = detno;
+	}
+
+	public String getCode() {
+
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getBatchCode() {
+		return batchCode;
+	}
+
+	public void setBatchCode(String batchCode) {
+		this.batchCode = batchCode;
+	}
+
+	public Long getPublisheruu() {
+		return publisheruu;
+	}
+
+	public void setPublisheruu(Long publisheruu) {
+		this.publisheruu = publisheruu;
+	}
+
+	public String getPuDetail() {
+		return puDetail;
+	}
+
+	public void setPuDetail(String puDetail) {
+		this.puDetail = puDetail;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Double getTaxunitprice() {
+		return taxunitprice;
+	}
+
+	public void setTaxunitprice(Double taxunitprice) {
+		this.taxunitprice = taxunitprice;
+	}
+
+	public Short getTax() {
+		return tax;
+	}
+
+	public void setTax(Short tax) {
+		this.tax = tax;
+	}
+
+	public Double getTaxes() {
+		return taxes;
+	}
+
+	public void setTaxes(Double taxes) {
+		this.taxes = taxes;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+}

+ 164 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/Prod.java

@@ -0,0 +1,164 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+/**
+ * ERP系统的产品
+ * 
+ * @author yingp
+ * 
+ */
+public class Prod implements Serializable{
+
+	private static final long serialVersionUID = 7361010406834404882L;
+	private Long pr_id;// 买方ERP物料ID
+	private String pr_code;
+	private String pr_detail;// ERP类目
+	private String pr_spec;
+	private String pr_unit;
+	private String pr_brand;
+	private String pr_orispeccode;// 原厂型号
+	private String pr_uuid; // 标准料号
+	/**
+	 * 类目(平台)
+	 */
+	private String kind;
+
+	/**
+	 * 品牌(平台)
+	 */
+	private String pbrand;
+
+	/**
+	 * 型号(平台)
+	 */
+	private String pcmpcode;
+
+	/**
+	 * 类目英文
+	 */
+	private String kinden;
+
+	/**
+	 * 品牌英文
+	 */
+	private String pbranden;
+
+	/**
+	 * 是否是标准
+	 */
+	private Integer standard;
+
+	public String getPr_code() {
+		return pr_code;
+	}
+
+	public void setPr_code(String pr_code) {
+		this.pr_code = pr_code;
+	}
+
+	public String getPr_detail() {
+		return pr_detail;
+	}
+
+	public void setPr_detail(String pr_detail) {
+		this.pr_detail = pr_detail;
+	}
+
+	public String getPr_spec() {
+		return pr_spec;
+	}
+
+	public void setPr_spec(String pr_spec) {
+		this.pr_spec = pr_spec;
+	}
+
+	public Long getPr_id() {
+		return pr_id;
+	}
+
+	public void setPr_id(Long pr_id) {
+		this.pr_id = pr_id;
+	}
+
+	public String getPr_orispeccode() {
+		return pr_orispeccode;
+	}
+
+	public void setPr_orispeccode(String pr_orispeccode) {
+		this.pr_orispeccode = pr_orispeccode;
+	}
+
+	public String getPr_uuid() {
+		return pr_uuid;
+	}
+
+	public void setPr_uuid(String pr_uuid) {
+		this.pr_uuid = pr_uuid;
+	}
+
+
+	public String getKind() {
+		return kind;
+	}
+
+	public void setKind(String kind) {
+		this.kind = kind;
+	}
+
+	public String getPbrand() {
+		return pbrand;
+	}
+
+	public void setPbrand(String pbrand) {
+		this.pbrand = pbrand;
+	}
+
+	public String getPcmpcode() {
+		return pcmpcode;
+	}
+
+	public void setPcmpcode(String pcmpcode) {
+		this.pcmpcode = pcmpcode;
+	}
+
+	public String getPr_brand() {
+		return pr_brand;
+	}
+
+	public void setPr_brand(String pr_brand) {
+		this.pr_brand = pr_brand;
+	}
+
+	public String getKinden() {
+		return kinden;
+	}
+
+	public void setKinden(String kinden) {
+		this.kinden = kinden;
+	}
+
+	public String getPbranden() {
+		return pbranden;
+	}
+
+	public void setPbranden(String pbranden) {
+		this.pbranden = pbranden;
+	}
+
+	public String getPr_unit() {
+		return pr_unit;
+	}
+
+	public void setPr_unit(String pr_unit) {
+		this.pr_unit = pr_unit;
+	}
+
+	public Integer getStandard() {
+		return standard;
+	}
+
+	public void setStandard(Integer standard) {
+		this.standard = standard;
+	}
+}

+ 168 - 0
src/main/java/com/uas/api/b2c_erp/seller/model/ProductDetailERP.java

@@ -0,0 +1,168 @@
+package com.uas.api.b2c_erp.seller.model;
+
+import java.io.Serializable;
+
+/**
+ * 物料交易信息,主要针对ERP使用
+ *
+ * @version 2017/10/28 10:48 wangyc
+ */
+public class ProductDetailERP implements Serializable{
+
+    private static final long serialVersionUID = -1219363658739356247L;
+    /**
+     * 物料编号
+     */
+    private String code;
+
+    /**
+     * 空闲库存
+     */
+    private Double reserve;
+
+    /**
+     * 产品生产日期
+     */
+    private String produceDate;
+
+    /**
+     * 最小包装量
+     */
+    private Double minPackQty;
+
+    /**
+     * 最小起订量
+     */
+    private Double minBuyQty;
+
+    /**
+     * 最长交期
+     */
+    private Short maxDelivery;
+
+    /**
+     * 最短交期
+     */
+    private Short minDelivery;
+
+    /**
+     * 商城最长交期
+     */
+    private Short b2cMaxDelivery;
+
+    /**
+     * 商城最短交期
+     */
+    private Short b2cMinDelivery;
+
+    /**
+     * 包装:托盘、管装、卷带
+     */
+    private String packaging;
+
+    /**
+     * 单价
+     */
+    private Double price;
+
+    /**
+     * 是否拆卖
+     */
+    private Boolean breakUp;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Double getReserve() {
+        return reserve;
+    }
+
+    public void setReserve(Double reserve) {
+        this.reserve = reserve;
+    }
+
+    public String getProduceDate() {
+        return produceDate;
+    }
+
+    public void setProduceDate(String produceDate) {
+        this.produceDate = produceDate;
+    }
+
+    public Double getMinPackQty() {
+        return minPackQty;
+    }
+
+    public void setMinPackQty(Double minPackQty) {
+        this.minPackQty = minPackQty;
+    }
+
+    public Double getMinBuyQty() {
+        return minBuyQty;
+    }
+
+    public void setMinBuyQty(Double minBuyQty) {
+        this.minBuyQty = minBuyQty;
+    }
+
+    public Short getMaxDelivery() {
+        return maxDelivery;
+    }
+
+    public void setMaxDelivery(Short maxDelivery) {
+        this.maxDelivery = maxDelivery;
+    }
+
+    public Short getMinDelivery() {
+        return minDelivery;
+    }
+
+    public void setMinDelivery(Short minDelivery) {
+        this.minDelivery = minDelivery;
+    }
+
+    public Short getB2cMaxDelivery() {
+        return b2cMaxDelivery;
+    }
+
+    public void setB2cMaxDelivery(Short b2cMaxDelivery) {
+        this.b2cMaxDelivery = b2cMaxDelivery;
+    }
+
+    public Short getB2cMinDelivery() {
+        return b2cMinDelivery;
+    }
+
+    public void setB2cMinDelivery(Short b2cMinDelivery) {
+        this.b2cMinDelivery = b2cMinDelivery;
+    }
+
+    public String getPackaging() {
+        return packaging;
+    }
+
+    public void setPackaging(String packaging) {
+        this.packaging = packaging;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Boolean getBreakUp() {
+        return breakUp;
+    }
+
+    public void setBreakUp(Boolean breakUp) {
+        this.breakUp = breakUp;
+    }
+}

+ 23 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/BankInfoService.java

@@ -0,0 +1,23 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import com.uas.api.b2c_erp.seller.model.BankInfoERP;
+
+/**
+ * Created by wangyc on 2017/11/10.
+ * 卖家收款账户接口
+ * @version 2017/11/10 13:49 wangyc
+ */
+public interface BankInfoService {
+
+    /**
+     * 根据enuu获取卖家收款账户
+     * @return
+     */
+    public BankInfoERP findOne();
+
+    /**
+     * 回调写回erp科目编号
+     * @param erpNum
+     */
+    public void callback(String erpNum);
+}

+ 31 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/GoodsPriceService.java

@@ -0,0 +1,31 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import java.util.List;
+
+import com.uas.api.b2c_erp.seller.model.GoodsPriceUas;
+
+/**
+ * 商品价格库接口
+ * 
+ * @author huxz
+ */
+public interface GoodsPriceService {
+
+	/**
+	 * 上架时添加或修改商品价格信息,如果存在,则修改价格信息
+	 * 
+	 * @param priceUas 包含商品币别,库存类型,税率 ,器件UUID, 未税单价信息
+	 * @return
+	 */
+	public GoodsPriceUas saveOrUpdatePrice(GoodsPriceUas priceUas);
+	
+	/**
+	 * 批量维护价格信息
+	 * 
+	 * @param priceUasList json,包含商品币别,库存类型,税率 ,器件UUID
+	 * @param range 价格调整的幅度
+	 * @param price 要修改的价格
+	 * @return
+	 */
+	public List<GoodsPriceUas> maintain(List<GoodsPriceUas> priceUasList, Float range, Double price);
+}

+ 48 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/GoodsUpAndDownService.java

@@ -0,0 +1,48 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import com.uas.api.b2c_erp.seller.model.GoodsFUas;
+import com.uas.api.b2c_erp.seller.model.GoodsSimpleUas;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 商品上、下架接口(参数的写法都和之前一样)
+ * @author aof
+ * @time 创建时间:2016年7月7日
+ */
+public interface GoodsUpAndDownService {
+	
+	
+	/**
+	 * 上架申请(参数和之前一样)
+	 */
+	public List<GoodsFUas> upToB2C(List<GoodsSimpleUas> list);
+	
+	/**
+	 * 参数 batchCodes 为用,间隔的字符串
+	 * 下架处理
+	 * map 有三个键值 
+	 * success 键对应的list 中只有批次号。
+	 * error 键对应的list 中包含批次号和错误码 格式为 BT2016121900000067-100。list中的信息是表示不能下架的批次信息。
+	 * removed 键对应的list中包含批次号和错误码 格式如上。list中的信息是表示之前已经被下架了。
+	 * 
+	 */
+	public Map<String, List<String>>  pulloff(String batchCodes);
+	
+	/**
+	 * 商品上架数量修改、下架(传新库存 为0视为下架)
+	 * 这个方法不传币别,库存类型,税率 ,UUID,
+	 * 必须要传的值 生产时间,交货周期,价格,库存数量,备注可传可不穿,原库存
+	 * @param list
+	 * @return 会生成新批次号的为新批次号,新库存为0的会返回原有批次号
+	 */
+	public List<GoodsFUas> updateGoodses(List<GoodsSimpleUas> list);
+	
+	/**
+	 * 根据uuids查询上架信息
+	 */
+	public List<GoodsSimpleUas> getListByUuids(String uuids);
+}

+ 29 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/InvoiceService.java

@@ -0,0 +1,29 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import com.uas.api.b2c_erp.seller.model.Invoice;
+
+import java.util.List;
+
+/**
+ *  出货单管理接口
+ *
+ * @author aof
+ * @version 2017年8月3日11:20:13 yuj  增加注释
+ */
+public interface InvoiceService {
+
+	/**
+	 * 发货
+	 * 
+	 * @param invoice
+	 */
+	public void send(Invoice invoice);
+
+	/**
+	 * 批量发货,方法不能重载
+	 * 
+	 * @param invoices
+	 */
+	public void sendAll(List<Invoice> invoices);
+
+}

+ 69 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/OrderService.java

@@ -0,0 +1,69 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import com.uas.api.b2c_erp.seller.model.Order;
+
+import java.util.List;
+
+/**
+ * 卖家收到的采购单接口
+ * 
+ * @author yingp
+ *
+ */
+public interface OrderService {
+
+	/**
+	 * 获取一条采购单
+	 * 
+	 * @param orderId
+	 * @return
+	 */
+	public Order findOne(long orderId);
+	
+	/**
+	 * 成功保存后回写订单状态
+	 * @return
+	 */
+	public boolean backOrder(long[] orderids);
+
+	/**
+	 * 获取全部还没有被获取(或erp获取后,并没有回执给b2c)的采购订单
+	 * 
+	 * <pre>
+	 * 平台会记录采购订单的获取状态;
+	 * erp需要用短轮询不断获取;也可以使用消息中间件,平台在产生Purchase时,写入消息;erp监听并获取
+	 * </pre>
+	 * 
+	 * @return
+	 */
+	public List<Order> findAllUnReceived();
+
+	/**
+	 * 卖家同意了采购合同
+	 * 
+	 * <pre>
+	 * erp可直接调用
+	 * </pre>
+	 * 
+	 * @param orderId
+	 */
+	public void agree(long orderId);
+
+	/**
+	 * 卖家不同意采购合同
+	 * 
+	 * <pre>
+	 * erp可直接调用
+	 * </pre>
+	 * 
+	 * @param orderId
+	 */
+	public void disagree(long orderId);
+
+	/**
+	 * 获取平台管理员uu来发起任务
+	 * @return
+	 */
+	public Long findAdminuu();
+
+}

+ 50 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/ProdService.java

@@ -0,0 +1,50 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import com.uas.api.b2c_erp.seller.model.Prod;
+
+import java.util.List;
+
+/**
+ * Created by wangyc on 2017/10/26.
+ *
+ * @version 2017/10/26 10:12 wangyc
+ */
+public interface ProdService {
+
+    /**
+     * ERP上传物料接口
+     * @param prods 物料信息
+     */
+    public String uploadProducts(List<Prod> prods);
+
+    /**
+     * 上传完毕,调用匹配接口
+     * @return
+     */
+    public void callMatch();
+
+    /**
+     * ERP下载商城更新物料信息
+     * @return
+     */
+    public List<Prod> downloadProducts();
+
+    /**
+     * 更新已下载的商城更新物料
+     * @param codes 物料编号(以“,”拼接)
+     */
+    public void refreshDownloadstatus(List<String> codes);
+
+    /**
+     * 返回店铺路径
+     * @return
+     */
+    public String returnStoreUrl();
+
+    /**
+     * 禁用或启用物料(1开启,2禁用)
+     * @param pr_code
+     * @return
+     */
+    public String setB2cEnable(String pr_code, Integer isEnable);
+}

+ 29 - 0
src/main/java/com/uas/api/b2c_erp/seller/service/ProductDetailERPService.java

@@ -0,0 +1,29 @@
+package com.uas.api.b2c_erp.seller.service;
+
+import com.uas.api.b2c_erp.seller.model.ProductDetailERP;
+
+import java.util.List;
+
+/**
+ * 物料交易详情接口
+ *
+ * @version 2017/10/28 17:36 wangyc
+ */
+public interface ProductDetailERPService {
+
+    /**
+     * 初始化物料交易详情接口
+     */
+    public boolean uploadProductDetailERP(List<ProductDetailERP> productDetailERPList);
+
+    /**
+     * 更新空闲库存数量
+     */
+    public void updateReserve(List<ProductDetailERP> productDetailERPList);
+
+    /**
+     * 提供币别信息以便初始化交易信息
+     * @return
+     */
+    public String getCurrency();
+}

+ 49 - 0
src/main/java/com/uas/api/crypto/hessian/HandlerInterceptor.java

@@ -0,0 +1,49 @@
+package com.uas.api.crypto.hessian;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.caucho.hessian.HessianException;
+
+/**
+ * 提供签名验证成功之后和方法调用完成之后的处理接口
+ * 
+ * @author yingp
+ *
+ */
+public abstract interface HandlerInterceptor {
+
+	/**
+	 * 签名验证成功之后,方法执行之前
+	 * 
+	 * @param request
+	 * @param response
+	 * @param publicId
+	 * @return
+	 * @throws HessianException
+	 */
+	public abstract boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object publicId) throws HessianException;
+
+	/**
+	 * 方法执行之后
+	 * 
+	 * @param request
+	 * @param response
+	 * @param publicId
+	 * @return
+	 * @throws HessianException
+	 */
+	public abstract boolean postHandle(HttpServletRequest request, HttpServletResponse response, Object publicId) throws HessianException;
+
+	/**
+	 * 所有方法执行之后
+	 * 
+	 * @param request
+	 * @param response
+	 * @param publicId
+	 * @throws HessianException
+	 */
+	public abstract void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object publicId, Exception execption)
+			throws HessianException;
+
+}

+ 94 - 0
src/main/java/com/uas/api/crypto/hessian/PermittedServiceExporter.java

@@ -0,0 +1,94 @@
+package com.uas.api.crypto.hessian;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.springframework.remoting.caucho.HessianServiceExporter;
+import org.springframework.util.StringUtils;
+
+import com.caucho.hessian.HessianException;
+import com.uas.api.crypto.util.MD5Util;
+
+public class PermittedServiceExporter extends HessianServiceExporter {
+
+	private final static Logger logger = Logger.getLogger(PermittedServiceExporter.class);
+
+	private SecretKeyService secretKeyService;
+
+	private HandlerInterceptor handlerInterceptor;
+
+	public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+		String publicId = request.getHeader("Signature-Id");
+		if (secretKeyService != null) {
+			if (StringUtils.isEmpty(publicId)) {
+				logger.error("signature error: no publicId provided");
+				response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+				return;
+			}
+			String secretKey = secretKeyService.getSecretKey(publicId);
+			if (StringUtils.isEmpty(secretKey)) {
+				logger.error("signature error: no secretKey provided, publicId: " + publicId);
+				response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+				return;
+			}
+			String sign = request.getHeader("Signature-Sign");
+			String timestamp = request.getHeader("Signature-Timestamp");
+			if (!MD5Util.encrypt(timestamp, secretKey).equals(sign)) {
+				// 签名不一致
+				logger.error("signature error: timestamp=" + timestamp + ", sign=" + sign);
+				response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+				return;
+			}
+		}
+
+		Throwable exception = null;
+		if (handlerInterceptor != null) {
+			try {
+				handlerInterceptor.preHandle(request, response, publicId);
+				super.handleRequest(request, response);
+				handlerInterceptor.postHandle(request, response, publicId);
+			} catch (IOException e) {
+				exception = e;
+			} catch (ServletException e) {
+				exception = e;
+			} finally {
+				try {
+					handlerInterceptor.afterCompletion(request, response, publicId, exception == null ? null : new Exception(exception));
+				} catch (Exception e) {
+					exception = e;
+				}
+			}
+		} else {
+			try {
+				super.handleRequest(request, response);
+			} catch (Exception e) {
+				exception = e;
+			}
+		}
+		if (exception != null) {
+			logger.error(request.getRequestURI(), exception);
+			throw new HessianException(exception.getMessage());
+		}
+	}
+
+	public SecretKeyService getSecretKeyService() {
+		return secretKeyService;
+	}
+
+	public void setSecretKeyService(SecretKeyService secretKeyService) {
+		this.secretKeyService = secretKeyService;
+	}
+
+	public HandlerInterceptor getHandlerInterceptor() {
+		return handlerInterceptor;
+	}
+
+	public void setHandlerInterceptor(HandlerInterceptor handlerInterceptor) {
+		this.handlerInterceptor = handlerInterceptor;
+	}
+
+}

+ 20 - 0
src/main/java/com/uas/api/crypto/hessian/SecretKeyService.java

@@ -0,0 +1,20 @@
+package com.uas.api.crypto.hessian;
+
+/**
+ * 这个方便针对每个企业提供不同的私钥
+ * 
+ * @author yingp
+ *
+ */
+public abstract interface SecretKeyService {
+
+	/**
+	 * 返回每个企业的私钥
+	 * 
+	 * @param publicId
+	 *            例如企业UU
+	 * @return
+	 */
+	public abstract String getSecretKey(String publicId);
+
+}

+ 13 - 0
src/main/java/com/uas/api/crypto/hessian/SignedProxyFactory.java

@@ -0,0 +1,13 @@
+package com.uas.api.crypto.hessian;
+
+import com.caucho.hessian.client.HessianConnectionFactory;
+import com.caucho.hessian.client.HessianProxyFactory;
+
+public class SignedProxyFactory extends HessianProxyFactory {
+
+	@Override
+	protected HessianConnectionFactory createHessianConnectionFactory() {
+		return new SignedURLConnectionFactory();
+	}
+
+}

+ 35 - 0
src/main/java/com/uas/api/crypto/hessian/SignedURLConnectionFactory.java

@@ -0,0 +1,35 @@
+package com.uas.api.crypto.hessian;
+
+import java.io.IOException;
+import java.net.URL;
+
+import com.caucho.hessian.client.HessianConnection;
+import com.caucho.hessian.client.HessianURLConnectionFactory;
+import com.uas.api.crypto.util.MD5Util;
+import com.uas.api.crypto.util.SecretUtil;
+
+public class SignedURLConnectionFactory extends HessianURLConnectionFactory {
+
+	@Override
+	public HessianConnection open(URL url) throws IOException {
+		SecretUtil.Secret secret = SecretUtil.get();
+		if (secret == null)
+			throw new RuntimeException("no secret");
+
+		HessianConnection conn = super.open(url);
+		String timestamp = Long.toString(System.currentTimeMillis());
+
+		String sign = MD5Util.encrypt(timestamp, secret.getSecretKey());
+		// 身份ID
+		conn.addHeader("Signature-Id", secret.getPublicId());
+		// 签名
+		conn.addHeader("Signature-Sign", sign);
+		conn.addHeader("Signature-Timestamp", timestamp);
+		return conn;
+	}
+
+	public SignedURLConnectionFactory() {
+		super();
+	}
+
+}

+ 51 - 0
src/main/java/com/uas/api/crypto/util/FlexJsonUtils.java

@@ -0,0 +1,51 @@
+package com.uas.api.crypto.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import flexjson.JSONDeserializer;
+import flexjson.JSONSerializer;
+
+public abstract class FlexJsonUtils {
+	public static <T> T fromJson(String json, Class<T> cls) {
+		return new JSONDeserializer<T>().use(null, cls).deserialize(json);
+	}
+
+	public static <K, V> Map<K, V> fromJson(String json) {
+		Map<K, V> map = new HashMap<K, V>();
+		return new JSONDeserializer<Map<K, V>>().use(null, map.getClass()).deserialize(json);
+	}
+
+	public static <K, V> LinkedHashMap<K, V> fromLinkedJson(String json) {
+		Map<K, V> map = new LinkedHashMap<K, V>();
+		return new JSONDeserializer<LinkedHashMap<K, V>>().use(null, map.getClass()).deserialize(json);
+	}
+
+	public String toJson() {
+		return new JSONSerializer().exclude("*.class").serialize(this);
+	}
+
+	public static String toJson(Object obj) {
+		return new JSONSerializer().exclude("*.class").serialize(obj);
+	}
+	
+	public static String toJsonDeep(Object obj) {
+		return new JSONSerializer().exclude("*.class").deepSerialize(obj);
+	}
+
+	public static <T> String toJsonArray(Collection<?> collection) {
+		return new JSONSerializer().exclude("*.class").serialize(collection);
+	}
+	
+	public static <T> List<T> fromJsonArray(String json, Class<?> cls) {
+		return new JSONDeserializer<List<T>>().use(null, ArrayList.class).use("values", cls).deserialize(json);
+	}
+	
+	public static <T> Map<String,T> fromJsonHashMap(String json, Class<?> cls) {
+		return new JSONDeserializer<Map<String,T>>().use(null, HashMap.class).use("values", cls).deserialize(json);
+	}
+}

+ 35 - 0
src/main/java/com/uas/api/crypto/util/MD5Util.java

@@ -0,0 +1,35 @@
+package com.uas.api.crypto.util;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+public class MD5Util {
+
+	public static String encrypt(String plainText) {
+		try {
+			MessageDigest digest = MessageDigest.getInstance("MD5");
+			digest.update(plainText.getBytes());
+			byte b[] = digest.digest();
+			int i;
+			StringBuffer buf = new StringBuffer();
+			for (int offset = 0; offset < b.length; offset++) {
+				i = b[offset];
+				if (i < 0)
+					i += 256;
+				if (i < 16)
+					buf.append("0");
+				buf.append(Integer.toHexString(i));
+			}
+			// 32位md5
+			return buf.toString();
+		} catch (NoSuchAlgorithmException e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	public static String encrypt(String plainText, String solt) {
+		return encrypt(solt == null ? plainText : plainText + "{" + solt + "}");
+	}
+
+}

+ 79 - 0
src/main/java/com/uas/api/crypto/util/SecretUtil.java

@@ -0,0 +1,79 @@
+package com.uas.api.crypto.util;
+
+public class SecretUtil {
+
+	private static ThreadLocal<Secret> local = new ThreadLocal<Secret>();
+
+	public static void set(String publicId, String secretKey) {
+		local.set(new Secret(publicId, secretKey));
+	}
+
+	public static Secret get() {
+		return local.get();
+	}
+
+	public static void clear() {
+		local.set(null);
+	}
+
+	public static class Secret {
+
+		private String publicId;
+		private String secretKey;
+
+		public Secret(String publicId, String secretKey) {
+			super();
+			this.publicId = publicId;
+			this.secretKey = secretKey;
+		}
+
+		public String getPublicId() {
+			return publicId;
+		}
+
+		public void setPublicId(String publicId) {
+			this.publicId = publicId;
+		}
+
+		public String getSecretKey() {
+			return secretKey;
+		}
+
+		public void setSecretKey(String secretKey) {
+			this.secretKey = secretKey;
+		}
+
+		@Override
+		public int hashCode() {
+			final int prime = 31;
+			int result = 1;
+			result = prime * result + ((publicId == null) ? 0 : publicId.hashCode());
+			result = prime * result + ((secretKey == null) ? 0 : secretKey.hashCode());
+			return result;
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (this == obj)
+				return true;
+			if (obj == null)
+				return false;
+			if (getClass() != obj.getClass())
+				return false;
+			Secret other = (Secret) obj;
+			if (publicId == null) {
+				if (other.publicId != null)
+					return false;
+			} else if (!publicId.equals(other.publicId))
+				return false;
+			if (secretKey == null) {
+				if (other.secretKey != null)
+					return false;
+			} else if (!secretKey.equals(other.secretKey))
+				return false;
+			return true;
+		}
+
+	}
+
+}

+ 63 - 0
src/main/java/com/uas/api/domain/IPage.java

@@ -0,0 +1,63 @@
+package com.uas.api.domain;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class IPage<T> implements Serializable {
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -6338331260909724178L;
+	private int number;
+	private int size;
+	private int numberOfElements;
+	private List<T> content;
+	private boolean first;
+	private boolean last;
+	private long totalElements;
+	
+	public long getTotalElements() {
+		return totalElements;
+	}
+	public void setTotalElements(long totalElements) {
+		this.totalElements = totalElements;
+	}
+	public int getNumber() {
+		return number;
+	}
+	public void setNumber(int number) {
+		this.number = number;
+	}
+	public int getSize() {
+		return size;
+	}
+	public void setSize(int size) {
+		this.size = size;
+	}
+	public int getNumberOfElements() {
+		return numberOfElements;
+	}
+	public void setNumberOfElements(int numberOfElements) {
+		this.numberOfElements = numberOfElements;
+	}
+	public List<T> getContent() {
+		return content;
+	}
+	public void setContent(List<T> content) {
+		this.content = content;
+	}
+	public boolean isFirst() {
+		return first;
+	}
+	public void setFirst(boolean first) {
+		this.first = first;
+	}
+	public boolean isLast() {
+		return last;
+	}
+	public void setLast(boolean last) {
+		this.last = last;
+	}
+
+}

+ 24 - 0
src/main/java/com/uas/api/exception/B2CException.java

@@ -0,0 +1,24 @@
+package com.uas.api.exception;
+
+/**
+ * B2C抛出的异常
+ * 
+ * @author suntg
+ * @since 2016年9月2日下午4:56:45
+ */
+public class B2CException extends RuntimeException {
+
+	/**
+	 * 序列号
+	 */
+	private static final long serialVersionUID = 2267729599482789412L;
+
+	public B2CException() {
+		super();
+	}
+
+	public B2CException(String paramString) {
+		super(paramString);
+	}
+
+}

+ 38 - 0
src/main/java/com/uas/remoting/hessian/MultiProxyFactoryBean.java

@@ -0,0 +1,38 @@
+package com.uas.remoting.hessian;
+
+import org.springframework.aop.framework.ProxyFactory;
+import org.springframework.beans.factory.FactoryBean;
+
+import com.caucho.hessian.client.HessianProxyFactory;
+import com.uas.remoting.support.HessianClientInterceptor;
+
+public class MultiProxyFactoryBean extends HessianClientInterceptor implements FactoryBean<Object> {
+
+	private Object serviceProxy;
+
+	public static void setProxy(String key) {
+		HessianProxyFactory.setUrlKey(key);
+	}
+
+	@Override
+	public void afterPropertiesSet() {
+		super.afterPropertiesSet();
+		this.serviceProxy = new ProxyFactory(getServiceInterface(), this).getProxy(getBeanClassLoader());
+	}
+
+	@Override
+	public Object getObject() {
+		return this.serviceProxy;
+	}
+
+	@Override
+	public Class<?> getObjectType() {
+		return getServiceInterface();
+	}
+
+	@Override
+	public boolean isSingleton() {
+		return true;
+	}
+
+}

+ 248 - 0
src/main/java/com/uas/remoting/support/HessianClientInterceptor.java

@@ -0,0 +1,248 @@
+package com.uas.remoting.support;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.net.ConnectException;
+import java.net.MalformedURLException;
+
+import org.aopalliance.intercept.MethodInterceptor;
+import org.aopalliance.intercept.MethodInvocation;
+import org.springframework.remoting.RemoteAccessException;
+import org.springframework.remoting.RemoteConnectFailureException;
+import org.springframework.remoting.RemoteLookupFailureException;
+import org.springframework.remoting.RemoteProxyFailureException;
+import org.springframework.util.Assert;
+
+import com.caucho.hessian.HessianException;
+import com.caucho.hessian.client.HessianConnectionException;
+import com.caucho.hessian.client.HessianConnectionFactory;
+import com.caucho.hessian.client.HessianProxyFactory;
+import com.caucho.hessian.client.HessianRuntimeException;
+import com.caucho.hessian.io.SerializerFactory;
+
+public class HessianClientInterceptor extends UrlBasedRemoteAccessor implements MethodInterceptor {
+
+	private HessianProxyFactory proxyFactory = new HessianProxyFactory();
+
+	private Object hessianProxy;
+
+	/**
+	 * Set the HessianProxyFactory instance to use. If not specified, a default HessianProxyFactory will be created.
+	 * <p>
+	 * Allows to use an externally configured factory instance, in particular a custom HessianProxyFactory subclass.
+	 */
+	public void setProxyFactory(HessianProxyFactory proxyFactory) {
+		this.proxyFactory = (proxyFactory != null ? proxyFactory : new HessianProxyFactory());
+	}
+
+	/**
+	 * Specify the Hessian SerializerFactory to use.
+	 * <p>
+	 * This will typically be passed in as an inner bean definition of type {@code com.caucho.hessian.io.SerializerFactory}, with custom bean property values applied.
+	 */
+	public void setSerializerFactory(SerializerFactory serializerFactory) {
+		this.proxyFactory.setSerializerFactory(serializerFactory);
+	}
+
+	/**
+	 * Set whether to send the Java collection type for each serialized collection. Default is "true".
+	 */
+	public void setSendCollectionType(boolean sendCollectionType) {
+		this.proxyFactory.getSerializerFactory().setSendCollectionType(sendCollectionType);
+	}
+
+	/**
+	 * Set whether to allow non-serializable types as Hessian arguments and return values. Default is "true".
+	 */
+	public void setAllowNonSerializable(boolean allowNonSerializable) {
+		this.proxyFactory.getSerializerFactory().setAllowNonSerializable(allowNonSerializable);
+	}
+
+	/**
+	 * Set whether overloaded methods should be enabled for remote invocations. Default is "false".
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setOverloadEnabled
+	 */
+	public void setOverloadEnabled(boolean overloadEnabled) {
+		this.proxyFactory.setOverloadEnabled(overloadEnabled);
+	}
+
+	/**
+	 * Set the username that this factory should use to access the remote service. Default is none.
+	 * <p>
+	 * The username will be sent by Hessian via HTTP Basic Authentication.
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setUser
+	 */
+	public void setUsername(String username) {
+		this.proxyFactory.setUser(username);
+	}
+
+	/**
+	 * Set the password that this factory should use to access the remote service. Default is none.
+	 * <p>
+	 * The password will be sent by Hessian via HTTP Basic Authentication.
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setPassword
+	 */
+	public void setPassword(String password) {
+		this.proxyFactory.setPassword(password);
+	}
+
+	/**
+	 * Set whether Hessian's debug mode should be enabled. Default is "false".
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setDebug
+	 */
+	public void setDebug(boolean debug) {
+		this.proxyFactory.setDebug(debug);
+	}
+
+	/**
+	 * Set whether to use a chunked post for sending a Hessian request.
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setChunkedPost
+	 */
+	public void setChunkedPost(boolean chunkedPost) {
+		this.proxyFactory.setChunkedPost(chunkedPost);
+	}
+
+	/**
+	 * Specify a custom HessianConnectionFactory to use for the Hessian client.
+	 */
+	public void setConnectionFactory(HessianConnectionFactory connectionFactory) {
+		this.proxyFactory.setConnectionFactory(connectionFactory);
+	}
+
+	/**
+	 * Set the socket connect timeout to use for the Hessian client.
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setConnectTimeout
+	 */
+	public void setConnectTimeout(long timeout) {
+		this.proxyFactory.setConnectTimeout(timeout);
+	}
+
+	/**
+	 * Set the timeout to use when waiting for a reply from the Hessian service.
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setReadTimeout
+	 */
+	public void setReadTimeout(long timeout) {
+		this.proxyFactory.setReadTimeout(timeout);
+	}
+
+	/**
+	 * Set whether version 2 of the Hessian protocol should be used for parsing requests and replies. Default is "false".
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setHessian2Request
+	 */
+	public void setHessian2(boolean hessian2) {
+		this.proxyFactory.setHessian2Request(hessian2);
+		this.proxyFactory.setHessian2Reply(hessian2);
+	}
+
+	/**
+	 * Set whether version 2 of the Hessian protocol should be used for parsing requests. Default is "false".
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setHessian2Request
+	 */
+	public void setHessian2Request(boolean hessian2) {
+		this.proxyFactory.setHessian2Request(hessian2);
+	}
+
+	/**
+	 * Set whether version 2 of the Hessian protocol should be used for parsing replies. Default is "false".
+	 * 
+	 * @see com.caucho.hessian.client.HessianProxyFactory#setHessian2Reply
+	 */
+	public void setHessian2Reply(boolean hessian2) {
+		this.proxyFactory.setHessian2Reply(hessian2);
+	}
+
+	@Override
+	public void afterPropertiesSet() {
+		super.afterPropertiesSet();
+		prepare();
+	}
+
+	/**
+	 * Initialize the Hessian proxy for this interceptor.
+	 * 
+	 * @throws RemoteLookupFailureException
+	 *             if the service URL is invalid
+	 */
+	public void prepare() throws RemoteLookupFailureException {
+		try {
+			this.hessianProxy = createHessianProxy(this.proxyFactory);
+		} catch (MalformedURLException ex) {
+			throw new RemoteLookupFailureException("Service URL [" + getServiceUrls() + "] is invalid", ex);
+		}
+	}
+
+	/**
+	 * Create the Hessian proxy that is wrapped by this interceptor.
+	 * 
+	 * @param proxyFactory
+	 *            the proxy factory to use
+	 * @return the Hessian proxy
+	 * @throws MalformedURLException
+	 *             if thrown by the proxy factory
+	 * @see com.caucho.hessian.client.HessianProxyFactory#create
+	 */
+	protected Object createHessianProxy(HessianProxyFactory proxyFactory) throws MalformedURLException {
+		Assert.notNull(getServiceInterface(), "'serviceInterface' is required");
+		return proxyFactory.create(getServiceInterface(), getBeanClassLoader(), getServiceUrls());
+	}
+
+	@Override
+	public Object invoke(MethodInvocation invocation) throws Throwable {
+		if (this.hessianProxy == null) {
+			throw new IllegalStateException("HessianClientInterceptor is not properly initialized - "
+					+ "invoke 'prepare' before attempting any operations");
+		}
+
+		ClassLoader originalClassLoader = overrideThreadContextClassLoader();
+		try {
+			return invocation.getMethod().invoke(this.hessianProxy, invocation.getArguments());
+		} catch (InvocationTargetException ex) {
+			Throwable targetEx = ex.getTargetException();
+			// Hessian 4.0 check: another layer of InvocationTargetException.
+			if (targetEx instanceof InvocationTargetException) {
+				targetEx = ((InvocationTargetException) targetEx).getTargetException();
+			}
+			if (targetEx instanceof HessianConnectionException) {
+				throw convertHessianAccessException(targetEx);
+			} else if (targetEx instanceof HessianException || targetEx instanceof HessianRuntimeException) {
+				Throwable cause = targetEx.getCause();
+				throw convertHessianAccessException(cause != null ? cause : targetEx);
+			} else if (targetEx instanceof UndeclaredThrowableException) {
+				UndeclaredThrowableException utex = (UndeclaredThrowableException) targetEx;
+				throw convertHessianAccessException(utex.getUndeclaredThrowable());
+			} else {
+				throw targetEx;
+			}
+		} catch (Throwable ex) {
+			throw new RemoteProxyFailureException("Failed to invoke Hessian proxy for remote service [" + getServiceUrls() + "]", ex);
+		} finally {
+			resetThreadContextClassLoader(originalClassLoader);
+		}
+	}
+
+	/**
+	 * Convert the given Hessian access exception to an appropriate Spring RemoteAccessException.
+	 * 
+	 * @param ex
+	 *            the exception to convert
+	 * @return the RemoteAccessException to throw
+	 */
+	protected RemoteAccessException convertHessianAccessException(Throwable ex) {
+		ex.printStackTrace();
+		if (ex instanceof HessianConnectionException || ex instanceof ConnectException) {
+			return new RemoteConnectFailureException("Cannot connect to Hessian remote service at [" + getServiceUrls() + "]", ex);
+		} else {
+			return new RemoteAccessException("Cannot access Hessian remote service at [" + getServiceUrls() + "]", ex);
+		}
+	}
+
+}

+ 26 - 0
src/main/java/com/uas/remoting/support/UrlBasedRemoteAccessor.java

@@ -0,0 +1,26 @@
+package com.uas.remoting.support;
+
+import java.util.Map;
+
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.remoting.support.RemoteAccessor;
+
+public class UrlBasedRemoteAccessor extends RemoteAccessor implements InitializingBean {
+
+	private Map<String, String> serviceUrls;
+
+	public void setServiceUrls(Map<String, String> serviceUrls) {
+		this.serviceUrls = serviceUrls;
+	}
+
+	public Map<String, String> getServiceUrls() {
+		return serviceUrls;
+	}
+
+	@Override
+	public void afterPropertiesSet() {
+		if (getServiceUrls() == null)
+			throw new IllegalArgumentException("Property 'serviceUrls' is required");
+	}
+
+}

+ 27 - 0
src/test/java/com/uas/api/AbstractTest.java

@@ -0,0 +1,27 @@
+package com.uas.api;
+
+import com.uas.api.crypto.util.SecretUtil;
+import com.uas.remoting.hessian.MultiProxyFactoryBean;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * Created by Pro1 on 2017/11/17.
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("classpath:hessian.xml")
+public abstract class AbstractTest {
+
+    static final String ID = "10046597";
+
+    static final String SECRET = "0ee8b85a85a49346fdff9665312a5cc4";
+
+    static final String ENV = "test";
+
+    static {
+        SecretUtil.set(ID, SECRET);
+        MultiProxyFactoryBean.setProxy(ENV);
+    }
+
+}

+ 24 - 0
src/test/java/com/uas/api/OrderServiceTest.java

@@ -0,0 +1,24 @@
+package com.uas.api;
+
+import com.uas.api.b2c_erp.seller.model.Order;
+import com.uas.api.b2c_erp.seller.service.OrderService;
+import org.junit.Test;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * Created by Pro1 on 2017/11/17.
+ */
+public class OrderServiceTest extends AbstractTest{
+
+    @Resource(name = "api.orderService")
+    private OrderService orderService;
+
+    @Test
+    public void testFindAllUnReceived() {
+//        List<Order> orders = orderService.findAllUnReceived();
+//        System.out.println(null == orders ? 0 : orders.size());
+    }
+
+}

+ 22 - 0
src/test/resources/hessian.xml

@@ -0,0 +1,22 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <bean id="signedProxyFactory" class="com.uas.api.crypto.hessian.SignedProxyFactory"></bean>
+
+    <!-- 商城销售订单接口 -->
+    <bean id="api.orderService" class="com.uas.remoting.hessian.MultiProxyFactoryBean">
+        <property name="proxyFactory" ref="signedProxyFactory" />
+        <property name="serviceUrls">
+            <map>
+                <entry key="test"
+                       value="http://localhost:8080/platform-b2c/api/service/seller/order" />
+                <entry key="prod" value="https://api.usoftmall.com/api/service/seller/order" />
+            </map>
+        </property>
+        <property name="serviceInterface"
+                  value="com.uas.api.b2c_erp.seller.service.OrderService" />
+        <property name="overloadEnabled" value="true" />
+        <property name="hessian2" value="true" />
+        <property name="readTimeout" value="30000" />
+    </bean>
+</beans>