Просмотр исходного кода

初始化对接api,询报价接口

chenw 7 лет назад
Родитель
Сommit
8306d6c51b
23 измененных файлов с 5269 добавлено и 0 удалено
  1. 48 0
      applications/transfers/mall-api/pom.xml
  2. 82 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/api/InquiryApi.java
  3. 13 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/config/InquiryFeignConfig.java
  4. 152 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/Attach.java
  5. 106 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/Enterprise.java
  6. 63 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/IPage.java
  7. 362 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/InquiryEnRemind.java
  8. 356 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/InquiryRemind.java
  9. 724 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/Product.java
  10. 224 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/ProductMatchResult.java
  11. 311 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PublicInquiry.java
  12. 869 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PublicInquiryItem.java
  13. 55 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PublicInquiryReply.java
  14. 397 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiry.java
  15. 347 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiryInfo.java
  16. 433 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiryItem.java
  17. 499 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiryItemInfo.java
  18. 54 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurchaseInquiryReply.java
  19. 117 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/User.java
  20. 35 0
      applications/transfers/mall-api/src/test/java/com/usoftchina/inquiry/test/InquiryApiTest.java
  21. 19 0
      applications/transfers/mall-api/src/test/java/com/usoftchina/inquiry/test/InquiryTest.java
  22. 2 0
      applications/transfers/mall-api/src/test/resources/application.yml
  23. 1 0
      applications/transfers/pom.xml

+ 48 - 0
applications/transfers/mall-api/pom.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+    <parent>
+        <artifactId>transfers</artifactId>
+        <groupId>com.usoftchina.saas</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mall-api</artifactId>
+
+    <description>mall api</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper</artifactId>
+            <version>RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-commons</artifactId>
+            <version>RELEASE</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 82 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/api/InquiryApi.java

@@ -0,0 +1,82 @@
+package com.usoftchina.inquiry.api;
+
+import com.usoftchina.inquiry.po.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.data.domain.Page;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+@FeignClient(url = "${inquiry.base-url}", name = "inquiry-server")
+@RequestMapping("/inquiry")
+public interface InquiryApi {
+
+    /**
+     * 查看待报价列表(全部)
+     * @param pageNumber
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/public")
+    IPage<PurcInquiryItemInfo> getInquiry(@RequestParam("pageNumber") int pageNumber, @RequestParam("pageSize") int pageSize,
+                                          @RequestParam("keyword") String keyword, @RequestParam("isLogin") int isLogin);
+
+    /**
+     * 查看待报价列表(企业商机)
+     * @param useruu
+     * @param enuu
+     * @param pageNumber
+     * @param pageSize
+     * @param enableOffer   是否能报价的:1为是 0为否,作为搜索条件。  值为0或null时,筛选所有
+     * @return
+     */
+    @GetMapping("/sale/enremind")
+    IPage<InquiryEnRemind> findEnRemind(@RequestParam("useruu") Long useruu, @RequestParam("enuu") Long enuu,
+                                        @RequestParam("pageNumber") int pageNumber, @RequestParam("pageSize") int pageSize,
+                                        @RequestParam("enableOffer") Integer enableOffer);
+
+    /**
+     * 查看(个人商机)
+     * @param useruu
+     * @param enuu
+     * @param pageNumber
+     * @param pageSize
+     * @param enableOffer   是否能报价的:1为是 0为否,作为搜索条件。  值为0或null时,筛选所有
+     * @param keyword       关键词,做筛选用
+     * @return
+     */
+    @GetMapping("/sale/remind")
+    IPage<InquiryRemind> findByUserInfo(@RequestParam("useruu") Long useruu, @RequestParam("enuu") Long enuu,
+                                        @RequestParam("pageNumber") int pageNumber, @RequestParam("pageSize") int pageSize,
+                                        @RequestParam("enableOffer") Integer enableOffer, @RequestParam("keyword") String keyword);
+
+    /**
+     * 保存报价接口
+     * @param publicInquiryItem 报价单内容
+     * @return
+     */
+    @PostMapping("/sale/item/saveQuote")
+    ModelMap saveQuote(@RequestBody PublicInquiryItem publicInquiryItem);
+
+    /**
+     * 保存更新公共询价单
+     * @param inquiry   询价信息
+     * @return
+     */
+    @PostMapping("/buyer/save")
+    PurcInquiry saveInquiry(@RequestBody PurcInquiry inquiry);
+
+    /**
+     * 通过企业UU和分页参数获取已发布的询价明细
+     * @param enUU
+     * @param overdue
+     * @param pageNumber
+     * @param pageSize
+     * @param state
+     * @return
+     */
+    @GetMapping("/buyer/list")
+    Page<PurcInquiryItemInfo> getInquiryList(@RequestParam("enUU") Long enUU, @RequestParam("overdue") Integer overdue,
+                                             @RequestParam("pageNumber") int pageNumber, @RequestParam("pageSize") int pageSize,
+                                             @RequestParam(value = "state", defaultValue = "todo") String state);
+
+}

+ 13 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/config/InquiryFeignConfig.java

@@ -0,0 +1,13 @@
+package com.usoftchina.inquiry.config;
+
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/04
+ */
+public class InquiryFeignConfig {
+
+    private String baseUrl;
+
+}

+ 152 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/Attach.java

@@ -0,0 +1,152 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * 附件
+ *
+ * @author chenwei
+ * @since 2018/1/13 13:56
+ */
+public class Attach implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 路径
+     */
+    private String path;
+
+    /**
+     * 描述语
+     */
+    private String description;
+
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    /**
+     * 文件大小
+     */
+    private Long size;
+
+    /**
+     * 关联的表
+     */
+    private String relatedTable;
+
+    /**
+     * 关联的数据主键值
+     */
+    private Long relatedKey;
+
+    /**
+     * 保存时间
+     */
+    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 boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        Attach attach = (Attach) o;
+        return Objects.equals(id, attach.id) &&
+                Objects.equals(path, attach.path) &&
+                Objects.equals(description, attach.description) &&
+                Objects.equals(name, attach.name) &&
+                Objects.equals(size, attach.size) &&
+                Objects.equals(relatedTable, attach.relatedTable) &&
+                Objects.equals(relatedKey, attach.relatedKey) &&
+                Objects.equals(date, attach.date);
+    }
+
+    @Override
+    public int hashCode() {
+
+        return Objects.hash(id, path, description, name, size, relatedTable, relatedKey, date);
+    }
+
+    @Override
+    public String toString() {
+        return "Attach{" +
+                "id=" + id +
+                ", path='" + path + '\'' +
+                ", description='" + description + '\'' +
+                ", name='" + name + '\'' +
+                ", size=" + size +
+                ", relatedTable='" + relatedTable + '\'' +
+                ", relatedKey=" + relatedKey +
+                ", date=" + date +
+                '}';
+    }
+}

+ 106 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/Enterprise.java

@@ -0,0 +1,106 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+
+/**
+ * 企业信息,询价所有信息存在公共服务,这里需要关联企业信息
+ *
+ * chenwei
+ */
+public class Enterprise implements Serializable {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * uu号
+     */
+    private Long uu;
+
+    /**
+     * 公司名称
+     */
+    private String enName;
+
+    /**
+     * 公司电话
+     */
+    private String enTel;
+
+    /**
+     * 注册地址
+     */
+    private String enAddress;
+
+    /**
+     * 营业执照号
+     */
+    private  String businesscode;
+
+    /**
+     * 企业管理员UU
+     */
+    private Long adminUU;
+
+    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 getEnTel() {
+        return enTel;
+    }
+
+    public void setEnTel(String enTel) {
+        this.enTel = enTel;
+    }
+
+    public String getEnAddress() {
+        return enAddress;
+    }
+
+    public void setEnAddress(String enAddress) {
+        this.enAddress = enAddress;
+    }
+
+    public String getBusinesscode() {
+        return businesscode;
+    }
+
+    public void setBusinesscode(String businesscode) {
+        this.businesscode = businesscode;
+    }
+
+    public Long getAdminUU() {
+        return adminUU;
+    }
+
+    public void setAdminUU(Long adminUU) {
+        this.adminUU = adminUU;
+    }
+
+    @Override
+    public String toString() {
+        return "Enterprise{" +
+                "uu=" + uu +
+                ", enName='" + enName + '\'' +
+                ", enTel='" + enTel + '\'' +
+                ", enAddress='" + enAddress + '\'' +
+                ", businesscode='" + businesscode + '\'' +
+                ", adminUU=" + adminUU +
+                '}';
+    }
+}

+ 63 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/IPage.java

@@ -0,0 +1,63 @@
+package com.usoftchina.inquiry.po;
+
+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;
+    }
+
+}

+ 362 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/InquiryEnRemind.java

