Browse Source

UAS供应商推荐相关接口;app接口过滤排序修改;询价单传输到平台,根据UU查询不到录单人时,设为空。

dongbw 8 years ago
parent
commit
2b92f93bfc

+ 21 - 15
src/main/java/com/uas/platform/b2b/erp/controller/VendorRecommendController.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.erp.controller;
 import com.uas.account.support.Page;
 import com.uas.platform.b2b.erp.model.VendorRecommend;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
+import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.service.VendorService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.logging.BufferedLoggerManager;
@@ -28,11 +29,11 @@ public class VendorRecommendController {
     /**
      * 获取当前企业推荐供应商
      *
-     * @param profession
-     * @param enArea
-     * @param code
-     * @param cmpCode
-     * @param brand
+     * @param profession 企业主营业务
+     * @param enArea 企业区域
+     * @param code 物料编号
+     * @param cmpCode 物料原厂型号
+     * @param brand 物料品牌
      * @return
      */
     @RequestMapping(value = "/list", method = RequestMethod.GET)
@@ -42,14 +43,19 @@ public class VendorRecommendController {
         return vendorRecommendPage;
     }
 
-//    /**
-//     * 获取推荐企业物料详情(匹配到的排前面)
-//     * @return
-//     */
-//    @RequestMapping(value = "/detail", method = RequestMethod.GET)
-//    public Page<Prod> getVendorRecommendDetail(String pr_code, String pr_detail, String pr_spec, String pr_unit, Double pr_zxbzs, Double pr_zxdhl, Double pr_leadtime, Double pr_ltinstock, String pr_brand, String pr_orispeccode, String pr_uuid,  String kind, String pbrand, String pcmpcode, String kinden, String pbranden, ) {
-//        Page<VendorRecommend> vendorRecommendPage = vendorService.getVendorRecommend(profession, enArea, code, cmpCode, brand, page, size);
-//        logger.log("供应商推荐","获取当前企业推荐供应商:" + SystemSession.getUser().getEnterprise().getUu(), vendorRecommendPage.getNumberOfElements());
-//        return vendorRecommendPage;
-//    }
+    /**
+     * 获取推荐企业物料列表(匹配到的排前面)
+     * @param page 页数
+     * @param size 每页条数
+     * @param vendUU 推荐供应商企业UU
+     * @param productMatchCondition 列表的物料匹配搜索条件  不带where
+     * @param whereCondition where条件(product的筛选条件拼接) 不带where
+     * @return
+     */
+    @RequestMapping(value = "/detail", method = RequestMethod.GET)
+    public Page<Product> getVendorRecommendDetail(int page, int size, Long vendUU, String productMatchCondition, String whereCondition) {
+        Page<Product> productPage = vendorService.getProductsByVendorRecommend(page, size, vendUU, productMatchCondition, whereCondition);
+        logger.log("供应商推荐","获取当前企业推荐供应商:" + SystemSession.getUser().getEnterprise().getUu(), productPage.getNumberOfElements());
+        return productPage;
+    }
 }

+ 28 - 3
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryServiceImpl.java

@@ -2,7 +2,14 @@ package com.uas.platform.b2b.erp.service.impl;
 
 import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.EnterpriseDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
+import com.uas.platform.b2b.dao.SaleQuotationItemDao;
+import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.erp.model.Inquiry;
 import com.uas.platform.b2b.erp.model.InquiryDecide;
 import com.uas.platform.b2b.erp.model.InquiryDetail;
@@ -10,7 +17,14 @@ import com.uas.platform.b2b.erp.model.InquiryDetailDet;
 import com.uas.platform.b2b.erp.service.InquiryService;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 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.PurchaseInquiry;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.model.SaleQuotation;
+import com.uas.platform.b2b.model.SaleQuotationItem;
+import com.uas.platform.b2b.model.User;
+import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.temporary.model.PartnershipRecord;
 import com.uas.platform.core.logging.BufferedLoggerManager;
