Browse Source

init from phab

xielq 5 years ago
parent
commit
5b4d833007

+ 0 - 0
README.md


+ 39 - 0
pom.xml

@@ -0,0 +1,39 @@
+<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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.uas.ps</groupId>
+        <artifactId>ps-parent</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+    <artifactId>ps-entity</artifactId>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.hibernate.javax.persistence</groupId>
+            <artifactId>hibernate-jpa-2.1-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.uas.ps</groupId>
+            <artifactId>ps-sync-core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 143 - 0
src/main/java/com/uas/ps/entity/Attach.java

@@ -0,0 +1,143 @@
+package com.uas.ps.entity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 附件
+ *
+ * @author sunyj
+ * @since 2018/1/13 13:56
+ */
+@Entity
+@Table(name = "attachs")
+public class Attach implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "at_id")
+    private Long id;
+
+    /**
+     * 路径
+     */
+    @Column(name = "at_path")
+    private String path;
+
+    /**
+     * 描述语
+     */
+    @Column(name = "at_description")
+    private String description;
+
+    /**
+     * 文件名称
+     */
+    @Column(name = "at_name")
+    private String name;
+
+    /**
+     * 文件大小
+     */
+    @Column(name = "at_size")
+    private Long size;
+
+    /**
+     * 关联的表
+     */
+    @Column(name = "rel_table")
+    private String relatedTable;
+
+    /**
+     * 关联的数据主键值
+     */
+    @Column(name = "rel_key")
+    private Long relatedKey;
+
+    /**
+     * 保存时间
+     */
+    @Column(name = "at_date")
+    private Date date;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Long getSize() {
+        return size;
+    }
+
+    public void setSize(Long size) {
+        this.size = size;
+    }
+
+    public String getRelatedTable() {
+        return relatedTable;
+    }
+
+    public void setRelatedTable(String relatedTable) {
+        this.relatedTable = relatedTable;
+    }
+
+    public Long getRelatedKey() {
+        return relatedKey;
+    }
+
+    public void setRelatedKey(Long relatedKey) {
+        this.relatedKey = relatedKey;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    @Override
+    public String toString() {
+        return "Attach{" +
+                "id=" + id +
+                ", path='" + path + '\'' +
+                ", description='" + description + '\'' +
+                ", name='" + name + '\'' +
+                ", size=" + size +
+                ", relatedTable='" + relatedTable + '\'' +
+                ", relatedKey=" + relatedKey +
+                ", date=" + date +
+                '}';
+    }
+}

+ 792 - 0
src/main/java/com/uas/ps/entity/Product.java

