|
|
@@ -2,13 +2,15 @@ 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.*;
|
|
|
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.account.dto.AccountDTO;
|
|
|
+import com.usoftchina.saas.account.dto.CompanyRspDTO;
|
|
|
import com.usoftchina.saas.base.Result;
|
|
|
import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
|
|
|
import com.usoftchina.saas.commons.api.CommonService;
|
|
|
@@ -26,22 +28,23 @@ 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.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -71,6 +74,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
|
|
|
@@ -657,7 +666,151 @@ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 报价的采纳/拒绝
|
|
|
+ * @param inquiryDealReqDTO
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void DealInquiry(InquiryDealReqDTO inquiryDealReqDTO) {
|
|
|
+ Long enUU = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData().getUu();
|
|
|
+ Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
|
|
|
+ if (inquiryDealReqDTO.getStatus() == 1){
|
|
|
+ inquiryApi.adoptQuote(inquiryDealReqDTO.getId(), inquiryDealReqDTO.getStatus(), enUU, userUU);
|
|
|
+ }else{
|
|
|
+ inquiryApi.refuseQuote(inquiryDealReqDTO.getId(), inquiryDealReqDTO.getStatus(), enUU, userUU, inquiryDealReqDTO.getRefusereason());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发起询价
|
|
|
+ * @param inquiryAddDTOList
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void saveInquiry(List<InquiryAddDTO> inquiryAddDTOList) {
|
|
|
+ List<PurcInquiry> purcInquiryList = new ArrayList<PurcInquiry>();
|
|
|
+ CompanyRspDTO companyRspDTO = companyApi.getCompanyRspDTOById(BaseContextHolder.getCompanyId()).getData();
|
|
|
+ AccountDTO accountDTO = accountApi.getAccountById(BaseContextHolder.getUserId()).getData();
|
|
|
+ //企业信息
|
|
|
+ Enterprise enterprise = new Enterprise();
|
|
|
+ enterprise.setAdminUU(companyRspDTO.getAdminUU());
|
|
|
+ enterprise.setBusinesscode(companyRspDTO.getBusinessCode());
|
|
|
+ enterprise.setEnAddress(companyRspDTO.getAddress());
|
|
|
+ enterprise.setEnName(companyRspDTO.getName());
|
|
|
+ enterprise.setEnTel(companyRspDTO.getTel());
|
|
|
+ enterprise.setUu(companyRspDTO.getUu());
|
|
|
+ for (InquiryAddDTO inquiryAddDTO : inquiryAddDTOList){
|
|
|
+ PurcInquiry purcInquiry = new PurcInquiry();
|
|
|
+ //询价主表信息
|
|
|
+ purcInquiry.setEnterprise(enterprise);
|
|
|
+ purcInquiry.setEnName(companyRspDTO.getName());
|
|
|
+ purcInquiry.setRecorderUU(accountDTO.getUu());
|
|
|
+ purcInquiry.setDate(new Date());
|
|
|
+ purcInquiry.setRecorder(accountDTO.getRealname());
|
|
|
+ purcInquiry.setEndDate(new Date(System.currentTimeMillis() + inquiryAddDTO.getLeadTime() * 24 * 60 * 60 * 1000));
|
|
|
+ purcInquiry.setSourceapp("sp");
|
|
|
+ purcInquiry.setShip(companyRspDTO.getAddress());
|
|
|
+ //询价明细
|
|
|
+ PurcInquiryItem purcInquiryItem = new PurcInquiryItem();
|
|
|
+ purcInquiryItem.setCmpCode(inquiryAddDTO.getProdOrispeccode());
|
|
|
+ purcInquiryItem.setUserUU(accountDTO.getUu());
|
|
|
+ purcInquiryItem.setUserName(accountDTO.getRealname());
|
|
|
+ purcInquiryItem.setUserTel(accountDTO.getMobile());
|
|
|
+ purcInquiryItem.setProdCode(inquiryAddDTO.getProdCode());
|
|
|
+ purcInquiryItem.setProdTitle(inquiryAddDTO.getProdName());
|
|
|
+ purcInquiryItem.setSpec(inquiryAddDTO.getProdSpec());
|
|
|
+ purcInquiryItem.setInbrand(inquiryAddDTO.getProdBrand());
|
|
|
+
|
|
|
+ Set<PurcInquiryItem> purcInquiryItemSet = new HashSet<PurcInquiryItem>();
|
|
|
+ purcInquiryItemSet.add(purcInquiryItem);
|
|
|
+
|
|
|
+ purcInquiry.setInquiryItems(purcInquiryItemSet);
|
|
|
+ purcInquiryList.add(purcInquiry);
|
|
|
+ }
|
|
|
+ //调用商城ap,保存询价
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将平台返回的结果集转成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
|