@@ -21,7 +35,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 @Service
 public class InquiryServiceImpl implements InquiryService {
@@ -61,6 +79,13 @@ public class InquiryServiceImpl implements InquiryService {
 			List<PurchaseInquiry> existInquiries = purchaseInquiryDao.findByEnUUAndCode(enUU, inquiry.getIn_code());
 			if (existInquiries.size() == 0) {// 不存在才继续,存在不作操作
 				PurchaseInquiry purchaseInquiry = inquiry.convert();
+				// 如果记录人UU在b2b找不到,设置为null
+				if (null != purchaseInquiry.getRecorderUU()) {
+					User recorder = userDao.findOne(purchaseInquiry.getRecorderUU());
+					if (null == recorder) {
+						purchaseInquiry.setRecorderUU(null);
+					}
+				}
 				if (!CollectionUtils.isEmpty(purchaseInquiry.getInquiryItems())) {
 					for (PurchaseInquiryItem item : purchaseInquiry.getInquiryItems()) {
 						item.setErpDate(new Date());// 存储时间

+ 0 - 1
src/main/java/com/uas/platform/b2b/mobile/controller/AppInquiryController.java

@@ -83,7 +83,6 @@ public class AppInquiryController {
                 pageParams.getFilters().put("id_inid", new MultiValue(list, true));
             }
             List<Sort> sortList = new ArrayList<>();
-            sortList.add(new Sort("id_status", true, Sort.Type.LONG, new Long(1)));
             sortList.add(new Sort("id_id", false, Sort.Type.LONG, new Long(1)));
             pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
             Page<PurchaseInquiryItem> purchaseInquiryItemPage = searchService.searchPurchaseInquiryItemIdsForApp(keyword, pageParams);

+ 0 - 1
src/main/java/com/uas/platform/b2b/mobile/controller/SaleController.java

@@ -160,7 +160,6 @@ public class SaleController {
 			}
 			// TODO 其他过滤条件
 			List<Sort> sortList = new ArrayList<>();
-			sortList.add(new Sort("pu_status", true, Sort.Type.LONG, 1L));
 			sortList.add(new Sort("pu_id", false, Sort.Type.LONG, 1L));
 			pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
 			Map<String, Object> map = new HashMap<String, Object>();

+ 3 - 3
src/main/java/com/uas/platform/b2b/model/Product.java

@@ -326,7 +326,7 @@ public class Product {
 	 * 产品生产日期
 	 */
 	@Column(name = "pr_manufacturedate")
-	private Date manufactureDate;
+	private String manufactureDate;
 
 	/**
 	 * 最大交期
@@ -736,11 +736,11 @@ public class Product {
 		this.createTime = createTime;
 	}
 
-	public Date getManufactureDate() {
+	public String getManufactureDate() {
 		return manufactureDate;
 	}
 
-	public void setManufactureDate(Date manufactureDate) {
+	public void setManufactureDate(String manufactureDate) {
 		this.manufactureDate = manufactureDate;
 	}
 

+ 11 - 0
src/main/java/com/uas/platform/b2b/service/VendorService.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.service;
 
 import com.uas.platform.b2b.erp.model.VendorRecommend;
 import com.uas.platform.b2b.model.Distribute;
+import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.model.VendorContact;
 import com.uas.platform.core.model.PageInfo;
@@ -130,4 +131,14 @@ public interface VendorService {
 	 * @return
 	 */
 	com.uas.account.support.Page<VendorRecommend> getVendorRecommend(String profession, String enArea, String code, String cmpCode, String brand, int page, int size);
+
+	/**
+	 * 获取推荐企业物料列表(匹配到的排前面)
+	 * @param page 页数
+	 * @param size 每页条数
+	 * @param productMatchCondition 列表的物料匹配搜索条件
+	 * @param whereCondition where条件(product的筛选条件拼接)
+	 * @return
+	 */
+    com.uas.account.support.Page<Product> getProductsByVendorRecommend(int page, int size, Long vendUU, String productMatchCondition,  String whereCondition);
 }

+ 37 - 0
src/main/java/com/uas/platform/b2b/service/impl/VendorsServiceImpl.java

@@ -403,4 +403,41 @@ public class VendorsServiceImpl implements VendorService {
 		return new com.uas.account.support.Page<VendorRecommend>(page, size, content, total);
 	}
 
+	/**
+	 * 获取推荐企业物料列表(匹配到的排前面)
+	 *
+	 * @param page           页数
+	 * @param size           每页条数
+	 * @param vendUU         推荐供应商企业UU
+	 * @param productMatchCondition 列表的物料匹配搜索条件
+	 * @param whereCondition where条件(product的筛选条件拼接)
+	 * @return
+	 */
+	@Override
+	public com.uas.account.support.Page<Product> getProductsByVendorRecommend(int page, int size, Long vendUU, String productMatchCondition, String whereCondition) {
+		// UAS企业UU
+		Long enUU = SystemSession.getUser().getEnterprise().getUu();
+		// 先查询当前企业的采购物料(待购&&不在售)的标准物料标准料号
+		String cmpCodesSql = "select distinct(pr.pr_cmpcode) from products pr left join sec$enterprises en on pr.pr_enuu = en.en_uu " +
+				"where pr.pr_ispurchase = 1 and pr.pr_issale != 1 and pr.pr_standard = 1 and pr.pr_enuu = " + enUU +
+				" and " + productMatchCondition;
+		final List<String> cmpCodes = commonDao.queryForList(cmpCodesSql, String.class);
+		// rownum 控制
+		String rownumSql = " and rownum > " + (page - 1) * size + "and rownum <= " + page * size;
+		// 查找匹配物料的语句
+		String productsMatchSql = "select * from products where pr_enuu = " + vendUU + " and pr_cmpcode in " + cmpCodesSql;
+		// 查找所有物料的语句
+		String allProductsSql = "select * from products where pr_enuu = " + vendUU + " and pr_cmpcode is not null";
+		// 物料id
+		StringBuffer idSql = new StringBuffer();
+		StringBuffer countSql = new StringBuffer();
+		idSql.append("select pr_id from (").append(productsMatchSql).append(" union ").append(allProductsSql).append(")").append(rownumSql);
+		countSql.append("select count(1) from (").append(productsMatchSql).append(" union ").append(allProductsSql).append(")");
+		System.out.println(idSql.toString());
+		Integer count = commonDao.queryForObject(countSql.toString(), Integer.class);
+		List<Long> ids = commonDao.queryForList(idSql.toString(), Long.class);
+		List<Product> products = productDao.findAll(ids);
+		return new com.uas.account.support.Page<>(page, size, products, count);
+	}
+
 }