@@ -0,0 +1,792 @@
+package com.uas.ps.entity;
+
+import com.uas.ps.sync.core.annotation.Sync;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 物料
+ *
+ * @author sunyj
+ * @since 2018/1/13 13:18
+ */
+@Sync
+@Entity
+@Table(name = "products", indexes = {
+        @Index(name = "products_code_index", columnList = "pr_code"),
+        @Index(name = "products_enuu_index", columnList = "pr_enuu"),
+        @Index(name = "products_code_enuu_index", columnList = "pr_code, pr_enuu", unique = true)})
+public class Product implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "pr_id")
+    private Long id;
+
+    /**
+     * 商品信息标题
+     */
+    @Column(name = "pr_title")
+    private String title;
+
+    /**
+     * 产品编号
+     */
+    @Column(name = "pr_code")
+    private String code;
+
+    /**
+     * 产品规格
+     */
+    @Column(name = "pr_spec", columnDefinition = "text")
+    private String spec;
+
+    /**
+     * 单位
+     */
+    @Column(name = "pr_unit")
+    private String unit;
+
+    /**
+     * 所属企业UU
+     */
+    @Column(name = "pr_enuu")
+    private Long enUU;
+
+    /**
+     * 个人UU 上传人的UU
+     */
+    @Column(name = "pr_useruu")
+    private Long userUU;
+
+    /**
+     * 最小包装量
+     */
+    @Column(name = "pr_minpack")
+    private Double minPack;
+
+    /**
+     * 最小采购量
+     */
+    @Column(name = "pr_minorder")
+    private Double minOrder;
+
+    /**
+     * 采购提前期
+     */
+    @Column(name = "pr_leadtime")
+    private Double leadTime;
+
+    /**
+     * 备货提前期(天数)
+     */
+    @Column(name = "pr_ltinstock")
+    private Double ltinstock;
+
+    /**
+     * ERP空闲库存
+     */
+    @Column(name = "pr_reserve")
+    private Double reserve;
+
+    /**
+     * 价格
+     */
+    @Column(name = "pr_price")
+    private Double price;
+
+    /**
+     * 品牌(ERP) 上传时的品牌
+     */
+    @Column(name = "pr_brand")
+    private String brand;
+
+    /**
+     * 原厂型号(erp) 用户上传的型号
+     */
+    @Column(name = "pr_cmpcode", length = 800)
+    private String cmpCode;
+
+    /**
+     * 买方ERP物料ID
+     */
+    @Column(name = "pr_sourceid")
+    private Long sourceId;
+
+    /**
+     * 保存erp传入数据的时间
+     */
+    @Column(name = "pr_erpdate")
+    private Date erpDate;
+
+    /**
+     * UUID 标准料号
+     */
+    @Column(name = "pr_cmpuuid")
+    private String cmpUuid;
+
+    /**
+     * 应用来源<br>
+     * 平台上传的为可以销售的
+     */
+    @Column(name = "pr_sourceapp")
+    private String sourceApp;
+
+    /**
+     * 类目(平台)(中文)
+     */
+    @Column(name = "pr_kind")
+    private String kind;
+
+    /**
+     * 类目(平台)(英文)
+     */
+    @Column(name = "pr_kinden")
+    private String kindEn;
+
+    /**
+     * 类目的id
+     */
+    @Column(name = "pr_kindid")
+    private Long kindId;
+
+    /**
+     * 品牌(平台)(中文)
+     */
+    @Column(name = "pr_pbrand")
+    private String pBrand;
+
+    /**
+     * 品牌(平台)(英文)
+     */
+    @Column(name = "pr_pbranden")
+    private String pBrandEn;
+
+    /**
+     * 品牌(平台)id
+     */
+    @Column(name = "pr_pbrandid")
+    private Long pBrandId;
+
+    /**
+     * 品牌(平台)(uuid)
+     */
+    @Column(name = "pr_pbranduuid")
+    private String pBrandUuid;
+
+    /**
+     * 型号(平台)
+     */
+    @Column(name = "pr_pcmpcode", length = 800)
+    private String pCmpCode;
+
+    /**
+     * 是否可卖<br>
+     * 1. 可以卖 <br>
+     * 0. 不可
+     */
+    @Column(name = "pr_issale")
+    private Short isSale;
+
+    /**
+     * 是否可买<br>
+     * 1. 可以买<br>
+     * 0. 不可
+     */
+    @Column(name = "pr_ispurchase")
+    private Short isPurchase;
+
+    /**
+     * 公开展示<br>
+     * <p>
+     * 1. 是<br>
+     * 0. 否
+     */
+    @Column(name = "pr_isshow")
+    private Short isShow;
+
+    /**
+     * 公开销售 <br>
+     * 1. 是<br>
+     * 0. 否
+     */
+    @Column(name = "pr_ispubsale")
+    private Short isPubsale;
+
+    /**
+     * 附件
+     */
+    @Column(name = "pr_attachment")
+    private String attachment;
+
+    /**
+     * 是否是标准物料<br>
+     * 1.YES<br>
+     * 0.NO
+     */
+    @Column(name = "pr_standard")
+    private Short standard;
+
+    /**
+     * 匹配状态(记录匹配状态,方便下次查看)
+     */
+    @Column(name = "pr_matchstatus")
+    private Integer matchStatus;
+
+    /**
+     * 匹配数量(用作排序)
+     */
+    @Column(name = "pr_matchsize")
+    private Integer matchSize;
+
+    /**
+     * 匹配结果
+     */
+    @OneToMany(mappedBy = "product", cascade = {CascadeType.REFRESH}, fetch = FetchType.LAZY)
+    private Set<ProductMatchResult> matchResults;
+
+    /**
+     * 封装
+     */
+    @Column(name = "pr_encapsulation")
+    private String encapsulation;
+
+    /**
+     * 包装:托盘、管装、卷带
+     */
+    @Column(name = "pr_packaging")
+    private String packaging;
+
+    /**
+     * 图片
+     */
+    @Column(name = "pr_cmpimg")
+    private String cmpImg;
+
+    /**
+     * 产品建立时间
+     */
+    @Column(name = "pr_create_time")
+    private Date createTime;
+
+    /**
+     * 匹配为标准时的系统时间
+     */
+    @Column(name = "pr_tostandard")
+    private Date toStandard;
+
+    /**
+     * 下载状态,平台更新ERP的数据后,将数据回传回ERP更新
+     */
+    @Column(name = "pr_downloadstatus")
+    private Integer downloadStatus;
+
+    /**
+     * 产品生产日期
+     */
+    @Column(name = "pr_manufacturedate")
+    private String manufactureDate;
+
+    /**
+     * 编码版本号
+     */
+    @Column(name = "pr_goodsnover")
+    private String goodsNover;
+
+    /**
+     * 税收分类编码
+     */
+    @Column(name = "pr_goodstaxno")
+    private String goodsTaxNo;
+
+    /**
+     * 是否享受优惠政策
+     */
+    @Column(name = "pr_taxpre")
+    private String taxPre;
+
+    /**
+     * 享受优惠政策内容
+     */
+    @Column(name = "pr_taxprecon")
+    private String taxPreCon;
+
+    /**
+     * 最长交期
+     */
+    @Column(name = "pr_maxdelivery")
+    private Short maxDelivery;
+
+    /**
+     * 最短交期
+     */
+    @Column(name = "pr_mindelivery")
+    private Short minDelivery;
+
+    /**
+     * 是否拆卖
+     */
+    @Column(name = "pr_isbreakup")
+    private Boolean isBreakUp;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public Double getMinPack() {
+        return minPack;
+    }
+
+    public void setMinPack(Double minPack) {
+        this.minPack = minPack;
+    }
+
+    public Double getMinOrder() {
+        return minOrder;
+    }
+
+    public void setMinOrder(Double minOrder) {
+        this.minOrder = minOrder;
+    }
+
+    public Double getLeadTime() {
+        return leadTime;
+    }
+
+    public void setLeadTime(Double leadTime) {
+        this.leadTime = leadTime;
+    }
+
+    public Double getLtinstock() {
+        return ltinstock;
+    }
+
+    public void setLtinstock(Double ltinstock) {
+        this.ltinstock = ltinstock;
+    }
+
+    public Double getReserve() {
+        return reserve;
+    }
+
+    public void setReserve(Double reserve) {
+        this.reserve = reserve;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    public Long getSourceId() {
+        return sourceId;
+    }
+
+    public void setSourceId(Long sourceId) {
+        this.sourceId = sourceId;
+    }
+
+    public Date getErpDate() {
+        return erpDate;
+    }
+
+    public void setErpDate(Date erpDate) {
+        this.erpDate = erpDate;
+    }
+
+    public String getCmpUuid() {
+        return cmpUuid;
+    }
+
+    public void setCmpUuid(String cmpUuid) {
+        this.cmpUuid = cmpUuid;
+    }
+
+    public String getSourceApp() {
+        return sourceApp;
+    }
+
+    public void setSourceApp(String sourceApp) {
+        this.sourceApp = sourceApp;
+    }
+
+    public String getKind() {
+        return kind;
+    }
+
+    public void setKind(String kind) {
+        this.kind = kind;
+    }
+
+    public String getKindEn() {
+        return kindEn;
+    }
+
+    public void setKindEn(String kindEn) {
+        this.kindEn = kindEn;
+    }
+
+    public Long getKindId() {
+        return kindId;
+    }
+
+    public void setKindId(Long kindId) {
+        this.kindId = kindId;
+    }
+
+    public String getpBrand() {
+        return pBrand;
+    }
+
+    public void setpBrand(String pBrand) {
+        this.pBrand = pBrand;
+    }
+
+    public String getpBrandEn() {
+        return pBrandEn;
+    }
+
+    public void setpBrandEn(String pBrandEn) {
+        this.pBrandEn = pBrandEn;
+    }
+
+    public Long getpBrandId() {
+        return pBrandId;
+    }
+
+    public void setpBrandId(Long pBrandId) {
+        this.pBrandId = pBrandId;
+    }
+
+    public String getpBrandUuid() {
+        return pBrandUuid;
+    }
+
+    public void setpBrandUuid(String pBrandUuid) {
+        this.pBrandUuid = pBrandUuid;
+    }
+
+    public String getpCmpCode() {
+        return pCmpCode;
+    }
+
+    public void setpCmpCode(String pCmpCode) {
+        this.pCmpCode = pCmpCode;
+    }
+
+    public Short getIsSale() {
+        return isSale;
+    }
+
+    public void setIsSale(Short isSale) {
+        this.isSale = isSale;
+    }
+
+    public Short getIsPurchase() {
+        return isPurchase;
+    }
+
+    public void setIsPurchase(Short isPurchase) {
+        this.isPurchase = isPurchase;
+    }
+
+    public Short getIsShow() {
+        return isShow;
+    }
+
+    public void setIsShow(Short isShow) {
+        this.isShow = isShow;
+    }
+
+    public Short getIsPubsale() {
+        return isPubsale;
+    }
+
+    public void setIsPubsale(Short isPubsale) {
+        this.isPubsale = isPubsale;
+    }
+
+    public String getAttachment() {
+        return attachment;
+    }
+
+    public void setAttachment(String attachment) {
+        this.attachment = attachment;
+    }
+
+    public Short getStandard() {
+        return standard;
+    }
+
+    public void setStandard(Short standard) {
+        this.standard = standard;
+    }
+
+    public Integer getMatchStatus() {
+        return matchStatus;
+    }
+
+    public void setMatchStatus(Integer matchStatus) {
+        this.matchStatus = matchStatus;
+    }
+
+    public Integer getMatchSize() {
+        return matchSize;
+    }
+
+    public void setMatchSize(Integer matchSize) {
+        this.matchSize = matchSize;
+    }
+
+    public Set<ProductMatchResult> getMatchResults() {
+        return matchResults;
+    }
+
+    public void setMatchResults(Set<ProductMatchResult> matchResults) {
+        this.matchResults = matchResults;
+    }
+
+    public String getEncapsulation() {
+        return encapsulation;
+    }
+
+    public void setEncapsulation(String encapsulation) {
+        this.encapsulation = encapsulation;
+    }
+
+    public String getPackaging() {
+        return packaging;
+    }
+
+    public void setPackaging(String packaging) {
+        this.packaging = packaging;
+    }
+
+    public String getCmpImg() {
+        return cmpImg;
+    }
+
+    public void setCmpImg(String cmpImg) {
+        this.cmpImg = cmpImg;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getToStandard() {
+        return toStandard;
+    }
+
+    public void setToStandard(Date toStandard) {
+        this.toStandard = toStandard;
+    }
+
+    public Integer getDownloadStatus() {
+        return downloadStatus;
+    }
+
+    public void setDownloadStatus(Integer downloadStatus) {
+        this.downloadStatus = downloadStatus;
+    }
+
+    public String getManufactureDate() {
+        return manufactureDate;
+    }
+
+    public void setManufactureDate(String manufactureDate) {
+        this.manufactureDate = manufactureDate;
+    }
+
+    public String getGoodsNover() {
+        return goodsNover;
+    }
+
+    public void setGoodsNover(String goodsNover) {
+        this.goodsNover = goodsNover;
+    }
+
+    public String getGoodsTaxNo() {
+        return goodsTaxNo;
+    }
+
+    public void setGoodsTaxNo(String goodsTaxNo) {
+        this.goodsTaxNo = goodsTaxNo;
+    }
+
+    public String getTaxPre() {
+        return taxPre;
+    }
+
+    public void setTaxPre(String taxPre) {
+        this.taxPre = taxPre;
+    }
+
+    public String getTaxPreCon() {
+        return taxPreCon;
+    }
+
+    public void setTaxPreCon(String taxPreCon) {
+        this.taxPreCon = taxPreCon;
+    }
+
+    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 Boolean getBreakUp() {
+        return isBreakUp;
+    }
+
+    public void setBreakUp(Boolean breakUp) {
+        isBreakUp = breakUp;
+    }
+
+    @Override
+    public String toString() {
+        return "Product{" +
+                "id=" + id +
+                ", title='" + title + '\'' +
+                ", code='" + code + '\'' +
+                ", spec='" + spec + '\'' +
+                ", unit='" + unit + '\'' +
+                ", enUU=" + enUU +
+                ", userUU=" + userUU +
+                ", minPack=" + minPack +
+                ", minOrder=" + minOrder +
+                ", leadTime=" + leadTime +
+                ", ltinstock=" + ltinstock +
+                ", reserve=" + reserve +
+                ", price=" + price +
+                ", brand='" + brand + '\'' +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", sourceId=" + sourceId +
+                ", erpDate=" + erpDate +
+                ", cmpUuid='" + cmpUuid + '\'' +
+                ", sourceApp='" + sourceApp + '\'' +
+                ", kind='" + kind + '\'' +
+                ", kindEn='" + kindEn + '\'' +
+                ", kindId=" + kindId +
+                ", pBrand='" + pBrand + '\'' +
+                ", pBrandEn='" + pBrandEn + '\'' +
+                ", pBrandId=" + pBrandId +
+                ", pBrandUuid='" + pBrandUuid + '\'' +
+                ", pCmpCode='" + pCmpCode + '\'' +
+                ", isSale=" + isSale +
+                ", isPurchase=" + isPurchase +
+                ", isShow=" + isShow +
+                ", isPubsale=" + isPubsale +
+                ", attachment='" + attachment + '\'' +
+                ", standard=" + standard +
+                ", matchStatus=" + matchStatus +
+                ", matchSize=" + matchSize +
+                ", matchResults=" + matchResults +
+                ", encapsulation='" + encapsulation + '\'' +
+                ", packaging='" + packaging + '\'' +
+                ", cmpImg='" + cmpImg + '\'' +
+                ", createTime=" + createTime +
+                ", toStandard=" + toStandard +
+                ", downloadStatus=" + downloadStatus +
+                ", manufactureDate=" + manufactureDate +
+                ", goodsNover='" + goodsNover + '\'' +
+                ", goodsTaxNo='" + goodsTaxNo + '\'' +
+                ", taxPre='" + taxPre + '\'' +
+                ", taxPreCon='" + taxPreCon + '\'' +
+                ", maxDelivery=" + maxDelivery +
+                ", minDelivery=" + minDelivery +
+                ", isBreakUp=" + isBreakUp +
+                '}';
+    }
+}

+ 283 - 0
src/main/java/com/uas/ps/entity/ProductMatchResult.java

@@ -0,0 +1,283 @@
+package com.uas.ps.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.ps.sync.core.annotation.Sync;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * 产品匹配结果
+ *
+ * @author sunyj
+ * @since 2018/1/13 13:46
+ */
+@Sync
+@Entity
+@Table(name = "productmatchresults")
+public class ProductMatchResult implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "pr_id")
+    private Long id;
+
+    /**
+     * 产品id
+     */
+    @Column(name = "pr_prid")
+    private Long productId;
+
+    /**
+     * 产品
+     */
+    @ManyToOne(cascade = {CascadeType.REFRESH})
+    @JoinColumn(name = "pr_prid", insertable = false, updatable = false)
+    private Product product;
+
+    /**
+     * 序号
+     */
+    @Column(name = "pr_number")
+    private Short number;
+
+    /**
+     * 品牌id
+     */
+    @Column(name = "pr_brid")
+    private Long brandId;
+
+    /**
+     * 品牌英文
+     */
+    @Column(name = "pr_branden")
+    private String brandEn;
+
+    /**
+     * 品牌中文
+     */
+    @Column(name = "pr_brandcn")
+    private String brandCn;
+
+    /**
+     * 品牌(平台)(uuid)
+     */
+    @Column(name = "pr_pbranduuid")
+    private String pBrandUuid;
+
+    /**
+     * 类目id
+     */
+    @Column(name = "pr_kindid")
+    private Long kindId;
+
+    /**
+     * 类目英文
+     */
+    @Column(name = "pr_kinden")
+    private String kindEn;
+
+    /**
+     * 类目中文
+     */
+    @Column(name = "pr_kindcn")
+    private String kindCn;
+
+    /**
+     * uuid
+     */
+    @Column(name = "pr_uuid")
+    private String uuid;
+
+    /**
+     * 器件id
+     */
+    @Column(name = "pr_cmpid")
+    private Long cmpId;
+
+    /**
+     * 原厂型号
+     */
+    @Column(name = "pr_cmpcode")
+    private String cmpCode;
+
+    /**
+     * 企业uu
+     */
+    @Column(name = "pr_enuu")
+    private Long enUU;
+
+    /**
+     * 图片
+     */
+    @Column(name = "pr_cmpimg")
+    private String cmpImg;
+
+    /**
+     * 包装
+     */
+    @Column(name = "pr_encapsulation")
+    private String encapsulation;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Long productId) {
+        this.productId = productId;
+    }
+
+    @JSONField(serialize = false)
+    public Product getProduct() {
+        return product;
+    }
+
+    public void setProduct(Product product) {
+        this.product = product;
+    }
+
+    public Short getNumber() {
+        return number;
+    }
+
+    public void setNumber(Short number) {
+        this.number = number;
+    }
+
+    public Long getBrandId() {
+        return brandId;
+    }
+
+    public void setBrandId(Long brandId) {
+        this.brandId = brandId;
+    }
+
+    public String getBrandEn() {
+        return brandEn;
+    }
+
+    public void setBrandEn(String brandEn) {
+        this.brandEn = brandEn;
+    }
+
+    public String getBrandCn() {
+        return brandCn;
+    }
+
+    public void setBrandCn(String brandCn) {
+        this.brandCn = brandCn;
+    }
+
+    public String getpBrandUuid() {
+        return pBrandUuid;
+    }
+
+    public void setpBrandUuid(String pBrandUuid) {
+        this.pBrandUuid = pBrandUuid;
+    }
+
+    public Long getKindId() {
+        return kindId;
+    }
+
+    public void setKindId(Long kindId) {
+        this.kindId = kindId;
+    }
+
+    public String getKindEn() {
+        return kindEn;
+    }
+
+    public void setKindEn(String kindEn) {
+        this.kindEn = kindEn;
+    }
+
+    public String getKindCn() {
+        return kindCn;
+    }
+
+    public void setKindCn(String kindCn) {
+        this.kindCn = kindCn;
+    }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public Long getCmpId() {
+        return cmpId;
+    }
+
+    public void setCmpId(Long cmpId) {
+        this.cmpId = cmpId;
+    }
+
+    public String getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public String getCmpImg() {
+        return cmpImg;
+    }
+
+    public void setCmpImg(String cmpImg) {
+        this.cmpImg = cmpImg;
+    }
+
+    public String getEncapsulation() {
+        return encapsulation;
+    }
+
+    public void setEncapsulation(String encapsulation) {
+        this.encapsulation = encapsulation;
+    }
+
+    @Override
+    public String toString() {
+        return "ProductMatchResult{" +
+                "id=" + id +
+                ", productId=" + productId +
+                ", product=" + product +
+                ", number=" + number +
+                ", brandId=" + brandId +
+                ", brandEn='" + brandEn + '\'' +
+                ", brandCn='" + brandCn + '\'' +
+                ", pBrandUuid='" + pBrandUuid + '\'' +
+                ", kindId=" + kindId +
+                ", kindEn='" + kindEn + '\'' +
+                ", kindCn='" + kindCn + '\'' +
+                ", uuid='" + uuid + '\'' +
+                ", cmpId=" + cmpId +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", enUU=" + enUU +
+                ", cmpImg='" + cmpImg + '\'' +
+                ", encapsulation='" + encapsulation + '\'' +
+                '}';
+    }
+}