@@ -0,0 +1,362 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 针对用户的询价企业推荐提醒
+ *
+ * Created by lisuw on 2018-01-31.
+ */
+public class InquiryEnRemind implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 询价单号
+     */
+    private String code;
+
+    /**
+     * 询价企业名称
+     */
+    private String enName;
+
+    /**
+     * 询价企业UU
+     */
+    private Long enUU;
+
+    /**
+     * 联系人
+     */
+    private String userName;
+
+    /**
+     * 联系方式
+     */
+    private String userTel;
+
+    /* ********************* 物料信息start***************************** */
+
+    /**
+     * 询价品牌
+     */
+    private String brand;
+
+    /**
+     * 询价品牌
+     */
+    private String inbrand;
+
+    /**
+     * 原厂型号
+     */
+    private String cmpCode;
+
+    /**
+     * 物料规格
+     */
+    private String spec;
+
+    /**
+     * 物料名称
+     */
+    private String prodTitle;
+
+    /* ********************* 物料信息end***************************** */
+
+    /**
+     * 需求数量
+     */
+    private Double needQty;
+
+    /**
+     * 发布日期
+     */
+    private Date reDate;
+
+    /**
+     * 截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 记录来源公共询价询价明细id
+     */
+    private Long itemId;
+
+    /**
+     * 记录来源公共询价询价单id
+     */
+    private Long inid;
+
+    /**
+     * 询价单信息
+     */
+    private PurcInquiry inquiry;
+
+    /**
+     * 记录转报价后的明细id
+     */
+    private Long newId;
+
+    /**
+     * 单据状态
+     * <note>
+     * {@code 100 在录入}
+     * {@code 101 已提交}
+     * {@code 102 已审核}
+     * {@code 103 未通过}
+     * {@code 104 已通过}
+     * </note>
+     */
+    private Integer status;
+
+    /**
+     * 被推荐的企业UU
+     */
+    private Long vendUU;
+
+//    /**
+//     * 被推荐的人员UU
+//     */
+//    @Column(name = "ir_venduseruu")
+//    private Long vendUserUU;
+
+    /**
+     * 是否已包含在个人商机 1是  0 否
+     */
+    private Integer remindStatus;
+
+    /**
+     * 记录日期
+     */
+    private Date date;
+
+    /**
+     * 剩余时间
+     */
+    private Long remainingTime;
+
+    /**
+     * 报价单详情
+     */
+    private PublicInquiryItem quotation;
+
+    /**
+     * erp下载状态 202  待上传 203 已下载
+     */
+    private Short erpDownStatus = 202;
+
+    public String getInbrand() {
+        return inbrand;
+    }
+
+    public void setInbrand(String inbrand) {
+        this.inbrand = inbrand;
+    }
+
+    public Long getRemainingTime() {
+        if (null != endDate) {
+            return endDate.getTime() - System.currentTimeMillis();
+        }
+        return null;
+    }
+
+    public Long getInid() {
+        return inid;
+    }
+
+    public void setInid(Long inid) {
+        this.inid = inid;
+    }
+
+    public PurcInquiry getInquiry() {
+        return inquiry;
+    }
+
+    public void setInquiry(PurcInquiry inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    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 String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public Double getNeedQty() {
+        return needQty;
+    }
+
+    public void setNeedQty(Double needQty) {
+        this.needQty = needQty;
+    }
+
+    public Date getReDate() {
+        return reDate;
+    }
+
+    public void setReDate(Date reDate) {
+        this.reDate = reDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Long getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Long itemId) {
+        this.itemId = itemId;
+    }
+
+    public Long getNewId() {
+        return newId;
+    }
+
+    public void setNewId(Long newId) {
+        this.newId = newId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Long getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(Long vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Integer getRemindStatus() {
+        return remindStatus;
+    }
+
+    public void setRemindStatus(Integer remindStatus) {
+        this.remindStatus = remindStatus;
+    }
+
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    public PublicInquiryItem getQuotation() {
+        return quotation;
+    }
+
+    public void setQuotation(PublicInquiryItem quotation) {
+        this.quotation = quotation;
+    }
+
+    public Short getErpDownStatus() {
+        return erpDownStatus;
+    }
+
+    public void setErpDownStatus(Short erpDownStatus) {
+        this.erpDownStatus = erpDownStatus;
+    }
+}

+ 356 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/InquiryRemind.java

@@ -0,0 +1,356 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 针对用户的询价推荐提醒
+ *
+ * Created by hejq on 2018-01-31.
+ */
+public class InquiryRemind implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 询价单号
+     */
+    private String code;
+
+    /**
+     * 询价企业名称
+     */
+    private String enName;
+
+    /**
+     * 询价企业UU
+     */
+    private Long enUU;
+
+    /**
+     * 联系人
+     */
+    private String userName;
+
+    /**
+     * 联系方式
+     */
+    private String userTel;
+
+    /* ********************* 物料信息start***************************** */
+
+    /**
+     * 询价品牌
+     */
+    private String brand;
+
+    /**
+     * 询价品牌
+     */
+    private String inbrand;
+
+    /**
+     * 原厂型号
+     */
+    private String cmpCode;
+
+    /**
+     * 物料规格
+     */
+    private String spec;
+
+    /**
+     * 物料名称
+     */
+    private String prodTitle;
+
+    /* ********************* 物料信息end***************************** */
+
+    /**
+     * 需求数量
+     */
+    private Double needQty;
+
+    /**
+     * 发布日期
+     */
+    private Date reDate;
+
+    /**
+     * 截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 记录来源公共询价询价明细id
+     */
+    private Long itemId;
+
+    /**
+     * 记录来源公共询价询价单id
+     */
+    private Long inid;
+
+    /**
+     * 询价单信息
+     */
+    private PurcInquiry inquiry;
+
+    /**
+     * 记录转报价后的明细id
+     */
+    private Long newId;
+
+    /**
+     * 单据状态
+     * <note>
+     * {@code 100 在录入}
+     * {@code 101 已提交}
+     * {@code 102 已审核}
+     * {@code 103 未通过}
+     * {@code 104 已通过}
+     * </note>
+     */
+    private Integer status;
+
+    /**
+     * 被推荐的企业UU
+     */
+    private Long vendUU;
+
+    /**
+     * 被推荐的人员UU
+     */
+    private Long vendUserUU;
+
+    /**
+     * 记录日期
+     */
+    private Date date;
+
+    /**
+     * 剩余时间
+     */
+    private Long remainingTime;
+
+    /**
+     * 报价单详情
+     */
+    private PublicInquiryItem quotation;
+
+    /**
+     * 发送消息时,记录条数
+     */
+    private Integer counts;
+
+    public String getInbrand() {
+        return inbrand;
+    }
+
+    public void setInbrand(String inbrand) {
+        this.inbrand = inbrand;
+    }
+
+    public Long getRemainingTime() {
+        if (null != endDate) {
+            return endDate.getTime() - System.currentTimeMillis();
+        }
+        return null;
+    }
+
+    public Long getInid() {
+        return inid;
+    }
+
+    public void setInid(Long inid) {
+        this.inid = inid;
+    }
+
+    public PurcInquiry getInquiry() {
+        return inquiry;
+    }
+
+    public void setInquiry(PurcInquiry inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    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 String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public Double getNeedQty() {
+        return needQty;
+    }
+
+    public void setNeedQty(Double needQty) {
+        this.needQty = needQty;
+    }
+
+    public Date getReDate() {
+        return reDate;
+    }
+
+    public void setReDate(Date reDate) {
+        this.reDate = reDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Long getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Long itemId) {
+        this.itemId = itemId;
+    }
+
+    public Long getNewId() {
+        return newId;
+    }
+
+    public void setNewId(Long newId) {
+        this.newId = newId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Long getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(Long vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public Long getVendUserUU() {
+        return vendUserUU;
+    }
+
+    public void setVendUserUU(Long vendUserUU) {
+        this.vendUserUU = vendUserUU;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    public PublicInquiryItem getQuotation() {
+        return quotation;
+    }
+
+    public void setQuotation(PublicInquiryItem quotation) {
+        this.quotation = quotation;
+    }
+
+    public Integer getCounts() {
+        return counts;
+    }
+
+    public void setCounts(Integer counts) {
+        this.counts = counts;
+    }
+}

+ 724 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/Product.java

@@ -0,0 +1,724 @@
+package com.usoftchina.inquiry.po;
+
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 商品信息
+ *
+ * @author chenwei
+ *
+ */
+public class Product {
+
+    private Long id;
+
+    /**
+     * 商品信息标题
+     */
+    private String title;
+
+    /**
+     * 产品编号
+     */
+    private String code;
+
+    /**
+     * 产品规格
+     */
+    private String spec;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * 所属企业UU
+     */
+    private Long enUU;
+
+    /**
+     * 个人UU
+     */
+    private Long userUU;
+
+    /**
+     * 最小包装量
+     */
+    private Double minPack;
+
+    /**
+     * 最小采购量
+     */
+    private Double minOrder;
+
+    /**
+     * 采购提前期
+     */
+    private Double leadtime;
+
+    /**
+     * 备货提前期(天数)
+     */
+    private Double ltinstock;
+
+    /**
+     * 价格
+     */
+    private Double price;
+
+    /**
+     * 品牌(ERP)
+     */
+    private String brand;
+
+    /**
+     * 买方ERP物料ID
+     */
+    private Long sourceId;
+
+    /**
+     * 保存erp传入数据的时间
+     *
+     * @return
+     */
+    private Date erpDate;
+
+    /**
+     * 原厂型号(erp)
+     *
+     * @return
+     */
+    private String cmpCode;
+
+    /**
+     * UUID 标准料号
+     *
+     * @return
+     */
+    private String cmpUuId;
+
+    /**
+     * 应用来源<br>
+     * 平台上传的为可以销售的
+     *
+     * @return
+     */
+    private String sourceApp;
+
+    /**
+     * 是否可卖<br>
+     * 1. 可以卖 <br>
+     * 0. 不可
+     */
+    private Short isSale;
+
+    /**
+     * 是否可买<br>
+     * 1. 可以买<br>
+     * 0. 不可
+     */
+    private Short isPurchase;
+
+    /**
+     * 公开展示<br>
+     *
+     * 1. 是<br>
+     * 0. 否
+     */
+    private Short isShow;
+
+    /**
+     * 公开销售 <br>
+     * 1. 是<br>
+     * 0. 否
+     */
+    private Short isPubsale;
+
+    /**
+     * 附件
+     */
+    private String attachment;
+
+    /**
+     * 类目(平台)(中文)
+     */
+    private String kind;
+
+    /**
+     * 品牌(平台)(中文)
+     */
+    private String pbrand;
+
+    /**
+     * 型号(平台)
+     */
+    private String pcmpcode;
+
+    /**
+     * 是否是标准物料<br>
+     * 1.YES<br>
+     * 0.NO
+     */
+    private Short standard;
+
+    /**
+     * 类目(平台)(英文)
+     */
+    private String kinden;
+
+    /**
+     * 品牌(平台)(英文)
+     */
+    private String pbranden;
+
+    /**
+     * 匹配状态(记录匹配状态,方便下次查看)
+     */
+    private Integer matchstatus;
+
+    /**
+     * 匹配数量(用作排序)
+     */
+    private Integer matchsize;
+
+    /**
+     * 匹配结果
+     */
+    private Set<ProductMatchResult> matchresults;
+
+    /**
+     * 下载状态,平台更新ERP的数据后,将数据回传回ERP更新
+     */
+    private Integer downloadstatus;
+
+    /**
+     * 图片
+     */
+    private String img;
+
+    /**
+     * 封装
+     */
+    private String encapsulation;
+
+    /**
+     * 匹配成标准的日期
+     */
+    private Date tostandard;
+
+    /**
+     * 编码版本号
+     */
+    private String goodsnover;
+
+    /**
+     * 税收分类编码
+     */
+    private String goodstaxno;
+
+    /**
+     * 是否享受优惠政策
+     */
+    private String taxpre;
+
+    /**
+     * 享受优惠政策内容
+     */
+    private String taxprecon;
+
+    /**
+     * ERP库存
+     */
+    private Double reserve;
+
+    /**
+     * 标准类目id
+     */
+    private Long kindId;
+
+    /**
+     * 标准品牌id
+     */
+    private Long pbrandId;
+
+    /**
+     * 标准品牌uuid
+     */
+    private String pbrandUuid;
+
+    /**
+     * 包装方式
+     */
+    private String packaging;
+
+    /**
+     * 产品建立时间
+     */
+    private Date createTime;
+
+    /**
+     * 产品生产日期
+     */
+    private String manufactureDate;
+
+    /**
+     * 最大交期
+     */
+    private Short maxDelivery;
+
+    /**
+     * 最小交期
+     */
+    private Short minDelivery;
+
+    /**
+     * 是否可拆卖
+     */
+    private Boolean isBreakUp;
+
+    /**
+     * b2b物料禁用状态
+     */
+    private Short b2bDisabled;
+
+    /**
+     * 公共库启用状态
+     * 1: 启用
+     * 0: 禁用
+     */
+    private Short b2cEnabled;
+
+    /**
+     * 匹配的料号(买方)(用于供应商推荐接口匹配状态)
+     */
+    private String ifMatched;
+
+    public Product() {
+    }
+
+    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 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 Double getLtinstock() {
+        return ltinstock;
+    }
+
+    public void setLtinstock(Double ltinstock) {
+        this.ltinstock = ltinstock;
+    }
+
+    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 getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    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 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 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 Short getStandard() {
+        return standard;
+    }
+
+    public void setStandard(Short standard) {
+        this.standard = standard;
+    }
+
+    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 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 Integer getDownloadstatus() {
+        return downloadstatus;
+    }
+
+    public void setDownloadstatus(Integer downloadstatus) {
+        this.downloadstatus = downloadstatus;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getEncapsulation() {
+        return encapsulation;
+    }
+
+    public void setEncapsulation(String encapsulation) {
+        this.encapsulation = encapsulation;
+    }
+
+    public Date getTostandard() {
+        return tostandard;
+    }
+
+    public void setTostandard(Date tostandard) {
+        this.tostandard = tostandard;
+    }
+
+    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 String getAttachment() {
+        return attachment;
+    }
+
+    public void setAttachment(String attachment) {
+        this.attachment = attachment;
+    }
+
+    public Double getReserve() {
+        return reserve;
+    }
+
+    public void setReserve(Double reserve) {
+        this.reserve = reserve;
+    }
+
+    public Long getKindId() {
+        return kindId;
+    }
+
+    public void setKindId(Long kindId) {
+        this.kindId = kindId;
+    }
+
+    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 getPackaging() {
+        return packaging;
+    }
+
+    public void setPackaging(String packaging) {
+        this.packaging = packaging;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getManufactureDate() {
+        return manufactureDate;
+    }
+
+    public void setManufactureDate(String manufactureDate) {
+        this.manufactureDate = manufactureDate;
+    }
+
+    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;
+    }
+
+    public Short getB2bDisabled() {
+        return b2bDisabled;
+    }
+
+    public void setB2bDisabled(Short b2bDisabled) {
+        this.b2bDisabled = b2bDisabled;
+    }
+
+    public Short getB2cEnabled() {
+        return b2cEnabled;
+    }
+
+    public void setB2cEnabled(Short b2cEnabled) {
+        this.b2cEnabled = b2cEnabled;
+    }
+
+    public String getIfMatched() {
+        return ifMatched;
+    }
+
+    public void setIfMatched(String ifMatched) {
+        this.ifMatched = ifMatched;
+    }
+}

+ 224 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/ProductMatchResult.java

@@ -0,0 +1,224 @@
+package com.usoftchina.inquiry.po;
+
+
+import java.io.Serializable;
+
+/**
+ * 物料匹配结果
+ *
+ * @author hejq
+ * @date 2018-08-21 12:21
+ */
+public class ProductMatchResult implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 产品id
+     */
+    private Long prid;
+
+    /**
+     * 产品
+     */
+    private Product product;
+
+    /**
+     * 序号
+     */
+    private Short number;
+
+    /**
+     * 品牌id
+     */
+    private Long brid;
+
+    /**
+     * 品牌英文
+     */
+    private String branden;
+
+    /**
+     * 品牌中文
+     */
+    private String brandcn;
+
+    /**
+     * 类目id
+     */
+    private Long kindid;
+
+    /**
+     * 类目英文
+     */
+    private String kinden;
+
+    /**
+     * 类目中文
+     */
+    private String kindcn;
+
+    /**
+     * uuid
+     */
+    private String uuid;
+
+    /**
+     * 器件id
+     */
+    private Long cmpid;
+
+    /**
+     * 原厂型号
+     */
+    private String cmpcode;
+
+    /**
+     * 企业uu
+     */
+    private Long enuu;
+
+    /**
+     * 图片
+     */
+    private String img;
+
+    /**
+     * 包装
+     */
+    private String encapsulation;
+
+    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 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 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 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 String getCmpcode() {
+        return cmpcode;
+    }
+
+    public void setCmpcode(String cmpcode) {
+        this.cmpcode = cmpcode;
+    }
+
+    public Long getBrid() {
+        return brid;
+    }
+
+    public void setBrid(Long brid) {
+        this.brid = brid;
+    }
+
+    public Long getKindid() {
+        return kindid;
+    }
+
+    public void setKindid(Long kindid) {
+        this.kindid = kindid;
+    }
+
+    public Long getCmpid() {
+        return cmpid;
+    }
+
+    public void setCmpid(Long cmpid) {
+        this.cmpid = cmpid;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getEncapsulation() {
+        return encapsulation;
+    }
+
+    public void setEncapsulation(String encapsulation) {
+        this.encapsulation = encapsulation;
+    }
+
+}

+ 311 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PublicInquiry.java

@@ -0,0 +1,311 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 公共询价单主表
+ *    <pre>
+ *        这里是公共询价转成报价后存的数据信息,与以前的采购询价分开
+ *    </pre>
+ * @author hejq 2018-01-06
+ */
+public class PublicInquiry implements Serializable {
+
+    /**
+     * 序列
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 询价单所属企业UU
+     */
+    private Long enUU;
+
+    /**
+     * 企业名称(方便搜索)
+     */
+    private String enName;
+
+    /**
+     * 询价企业信息
+     */
+    private Enterprise enterprise;
+
+    /**
+     * 询价单所属用户UU
+     */
+    private Long recorderUU;
+
+    /**
+     * 流水号
+     */
+    private String code;
+
+    /**
+     * 单据归属日期
+     */
+    private Date date;
+
+    /**
+     * 录入人
+     */
+    private String recorder;
+
+    /**
+     * 报价截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 环保要求
+     */
+    private String environment;
+
+    /**
+     * 询价明细
+     */
+    private Set<PublicInquiryItem> inquiryItems;
+
+    /**
+     * 来源系统单据ID
+     */
+    private Long sourceId;
+
+    /**
+     * 附件
+     */
+    private Set<Attach> attachs;
+
+    /**
+     * 是否过期 1 为过期 否则为未过期
+     */
+    private Short overdue;
+
+    /**
+     * 应用来源,主要是为了平台公共询价做处理
+     */
+    private String sourceApp;
+
+    /**
+     * 收货地址
+     */
+    private String ship;
+
+    /**
+     * 是否开票<br>
+     * 1. 是<br>
+     * 0. 否
+     */
+    private Short invoice;
+
+    /**
+     * 询价类型
+     */
+    private String inquirytype;
+
+    private Long quteId;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public Long getRecorderUU() {
+        return recorderUU;
+    }
+
+    public void setRecorderUU(Long recorderUU) {
+        this.recorderUU = recorderUU;
+    }
+
+    public Long getSourceId() {
+        return sourceId;
+    }
+
+    public void setSourceId(Long sourceId) {
+        this.sourceId = sourceId;
+    }
+
+    public Set<PublicInquiryItem> getInquiryItems() {
+        return inquiryItems;
+    }
+
+    public void setInquiryItems(Set<PublicInquiryItem> inquiryItems) {
+        this.inquiryItems = inquiryItems;
+    }
+
+    public Set<Attach> getAttachs() {
+        return attachs;
+    }
+
+    public void setAttachs(Set<Attach> attachs) {
+        this.attachs = attachs;
+    }
+
+    public String getEnvironment() {
+        return environment;
+    }
+
+    public void setEnvironment(String environment) {
+        this.environment = environment;
+    }
+
+    public Short getOverdue() {
+        return overdue;
+    }
+
+    public void setOverdue(Short overdue) {
+        this.overdue = overdue;
+    }
+
+    public String getSourceApp() {
+        return sourceApp;
+    }
+
+    public void setSourceApp(String sourceApp) {
+        this.sourceApp = sourceApp;
+    }
+
+    public String getShip() {
+        return ship;
+    }
+
+    public void setShip(String ship) {
+        this.ship = ship;
+    }
+
+    public Short getInvoice() {
+        return invoice;
+    }
+
+    public void setInvoice(Short invoice) {
+        this.invoice = invoice;
+    }
+
+    public String getInquirytype() {
+        return inquirytype;
+    }
+
+    public void setInquirytype(String inquirytype) {
+        this.inquirytype = inquirytype;
+    }
+
+    public Long getQuteId() {
+        return quteId;
+    }
+
+    public void setQuteId(Long quteId) {
+        this.quteId = quteId;
+    }
+
+    public PublicInquiry() {
+    }
+
+    public PublicInquiry(PurcInquiryInfo inquiry) {
+        if (null != inquiry.getAttachs()) {
+            Set<Attach> attachSet = new HashSet<Attach>();
+            Attach attach = new Attach();
+            for (Attach att : inquiry.getAttachs()) {
+                attach.setDate(att.getDate());
+                attach.setDescription(att.getDescription());
+                attach.setName(att.getName());
+                attach.setPath(att.getPath());
+                attach.setSize(att.getSize());
+                attachSet.add(attach);
+            }
+            this.attachs = attachSet;
+        }
+        this.code = inquiry.getCode();
+        this.date = inquiry.getDate();
+        this.endDate = inquiry.getEndDate();
+        this.enUU = inquiry.getEnUU();
+        this.environment = inquiry.getEnvironment();
+        this.inquirytype = inquiry.getInquirytype();
+        this.invoice = inquiry.getInvoice();
+        this.recorderUU = inquiry.getRecorderUU();
+        this.recorder = inquiry.getRecorder();
+        this.sourceApp = inquiry.getSourceapp();
+        this.ship = inquiry.getShip();
+        this.sourceId = inquiry.getId();
+    }
+}

+ 869 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PublicInquiryItem.java

@@ -0,0 +1,869 @@
+package com.usoftchina.inquiry.po;
+
+import org.springframework.util.CollectionUtils;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * 公共询价单转报价后的询价单明细
+ *
+ * @author hejq 2018-01-06
+ */
+public class PublicInquiryItem implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 来源(买家ERP采购询价明细)的ID
+     */
+    private Long sourceId;
+
+    /**
+     * 序号
+     */
+    private Short number;
+
+    /**
+     * 询价单
+     */
+    private PublicInquiry inquiry;
+
+    /**
+     * 买家采购员UU
+     */
+    private Long userUU;
+
+    /**
+     * 联系人姓名
+     */
+    private String userName;
+
+    /**
+     * 联系人电话
+     */
+    private String userTel;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 产品
+     */
+    private Product product;
+
+    /**
+     * 币种
+     */
+    private String currency;
+
+    /**
+     * 税率
+     */
+    private Float taxrate;
+
+    /**
+     * 供应商UU
+     */
+    private Long vendUU;
+
+    /**
+     * 供应商企业信息
+     */
+    private Enterprise enterprise;
+
+    /**
+     * 供应商联系人UU
+     */
+    private Long vendUserUU;
+
+    /**
+     * 供应商用户信息
+     */
+    private User user;
+
+    /**
+     * (买家预先提供的)有效期始
+     */
+    private Date fromDate;
+
+    /**
+     * (卖家报的)最小订购量
+     */
+    private Double minOrderQty;
+
+    /**
+     * (卖家报的)最小包装量
+     */
+    private Double minPackQty;
+
+    /**
+     * (卖家报的)供应商物料编号
+     */
+    private String vendorprodcode;
+
+    /**
+     * (卖家报的)交货周期(天数)
+     */
+    private Long leadtime;
+
+    /**
+     * 分段报价明细
+     */
+    private List<PublicInquiryReply> replies;
+
+    /**
+     * 状态 200 待回复 、201 已回复 、314 已作废
+     */
+    private Short status;
+
+    /**
+     * (针对卖家的)询价传输状态{待上传、已下载}
+     */
+    private Short sendStatus;
+
+    /**
+     * (针对买家的)报价信息传输状态{待上传、已下载}
+     */
+    private Short backStatus;
+
+    /**
+     * (针对卖家的)报价信息传输状态{待上传、已下载}
+     */
+    private Short replySendStatus;
+
+    /**
+     * 是否采纳 1 为已采纳 0为已拒绝  空 未处理
+     */
+    private Short agreed;
+
+    /**
+     * 拒绝采纳理由
+     */
+    private String refusereason;
+
+    /**
+     * (针对卖家的)是否采纳信息传输状态{待上传、已下载}
+     */
+    private Short decideStatus;
+
+    /**
+     * 报价方UAS 是否采纳信息传输状态{待上传、已下载}  202 待上传  203  已下载
+     */
+    private Short decideDownStatus;
+
+    /**
+     * (针对卖家的)作废信息传输状态{待上传、已下载}
+     */
+    private Short invalidStatus;
+
+    /**
+     * 录入时间
+     *
+     */
+    private Date date;
+
+    /**
+     * 保存询价的应用
+     */
+    private String source;
+
+    /**
+     * 报价的应用
+     */
+    private String qutoApp;
+
+    /**
+     * 报价附件
+     */
+    private Set<Attach> attaches;
+
+    /**
+     * 需求数量
+     */
+    private Double needquantity;
+
+    /**
+     * erp传输状态
+     *
+     * <pre>erp发出数据传输请求时,赋给状态,完成后更新状态</pre>
+     *
+     * 1、 传输完成<br>
+     * 0、 正在传输
+     *
+     */
+    private Short erpstatus;
+
+	/*这下面是供应商报价时存的相关信息;
+	* 因为存在非客户报价,而且公共服务里面没有企业信息,现存入相关字段,后续处理*/
+    /**
+     * 供应商名称
+     */
+    private String vendName;
+
+    /**
+     * 供应商营业执照
+     */
+    private String businessCode;
+
+    /**
+     * 报价时间
+     */
+    private Date offerTime;
+
+    /**
+     * 报价截止日期
+     */
+    private Date endDate;
+
+    /**
+     * ************* 上传的物料信息,物料冗余字段 *************
+     */
+    /**
+     * 物料编号
+     */
+    private String prodCode;
+
+    /**
+     * 名称
+     */
+    private String prodTitle;
+
+    /**
+     * 规格
+     */
+    private String spec;
+
+    /**
+     * 型号
+     */
+    private String cmpCode;
+
+    /**
+     * 品牌
+     */
+    private String inbrand;
+
+    /**
+     * ******end*******
+     */
+
+    /**
+     * 剩余时间
+     */
+    private Long remainingTime;
+
+    /**
+     * 附件链接
+     */
+    private String attachUrl;
+
+    /**
+     * 附件名称
+     */
+    private String attachName;
+
+    /**
+     * 买家发出公共询价单时录入的币别
+     */
+    private String custCurrency;
+
+    /******** 替代物料信息  */
+
+    /**
+     * 替代型号
+     */
+    private String replaceCmpCode;
+
+    /**
+     * 替代规格
+     */
+    private String replaceSpec;
+
+    /**
+     * 替代品牌
+     */
+    private String replaceBrand;
+
+    /**
+     * 是否替代物料报价  1 是替代料报价, 0为普通报价
+     */
+    private Short isReplace = 0;
+
+    /** end  */
+
+    /**
+     * 总计价格(用于商城bom求购明细价格分析  dongbw  2018年9月5日 14:59:48)
+     */
+    private Double sumPrice;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSourceId() {
+        return sourceId;
+    }
+
+    public void setSourceId(Long sourceId) {
+        this.sourceId = sourceId;
+    }
+
+    public Short getNumber() {
+        return number;
+    }
+
+    public void setNumber(Short number) {
+        this.number = number;
+    }
+
+    public PublicInquiry getInquiry() {
+        return inquiry;
+    }
+
+    public Long getProductId() {
+        return productId;
+    }
+
+    public void setInquiry(PublicInquiry inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public void setProductId(Long productId) {
+        this.productId = productId;
+    }
+
+    public Product getProduct() {
+        Product product = new Product();
+        product.setId(this.productId);
+        product.setCode(this.prodCode);
+        product.setSpec(this.spec);
+        product.setCmpCode(this.cmpCode);
+        product.setTitle(this.prodTitle);
+        product.setBrand(this.inbrand);
+        return product;
+    }
+
+    public void setProduct(Product product) {
+        this.product = product;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Float getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Float taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Date getFromDate() {
+        return fromDate;
+    }
+
+    public void setFromDate(Date fromDate) {
+        this.fromDate = fromDate;
+    }
+
+    public Long getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(Long vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public List<PublicInquiryReply> getReplies() {
+        return replies;
+    }
+
+    public void setReplies(List<PublicInquiryReply> replies) {
+        this.replies = replies;
+    }
+
+    public Long getVendUserUU() {
+        return vendUserUU;
+    }
+
+    public void setVendUserUU(Long vendUserUU) {
+        this.vendUserUU = vendUserUU;
+    }
+
+    public User getUser() {
+        return user;
+    }
+
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    public Short getAgreed() {
+        return agreed;
+    }
+
+    public void setAgreed(Short agreed) {
+        this.agreed = agreed;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public Short getSendStatus() {
+        return sendStatus;
+    }
+
+    public void setSendStatus(Short sendStatus) {
+        this.sendStatus = sendStatus;
+    }
+
+    public Double getMinOrderQty() {
+        return minOrderQty;
+    }
+
+    public void setMinOrderQty(Double minOrderQty) {
+        this.minOrderQty = minOrderQty;
+    }
+
+    public Double getMinPackQty() {
+        return minPackQty;
+    }
+
+    public void setMinPackQty(Double minPackQty) {
+        this.minPackQty = minPackQty;
+    }
+
+    public Short getBackStatus() {
+        return backStatus;
+    }
+
+    public void setBackStatus(Short backStatus) {
+        this.backStatus = backStatus;
+    }
+
+    public Short getReplySendStatus() {
+        return replySendStatus;
+    }
+
+    public void setReplySendStatus(Short replySendStatus) {
+        this.replySendStatus = replySendStatus;
+    }
+
+    public Short getDecideStatus() {
+        return decideStatus;
+    }
+
+    public void setDecideStatus(Short decideStatus) {
+        this.decideStatus = decideStatus;
+    }
+
+    public Short getDecideDownStatus() {
+        return decideDownStatus;
+    }
+
+    public void setDecideDownStatus(Short decideDownStatus) {
+        this.decideDownStatus = decideDownStatus;
+    }
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    public String getVendorprodcode() {
+        return vendorprodcode;
+    }
+
+    public void setVendorprodcode(String vendorprodcode) {
+        this.vendorprodcode = vendorprodcode;
+    }
+
+    public Long getLeadtime() {
+        return leadtime;
+    }
+
+    public void setLeadtime(Long leadtime) {
+        this.leadtime = leadtime;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getQutoApp() {
+        return qutoApp;
+    }
+
+    public void setQutoApp(String qutoApp) {
+        this.qutoApp = qutoApp;
+    }
+
+    public Short getInvalidStatus() {
+        return invalidStatus;
+    }
+
+    public void setInvalidStatus(Short invalidStatus) {
+        this.invalidStatus = invalidStatus;
+    }
+
+    public Set<Attach> getAttaches() {
+        return attaches;
+    }
+
+    public void setAttaches(Set<Attach> attaches) {
+        this.attaches = attaches;
+    }
+
+    public Double getNeedquantity() {
+        return needquantity;
+    }
+
+    public void setNeedquantity(Double needquantity) {
+        this.needquantity = needquantity;
+    }
+
+    public Short getErpstatus() {
+        return erpstatus;
+    }
+
+    public void setErpstatus(Short erpstatus) {
+
+        this.erpstatus = erpstatus ;
+    }
+
+    public String getVendName() {
+        return vendName;
+    }
+
+    public void setVendName(String vendName) {
+        this.vendName = vendName;
+    }
+
+    public String getBusinessCode() {
+        return businessCode;
+    }
+
+    public void setBusinessCode(String businessCode) {
+        this.businessCode = businessCode;
+    }
+
+    public Date getOfferTime() {
+        return offerTime;
+    }
+
+    public void setOfferTime(Date offerTime) {
+        this.offerTime = offerTime;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    public String getInbrand() {
+        return inbrand;
+    }
+
+    public void setInbrand(String inbrand) {
+        this.inbrand = inbrand;
+    }
+
+    public Long getRemainingTime() {
+        if (null != endDate) {
+            return endDate.getTime() - System.currentTimeMillis();
+        }
+        return null;
+    }
+
+    public String getAttachUrl() {
+        return attachUrl;
+    }
+
+    public void setAttachUrl(String attachUrl) {
+        this.attachUrl = attachUrl;
+    }
+
+    public String getAttachName() {
+        return attachName;
+    }
+
+    public void setAttachName(String attachName) {
+        this.attachName = attachName;
+    }
+
+    public String getCustCurrency() {
+        return custCurrency;
+    }
+
+    public void setCustCurrency(String custCurrency) {
+        this.custCurrency = custCurrency;
+    }
+
+    public String getRefusereason() {
+        return refusereason;
+    }
+
+    public void setRefusereason(String refusereason) {
+        this.refusereason = refusereason;
+    }
+
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    public String getReplaceCmpCode() {
+        return replaceCmpCode;
+    }
+
+    public void setReplaceCmpCode(String replaceCmpCode) {
+        this.replaceCmpCode = replaceCmpCode;
+    }
+
+    public String getReplaceSpec() {
+        return replaceSpec;
+    }
+
+    public void setReplaceSpec(String replaceSpec) {
+        this.replaceSpec = replaceSpec;
+    }
+
+    public String getReplaceBrand() {
+        return replaceBrand;
+    }
+
+    public void setReplaceBrand(String replaceBrand) {
+        this.replaceBrand = replaceBrand;
+    }
+
+    public Short getIsReplace() {
+        return isReplace;
+    }
+
+    public void setIsReplace(Short isReplace) {
+        this.isReplace = isReplace;
+    }
+
+    public Double getSumPrice() {
+        return sumPrice;
+    }
+
+    public void setSumPrice(Double sumPrice) {
+        this.sumPrice = sumPrice;
+    }
+
+    /**
+     * 将公共询价单转成报价单
+     *
+     * @param item 公共询价单明细
+     */
+    public PublicInquiryItem(PurcInquiryItemInfo item) {
+        this.date = item.getDate();
+        this.offerTime = new Date(System.currentTimeMillis());
+        this.sourceId = item.getId();
+        this.currency = item.getCurrency();
+        this.productId = item.getProductId();
+        this.needquantity = item.getNeedquantity();
+        this.fromDate = item.getFromDate();
+        this.taxrate = item.getTaxrate();
+        this.id = item.getId();
+        this.userName = item.getUserName();
+        this.userTel = item.getUserTel();
+        this.prodCode = item.getProdCode();
+        this.source = item.getSource();
+        this.endDate = item.getEndDate();
+        this.prodTitle = item.getProdTitle();
+        this.spec = item.getSpec();
+        this.inbrand = item.getInbrand();
+        this.cmpCode = item.getCmpCode();
+    }
+
+    public PublicInquiryItem() {
+    }
+
+    /**
+     * 回复记录的描述
+     *
+     * @return
+     */
+    public String replyDescription() {
+        if (!CollectionUtils.isEmpty(this.replies)) {
+            StringBuffer sb = new StringBuffer();
+            for (PublicInquiryReply reply : this.replies) {
+                sb.append("分段数:").append(reply.getLapQty()).append(",").append("价格:").append(reply.getPrice())
+                        .append(";");
+            }
+            return sb.toString();
+        }
+        return null;
+    }
+
+    public static List<PublicInquiry> distinct(List<PublicInquiryItem> purcitems) {
+        List<PublicInquiry> inquiries = new ArrayList<>();
+        Set<Long> keys = new HashSet<>();
+        for (PublicInquiryItem item : purcitems) {
+            if (!keys.contains(item.getInquiry().getId())) {
+                inquiries.add(item.getInquiry());
+                keys.add(item.getInquiry().getId());
+            }
+        }
+        return inquiries;
+    }
+
+    @Override
+    public String toString() {
+        return "PublicInquiryItem{" +
+                "id=" + id +
+                ", sourceId=" + sourceId +
+                ", number=" + number +
+                ", inquiry=" + inquiry +
+                ", userUU=" + userUU +
+                ", userName='" + userName + '\'' +
+                ", userTel='" + userTel + '\'' +
+                ", productId=" + productId +
+                ", product=" + product +
+                ", currency='" + currency + '\'' +
+                ", taxrate=" + taxrate +
+                ", vendUU=" + vendUU +
+                ", enterprise=" + enterprise +
+                ", vendUserUU=" + vendUserUU +
+                ", user=" + user +
+                ", fromDate=" + fromDate +
+                ", minOrderQty=" + minOrderQty +
+                ", minPackQty=" + minPackQty +
+                ", vendorprodcode='" + vendorprodcode + '\'' +
+                ", leadtime=" + leadtime +
+                ", replies=" + replies +
+                ", status=" + status +
+                ", sendStatus=" + sendStatus +
+                ", backStatus=" + backStatus +
+                ", replySendStatus=" + replySendStatus +
+                ", agreed=" + agreed +
+                ", refusereason='" + refusereason + '\'' +
+                ", decideStatus=" + decideStatus +
+                ", decideDownStatus=" + decideDownStatus +
+                ", invalidStatus=" + invalidStatus +
+                ", date=" + date +
+                ", source='" + source + '\'' +
+                ", qutoApp='" + qutoApp + '\'' +
+                ", attaches=" + attaches +
+                ", needquantity=" + needquantity +
+                ", erpstatus=" + erpstatus +
+                ", vendName='" + vendName + '\'' +
+                ", businessCode='" + businessCode + '\'' +
+                ", offerTime=" + offerTime +
+                ", endDate=" + endDate +
+                ", prodCode='" + prodCode + '\'' +
+                ", prodTitle='" + prodTitle + '\'' +
+                ", spec='" + spec + '\'' +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", inbrand='" + inbrand + '\'' +
+                ", remainingTime=" + remainingTime +
+                ", attachUrl='" + attachUrl + '\'' +
+                ", attachName='" + attachName + '\'' +
+                ", custCurrency='" + custCurrency + '\'' +
+                ", replaceCmpCode='" + replaceCmpCode + '\'' +
+                ", replaceSpec='" + replaceSpec + '\'' +
+                ", replaceBrand='" + replaceBrand + '\'' +
+                ", isReplace=" + isReplace +
+                '}';
+    }
+}

+ 55 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PublicInquiryReply.java

@@ -0,0 +1,55 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+
+/**
+ * 公共询价单报价明细
+ * @author hejq 2018-01-06
+ */
+public class PublicInquiryReply implements Serializable {
+
+    /**
+     * 序列
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * (买家或卖家定义的)分段数量
+     */
+    private Double lapQty;
+
+    /**
+     * (卖家报的)单价
+     */
+    private Double price;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Double getLapQty() {
+        return lapQty;
+    }
+
+    public void setLapQty(Double lapQty) {
+        this.lapQty = lapQty;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+}

+ 397 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiry.java

@@ -0,0 +1,397 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 公共库新增的询价信息表中间表
+ *
+ * Created by hejq on 2018-01-13.
+ */
+public class PurcInquiry implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 询价单所属企业UU
+     */
+    private Long enUU;
+
+    /**
+     * 询价企业信息
+     */
+    private Enterprise enterprise;
+
+    /**
+     * 企业名称(方便搜索过滤)
+     */
+    private String enName;
+
+    /**
+     * 询价单所属用户UU
+     */
+    private Long recorderUU;
+
+    /**
+     * 流水号
+     */
+    private String code;
+
+    /**
+     * 单据归属日期
+     */
+    private Date date;
+
+    /**
+     * 录入人
+     */
+    private String recorder;
+
+    /**
+     * 报价截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 环保要求
+     */
+    private String environment;
+
+    /**
+     * 询价明细
+     */
+    private Set<PurcInquiryItem> inquiryItems;
+
+    /**
+     * 附件
+     */
+    private Set<Attach> attachs;
+
+    /**
+     * 单据状态(已提交、在录入)
+     */
+    private Integer enteryStatus;
+
+    /**
+     * 收货地址
+     */
+    private String ship;
+
+    /**
+     * 是否开票<br>
+     * 1. 是<br>
+     * 0. 否
+     */
+    private Short invoice;
+
+    /**
+     * 是否含税
+     */
+    private Short ifTax;
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 询价类型
+     */
+    private String inquirytype;
+
+    /**
+     * 应用来源
+     */
+    private String sourceapp;
+
+    /**
+     * 如果从erp传过来的,记录id
+     */
+    private Long erpid;
+
+    /**
+     * erp传过来的记录时间
+     */
+    private  Date erpdate;
+
+    /**
+     * 明细总数
+     */
+    private Integer amount;
+
+    /**
+     * bom单规格(仅bom单求购有)
+     */
+    private String spec;
+
+    /**
+     * 采购套数(bom询价使用,普通询价默认1)
+     */
+    private Integer count = 1;
+
+    /**
+     * 已报价明细数
+     */
+    private Integer quotedAmount;
+
+    /**
+     * 替代料报价数
+     */
+    private Integer replaceQuotedAmount;
+
+    /**
+     * 按价格最低,合计价格
+     */
+    private Double minPriceSum;
+
+    /**
+     * 按交期最短,合计价格
+     */
+    private Double minDeliverySum;
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    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 String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public Long getRecorderUU() {
+        return recorderUU;
+    }
+
+    public void setRecorderUU(Long recorderUU) {
+        this.recorderUU = recorderUU;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getEnvironment() {
+        return environment;
+    }
+
+    public void setEnvironment(String environment) {
+        this.environment = environment;
+    }
+
+    public Set<PurcInquiryItem> getInquiryItems() {
+        return inquiryItems;
+    }
+
+    public void setInquiryItems(Set<PurcInquiryItem> inquiryItems) {
+        this.inquiryItems = inquiryItems;
+    }
+
+    public Set<Attach> getAttachs() {
+        return attachs;
+    }
+
+    public void setAttachs(Set<Attach> attachs) {
+        this.attachs = attachs;
+    }
+
+    public Integer getEnteryStatus() {
+        return enteryStatus;
+    }
+
+    public void setEnteryStatus(Integer enteryStatus) {
+        this.enteryStatus = enteryStatus;
+    }
+
+    public String getShip() {
+        return ship;
+    }
+
+    public void setShip(String ship) {
+        this.ship = ship;
+    }
+
+    public Short getInvoice() {
+        return invoice;
+    }
+
+    public void setInvoice(Short invoice) {
+        this.invoice = invoice;
+    }
+
+    public Short getIfTax() {
+        return ifTax;
+    }
+
+    public void setIfTax(Short ifTax) {
+        this.ifTax = ifTax;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getInquirytype() {
+        return inquirytype;
+    }
+
+    public void setInquirytype(String inquirytype) {
+        this.inquirytype = inquirytype;
+    }
+
+    public String getSourceapp() {
+        return sourceapp;
+    }
+
+    public void setSourceapp(String sourceapp) {
+        this.sourceapp = sourceapp;
+    }
+
+    public Long getErpid() {
+        return erpid;
+    }
+
+    public void setErpid(Long erpid) {
+        this.erpid = erpid;
+    }
+
+    public Date getErpdate() {
+        return erpdate;
+    }
+
+    public void setErpdate(Date erpdate) {
+        this.erpdate = erpdate;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public Integer getQuotedAmount() {
+        return quotedAmount;
+    }
+
+    public void setQuotedAmount(Integer quotedAmount) {
+        this.quotedAmount = quotedAmount;
+    }
+
+    public Integer getReplaceQuotedAmount() {
+        return replaceQuotedAmount;
+    }
+
+    public void setReplaceQuotedAmount(Integer replaceQuotedAmount) {
+        this.replaceQuotedAmount = replaceQuotedAmount;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public Double getMinPriceSum() {
+        return minPriceSum;
+    }
+
+    public void setMinPriceSum(Double minPriceSum) {
+        this.minPriceSum = minPriceSum;
+    }
+
+    public Double getMinDeliverySum() {
+        return minDeliverySum;
+    }
+
+    public void setMinDeliverySum(Double minDeliverySum) {
+        this.minDeliverySum = minDeliverySum;
+    }
+}

+ 347 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiryInfo.java

@@ -0,0 +1,347 @@
+package com.usoftchina.inquiry.po;
+
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 公共库新增的询价信息表中间表(查询信息)
+ *
+ * @author hejq
+ * @date 2018-01-17 15:46
+ */
+public class PurcInquiryInfo implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 询价单所属企业UU
+     */
+    private Long enUU;
+
+    /**
+     * 企业名称(方便搜索过滤)
+     */
+    private String enName;
+
+    /**
+     * 询价企业
+     */
+    private Enterprise enterprise;
+
+    /**
+     * 询价单所属用户UU
+     */
+    private Long recorderUU;
+
+    /**
+     * 流水号
+     */
+    private String code;
+
+    /**
+     * 单据归属日期
+     */
+    private Date date;
+
+    /**
+     * 录入人
+     */
+    private String recorder;
+
+    /**
+     * 报价截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 环保要求
+     */
+    private String environment;
+
+    /**
+     * 询价明细
+     */
+    private Set<PurcInquiryItemInfo> inquiryItems;
+
+    /**
+     * 附件
+     */
+    private Set<Attach> attachs;
+
+    /**
+     * 单据状态(已提交、在录入)
+     */
+    private Integer enteryStatus;
+
+    /**
+     * 收货地址
+     */
+    private String ship;
+
+    /**
+     * 是否开票<br>
+     * 1. 是<br>
+     * 0. 否
+     */
+    private Short invoice;
+
+    /**
+     * 是否含税
+     */
+    private Short ifTax;
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 询价类型
+     */
+    private String inquirytype;
+
+    /**
+     * 应用来源
+     */
+    private String sourceapp;
+
+    /**
+     * 如果从erp传过来的,记录id
+     */
+    private Long erpid;
+
+    /**
+     * erp传过来的记录时间
+     */
+    private  Date erpdate;
+
+    /**
+     * 明细总数
+     */
+    private Integer amount;
+
+    /**
+     * bom单规格(仅bom单求购有)
+     */
+    private String spec;
+
+    /**
+     * 采购套数(bom询价使用,普通询价默认1)
+     */
+    private Integer count = 1;
+
+    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 String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public Long getRecorderUU() {
+        return recorderUU;
+    }
+
+    public void setRecorderUU(Long recorderUU) {
+        this.recorderUU = recorderUU;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getEnvironment() {
+        return environment;
+    }
+
+    public void setEnvironment(String environment) {
+        this.environment = environment;
+    }
+
+    public Set<PurcInquiryItemInfo> getInquiryItems() {
+        return inquiryItems;
+    }
+
+    public void setInquiryItems(Set<PurcInquiryItemInfo> inquiryItems) {
+        this.inquiryItems = inquiryItems;
+    }
+
+    public Set<Attach> getAttachs() {
+        return attachs;
+    }
+
+    public void setAttachs(Set<Attach> attachs) {
+        this.attachs = attachs;
+    }
+
+    public Integer getEnteryStatus() {
+        return enteryStatus;
+    }
+
+    public void setEnteryStatus(Integer enteryStatus) {
+        this.enteryStatus = enteryStatus;
+    }
+
+    public String getShip() {
+        return ship;
+    }
+
+    public void setShip(String ship) {
+        this.ship = ship;
+    }
+
+    public Short getInvoice() {
+        return invoice;
+    }
+
+    public void setInvoice(Short invoice) {
+        this.invoice = invoice;
+    }
+
+    public Short getIfTax() {
+        return ifTax;
+    }
+
+    public void setIfTax(Short ifTax) {
+        this.ifTax = ifTax;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getInquirytype() {
+        return inquirytype;
+    }
+
+    public void setInquirytype(String inquirytype) {
+        this.inquirytype = inquirytype;
+    }
+
+    public String getSourceapp() {
+        return sourceapp;
+    }
+
+    public void setSourceapp(String sourceapp) {
+        this.sourceapp = sourceapp;
+    }
+
+    public Long getErpid() {
+        return erpid;
+    }
+
+    public void setErpid(Long erpid) {
+        this.erpid = erpid;
+    }
+
+    public Date getErpdate() {
+        return erpdate;
+    }
+
+    public void setErpdate(Date erpdate) {
+        this.erpdate = erpdate;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+}

+ 433 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiryItem.java

@@ -0,0 +1,433 @@
+package com.usoftchina.inquiry.po;
+
+import java.util.*;
+
+/**
+ * 平台新增询价单明细
+ *
+ * @author hejq
+ * @date 2018-01-13 19:19
+ */
+public class PurcInquiryItem {
+
+    private Long id;
+
+    /**
+     * 序号
+     */
+    private Short number;
+
+    /**
+     * 询价单
+     */
+    private PurcInquiry inquiry;
+
+    /**
+     * 买家采购员UU
+     */
+    private Long userUU;
+
+    /**
+     * 联系人姓名
+     */
+    private String userName;
+
+    /**
+     * 联系人电话
+     */
+    private String userTel;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 产品
+     */
+    private Product product;
+
+    /**
+     * ************* 上传的物料信息,因为可能是手动输入的,物料款不存在,需要先进行保存物料 *************
+     */
+    /**
+     * 物料编号
+     */
+    private String prodCode;
+
+    /**
+     * 名称
+     */
+    private String prodTitle;
+
+    /**
+     * 规格
+     */
+    private String spec;
+
+    /**
+     * 型号
+     */
+    private String cmpCode;
+
+    /**
+     * 品牌
+     */
+    private String inbrand;
+    /**
+     * ******end*******
+     */
+
+    /**
+     * 币种
+     */
+    private String currency;
+
+    /**
+     * 税率
+     */
+    private Float taxrate;
+
+    /**
+     * (买家预先提供的)有效期始
+     */
+    private Date fromDate;
+
+    /**
+     * 分段报价明细
+     */
+    private List<PurchaseInquiryReply> replies;
+
+    /**
+     * {未回复、已回复}
+     */
+    private Short status;
+
+    /**
+     * 是否采纳
+     */
+    private Short agreed;
+
+    /**
+     * 是否已过期 1为已过期,0为未过期 已过期单据无法报价
+     *
+     * @return
+     */
+    private Short overdue;
+
+    /**
+     * 来源ERP或B2B
+     */
+    private String source;
+
+    /**
+     * 需求数量
+     */
+    private Double needquantity;
+
+    /**
+     * 来源id,可能是ERP同步过来的单据
+     */
+    private Long sourceid;
+
+    /**
+     * 单据日期,索引过滤需要
+     */
+    private Date date;
+
+    /**
+     * 发布询价企业uu
+     */
+    private Long enuu;
+
+    /**
+     * 物料报价数量(记录多少人或企业对该物料进行报价)
+     */
+    private Integer offerAmount;
+
+    /**
+     * 截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 剩余时间
+     */
+    private Long remainingTime;
+
+    /**
+     * 是否有效  1有效  0 无效
+     */
+    private Integer valid;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Short getNumber() {
+        return number;
+    }
+
+    public void setNumber(Short number) {
+        this.number = number;
+    }
+
+    public PurcInquiry getInquiry() {
+        return inquiry;
+    }
+
+    public void setInquiry(PurcInquiry inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    public Long getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Long productId) {
+        this.productId = productId;
+    }
+
+    public Product getProduct() {
+        return product;
+    }
+
+    public void setProduct(Product product) {
+        this.product = product;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Float getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Float taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Date getFromDate() {
+        return fromDate;
+    }
+
+    public void setFromDate(Date fromDate) {
+        this.fromDate = fromDate;
+    }
+
+    public List<PurchaseInquiryReply> getReplies() {
+        return replies;
+    }
+
+    public void setReplies(List<PurchaseInquiryReply> replies) {
+        this.replies = replies;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public Short getAgreed() {
+        return agreed;
+    }
+
+    public void setAgreed(Short agreed) {
+        this.agreed = agreed;
+    }
+
+    public Short getOverdue() {
+        return overdue;
+    }
+
+    public void setOverdue(Short overdue) {
+        this.overdue = overdue;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    public String getInbrand() {
+        return inbrand;
+    }
+
+    public void setInbrand(String inbrand) {
+        this.inbrand = inbrand;
+    }
+
+    public Double getNeedquantity() {
+        return needquantity;
+    }
+
+    public void setNeedquantity(Double needquantity) {
+        this.needquantity = needquantity;
+    }
+
+    public Long getSourceid() {
+        return sourceid;
+    }
+
+    public void setSourceid(Long sourceid) {
+        this.sourceid = sourceid;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Integer getOfferAmount() {
+        return offerAmount;
+    }
+
+    public void setOfferAmount(Integer offerAmount) {
+        this.offerAmount = offerAmount;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Long getRemainingTime() {
+        if (endDate != null) {
+            return endDate.getTime() - System.currentTimeMillis();
+        }
+        return null;
+    }
+
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    @Override
+    public String toString() {
+        return "PurcInquiryItem{" +
+                "id=" + id +
+                ", number=" + number +
+                ", inquiry=" + inquiry +
+                ", userUU=" + userUU +
+                ", userName='" + userName + '\'' +
+                ", userTel='" + userTel + '\'' +
+                ", productId=" + productId +
+                ", product=" + product +
+                ", prodCode='" + prodCode + '\'' +
+                ", prodTitle='" + prodTitle + '\'' +
+                ", spec='" + spec + '\'' +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", inbrand='" + inbrand + '\'' +
+                ", currency='" + currency + '\'' +
+                ", taxrate=" + taxrate +
+                ", fromDate=" + fromDate +
+                ", replies=" + replies +
+                ", status=" + status +
+                ", agreed=" + agreed +
+                ", overdue=" + overdue +
+                ", source='" + source + '\'' +
+                ", needquantity=" + needquantity +
+                ", sourceid=" + sourceid +
+                ", date=" + date +
+                ", enuu=" + enuu +
+                ", offerAmount=" + offerAmount +
+                ", endDate=" + endDate +
+                ", remainingTime=" + remainingTime +
+                ", valid=" + valid +
+                '}';
+    }
+
+    public Integer getValid() {
+        return valid;
+    }
+
+    public void setValid(Integer valid) {
+        this.valid = valid;
+    }
+
+}

+ 499 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurcInquiryItemInfo.java

@@ -0,0 +1,499 @@
+package com.usoftchina.inquiry.po;
+
+import java.util.*;
+
+/**
+ * 平台新增询价单明细(查询,用明细带出主表信息)
+ *
+ * @author hejq
+ * @date 2018-01-17 15:46
+ */
+public class PurcInquiryItemInfo {
+
+    private Long id;
+
+    /**
+     * 序号
+     */
+    private Short number;
+
+    /**
+     * 询价单
+     */
+    private PurcInquiryInfo inquiry;
+
+    /**
+     * 买家采购员UU
+     */
+    private Long userUU;
+
+    /**
+     * 联系人姓名
+     */
+    private String userName;
+
+    /**
+     * 联系人电话
+     */
+    private String userTel;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 产品
+     */
+    private Product product;
+
+    /**
+     * ************* 上传的物料信息,因为可能是手动输入的,物料款不存在,需要先进行保存物料 *************
+     */
+    /**
+     * 物料编号
+     */
+    private String prodCode;
+
+    /**
+     * 名称
+     */
+    private String prodTitle;
+
+    /**
+     * 规格
+     */
+    private String spec;
+
+    /**
+     * 型号
+     */
+    private String cmpCode;
+
+    /**
+     * 品牌
+     */
+    private String inbrand;
+    /**
+     * ******end*******
+     */
+
+    /**
+     * 币种
+     */
+    private String currency;
+
+    /**
+     * 税率
+     */
+    private Float taxrate;
+
+    /**
+     * (买家预先提供的)有效期始
+     */
+    private Date fromDate;
+
+    /**
+     * {未回复、已回复}
+     */
+    private Short status;
+
+    /**
+     * 1已过期 0 未过期
+     *
+     */
+    private Short overdue;
+
+    /**
+     * 来源ERP或B2B
+     */
+    private String source;
+
+    /**
+     * 需求数量
+     */
+    private Double needquantity;
+
+    /**
+     * 来源id,可能是ERP同步过来的单据
+     */
+    private Long sourceid;
+
+    /**
+     * 单据日期,索引过滤需要
+     */
+    private Date date;
+
+    /**
+     * 发布询价企业uu
+     */
+    private Long enuu;
+
+    /**
+     * 截止时间
+     */
+    private Date endDate;
+
+    /**
+     * 剩余时间
+     */
+    private Long remainingTime;
+
+    /**
+     * 物料报价数量(记录多少人或企业对该物料进行报价)
+     */
+    private Integer offerAmount;
+
+    /**** 针对客户,查询公共询价信息时展示的相关其他需求数据 *****/
+    /**
+     * 是否已报价 1、是;0、否
+     */
+    private Short quoted;
+
+    /**
+     * 如果已报价,记录已转报价后的明细id
+     */
+    private Long quteId;
+
+    /**
+     * 是否已采纳 1为已采纳。  -- 修改为字段,在采纳时,设置为1,方便bom询价详情内判断状态  2018年8月14日 17:03:05  dongbw
+     */
+    private Short agreed;
+    /****** end ******/
+
+    /**
+     * 已报价的信息,封装给商城
+     */
+    private List<PublicInquiryItem> qutations;
+
+    /**
+     * 登录企业对该单据的报价
+     */
+    private PublicInquiryItem quotation;
+
+    /**
+     * 是否有效  1有效  0 无效
+     */
+    private Integer valid;
+
+    /**
+     * 分配状态  1为已分配 0 为未分配
+     */
+    private Short allotStatus;
+
+    public Short getAllotStatus() {
+        return allotStatus;
+    }
+
+    public void setAllotStatus(Short allotStatus) {
+        this.allotStatus = allotStatus;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Short getNumber() {
+        return number;
+    }
+
+    public void setNumber(Short number) {
+        this.number = number;
+    }
+
+    public PurcInquiryInfo getInquiry() {
+        return inquiry;
+    }
+
+    public void setInquiry(PurcInquiryInfo inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public Long getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Long productId) {
+        this.productId = productId;
+    }
+
+    public Product getProduct() {
+        Product product = new Product();
+        product.setId(this.productId);
+        product.setCode(this.prodCode);
+        product.setSpec(this.spec);
+        product.setCmpCode(this.cmpCode);
+        product.setTitle(this.prodTitle);
+        product.setBrand(this.inbrand);
+        return product;
+    }
+
+    public void setProduct(Product product) {
+        this.product = product;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Float getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Float taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Date getFromDate() {
+        return fromDate;
+    }
+
+    public void setFromDate(Date fromDate) {
+        this.fromDate = fromDate;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public Short getAgreed() {
+        return agreed;
+    }
+
+    public void setAgreed(Short agreed) {
+        this.agreed = agreed;
+    }
+
+    public Short getOverdue() {
+        return overdue;
+    }
+
+    public void setOverdue(Short overdue) {
+        this.overdue = overdue;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getCmpCode() {
+        return cmpCode;
+    }
+
+    public void setCmpCode(String cmpCode) {
+        this.cmpCode = cmpCode;
+    }
+
+    public String getInbrand() {
+        return inbrand;
+    }
+
+    public void setInbrand(String inbrand) {
+        this.inbrand = inbrand;
+    }
+
+    public Double getNeedquantity() {
+        return needquantity;
+    }
+
+    public void setNeedquantity(Double needquantity) {
+        this.needquantity = needquantity;
+    }
+
+    public Long getSourceid() {
+        return sourceid;
+    }
+
+    public void setSourceid(Long sourceid) {
+        this.sourceid = sourceid;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Long getRemainingTime() {
+        if (null != endDate) {
+            return endDate.getTime() - System.currentTimeMillis();
+        }
+        return remainingTime;
+    }
+
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    public Integer getOfferAmount() {
+        return offerAmount;
+    }
+
+    public void setOfferAmount(Integer offerAmount) {
+        this.offerAmount = offerAmount;
+    }
+
+    public Short getQuoted() {
+        return quoted;
+    }
+
+    public void setQuoted(Short quoted) {
+        this.quoted = quoted;
+    }
+
+    public Long getQuteId() {
+        return quteId;
+    }
+
+    public void setQuteId(Long quteId) {
+        this.quteId = quteId;
+    }
+
+    public List<PublicInquiryItem> getQutations() {
+        return qutations;
+    }
+
+    public void setQutations(List<PublicInquiryItem> qutations) {
+        this.qutations = qutations;
+    }
+
+    public PublicInquiryItem getQuotation() {
+        return quotation;
+    }
+
+    public void setQuotation(PublicInquiryItem quotation) {
+        this.quotation = quotation;
+    }
+
+
+
+    @Override
+    public String toString() {
+        return "PurcInquiryItemInfo{" +
+                "id=" + id +
+                ", number=" + number +
+                ", inquiry=" + inquiry +
+                ", userUU=" + userUU +
+                ", userName='" + userName + '\'' +
+                ", userTel='" + userTel + '\'' +
+                ", productId=" + productId +
+                ", product=" + product +
+                ", prodCode='" + prodCode + '\'' +
+                ", prodTitle='" + prodTitle + '\'' +
+                ", spec='" + spec + '\'' +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", inbrand='" + inbrand + '\'' +
+                ", currency='" + currency + '\'' +
+                ", taxrate=" + taxrate +
+                ", fromDate=" + fromDate +
+                ", status=" + status +
+                ", overdue=" + overdue +
+                ", source='" + source + '\'' +
+                ", needquantity=" + needquantity +
+                ", sourceid=" + sourceid +
+                ", date=" + date +
+                ", enuu=" + enuu +
+                ", endDate=" + endDate +
+                ", remainingTime=" + remainingTime +
+                ", offerAmount=" + offerAmount +
+                ", quoted=" + quoted +
+                ", quteId=" + quteId +
+                ", agreed=" + agreed +
+                ", qutations=" + qutations +
+                ", quotation=" + quotation +
+                ", valid=" + valid +
+                ", allotStatus=" + allotStatus +
+                '}';
+    }
+
+    public Integer getValid() {
+        return valid;
+    }
+
+    public void setValid(Integer valid) {
+        this.valid = valid;
+    }
+
+}

+ 54 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/PurchaseInquiryReply.java

@@ -0,0 +1,54 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+
+/**
+ * 采购询价单明细的报价记录
+ *
+ * @author hejq
+ * @date 2018-01-13 19:23
+ */
+public class PurchaseInquiryReply implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * (买家或卖家定义的)分段数量
+     */
+    private Double lapQty;
+
+    /**
+     * (卖家报的)单价
+     */
+    private Double price;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Double getLapQty() {
+        return lapQty;
+    }
+
+    public void setLapQty(Double lapQty) {
+        this.lapQty = lapQty;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+}

+ 117 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/po/User.java

@@ -0,0 +1,117 @@
+package com.usoftchina.inquiry.po;
+
+import java.io.Serializable;
+
+/**
+ * 只包含最基本的信息,用与跟单据关联展现
+ * @author suntg
+ *
+ */
+public class User implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户UU
+     */
+    private Long userUU;
+
+    /**
+     * 用户姓名
+     */
+    private String userName;
+
+    /**
+     * 密码
+     */
+    private String userPwd;
+
+    /**
+     * 用户邮箱
+     */
+    private String userEmail;
+
+    /**
+     * 手机
+     */
+    private String userTel;
+
+    /**
+     * 性别
+     */
+    private String userSex;
+
+    /**
+     * imid
+     */
+    private Long userIMId;
+
+    private Enterprise enterprise;
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPwd() {
+        return userPwd;
+    }
+
+    public void setUserPwd(String userPwd) {
+        this.userPwd = userPwd;
+    }
+
+    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;
+    }
+
+    public String getUserSex() {
+        return userSex;
+    }
+
+    public void setUserSex(String userSex) {
+        this.userSex = userSex;
+    }
+
+    public Long getUserIMId() {
+        return userIMId;
+    }
+
+    public void setUserIMId(Long userIMId) {
+        this.userIMId = userIMId;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+}

+ 35 - 0
applications/transfers/mall-api/src/test/java/com/usoftchina/inquiry/test/InquiryApiTest.java

@@ -0,0 +1,35 @@
+package com.usoftchina.inquiry.test;
+
+import com.usoftchina.inquiry.api.InquiryApi;
+import com.usoftchina.inquiry.po.IPage;
+import com.usoftchina.inquiry.po.PurcInquiryItemInfo;
+import com.usoftchina.saas.utils.JsonUtils;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.naming.directory.InvalidSearchFilterException;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/04
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class InquiryApiTest {
+
+    @Autowired
+    private InquiryApi inquiryApi;
+
+    @Test
+    public void testA_getInquiry() throws InvalidSearchFilterException {
+        IPage<PurcInquiryItemInfo> result = inquiryApi.getInquiry(1, 10, "1", 1);
+        System.out.println(JsonUtils.toJsonString(result));
+    }
+
+}

+ 19 - 0
applications/transfers/mall-api/src/test/java/com/usoftchina/inquiry/test/InquiryTest.java

@@ -0,0 +1,19 @@
+package com.usoftchina.inquiry.test;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/04
+ */
+@SpringBootApplication(scanBasePackages = "com.usoftchina")
+@EnableFeignClients("com.usoftchina.inquiry")
+public class InquiryTest {
+
+    public static void main(String[] args) {
+        SpringApplication.run(InquiryTest.class, args);
+    }
+
+}

+ 2 - 0
applications/transfers/mall-api/src/test/resources/application.yml

@@ -0,0 +1,2 @@
+inquiry:
+  base-url: https://test-inquiry.uuzcc.cn

+ 1 - 0
applications/transfers/pom.xml

@@ -15,6 +15,7 @@
     <modules>
         <module>transfers-api</module>
         <module>transfers-server</module>
+        <module>mall-api</module>
     </modules>
 
 </project>