|
|
@@ -1,11 +1,40 @@
|
|
|
package com.uas.platform.b2b.service.impl;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
+
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
+
|
|
|
import com.uas.platform.b2b.core.util.ContextUtils;
|
|
|
-import com.uas.platform.b2b.dao.*;
|
|
|
+import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
|
+import com.uas.platform.b2b.dao.ProductDao;
|
|
|
+import com.uas.platform.b2b.dao.PurcInquiryDao;
|
|
|
+import com.uas.platform.b2b.dao.PurcInquiryItemDao;
|
|
|
+import com.uas.platform.b2b.dao.PurcInquiryItemInfoDao;
|
|
|
+import com.uas.platform.b2b.dao.PurchaseInquiryDao;
|
|
|
+import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
|
|
|
import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
|
|
|
import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
|
|
|
-import com.uas.platform.b2b.model.*;
|
|
|
+import com.uas.platform.b2b.model.Enterprise;
|
|
|
+import com.uas.platform.b2b.model.Product;
|
|
|
+import com.uas.platform.b2b.model.PurcInquiry;
|
|
|
+import com.uas.platform.b2b.model.PurcInquiryItem;
|
|
|
+import com.uas.platform.b2b.model.PurcInquiryItemInfo;
|
|
|
+import com.uas.platform.b2b.model.PurchaseInquiry;
|
|
|
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
|
|
|
import com.uas.platform.b2b.service.PurcInquiryService;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
import com.uas.platform.b2b.support.UsageBufferedLogger;
|
|
|
@@ -16,23 +45,12 @@ import com.uas.platform.core.model.Constant;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
import com.uas.platform.core.model.PageParams;
|
|
|
import com.uas.platform.core.model.Status;
|
|
|
-import org.apache.commons.collections.CollectionUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.data.domain.Page;
|
|
|
-import org.springframework.data.jpa.domain.Specification;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.ui.ModelMap;
|
|
|
-
|
|
|
-import javax.persistence.criteria.CriteriaBuilder;
|
|
|
-import javax.persistence.criteria.CriteriaQuery;
|
|
|
-import javax.persistence.criteria.Predicate;
|
|
|
-import javax.persistence.criteria.Root;
|
|
|
-import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
|
|
|
private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
|
|
|
+
|
|
|
private final String SOURCERAPP = "B2B";
|
|
|
|
|
|
@Autowired
|
|
|
@@ -50,6 +68,12 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
@Autowired
|
|
|
private PurchaseInquiryItemDao purchaseInquiryItemDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PurchaseInquiryDao purchaseInquiryDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PurcInquiryItemInfoDao purcInquiryItemInfoDao;
|
|
|
+
|
|
|
@Override
|
|
|
public ModelMap save(PurcInquiryInfo inquiryInfo, List<VendorAndContact> contacts) {
|
|
|
ModelMap map = new ModelMap();
|
|
|
@@ -60,7 +84,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
if (!CollectionUtils.isEmpty(contacts)) {
|
|
|
if (inquiry.getId() == null) {// 新增
|
|
|
inquiry.setDate(new Date());
|
|
|
- inquiry.setCode(inquiry.getCode());
|
|
|
+ inquiry.setCode(inquiryInfo.getCode());
|
|
|
inquiry.setEnUU(enuu);
|
|
|
inquiry.setCode(inquiryInfo.getCode());
|
|
|
inquiry.setEndDate(inquiryInfo.getEndDate());
|
|
|
@@ -71,6 +95,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
inquiry.setRecorderUU(SystemSession.getUser().getUserUU());
|
|
|
inquiry.setEnteryStatus(Status.UNAPPLY.value());
|
|
|
inquiry.setPriceType(inquiryInfo.getPriceType());
|
|
|
+ inquiry.setIsOpen((short) inquiryInfo.getIsOpen());
|
|
|
Set<PurcInquiryItem> items = new HashSet<PurcInquiryItem>();
|
|
|
Short i = 0;
|
|
|
for (VendorAndContact contact : contacts) {
|
|
|
@@ -152,6 +177,9 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
saleInquiry.setRecorderUU(useruu);
|
|
|
saleInquiry.setPriceType(inquiryInfo.getPriceType());
|
|
|
saleInquiry.setAuditor(SystemSession.getUser().getUserName());
|
|
|
+ saleInquiry.setIsOpen((short) inquiryInfo.getIsOpen());
|
|
|
+ saleInquiry.setSourceId(Long.valueOf(inquiryId.toString()));
|
|
|
+ saleInquiry.setSourceApp(SOURCERAPP);
|
|
|
Set<PurchaseInquiryItem> items = new HashSet<PurchaseInquiryItem>();
|
|
|
Short i = 0;
|
|
|
for (VendorAndContact contact : contacts) {
|
|
|
@@ -177,6 +205,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
saleItem.setSendStatus((short) Status.REPLIED.value());
|
|
|
saleItem.setCustLap((short) 0);
|
|
|
saleItem.setSourceApp(SOURCERAPP);
|
|
|
+ saleItem.setSourceId(item.getId());
|
|
|
items.add(saleItem);
|
|
|
i++;
|
|
|
}
|
|
|
@@ -213,6 +242,8 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
saleInquiry.setRecorder(SystemSession.getUser().getUserName());
|
|
|
saleInquiry.setRecorderUU(useruu);
|
|
|
saleInquiry.setAuditor(SystemSession.getUser().getUserName());
|
|
|
+ saleInquiry.setSourceApp(SOURCERAPP);
|
|
|
+ saleInquiry.setSourceId(id);
|
|
|
Set<PurchaseInquiryItem> items = new HashSet<PurchaseInquiryItem>();
|
|
|
if (!CollectionUtils.isEmpty(inquiry.getInquiryItems())) {
|
|
|
for (PurcInquiryItem item : inquiry.getInquiryItems()) {
|
|
|
@@ -232,6 +263,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
saleItem.setStatus((short) Status.NOT_REPLY.value());
|
|
|
saleItem.setSendStatus((short) Status.REPLIED.value());
|
|
|
saleItem.setSourceApp(SOURCERAPP);
|
|
|
+ saleItem.setSourceId(item.getId());
|
|
|
items.add(saleItem);
|
|
|
}
|
|
|
}
|
|
|
@@ -296,7 +328,6 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
item.setAgreed(Constant.NO);
|
|
|
item.setStatus((short) Status.REPLIED.value());
|
|
|
item = purchaseInquiryItemDao.save(item);
|
|
|
- System.out.println(JSON.toJSON(item));
|
|
|
if (item.getAgreed().equals(Constant.NO) && item.getStatus().equals((short) Status.REPLIED.value())) {
|
|
|
map.put("success", "拒绝操作成功");
|
|
|
} else {
|
|
|
@@ -326,5 +357,201 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public ModelMap saveWithoutVendor(PurcInquiryInfo inquiryInfo) {
|
|
|
+ PurcInquiry inquiry = new PurcInquiry();
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ Long enuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+ Long useruu = SystemSession.getUser().getUserUU();
|
|
|
+ if (inquiryInfo.getId() == null) {// 新增
|
|
|
+ inquiry.setDate(new Date());
|
|
|
+ inquiry.setCode(inquiryInfo.getCode());
|
|
|
+ inquiry.setEnUU(enuu);
|
|
|
+ inquiry.setCode(inquiryInfo.getCode());
|
|
|
+ inquiry.setEndDate(inquiryInfo.getEndDate());
|
|
|
+ inquiry.setRemark(inquiryInfo.getRemark());
|
|
|
+ inquiry.setEnvironment(inquiryInfo.getEnvironment());
|
|
|
+ inquiry.setEnterprise(enterpriseDao.findEnterpriseInfoByUu(enuu));
|
|
|
+ inquiry.setRecorder(SystemSession.getUser().getUserName());
|
|
|
+ inquiry.setRecorderUU(SystemSession.getUser().getUserUU());
|
|
|
+ inquiry.setEnteryStatus(Status.UNAPPLY.value());
|
|
|
+ inquiry.setPriceType(inquiryInfo.getPriceType());
|
|
|
+ inquiry.setIsOpen((short) inquiryInfo.getIsOpen());
|
|
|
+ Set<PurcInquiryItem> items = new HashSet<PurcInquiryItem>();
|
|
|
+ Short i = 0;
|
|
|
+ if (!CollectionUtils.isEmpty(inquiryInfo.getInquiryItems())) {
|
|
|
+ for (PurcInquiryItem purcitem : inquiryInfo.getInquiryItems()) {
|
|
|
+ PurcInquiryItem item = new PurcInquiryItem();
|
|
|
+ Product product = productDao.findOne(purcitem.getProductId());
|
|
|
+ item.setInquiry(inquiry);
|
|
|
+ item.setProduct(product);
|
|
|
+ item.setNumber(i);
|
|
|
+ item.setCurrency(purcitem.getCurrency());
|
|
|
+ item.setFromDate(new Date());
|
|
|
+ item.setToDate(purcitem.getToDate());
|
|
|
+ item.setTaxrate(purcitem.getTaxrate());
|
|
|
+ item.setRemark(purcitem.getRemark());
|
|
|
+ item.setProductId(purcitem.getProductId());
|
|
|
+ item.setStatus((short) Status.NOT_REPLY.value());
|
|
|
+ item.setIsOpen(inquiryInfo.getIsOpen());
|
|
|
+ items.add(item);
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<PurcInquiryItem> purcitems = purcInquiryItemDao.save(items);
|
|
|
+ if (purcitems.get(0).getId() != null) {
|
|
|
+ map.put("success", "询价单保存成功");
|
|
|
+ map.put("id", purcitems.get(0).getInquiry().getId());
|
|
|
+ logger.log("询价单", "平台新增询价单", useruu, SystemSession.getUser().getIp());
|
|
|
+ } else {
|
|
|
+ map.put("error", "询价单保存失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // else {
|
|
|
+ // inquiry = inquiryDao.findOne(inquiryInfo.getId());
|
|
|
+ // inquiry.setDate(new Date());
|
|
|
+ // inquiry.setCode(inquiryInfo.getCode());
|
|
|
+ // inquiry.setEnUU(enuu);
|
|
|
+ // inquiry.setCode(inquiryInfo.getCode());
|
|
|
+ // inquiry.setEndDate(inquiryInfo.getEndDate());
|
|
|
+ // inquiry.setRemark(inquiryInfo.getRemark());
|
|
|
+ // inquiry.setEnvironment(inquiryInfo.getEnvironment());
|
|
|
+ // inquiry.setEnterprise(enterpriseDao.findEnterpriseInfoByUu(enuu));
|
|
|
+ // inquiry.setRecorder(SystemSession.getUser().getUserName());
|
|
|
+ // inquiry.setRecorderUU(SystemSession.getUser().getUserUU());
|
|
|
+ // inquiry.setEnteryStatus(Status.UNAPPLY.value());
|
|
|
+ // inquiry.setPriceType(inquiryInfo.getPriceType());
|
|
|
+ // inquiry.setIsOpen(inquiryInfo.getIsOpen());
|
|
|
+ // inquiry = inquiryDao.save(inquiry);
|
|
|
+ // map.put("success", "询价单更新成功");
|
|
|
+ // }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ModelMap saveAndSubmitWithoutVendor(PurcInquiryInfo inquiryInfo) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ // 先进行保存
|
|
|
+ Object inquiryId = saveWithoutVendor(inquiryInfo).get("id");// 取出id进行更新状态
|
|
|
+ if (inquiryId != null) {
|
|
|
+ logger.log("询价单", "平台发布公共询价单", SystemSession.getUser().getUserUU(), SystemSession.getUser().getIp());
|
|
|
+ PurcInquiry inquiry = inquiryDao.findOne(Long.valueOf(inquiryId.toString()));
|
|
|
+ inquiry.setEnteryStatus(Status.ENABLED.value());
|
|
|
+ inquiryDao.save(inquiry);
|
|
|
+ map.put("success", "询价单发布成功");
|
|
|
+ } else {
|
|
|
+ map.put("error", "询价单发布失败");
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ModelMap pubishInquiry(Long id) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ PurcInquiry inquiry = inquiryDao.findOne(id);
|
|
|
+ inquiry.setEnteryStatus(Status.ENABLED.value());
|
|
|
+ inquiryDao.save(inquiry);
|
|
|
+ logger.log("询价单", "发布公共询价单", SystemSession.getUser().getUserUU(), SystemSession.getUser().getIp());
|
|
|
+ map.put("success", "发布询价单成功");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ModelMap transtoInquiry(Long id) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ PurcInquiryItem purcInquiryItem = purcInquiryItemDao.findOne(id);
|
|
|
+ PurcInquiry purcInquiry = purcInquiryItem.getInquiry();
|
|
|
+ Long enuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+ Long useruu = SystemSession.getUser().getUserUU();
|
|
|
+ // 先判断客户询价单是否存在这张单据
|
|
|
+ PurchaseInquiry inquiry = purchaseInquiryDao.findBySourceIdAndSourceApp(purcInquiry.getId(), SOURCERAPP);
|
|
|
+ if (null == inquiry) {// 新增
|
|
|
+ PurchaseInquiry saleInquiry = new PurchaseInquiry();
|
|
|
+ saleInquiry.setDate(new Date());
|
|
|
+ saleInquiry.setCode(purcInquiry.getCode());
|
|
|
+ saleInquiry.setEnUU(enuu);
|
|
|
+ saleInquiry.setEnterprise(enterpriseDao.findEnterpriseInfoByUu(enuu));
|
|
|
+ saleInquiry.setRecorder(SystemSession.getUser().getUserName());
|
|
|
+ saleInquiry.setRecorderUU(useruu);
|
|
|
+ saleInquiry.setAuditor(SystemSession.getUser().getUserName());
|
|
|
+ saleInquiry.setSourceApp(SOURCERAPP);
|
|
|
+ saleInquiry.setSourceId(purcInquiry.getId());
|
|
|
+ saleInquiry.setPriceType(purcInquiry.getPriceType());
|
|
|
+ Set<PurchaseInquiryItem> items = new HashSet<PurchaseInquiryItem>();
|
|
|
+ Short i = 0;
|
|
|
+ if (null != purcInquiryItem) {
|
|
|
+ PurchaseInquiryItem item = new PurchaseInquiryItem();
|
|
|
+ Product product = productDao.findOne(purcInquiryItem.getProductId());
|
|
|
+ item.setInquiry(saleInquiry);
|
|
|
+ item.setProduct(product);
|
|
|
+ item.setNumber(i);
|
|
|
+ item.setCurrency(purcInquiryItem.getCurrency());
|
|
|
+ item.setFromDate(new Date());
|
|
|
+ item.setToDate(purcInquiryItem.getToDate());
|
|
|
+ item.setTaxrate(purcInquiryItem.getTaxrate());
|
|
|
+ item.setRemark(purcInquiryItem.getRemark());
|
|
|
+ item.setProductId(purcInquiryItem.getProductId());
|
|
|
+ item.setStatus((short) Status.NOT_REPLY.value());
|
|
|
+ item.setVendUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ item.setVendUserUU(SystemSession.getUser().getUserUU());
|
|
|
+ item.setSourceApp(SOURCERAPP);
|
|
|
+ item.setCustLap(Constant.NO);
|
|
|
+ item.setSendStatus((short) Status.DOWNLOADED.value());
|
|
|
+ item.setSourceId(id);
|
|
|
+ items.add(item);
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ List<PurchaseInquiryItem> purcitems = purchaseInquiryItemDao.save(items);
|
|
|
+ if (purcitems.get(0).getId() != null) {
|
|
|
+ map.put("success", "转客户询价单成功");
|
|
|
+ map.put("id", purcitems.get(0).getInquiry().getId());
|
|
|
+ } else {
|
|
|
+ map.put("success", "转客户询价单失败");
|
|
|
+ }
|
|
|
+ } else {// 插入
|
|
|
+ PurchaseInquiryItem purcItem = purchaseInquiryItemDao
|
|
|
+ .findByVendUUAndSourceId(SystemSession.getUser().getEnterprise().getUu(), id);
|
|
|
+ if (purcItem != null) {
|
|
|
+ map.put("info", "询价单已存在");
|
|
|
+ } else {
|
|
|
+ if (!CollectionUtils.isEmpty(inquiry.getInquiryItems())) {
|
|
|
+ if (null != purcInquiryItem) {
|
|
|
+ PurchaseInquiryItem item = new PurchaseInquiryItem();
|
|
|
+ Product product = productDao.findOne(purcInquiryItem.getProductId());
|
|
|
+ item.setInquiry(inquiry);
|
|
|
+ item.setProduct(product);
|
|
|
+ item.setNumber((short) (inquiry.getInquiryItems().size() + 1));
|
|
|
+ item.setCurrency(purcInquiryItem.getCurrency());
|
|
|
+ item.setFromDate(new Date());
|
|
|
+ item.setToDate(purcInquiryItem.getToDate());
|
|
|
+ item.setTaxrate(purcInquiryItem.getTaxrate());
|
|
|
+ item.setRemark(purcInquiryItem.getRemark());
|
|
|
+ item.setProductId(purcInquiryItem.getProductId());
|
|
|
+ item.setVendUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ item.setVendUserUU(SystemSession.getUser().getUserUU());
|
|
|
+ item.setSourceApp(SOURCERAPP);
|
|
|
+ item.setStatus((short) Status.NOT_REPLY.value());
|
|
|
+ item.setCustLap(Constant.NO);
|
|
|
+ item.setSendStatus((short) Status.DOWNLOADED.value());
|
|
|
+ item.setSourceId(id);
|
|
|
+ item = purchaseInquiryItemDao.save(item);
|
|
|
+ if (item.getId() != null) {
|
|
|
+ map.put("success", "转客户询价单成功");
|
|
|
+ map.put("id", item.getInquiry().getId());
|
|
|
+ } else {
|
|
|
+ map.put("success", "转客户询价单失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PurcInquiryItemInfo getInquiryItemDetail(Long id) {
|
|
|
+ return purcInquiryItemInfoDao.findOne(id);
|
|
|
+ }
|
|
|
|
|
|
}
|