+ 76 - 0
src/main/java/com/uas/ps/entity/ProductPrivate.java

@@ -0,0 +1,76 @@
+package com.uas.ps.entity;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * 存贮商城私有物料字段
+ */
+@Entity
+@Table(name = "product$private")
+public class ProductPrivate  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id")
+    private Long id;
+
+    /**
+     * 物料主键
+     */
+    @Column(name = "pr_id" ,unique = true)
+    private Long prId;
+
+    /**
+     * b2c是否启用
+     * 1 启用,
+     * 0 未启用
+     */
+    @Column(name = "pr_b2cenabled")
+    private Integer b2cEnabled;
+
+    /**
+     * goods表信息中存在多少条数据
+     */
+    @Column(name = "pr_batchcount")
+    private Integer batchCount;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getPrId() {
+        return prId;
+    }
+
+    public void setPrId(Long prId) {
+        this.prId = prId;
+    }
+
+    public Integer getB2cEnabled() {
+        return b2cEnabled;
+    }
+
+    public void setB2cEnabled(Integer b2cEnabled) {
+        this.b2cEnabled = b2cEnabled;
+    }
+
+    public Integer getBatchCount() {
+        return batchCount;
+    }
+
+    public void setBatchCount(Integer batchCount) {
+        this.batchCount = batchCount;
+    }
+}

