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

增加公共询价功能

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@8097 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 9 лет назад
Родитель
Сommit
4e5698f8b5

+ 244 - 17
src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java

@@ -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);
+	}
 
 }

+ 49 - 24
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -1,12 +1,50 @@
 package com.uas.platform.b2b.service.impl;
 
+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.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.dao.AttachDao;
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurcInquiryItemDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryReplyDao;
+import com.uas.platform.b2b.dao.UserBaseInfoDao;
 import com.uas.platform.b2b.erp.model.Inquiry;
 import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.erp.model.QuotationDownDetail;
-import com.uas.platform.b2b.event.*;
-import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
+import com.uas.platform.b2b.event.PurchaseInquiryItemInvalidReleaseEvent;
+import com.uas.platform.b2b.event.PurchaseInquiryItemReplyReleaseEvent;
+import com.uas.platform.b2b.event.PurchaseInquiryItemSaveEvent;
+import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
+import com.uas.platform.b2b.model.Attach;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurcInquiryItem;
+import com.uas.platform.b2b.model.PurchaseInquiry;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.model.PurchaseInquiryReply;
+import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.UserBaseInfo;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseInquiryService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -19,20 +57,6 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.search.b2b.model.PageParams;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-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 PurchaseInquiryServiceImpl implements PurchaseInquiryService {
@@ -61,6 +85,9 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	@Autowired
 	private ProductDao productDao;
 
+	@Autowired
+	private PurcInquiryItemDao purcInquiryItemDao;
+
 	@Override
 	public void save(List<PurchaseInquiryItem> inquiryItems) {
 		inquiryItems = purchaseInquiryItemDao.save(inquiryItems);
@@ -353,18 +380,16 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 
 	@Override
 	public List<InquiryMessage> getMessageList() {
-		String sql = "select p.id_id id,p.id_prid productId from purc$inquiryitems p where id_venduu = "
-				+ SystemSession.getUser().getEnterprise().getUu()
-				+ " and id_status =200 and rownum <=5 order by id_id desc";
-		List<PurchaseInquiryItem> items = commonDao.query(sql, PurchaseInquiryItem.class);
+		String sql = "select p.id_id id,p.id_prid productId from purc$puinquiryitems p left join purc$puinquiry i on i.in_id = p.id_inid where i.in_isopen = 1 and rownum <=5 order by id_id desc";
+		List<PurcInquiryItem> items = commonDao.query(sql, PurcInquiryItem.class);
 		List<InquiryMessage> messages = new ArrayList<InquiryMessage>();
 		if (!CollectionUtils.isEmpty(items)) {
-			for (PurchaseInquiryItem item : items) {
+			for (PurcInquiryItem item : items) {
 				InquiryMessage message = new InquiryMessage();
 				Product prod = productDao.findOne(item.getProductId());
 				message.setPordName(prod.getTitle());
-				item = purchaseInquiryItemDao.findOne(item.getId());
-				message.setInid(item.getInquiry().getId());
+				item = purcInquiryItemDao.findOne(item.getId());
+				message.setInid(item.getId());
 				messages.add(message);
 			}
 		}