chenw 7 lat temu
rodzic
commit
598edff234

+ 47 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/InquiryReplayDTO.java

@@ -0,0 +1,47 @@
+package com.usoftchina.saas.purchase.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description TODO
+ * @Author chenwei
+ * @Date 2019/01/08
+ */
+public class InquiryReplayDTO implements Serializable {
+    /**
+     * 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;
+    }
+}

+ 108 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/InquiryReqDTO.java

@@ -0,0 +1,108 @@
+package com.usoftchina.saas.purchase.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description TODO
+ * @Author chenwei
+ * @Date 2019/01/08
+ */
+public class InquiryReqDTO implements Serializable {
+
+    /**
+     * 页码
+     */
+    private int pageNumber;
+    /**
+     * 每页条数
+     */
+    private int pageSize;
+    /**
+     * 关键词
+     */
+    private String keyword;
+    /**
+     * 企业UU
+     */
+    private Long enUU;
+    /**
+     *  已报价:1, 未报价:0
+     */
+    private Long quoted;
+    /**
+     * 开始日期
+     */
+    private Long fromDate;
+    /**
+     * 结束日期
+     */
+    private Long endDate;
+    /**
+     * 1已过期 0 未过期
+     */
+    private Integer overdue;
+
+    public int getPageNumber() {
+        return pageNumber;
+    }
+
+    public void setPageNumber(int pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public String getKeyword() {
+        return keyword;
+    }
+
+    public void setKeyword(String keyword) {
+        this.keyword = keyword;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public Long getQuoted() {
+        return quoted;
+    }
+
+    public void setQuoted(Long quoted) {
+        this.quoted = quoted;
+    }
+
+    public Long getFromDate() {
+        return fromDate;
+    }
+
+    public void setFromDate(Long fromDate) {
+        this.fromDate = fromDate;
+    }
+
+    public Long getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Long endDate) {
+        this.endDate = endDate;
+    }
+
+    public Integer getOverdue() {
+        return overdue;
+    }
+
+    public void setOverdue(Integer overdue) {
+        this.overdue = overdue;
+    }
+}

+ 133 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/InquiryRspDTO.java

@@ -0,0 +1,133 @@
+package com.usoftchina.saas.purchase.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description TODO
+ * @Author chenwei
+ * @Date 2019/01/08
+ */
+public class InquiryRspDTO implements Serializable {
+    /**
+     * 物料编号
+     */
+    private String prodCode;
+    /**
+     * 物料品牌
+     */
+    private String prodBrand;
+    /**
+     * 物料名称
+     */
+    private String prodName;
+    /**
+     * 物料型号
+     */
+    private String prodOrispeccode;
+    /**
+     * 物料规格
+     */
+    private String prodSpec;
+    /**
+     * 物料单位
+     */
+    private String prodUnit;
+    /**
+     * 起始日期
+     */
+    private Date startDate;
+    /**
+     * 截止日期
+     */
+    private Date endDate;
+    /**
+     * 是否已报价 1、是;0、否
+     */
+    private Short quoted;
+    /**
+     * 报价信息
+     */
+    private List<QuotationRspDTO> qutations;
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getProdBrand() {
+        return prodBrand;
+    }
+
+    public void setProdBrand(String prodBrand) {
+        this.prodBrand = prodBrand;
+    }
+
+    public String getProdName() {
+        return prodName;
+    }
+
+    public void setProdName(String prodName) {
+        this.prodName = prodName;
+    }
+
+    public String getProdOrispeccode() {
+        return prodOrispeccode;
+    }
+
+    public void setProdOrispeccode(String prodOrispeccode) {
+        this.prodOrispeccode = prodOrispeccode;
+    }
+
+    public String getProdSpec() {
+        return prodSpec;
+    }
+
+    public void setProdSpec(String prodSpec) {
+        this.prodSpec = prodSpec;
+    }
+
+    public String getProdUnit() {
+        return prodUnit;
+    }
+
+    public void setProdUnit(String prodUnit) {
+        this.prodUnit = prodUnit;
+    }
+
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Short getQuoted() {
+        return quoted;
+    }
+
+    public void setQuoted(Short quoted) {
+        this.quoted = quoted;
+    }
+
+    public List<QuotationRspDTO> getQutations() {
+        return qutations;
+    }
+
+    public void setQutations(List<QuotationRspDTO> qutations) {
+        this.qutations = qutations;
+    }
+}

+ 100 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/QuotationRspDTO.java

@@ -0,0 +1,100 @@
+package com.usoftchina.saas.purchase.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/08
+ */
+public class QuotationRspDTO implements Serializable {
+
+    private Long id;
+    private String vendName;
+    private String tel;
+    private String replaceOrispeccode;
+    private Long leadTime;
+    private Double texRate;
+    /**
+     * 是否采纳 1 为已采纳 0为已拒绝  空 未处理
+     */
+    private Short agreed;
+    /**
+     * 拒绝采纳理由
+     */
+    private String refusereason;
+
+    private List<InquiryReplayDTO> replies;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getVendName() {
+        return vendName;
+    }
+
+    public void setVendName(String vendName) {
+        this.vendName = vendName;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getReplaceOrispeccode() {
+        return replaceOrispeccode;
+    }
+
+    public void setReplaceOrispeccode(String replaceOrispeccode) {
+        this.replaceOrispeccode = replaceOrispeccode;
+    }
+
+    public Long getLeadTime() {
+        return leadTime;
+    }
+
+    public void setLeadTime(Long leadTime) {
+        this.leadTime = leadTime;
+    }
+
+    public Double getTexRate() {
+        return texRate;
+    }
+
+    public void setTexRate(Double texRate) {
+        this.texRate = texRate;
+    }
+
+    public Short getAgreed() {
+        return agreed;
+    }
+
+    public void setAgreed(Short agreed) {
+        this.agreed = agreed;
+    }
+
+    public String getRefusereason() {
+        return refusereason;
+    }
+
+    public void setRefusereason(String refusereason) {
+        this.refusereason = refusereason;
+    }
+
+    public List<InquiryReplayDTO> getReplies() {
+        return replies;
+    }
+
+    public void setReplies(List<InquiryReplayDTO> replies) {
+        this.replies = replies;
+    }
+}

+ 30 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseController.java

@@ -10,6 +10,7 @@ import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.purchase.dto.DeviceDTO;
 import com.usoftchina.saas.purchase.dto.DeviceReqDTO;
+import com.usoftchina.saas.purchase.dto.InquiryReqDTO;
 import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
 import com.usoftchina.saas.purchase.po.PurchaseList;
 import com.usoftchina.saas.purchase.service.PurchaseService;
@@ -189,8 +190,36 @@ public class PurchaseController {
      * @return
      */
     @GetMapping("/device/list")
-    public Result getDevice(DeviceReqDTO deviceReqDTO){
+    public Result getDevice(DeviceReqDTO deviceReqDTO) {
         IPage<DeviceDTO> deviceDTOIPage = purchaseService.getDevice(deviceReqDTO);
         return Result.success(deviceDTOIPage);
     }
+
+    /**
+     * 询价列表
+     * @param inquiryReqDTO
+     * @return
+     */
+    @GetMapping("/inquiry/list")
+    public Result inquiryList(InquiryReqDTO inquiryReqDTO){
+        return Result.success(purchaseService.getInquiryList(inquiryReqDTO));
+    }
+
+    /**
+     * 对报价采纳/拒绝
+     * @return
+     */
+    @PostMapping("/inquiry/deal")
+    public Result dealInquiry(){
+        return Result.success();
+    }
+
+    /**
+     * 发起询价
+     * @return
+     */
+    @PostMapping("/inquiry/save")
+    public Result saveInquiry(){
+        return Result.success();
+    }
 }

+ 7 - 3
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseService.java

@@ -8,9 +8,7 @@ import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.page.PageRequest;
-import com.usoftchina.saas.purchase.dto.DeviceDTO;
-import com.usoftchina.saas.purchase.dto.DeviceReqDTO;
-import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
+import com.usoftchina.saas.purchase.dto.*;
 import com.usoftchina.saas.purchase.mapper.PurchaseMapper;
 import com.usoftchina.saas.purchase.po.Purchase;
 import com.usoftchina.saas.purchase.po.PurchaseList;
@@ -147,4 +145,10 @@ public interface PurchaseService extends CommonBaseService<PurchaseMapper, Purch
      * @return
      */
     IPage<DeviceDTO> getDevice(DeviceReqDTO deviceReqDTO);
+    /**
+     * 查询询价列表
+     * @param inquiryReqDTO
+     * @return
+     */
+    IPage<InquiryRspDTO> getInquiryList(InquiryReqDTO inquiryReqDTO);
 }

+ 97 - 6
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

@@ -2,13 +2,16 @@ package com.usoftchina.saas.purchase.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.usoftchina.inquiry.api.InquiryApi;
 import com.usoftchina.inquiry.api.SearchApi;
 import com.usoftchina.inquiry.po.inquiry.IPage;
-import com.usoftchina.inquiry.po.inquiry.InquiryEnRemind;
-import com.usoftchina.inquiry.po.inquiry.InquiryRemind;
-import com.usoftchina.inquiry.po.search.FuturesEntity;
+import com.usoftchina.inquiry.po.inquiry.PublicInquiryItem;
+import com.usoftchina.inquiry.po.inquiry.PublicInquiryReply;
+import com.usoftchina.inquiry.po.inquiry.PurcInquiryItemInfo;
 import com.usoftchina.inquiry.po.search.ProductEntity;
 import com.usoftchina.inquiry.po.search.SearchComponentResp;
+import com.usoftchina.saas.account.api.AccountApi;
+import com.usoftchina.saas.account.api.CompanyApi;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.api.CommonService;
@@ -26,19 +29,22 @@ import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.purchase.dto.*;
+import com.usoftchina.saas.purchase.dto.InquiryReqDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseDetailDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
 import com.usoftchina.saas.purchase.mapper.*;
 import com.usoftchina.saas.purchase.po.*;
 import com.usoftchina.saas.purchase.service.ProdInOutService;
 import com.usoftchina.saas.purchase.service.PurchaseService;
 import com.usoftchina.saas.utils.BeanMapper;
 import com.usoftchina.saas.utils.CollectionUtils;
-import com.usoftchina.saas.utils.JsonUtils;
-import com.usoftchina.saas.utils.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -71,6 +77,12 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     private CommonService commonService;
     @Autowired
     private SearchApi searchApi;
+    @Autowired
+    private InquiryApi inquiryApi;
+    @Autowired
+    private CompanyApi companyApi;
+    @Autowired
+    private AccountApi accountApi;
 
 
     @Override
@@ -655,7 +667,86 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
        String code = maxnumberService.getMaxnumber(caller, false).getData();
        return pushMaxnubmer(code, baseDTO.getId());
     }
-    /** 
+
+    /**
+     * 询价单列表
+     * @param inquiryReqDTO
+     * @return
+     */
+    @Override
+    public IPage<InquiryRspDTO> getInquiryList(InquiryReqDTO inquiryReqDTO) {
+        IPage<PurcInquiryItemInfo> purcInquiryItemInfoIPage = null;
+        Long enUU = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData().getUu();
+        if (inquiryReqDTO.getQuoted() == 1){
+            purcInquiryItemInfoIPage = inquiryApi.findQuotationsByPage("done", enUU, inquiryReqDTO.getPageNumber(), inquiryReqDTO.getPageSize());
+        }else{
+            purcInquiryItemInfoIPage = inquiryApi.getInquiryList(enUU, inquiryReqDTO.getOverdue(), inquiryReqDTO.getPageNumber(), inquiryReqDTO.getPageSize(), "todo");
+        }
+        List<PurcInquiryItemInfo> purcInquiryItemInfoList =  purcInquiryItemInfoIPage.getContent();
+        if (CollectionUtils.isEmpty(purcInquiryItemInfoList)){
+            return null;
+        }
+        List<InquiryRspDTO> inquiryRspDTOList = convertToInquiryRspDTO(purcInquiryItemInfoList);
+        //转换成分页对象
+        IPage<InquiryRspDTO> remindRspDTOIPage = new IPage<InquiryRspDTO>(purcInquiryItemInfoIPage.getNumber(), purcInquiryItemInfoIPage.getSize(),
+                purcInquiryItemInfoIPage.getNumberOfElements(),inquiryRspDTOList, purcInquiryItemInfoIPage.isFirst(), purcInquiryItemInfoIPage.isLast(),
+                purcInquiryItemInfoIPage.getTotalElements());
+        return remindRspDTOIPage;
+    }
+    /**
+     * 将平台返回的结果集转成SAAS的传输对象
+     * @param purcInquiryItemInfoList
+     * @return
+     */
+    private List<InquiryRspDTO> convertToInquiryRspDTO(List<PurcInquiryItemInfo> purcInquiryItemInfoList) {
+        List<InquiryRspDTO> inquiryRspDTOList = new ArrayList<InquiryRspDTO>();
+        for (PurcInquiryItemInfo purcInquiryItemInfo : purcInquiryItemInfoList){
+            InquiryRspDTO inquiryRspDTO = new InquiryRspDTO();
+            inquiryRspDTO.setProdCode(purcInquiryItemInfo.getProdCode());
+            inquiryRspDTO.setProdUnit(purcInquiryItemInfo.getProduct().getUnit());
+            inquiryRspDTO.setProdOrispeccode(purcInquiryItemInfo.getCmpCode());
+            inquiryRspDTO.setProdBrand(purcInquiryItemInfo.getProduct().getBrand());
+            inquiryRspDTO.setProdName(purcInquiryItemInfo.getProdTitle());
+            inquiryRspDTO.setProdSpec(purcInquiryItemInfo.getSpec());
+            inquiryRspDTO.setStartDate(purcInquiryItemInfo.getFromDate());
+            inquiryRspDTO.setEndDate(purcInquiryItemInfo.getEndDate());
+            inquiryRspDTO.setQuoted(purcInquiryItemInfo.getQuoted());
+            //报价信息
+            List<PublicInquiryItem> publicInquiryItemList = purcInquiryItemInfo.getQutations();
+            List<QuotationRspDTO> quotationRspDTOList = new ArrayList<QuotationRspDTO>();
+            if (!CollectionUtils.isEmpty(publicInquiryItemList)){
+                for (PublicInquiryItem publicInquiryItem : publicInquiryItemList){
+                    QuotationRspDTO quotationRspDTO = new QuotationRspDTO();
+                    quotationRspDTO.setId(publicInquiryItem.getId());
+                    quotationRspDTO.setVendName(publicInquiryItem.getVendName());
+                    quotationRspDTO.setTexRate(new BigDecimal(publicInquiryItem.getTaxrate()).doubleValue());
+                    quotationRspDTO.setLeadTime(publicInquiryItem.getLeadtime());
+                    quotationRspDTO.setTel(publicInquiryItem.getUserTel());
+                    quotationRspDTO.setAgreed(publicInquiryItem.getAgreed());
+                    quotationRspDTO.setReplaceOrispeccode(publicInquiryItem.getCmpCode());
+                    //分段报价信息
+                    List<PublicInquiryReply> publicInquiryReplyList = publicInquiryItem.getReplies();
+                    List<InquiryReplayDTO> inquiryReplayDTOList = new ArrayList<InquiryReplayDTO>();
+                    if (!CollectionUtils.isEmpty(publicInquiryReplyList)){
+                        for (PublicInquiryReply publicInquiryReply : publicInquiryReplyList){
+                            InquiryReplayDTO inquiryReplayDTO = new InquiryReplayDTO();
+                            inquiryReplayDTO.setId(publicInquiryReply.getId());
+                            inquiryReplayDTO.setLapQty(publicInquiryReply.getLapQty());
+                            inquiryReplayDTO.setPrice(publicInquiryReply.getPrice());
+                            inquiryReplayDTOList.add(inquiryReplayDTO);
+                        }
+                        quotationRspDTO.setReplies(inquiryReplayDTOList);
+                    }
+                    quotationRspDTOList.add(quotationRspDTO);
+                }
+                inquiryRspDTO.setQutations(quotationRspDTOList);
+            }
+            inquiryRspDTOList.add(inquiryRspDTO);
+        }
+        return inquiryRspDTOList;
+    }
+
+    /**
     * @Description
     * @Param: [id]
     * @return: com.usoftchina.saas.commons.dto.DocBaseDTO