+ 98 - 0
src/main/java/com/uas/ps/entity/ProductStoreStatus.java

@@ -0,0 +1,98 @@
+package com.uas.ps.entity;
+
+import com.uas.ps.sync.core.annotation.Sync;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 产品物料存储状态<br>
+ * 如果一家企业有人操作单据,其他人不允许操作
+ * 
+ * @author hejq
+ * 创建时间:2017年6月28日
+ */
+@Sync
+@Entity
+@Table(name = "product$storestaus")
+public class ProductStoreStatus implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "pr_id")
+	private Long id;
+
+	/**
+	 * 操作企业uu
+	 */
+	@Column(name = "pr_enuu")
+	private Long enuu;
+	
+	/**
+	 * 操作人uu
+	 */
+	@Column(name = "pr_useruu")
+	private Long useruu;
+
+	/**
+	 * 操作时间
+	 */
+	@Column(name = "pr_date")
+	private Date date;
+
+	/**
+	 * 操作状态<br>
+	 * RUNNING 351 运行中<br>
+	 * FINISH 111 已结束
+	 */
+	@Column(name = "pr_status")
+	private Integer status;
+
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnuu() {
+		return enuu;
+	}
+
+	public void setEnuu(Long enuu) {
+		this.enuu = enuu;
+	}
+
+	public Long getUseruu() {
+		return useruu;
+	}
+
+	public void setUseruu(Long useruu) {
+		this.useruu = useruu;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+}

+ 135 - 0
src/main/java/com/uas/ps/entity/ProductUsers.java

@@ -0,0 +1,135 @@
+package com.uas.ps.entity;
+
+import com.uas.ps.sync.core.annotation.Sync;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户个人产品库
+ *
+ * Created by hejq on 2017-11-08.
+ */
+@Sync
+@Table(name = "product$users")
+@Entity
+public class ProductUsers implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "pu_id")
+    private Long id;
+
+    /**
+     * 用户uu
+     */
+    @Column(name = "pu_useruu" , nullable = false)
+    private Long useruu;
+
+    /**
+     * 企业uu,方便统计处理
+     */
+    @Column(name = "pu_enuu" , nullable = false)
+    private Long enuu;
+
+    /**
+     * 物料id
+     */
+    @Column(name = "pu_prid")
+    private Long prid;
+
+    /**
+     * 产品
+     */
+    @OneToOne(cascade = { CascadeType.REFRESH })
+    @JoinColumn(name = "pu_prid", insertable = false, updatable = false)
+    private Product product;
+
+    /**
+     * 日期
+     */
+    @Column(name = "pu_date")
+    private Date date;
+
+    /**
+     * 存在ERP同步过来数据的情况,记录id
+     */
+    @Column(name = "pu_erpid")
+    private Long erpid;
+
+    public ProductUsers() {
+
+    }
+
+    public ProductUsers(Long enUU, Long userUU, Long prId) {
+        this.setEnuu(enUU);
+        this.setUseruu(userUU);
+        this.setPrid(prId);
+        this.setDate(new Date());
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUseruu() {
+        return useruu;
+    }
+
+    public void setUseruu(Long useruu) {
+        this.useruu = useruu;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Long getPrid() {
+        return prid;
+    }
+
+    public void setPrid(Long prid) {
+        this.prid = prid;
+    }
+
+    public Product getProduct() {
+        return product;
+    }
+
+    public void setProduct(Product product) {
+        this.product = product;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Long getErpid() {
+        return erpid;
+    }
+
+    public void setErpid(Long erpid) {
+        this.erpid = erpid;
+    }
+}

+ 469 - 0
src/main/java/com/uas/ps/entity/Status.java

@@ -0,0 +1,469 @@
+package com.uas.ps.entity;
+
+/**
+ * 状态定义,描述
+ * 
+ * @author yingp
+ * 
+ */
+public enum Status {
+	/**
+	 * {@code 100 在录入}
+	 */
+	INPUTTING(100, "在录入"),
+	/**
+	 * {@code 101 已提交}
+	 */
+	SUBMITTED(101, "已提交"),
+	/**
+	 * {@code 102 已审核}
+	 */
+	AUDITED(102, "已审核"),
+	/**
+	 * {@code 103 未通过}
+	 */
+	NOTALLOW(103, "未通过"),
+	/**
+	 * {@code 104 已通过}
+	 */
+	ALLOW(104, "已通过"),
+	/**
+	 * {@code 111 已结束}
+	 */
+	FINISH(111, "已结束"),
+	/**
+	 * {@code 112 已删除}
+	 */
+	DELETED(112, "已删除"),
+	/**
+	 * {@code 200 未回复}
+	 */
+	NOT_REPLY(200, "未回复"),
+	/**
+	 * {@code 201 已回复}
+	 */
+	REPLIED(201, "已回复"),
+	/**
+	 * 202 平台的单据未上传到ERP、SAAS等其它系统
+	 */
+	NOT_UPLOAD(202, "待上传"),
+	/**
+	 * 203 ERP、SAAS等其它系统已下载平台的单据
+	 */
+	DOWNLOADED(203, "已下载"),
+	/**
+	 * {@code 210 未阅读}
+	 */
+	NOT_READ(210, "未阅读"),
+	/**
+	 * {@code 211 已阅读}
+	 */
+	READ(211, "已阅读"),
+	/**
+	 * {@code 221 已同意}
+	 */
+	AGREED(221, "已同意"),
+	/**
+	 * {@code 222  不同意}
+	 */
+	NOTAGREED(222, "不同意"),
+	/**
+	 * {@code 310 未启用}
+	 */
+	UNAPPLY(310, "未启用"),
+	/**
+	 * {@code 311 申请中}
+	 */
+	UNAUDIT(311, "申请中"),
+	/**
+	 * {@code 312 未激活}
+	 */
+	UNACT(312, "未激活"),
+	/**
+	 * {@code 313 已激活}
+	 */
+	ENABLED(313, "已激活"),
+	/**
+	 * {@code 314 已禁用}
+	 */
+	DISABLED(314, "已禁用"),
+	/**
+	 * {@code 315 已注销,已取消}
+	 */
+	CANCELLED(315, "已注销"),
+	/**
+	 * {@code 317 已开账}
+	 */
+	CREATED(317, "已开账"),
+	/**
+	 * {@code 350 未完成}
+	 */
+	PENDING(350, "未完成"),
+	/**
+	 * {@code 351 运行中}
+	 */
+	RUNNING(351, "运行中"),
+	/**
+	 * {@code 400 已发货}
+	 */
+	SEND(400, "已发货"),
+	/**
+	 * {@code 401 未发货}
+	 */
+	UNSEND(401, "未发货"),
+	/**
+	 * {@code 402 部分发货}
+	 */
+	PART_SEND(402, "部分发货"),
+	/**
+	 * {@code 403 出货中}
+	 */
+	SHIPPINGIN(403, "出货中"),
+	/**
+	 * {@code 404 待收货}
+	 */
+	INBOUND(404, "待收货"),
+	/**
+	 * {@code 405 已收货,只指货物}
+	 */
+	RECEIVED(405, "已收货"),
+	/**
+	 * {@code 406 待出货}
+	 */
+	TOBESHIPPED(406, "待出货"),
+	/**
+	 * {@code 407 已出货}
+	 */
+	SHIPPED(407, "已出货"),
+	/**
+	 * {@code 408 发货中}
+	 */
+	SENDING(408, "发货中"),
+	/**
+	 * {@code 409 待回寄}
+	 */
+	TOBESHIPPEDBACK(409, "待回寄"),
+	/**
+	 * {@code 410 验货中}
+	 */
+	INSPECTING(410, "验货中"),
+
+	/**
+	 * {@code 411 已验货}
+	 */
+	INSPECTED(411, "已验货"),
+
+	/**
+	 * {@code 412  等待卖家同意}
+	 */
+	WAITSELLERCOMFIRM(412, "等待卖家同意"),
+
+	/**
+	 * {@code 413  卖家接单}
+	 */
+	ORDERTAKE(413, "卖家接单"),
+
+	/**
+	 * {@code 501 待确认}
+	 */
+	TOBECONFIRMED(501, "待确认"),
+	/**
+	 * {@code 502 已确认}
+	 */
+	CONFIRMED(502, "已确认"),
+	/**
+	 * {@code 503 待付款}
+	 */
+	TOBEPAID(503, "待付款"),
+	/**
+	 * {@code 504 已付款}
+	 */
+	PAID(504, "已付款"),
+	/**
+	 * {@code 505 已收款}
+	 */
+	MONEYRECEIVED(505, "已收款"),
+	/**
+	 * {@code 506 待收款}
+	 */
+	TORECEIVEMONEY(506, "待收款"),
+	/**
+	 * {@code 507待退款}
+	 */
+	TOBEREFUNDED(507, "待退款"),
+	/**
+	 * {@code 508 已退款}
+	 */
+	REFUNDED(508, "已退款"),
+	/**
+	 * {@code 509  退货中}
+	 */
+	RETURNINGGOODS(509, "退货中"),
+	
+	/**
+	 * {@code 521 退货}
+	 */
+	RETURN(521, "退货"),
+	/**
+	 * {@code 510  换货中}
+	 */
+	EXCHANGEGOODS(510, "换货中"),
+	/**
+	 * {@code 511  售后中}
+	 */
+	INAFTERSALES(511, "售后处理中"),
+	/**
+	 * {@code 512  待开发票}
+	 */
+	TOBEMADEOUTANINVOICE(512, "待开发票"),
+	/**
+	 * {@code 511  已开发票}
+	 */
+	MADEOUTANINVOICE(513, "已开发票"),
+	/**
+	 * {@code 514  待结算}
+	 */
+	NOTSETTLED(514, "待结算"),
+	/**
+	 * {@code 515  已结算}
+	 */
+	SETTLED(515, "已结算"),
+	/**
+	 * {@code 516  已到结算期}
+	 */
+	CHECKDEADLINE(516, "已到结算期"),
+	/**
+	 * {@code 517  未到结算期}
+	 */
+	NOCHECKDEADLINE(517, "未到结算期"),
+	/**
+	 * {@code 518  已送样}
+	 */
+	PROOFED(518, "已送样"),
+	/**
+	 * {@code 520 已完成}
+	 */
+	COMPLETED(520, "已完成"),
+	/**
+	 * {@code 521 待评论}
+	 */
+	TO_BE_REVIEWED(521, "待评论"),
+	/**
+	 * {@code 521 待评论}
+	 */
+	TO_BE_AFTERREVIEWED(523, "待追评"),
+	/**
+	 * {@code 522 已评论}
+     */
+	REVIEWED(522, "已评论"),
+	/**
+	 * {@code 601  有效的}
+	 */
+	AVAILABLE(601, "有效地"),
+	/**
+	 * {@code 602 无效的(因库存不足而失效)}
+	 */
+	UNAVAILABLE(602, "无效的(因库存不足而失效)"),
+	/**
+	 * {@code 603 无效的(因未按时付款)}
+	 */
+	UNAVAILABLE_NOPAID(603, "无效的(因未按时付款)"),
+
+	/**
+	 * {@code 604  无效的(因供应商拒绝)}
+	 */
+	UNAVAILABLE_DISAGREE(604, "无效的(因供应商拒绝)"),
+
+	/**
+	 * {@code 605 无效的(因全部退货完成的)}
+	 */
+	UNAVAILABLE_RETURN(605, "无效的(因全部退货完成的)"),
+	/**
+	 * {@code 606 无效的(因用户本人取消而失效)}
+	 */
+	UNAVAILABLE_PERSONAL(606, "无效的(因用户本人取消而失效)"),
+	/**
+	 * {@code 607 申请议价中}
+	 */
+	CHARGE_APPLY(607, "申请议价中"),
+	/**
+	 * {@code 608 议价结束(同意)}
+	 */
+	CHARGE_ACCEPT(608, "议价结束(同意)"),
+	/**
+	 * {@code 609 议价结束(不同意)}
+	 */
+	CHARGE_REFUSE(609, "议价结束(不同意)"),
+
+	/**
+	 * {@code 610   确认状态取消(确认状态下供应商拒绝取消)}
+	 */
+	COMFIRM_DISAGREE(610, " 确认状态取消(供应商拒绝取消)"),
+
+	/**
+	 * {@code 611   已付款状态取消(已付款状态下供应商拒绝取消)}
+	 */
+	PAIDED_DISAGREE(611, "已付款状态取消(供应商拒绝取消)"),
+
+	/**
+	 * {@code 612 已下架}
+	 */
+	REMOVED(612, "已下架"),
+
+	/*
+	 * {@code 699 待开发票}
+	 */
+	PREPARE_BILL(699, "准备发票"),
+
+	/*
+	 * {@code 700 待开发票}
+	 */
+	TOBEMAKE_BILL(700, "待开发票"),
+
+	/**
+	 * {@code 701  待收发票} 如果在订单主表代表,已经全部开票,存在待收票的明细 如果在明细表,代表这条明细已经开票,处于待确认收票状态
+	 */
+	TOBERECEIVE_BILL(701, "待收发票"),
+
+	/*
+	 * {@code 702 已收发票}
+	 */
+	RECEIVED_BILL(702, "已收发票"),
+
+	/*
+	 * {@code 703 不需开票}
+	 */
+	NEEDNO_BILL(703, "不需开票"),
+
+	/*
+	 * {@code 704 存在待收票的订单} 区别与701 701状态代表订单中不存在待开票的明细;而704代表订单中可能存在待开票的明细
+	 */
+	TOCONFIRM_BILL(704, "存在待收票的订单"),
+
+	/*
+	 * {@code 705 已开票的全部收票}
+	 */
+	OPENED_RECEIVED_BILL(705, "已开票的全部收票"),
+
+	/**
+	 * {@code 810 创客需求问题待处理}
+	 */
+	TOBE_HANDLE(810, "未处理"),
+
+	/**
+	 * {@code 811 创客需求问题已处理}
+	 */
+	HANDLED(811, "已处理"),
+
+	/**
+	 * {@code 812 待爬取}
+	 */
+	TO_CROWL(812, "未完成"),
+
+	/**
+	 * {@code 813 已爬取}
+	 */
+	CROWLED(813, "已完成"),
+
+	/**
+	 * {@code 814 爬取失败}
+	 */
+	CROWLED_FAILED(814, "任务失败"),
+	/**
+	 * {@code 1669 待入库 <b>待入库</b>}
+	 */
+	TOBE_LOAD(1669, "待入库"),
+
+	/**
+	 * {@code 1670 待上架 <b>待上架</b>}
+	 */
+	TOBE_ONSALE(1670, "未上架"),
+
+	/**
+	 * {@code 1680 未读 <b>未读</b>}
+	 */
+	UNREAD(1680, "未读"),
+
+	/**
+	 * {@code 1690 1690 <b>1690</b>}
+	 */
+	ISREAD(1690, "已读");
+
+	/**
+	 * @param value
+	 *            状态编号
+	 *            <p>
+	 *            100~199 <i>单据基本状态</i>
+	 *            </p>
+	 *            <p>
+	 *            200~299 <i>沟通状态</i>
+	 *            </p>
+	 *            <p>
+	 *            300~399 <i>用户使用状态</i>
+	 *            </p>
+	 *            <p>
+	 *            400~499 <i>物流状态</i>
+	 *            </p>
+	 *            <p>
+	 *            500~599 <i>单据状态</i>
+	 *            </p>
+	 * @param phrase
+	 *            描述
+	 */
+	private Status(int value, String phrase) {
+		this.value = value;
+		this.phrase = phrase;
+	}
+
+	private final int value;
+
+	private final String phrase;
+
+	/**
+	 * @return 状态的整型编码
+	 */
+	public int value() {
+		return this.value;
+	}
+
+	/**
+	 * @return 状态的描述
+	 */
+	public String getPhrase() {
+		return this.phrase;
+	}
+
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 */
+	public static Status valueOf(int statusCode) {
+		for (Status status : values()) {
+			if (status.value == statusCode) {
+				return status;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
+	}
+
+	/**
+	 * 返回状态的编号
+	 */
+	@Override
+	public String toString() {
+		return Integer.toString(value);
+	}
+
+	/**
+	 * 判断订单或采购单的当前状态是否处于已失效状态
+	 *
+	 * @return	如果已失效,则返回true
+	 */
+	public static boolean isUnavailable(Integer status) {
+		return Status.UNAVAILABLE.value() == status || Status.UNAVAILABLE_DISAGREE.value() == status || Status.UNAVAILABLE_NOPAID.value() == status
+				|| Status.UNAVAILABLE_PERSONAL.value() == status || Status.UNAVAILABLE_RETURN.value() == status || Status.RETURN.value() == status;
+	}
+}