Przeglądaj źródła

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java
#	src/main/resources/test/sys.properties
hejq 8 lat temu
rodzic
commit
cfa46a6429
37 zmienionych plików z 596 dodań i 286 usunięć
  1. 12 4
      src/main/java/com/uas/platform/b2b/controller/BaseInfoController.java
  2. 1 1
      src/main/java/com/uas/platform/b2b/controller/ProductController.java
  3. 9 6
      src/main/java/com/uas/platform/b2b/controller/ProductUsersController.java
  4. 4 4
      src/main/java/com/uas/platform/b2b/controller/PurcInquiryController.java
  5. 2 0
      src/main/java/com/uas/platform/b2b/controller/PurcOrderController.java
  6. 1 2
      src/main/java/com/uas/platform/b2b/controller/PurcProductController.java
  7. 2 2
      src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java
  8. 2 2
      src/main/java/com/uas/platform/b2b/dao/ProductDao.java
  9. 2 2
      src/main/java/com/uas/platform/b2b/dao/ProductUsersDao.java
  10. 6 6
      src/main/java/com/uas/platform/b2b/erp/controller/ProdController.java
  11. 15 16
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdInOutController.java
  12. 10 11
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdReturnController.java
  13. 2 2
      src/main/java/com/uas/platform/b2b/erp/service/PurchaseProdInOutService.java
  14. 19 15
      src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java
  15. 1 1
      src/main/java/com/uas/platform/b2b/model/Product.java
  16. 4 4
      src/main/java/com/uas/platform/b2b/ps/MessageUtils.java
  17. 95 10
      src/main/java/com/uas/platform/b2b/ps/ProductUtils.java
  18. 1 1
      src/main/java/com/uas/platform/b2b/service/BaseInfoService.java
  19. 17 6
      src/main/java/com/uas/platform/b2b/service/ProductService.java
  20. 6 6
      src/main/java/com/uas/platform/b2b/service/ProductUsersService.java
  21. 4 4
      src/main/java/com/uas/platform/b2b/service/PurcInquiryService.java
  22. 1 1
      src/main/java/com/uas/platform/b2b/service/PurcOrderService.java
  23. 1 1
      src/main/java/com/uas/platform/b2b/service/PurcProductService.java
  24. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseTenderService.java
  25. 45 6
      src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java
  26. 118 97
      src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java
  27. 62 26
      src/main/java/com/uas/platform/b2b/service/impl/ProductUsersServiceImpl.java
  28. 70 23
      src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java
  29. 8 3
      src/main/java/com/uas/platform/b2b/service/impl/PurcOrderServiceImpl.java
  30. 8 3
      src/main/java/com/uas/platform/b2b/service/impl/PurcProductServiceImpl.java
  31. 56 10
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java
  32. 4 4
      src/main/java/com/uas/platform/b2b/service/impl/VendorsServiceImpl.java
  33. 1 1
      src/main/resources/dev/message.properties
  34. 1 0
      src/main/resources/prod/message.properties
  35. 1 1
      src/main/resources/spring/context.xml
  36. 1 1
      src/main/resources/test/message.properties
  37. 3 3
      src/main/webapp/resources/js/index/app.js

+ 12 - 4
src/main/java/com/uas/platform/b2b/controller/BaseInfoController.java

@@ -9,7 +9,11 @@ import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.BaseInfoService;
 import com.uas.platform.b2b.service.ProductService;
-import com.uas.platform.b2b.support.*;
+import com.uas.platform.b2b.support.JxlsExcelView;
+import com.uas.platform.b2b.support.SysConf;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.support.TokenService;
+import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
 import com.uas.platform.b2b.temporary.model.NewPurcOrder;
 import com.uas.platform.b2b.temporary.model.ProdInfo;
@@ -34,10 +38,14 @@ import org.springframework.data.domain.Sort.Direction;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.ModelAndView;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -373,7 +381,7 @@ public class BaseInfoController {
 				throw new IllegalOperatorException("文件格不正确,请上传.xls或.xlsx的文件");
 			}
 			map = baseInfoService.releaseByWorkbook(workbook);
-		} catch (IOException e) {
+		} catch (Exception e) {
 			e.printStackTrace();
 		}
 		logger.log("商品批次", "[" + SystemSession.getUser().getUserName() + "]通过excel导入了物料,数量为" + map.size());

+ 1 - 1
src/main/java/com/uas/platform/b2b/controller/ProductController.java

@@ -302,7 +302,7 @@ public class ProductController {
 	 */
 	@RequestMapping(value = "/updateByBatch", method = RequestMethod.POST)
 	@ResponseBody
-	private ModelMap updateByBatch(@RequestBody String products, String updatetype, String keyword) {
+	private ModelMap updateByBatch(@RequestBody String products, String updatetype, String keyword) throws Exception {
 		List<Product> prods = JSONObject.parseArray(products, Product.class);
 		return productService.updateByBatch(prods, updatetype, keyword);
 	}

+ 9 - 6
src/main/java/com/uas/platform/b2b/controller/ProductUsersController.java

@@ -21,10 +21,13 @@ import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.ModelAndView;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
@@ -111,7 +114,7 @@ public class ProductUsersController {
                 throw new IllegalOperatorException("文件格不正确,请上传.xls或.xlsx的文件");
             }
             map = productUsersService.releaseByWorkbook(workbook);
-        } catch (IOException e) {
+        } catch (Exception e) {
             e.printStackTrace();
         }
         logger.log("商品批次", "[" + SystemSession.getUser().getUserName() + "]通过excel导入了个人物料,数量为" + map.size());
@@ -153,7 +156,7 @@ public class ProductUsersController {
     /**
      * 通过id删除
      *
-     * @param id
+     * @param ids
      * @return
      * @return
      * @throws Exception
@@ -177,7 +180,7 @@ public class ProductUsersController {
      * @param ids
      */
     @RequestMapping(value = "/coverToUserByIds", method = RequestMethod.POST)
-    public ModelMap coverToUserByIds(String ids) {
+    public ModelMap coverToUserByIds(@RequestBody String ids) throws Exception {
        return productUsersService.coverToUserProd(ids);
     }
 
@@ -188,7 +191,7 @@ public class ProductUsersController {
      * @return
      */
     @RequestMapping(value = "/covertToUser/{id}", method = RequestMethod.POST)
-    public void coverToUserById(@PathVariable Long id) {
+    public void coverToUserById(@PathVariable Long id) throws Exception {
         productUsersService.coverToUserProd(id);
     }
 }

+ 4 - 4
src/main/java/com/uas/platform/b2b/controller/PurcInquiryController.java

@@ -72,7 +72,7 @@ public class PurcInquiryController {
 	 * @return
 	 */
 	@RequestMapping(value = "/save/withVendor", method = RequestMethod.POST)
-	private ModelMap save(String inquiry, String contacts, FileUpload uploadItem) {
+	private ModelMap save(String inquiry, String contacts, FileUpload uploadItem) throws Exception {
 		PurcInquiryInfo purcInquiry = JSONObject.parseObject(inquiry, PurcInquiryInfo.class);
 		List<VendorAndContact> vendors = FlexJsonUtils.fromJsonArray(contacts, VendorAndContact.class);
 		if (purcInquiry.getId() == null) {
@@ -91,7 +91,7 @@ public class PurcInquiryController {
 	 * @return
 	 */
 	@RequestMapping(value = "/save/withoutVendor", method = RequestMethod.POST)
-	private ModelMap saveWithoutVendor(String inquiry, FileUpload uploadItem) {
+	private ModelMap saveWithoutVendor(String inquiry, FileUpload uploadItem) throws Exception {
 		PurcInquiryInfo purcInquiry = JSONObject.parseObject(inquiry, PurcInquiryInfo.class);
 		if (purcInquiry.getId() == null) {
 			logger.log("公共询价", "新增保存公共询价信息");
@@ -110,7 +110,7 @@ public class PurcInquiryController {
 	 * @return
 	 */
 	@RequestMapping(value = "/submit/withVendor", method = RequestMethod.POST)
-	private ModelMap saveAndSubmit(String inquiry, String contacts, FileUpload uploadItem) {
+	private ModelMap saveAndSubmit(String inquiry, String contacts, FileUpload uploadItem) throws Exception {
 		PurcInquiryInfo purcInquiry = JSONObject.parseObject(inquiry, PurcInquiryInfo.class);
 		List<VendorAndContact> vendors = FlexJsonUtils.fromJsonArray(contacts, VendorAndContact.class);
 		if (purcInquiry.getId() == null) {
@@ -129,7 +129,7 @@ public class PurcInquiryController {
 	 * @return
 	 */
 	@RequestMapping(value = "/submit/withoutVendor", method = RequestMethod.POST)
-	private ModelMap saveAndSubmitWithoutVendor(String inquiry, FileUpload uploadItem) {
+	private ModelMap saveAndSubmitWithoutVendor(String inquiry, FileUpload uploadItem) throws Exception {
 		PurcInquiryInfo purcInquiry = JSONObject.parseObject(inquiry, PurcInquiryInfo.class);
 		if (purcInquiry.getId() == null) {
 			logger.log("公共询价", "新增发布公共询价信息");

+ 2 - 0
src/main/java/com/uas/platform/b2b/controller/PurcOrderController.java

@@ -177,6 +177,8 @@ public class PurcOrderController {
 			map = purcOrderService.releaseByWorkbook(workbook);
 		} catch (IOException e) {
 			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
 		}
 		logger.log("新增采购导入物料", "[" + SystemSession.getUser().getUserName() + "]通过excel导入了物料,数量为" + map.size());
 		return map;

+ 1 - 2
src/main/java/com/uas/platform/b2b/controller/PurcProductController.java

@@ -34,7 +34,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.ModelAndView;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -170,7 +169,7 @@ public class PurcProductController {
 				throw new IllegalOperatorException("文件格不正确,请上传.xls或.xlsx的文件");
 			}
 			map = purcProductService.releaseByWorkbook(workbook);
-		} catch (IOException e) {
+		} catch (Exception e) {
 			e.printStackTrace();
 		}
 		logger.log("商品批次", "[" + SystemSession.getUser().getUserName() + "]通过excel导入了物料,数量为" + map.size());

+ 2 - 2
src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java

@@ -74,7 +74,7 @@ public class PurchaseTenderController {
     @RequestMapping(value = "/publish/new", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public ResponseEntity<String> publishTender(String tender, String enInfos) {
+    public ResponseEntity<String> publishTender(String tender, String enInfos) throws Exception {
         PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         if (null != enInfos) {
             enInfos = "[".concat(enInfos);
@@ -100,7 +100,7 @@ public class PurchaseTenderController {
     @RequestMapping(value = "/save/new", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public ResponseEntity<String> saveTender(String tender, String enInfos) {
+    public ResponseEntity<String> saveTender(String tender, String enInfos) throws Exception {
         PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         if (null != enInfos) {
             enInfos = "[".concat(enInfos);

+ 2 - 2
src/main/java/com/uas/platform/b2b/dao/ProductDao.java

@@ -202,7 +202,7 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
     public List<Product> findByTitleAndPcmpcodeAndPbrandAndEnUU(String title, String cmpcode, String brand, Long enUU);
 
 	/**
-	 * 通过uu查询非标准器件进行存储
+	 * 通过uu查询非标准器件进行存储 -- B2B不在使用一键匹配,所以更新方法也弃用
 	 * 
 	 * @param enuu
 	 * @return
@@ -211,7 +211,7 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
 	public String upateProductByEnuuAndType(Long enuu, String updatetype);
 
 	/**
-	 * 一键开启(关闭)销售(采购)
+	 * 一键开启(关闭)销售(采购)  --公共服务调试ok之后会弃用
 	 *
 	 * @param enuu
 	 * @param switchtype

+ 2 - 2
src/main/java/com/uas/platform/b2b/dao/ProductUsersDao.java

@@ -30,7 +30,7 @@ public interface ProductUsersDao extends JpaSpecificationExecutor<ProductUsers>,
     List<ProductUsers> findByEnuuAndUseruuAndTitleAndCmpCodeAndBrand(@Param("enuu") Long enuu, @Param("useruu") Long useruu, @Param("title") String title, @Param("spec") String spec, @Param("brand") String brand);
 
     /**
-     * 通过选择的id批量转入我的物料
+     * 通过选择的id批量转入我的物料 -- 弃用存储过程,在后台调用公共服务接口处理
      *
      * @param ids
      */
@@ -45,7 +45,7 @@ public interface ProductUsersDao extends JpaSpecificationExecutor<ProductUsers>,
      * @param prid
      * @return
      */
-    List<ProductUsers> findByEnuuAndUseruuAndAndPrid(Long enuu, Long useruu, Long prid);
+    ProductUsers findByEnuuAndUseruuAndPrid(Long enuu, Long useruu, Long prid);
 
     /**
      * 自动更新所有企业的物料信息

+ 6 - 6
src/main/java/com/uas/platform/b2b/erp/controller/ProdController.java

@@ -51,7 +51,7 @@ public class ProdController {
 	 */
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
-	public void saveProducts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void saveProducts(@RequestParam("data") String data) throws Exception {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<Prod> prods = FlexJsonUtils.fromJsonArray(jsonStr, Prod.class);
 		productService.save(prodService.convertProduct(prods));
@@ -67,7 +67,7 @@ public class ProdController {
 	 */
 	@RequestMapping(value = "/cycleupdate", method = RequestMethod.POST)
 	@ResponseBody
-	public void updateProducts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void updateProducts(@RequestParam("data") String data) throws Exception {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<Prod> prods = FlexJsonUtils.fromJsonArray(jsonStr, Prod.class);
 		productService.save(prodService.convertProduct(prods));
@@ -104,7 +104,7 @@ public class ProdController {
 	 */
 	@RequestMapping(value = "/refreshDownloadstatus", method = RequestMethod.POST)
 	@ResponseBody
-	public void refreshDownloadstatus(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void refreshDownloadstatus(@RequestParam("data") String data) throws Exception {
 		productService.onProductDownSuccess(URLDecoder.decode(data, "UTF-8").split(","));
 	}
 
@@ -116,7 +116,7 @@ public class ProdController {
 	 */
 	@RequestMapping(value = "/updateB2bEnabled", method = RequestMethod.POST)
 	@ResponseBody
-	public int updateB2bEnabled(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public int updateB2bEnabled(@RequestParam("data") String data) throws Exception {
 		String code = URLDecoder.decode(data, "UTF-8");
 		Short b2bDisabled = Constant.YES;
 		return productService.updateB2bEnabled(code, b2bDisabled);
@@ -132,7 +132,7 @@ public class ProdController {
 	 */
 	@RequestMapping(value = "/produser", method = RequestMethod.POST)
 	@ResponseBody
-	public void updateProdSaler(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void updateProdSaler(@RequestParam("data") String data) throws Exception {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<ProductSaler> productSalers = FlexJsonUtils.fromJsonArray(jsonStr, ProductSaler.class);
         productService.updateProdSaler(productSalers);
@@ -149,7 +149,7 @@ public class ProdController {
      */
     @RequestMapping(value = "/produser/quit", method = RequestMethod.POST)
     @ResponseBody
-    public void uploadProductSalerForCancel(@RequestParam("data") String data) throws UnsupportedEncodingException {
+    public void uploadProductSalerForCancel(@RequestParam("data") String data) throws Exception {
         String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<ProductSaler> productSalers = FlexJsonUtils.fromJsonArray(jsonStr, ProductSaler.class);
         productService.quitProdSaler(productSalers);

+ 15 - 16
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdInOutController.java

@@ -1,14 +1,16 @@
 package com.uas.platform.b2b.erp.controller;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.List;
-
-import com.uas.platform.b2b.model.MakeAccept;
-import com.uas.platform.b2b.model.MakeReturn;
-import com.uas.platform.b2b.model.PurchaseAccept;
-import com.uas.platform.b2b.model.PurchaseReturn;
-import com.uas.platform.b2b.service.*;
+import com.uas.platform.b2b.erp.model.ProdInOutRefreshPrice;
+import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
+import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
+import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
+import com.uas.platform.b2b.service.MakeAcceptService;
+import com.uas.platform.b2b.service.MakeReturnService;
+import com.uas.platform.b2b.service.PurchaseAcceptService;
+import com.uas.platform.b2b.service.PurchaseApBillService;
+import com.uas.platform.b2b.service.PurchaseReturnService;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,12 +18,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.uas.platform.b2b.erp.model.ProdInOutRefreshPrice;
-import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
-import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
-import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
-import com.uas.platform.core.logging.BufferedLoggerManager;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
 
 /**
  * 对买家ERP的数据接口<br>
@@ -63,7 +62,7 @@ public class PurchaseProdInOutController {
 	 */
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
-	public void saveProdInOuts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void saveProdInOuts(@RequestParam("data") String data) throws Exception {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
 		purchaseAcceptService.save(purchaseProdInOutService.convertProdInOuts(prodInOuts));

+ 10 - 11
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdReturnController.java

@@ -1,9 +1,11 @@
 package com.uas.platform.b2b.erp.controller;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.List;
-
+import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
+import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
+import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
+import com.uas.platform.b2b.service.PurchaseReturnService;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -11,12 +13,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
-import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
-import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
-import com.uas.platform.b2b.service.PurchaseReturnService;
-import com.uas.platform.core.logging.BufferedLoggerManager;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
 
 /**
  * 对买家ERP的数据接口<br>
@@ -46,7 +45,7 @@ public class PurchaseProdReturnController {
 	 */
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
-	public void savePurchases(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void savePurchases(@RequestParam("data") String data) throws Exception {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
 		purchaseReturnService.save(purchaseProdInOutService.convertReturns(prodInOuts));

+ 2 - 2
src/main/java/com/uas/platform/b2b/erp/service/PurchaseProdInOutService.java

@@ -21,7 +21,7 @@ public interface PurchaseProdInOutService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseAcceptItem> convertProdInOuts(List<PurchaseProdInOut> prodInOuts);
+	List<PurchaseAcceptItem> convertProdInOuts(List<PurchaseProdInOut> prodInOuts) throws Exception;
 	
 	/**
 	 * 将ERP中已反过账的采购验收单,转为反过账的客户采购验收单
@@ -36,7 +36,7 @@ public interface PurchaseProdInOutService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseReturnItem> convertReturns(List<PurchaseProdInOut> prodInOuts);
+	List<PurchaseReturnItem> convertReturns(List<PurchaseProdInOut> prodInOuts) throws Exception;
 
 	/**
 	 * 将ERP中已反过账的采购验收单,转为反过账的客户采购验退单

+ 19 - 15
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java

@@ -1,14 +1,5 @@
 package com.uas.platform.b2b.erp.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.PurchaseAcceptDao;
@@ -31,7 +22,16 @@ import com.uas.platform.b2b.model.PurchaseBadOutItem;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseReturn;
 import com.uas.platform.b2b.model.PurchaseReturnItem;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.support.SystemSession;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
 
 
 @Service
@@ -62,7 +62,7 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
 	private ProductDao productDao;
 
 	@Override
-	public List<PurchaseAcceptItem> convertProdInOuts(List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseAcceptItem> convertProdInOuts(List<PurchaseProdInOut> prodInOuts) throws Exception {
 		List<PurchaseAcceptItem> acceptItems = new ArrayList<PurchaseAcceptItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for (PurchaseProdInOut prodInOut : prodInOuts) {
@@ -97,9 +97,11 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
 							Product product = new Product();
 							product.setCode(item.getProdcode());
 							product.setEnUU(enUU);
-							product = productDao.save(product);
+							// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+							Long proId = ProductUtils.updateOne(product);
+//							product = productDao.save(product);
 							item.setProduct(product);
-							item.setProdId(product.getId());
+							item.setProdId(proId);
 						}
 						item.setAccept(accept);
 						item.setErpDate(new Date());
@@ -112,7 +114,7 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
 	}
 
 	@Override
-	public List<PurchaseReturnItem> convertReturns(List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseReturnItem> convertReturns(List<PurchaseProdInOut> prodInOuts) throws Exception {
 		List<PurchaseReturnItem> returnItems = new ArrayList<PurchaseReturnItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for (PurchaseProdInOut prodInOut : prodInOuts) {
@@ -145,9 +147,11 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
 							Product product = new Product();
 							product.setCode(returnItem.getProdCode());
 							product.setEnUU(enUU);
-							product = productDao.save(product);
+							// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+							Long proId = ProductUtils.updateOne(product);
+//							product = productDao.save(product);
 							returnItem.setProduct(product);
-							returnItem.setProdId(product.getId());
+							returnItem.setProdId(proId);
 						}
 					}
 					returnItem.setPurchaseReturn(returnn);// 设置主记录

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

@@ -349,7 +349,7 @@ public class Product {
 	/**
 	 * b2b物料禁用状态
 	 */
-	@Column(name = "pr_b2bdisabled")
+	@Column(name = "pr_b2bdisabled", insertable = false, updatable = false)
 	private Short b2bDisabled;
 
 	public Product() {

+ 4 - 4
src/main/java/com/uas/platform/b2b/ps/MessageUtils.java

@@ -23,7 +23,6 @@ import java.util.HashMap;
 public class MessageUtils {
 
 
-    //TODO 其他也修改为从properties取
     private static final String MESSAGE_PUBLIC_SERVICE_URL = ContextUtils.getBean(MessageConf.class).getMessagePublicServiceDevUrl();
 
     /**
@@ -37,14 +36,15 @@ public class MessageUtils {
      */
     public static Page<MessageModel> getMessage(int page, int size) throws Exception {
         HashMap<String, Object> params = new HashMap<>();
-        params.put("receiveruu", SystemSession.getUser().getUserUU());
+        params.put("receiverUu", SystemSession.getUser().getUserUU());
         params.put("receiverEnuu", SystemSession.getUser().getEnterprise().getUu());
         params.put("consumerApp", "B2B");
         params.put("page", page);
         params.put("size", size);
-        HttpUtils.Response res = HttpUtils.get(MESSAGE_PUBLIC_SERVICE_URL + "/message", params);
+        HttpUtils.Response res = HttpUtils.get(MESSAGE_PUBLIC_SERVICE_URL + "/messages", params);
         if (HttpStatus.OK.value() == res.getStatusCode()) {
             if (null != res.getResponseText()) {
+                System.out.println(res.getResponseText());
                 return (Page) JSONObject.parseObject(res.getResponseText(), new TypeReference<Page<MessageModel>>() {
                 }, new Feature[0]);
             }
@@ -67,7 +67,7 @@ public class MessageUtils {
         HashMap<String, String> params = new HashMap<>();
         params.put("messageId", String.valueOf(id));
         params.put("consumerApp", "B2B");
-        HttpUtils.Response res = HttpUtils.post(MESSAGE_PUBLIC_SERVICE_URL + "/message/read", params);
+        HttpUtils.Response res = HttpUtils.post(MESSAGE_PUBLIC_SERVICE_URL + "/messages/read", params);
         if (HttpStatus.OK.value() == res.getStatusCode()) {
             map.put("success", "成功设为已读");
             return map;

+ 95 - 10
src/main/java/com/uas/platform/b2b/ps/ProductUtils.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.ps;
 import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.ProductUsers;
 import com.uas.platform.b2b.support.SysConf;
 import com.uas.platform.core.util.HttpUtil;
 import com.uas.platform.core.util.HttpUtil.Response;
@@ -36,7 +37,7 @@ public class ProductUtils {
     public static List<Long> update(List<Product> products) throws Exception {
         HashMap<String, Object> params = new HashMap<>();
         params.put("data", FlexJsonUtils.toJsonDeep(products));
-        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/product/update", params);
+        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/product/update/b2b", params);
         if (HttpStatus.OK.value() == res.getStatusCode()) {
             if (null != res.getResponseText()) {
                 // 保存成功物料的id
@@ -57,25 +58,67 @@ public class ProductUtils {
      * @throws Exception
      */
     public static Long updateOne(Product product) throws Exception {
-        HashMap<String, Object> params = new HashMap<>();
         List<Product> products = new ArrayList<>();
         products.add(product);
-        params.put("data", FlexJsonUtils.toJsonDeep(products));
-        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/product/update", params);
+        String res = HttpUtil.doPost(PRODUCT_PUBLIC_SERVICE_URL + "/product/update/b2b", FlexJsonUtils.toJsonDeep(products));
+        if (null != res) {
+            // 保存成功物料的id
+            List<Long> ids = JSON.parseArray(res, Long.class);
+            if (!CollectionUtils.isEmpty(ids)) {
+                return ids.get(0);
+            }
+        } else {
+            throw new RuntimeException("更新物料失败");
+        }
+        return null;
+    }
+
+
+    /**
+     * 批量更新个人物料
+     *
+     * @author dongbw
+     * @param  productUsers 要保存的个人物料信息
+     * @return
+     * @throws Exception
+     */
+    public static ModelMap updateProductUsersByBatch(List<ProductUsers> productUsers) throws Exception {
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("data", FlexJsonUtils.toJsonDeep(productUsers));
+        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/productuser/save", params);
         if (HttpStatus.OK.value() == res.getStatusCode()) {
             if (null != res.getResponseText()) {
-                // 保存成功物料的id
-                List<Long> ids = JSON.parseArray(res.getResponseText(), Long.class);
-                if (!CollectionUtils.isEmpty(ids)) {
-                    return ids.get(0);
-                }
+                return new ModelMap("success", "批量保存个人物料成功");
             }
         } else {
-            throw new RuntimeException("更新物料失败");
+            throw new RuntimeException("批量保存个人物料失败");
         }
         return null;
     }
 
+    /**
+     * 单个更新个人物料
+     *
+     * @author dongbw
+     * @param  productUser 要保存的个人物料信息
+     * @return
+     * @throws Exception
+     */
+    public static Long updateProductUsersOne(ProductUsers productUser) throws Exception {
+        List<ProductUsers> productUsers = new ArrayList<>();
+        productUsers.add(productUser);
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("data", FlexJsonUtils.toJsonDeep(productUsers));
+        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/productuser/save", params);
+        if (HttpStatus.OK.value() == res.getStatusCode()) {
+            if (null != res.getResponseText()) {
+                return Long.valueOf(res.getResponseText());
+            }
+        } else {
+            throw new RuntimeException("保存单个个人物料失败");
+        }
+        return null;
+    }
 
     /**
      * 单个删除个人物料
@@ -96,6 +139,23 @@ public class ProductUtils {
         }
     }
 
+    /**
+     * 批量删除个人物料
+     *
+     * @author dongbw
+     * @param  idList 要删除的个人物料idList
+     * @return
+     * @throws Exception
+     */
+    public static void deleteProductUserByBatch(List<Long> idList) throws Exception {
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("ids", idList);
+        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/productuser/edit/deleteByBatch", params);
+        if (HttpStatus.OK.value()!= res.getStatusCode()) {
+            throw new RuntimeException("删除个人物料失败");
+        }
+    }
+
     /**
      * 子应用删除物料时,删除匹配结果和个人物料
      *
@@ -176,4 +236,29 @@ public class ProductUtils {
             throw new RuntimeException("匹配所选失败");
         }
     }
+
+    /**
+     * 个人物料批量转入个人物料库
+     * @param ids 转入的物料ids
+     * @param enUU  企业UU
+     * @param userUU 用户UU
+     * @return
+     */
+    public static Integer coverToUserProd(List<Long> ids, Long enUU, Long userUU) throws Exception {
+        HashMap<String, Object> params = new HashMap<>();
+        ModelMap data = new ModelMap();
+        data.put("ids",  ids.toString());
+        data.put("enUU", enUU);
+        data.put("userUU", userUU);
+//        params.put("ids", ids);
+//        params.put("enUU", enUU);
+//        params.put("userUU", userUU);
+        params.put("data", data);
+        Response res = HttpUtil.sendPostRequest(PRODUCT_PUBLIC_SERVICE_URL + "/productuser/coverToUserByIds", params);
+        if (HttpStatus.OK.value() == res.getStatusCode()) {
+            return Integer.valueOf(res.getResponseText());
+        } else {
+            throw new RuntimeException("批量转入个人物料库失败");
+        }
+    }
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/BaseInfoService.java

@@ -23,7 +23,7 @@ public interface BaseInfoService {
 	 * @param workbook
 	 * @return
 	 */
-	ModelMap releaseByWorkbook(Workbook workbook);
+	ModelMap releaseByWorkbook(Workbook workbook) throws Exception;
 
 	/**
 	 * 更新物料信息

+ 17 - 6
src/main/java/com/uas/platform/b2b/service/ProductService.java

@@ -21,7 +21,7 @@ public interface ProductService {
 	 * @param products
 	 * @return
 	 */
-	public List<Product> save(List<Product> products);
+	public void save(List<Product> products) throws Exception;
 
 	/**
 	 * 分页查找客户物料(全部)
@@ -69,7 +69,7 @@ public interface ProductService {
 	 * @param keyword
 	 * @return
 	 */
-	public ModelMap updateByBatch(List<Product> products, String updatetype, String keyword);
+	public ModelMap updateByBatch(List<Product> products, String updatetype, String keyword) throws Exception;
 
 	/**
 	 * 批量修改物料数据
@@ -153,7 +153,7 @@ public interface ProductService {
 	 * 
 	 * @param idArray
 	 */
-	public void onProductDownSuccess(String[] idArray);
+	public void onProductDownSuccess(String[] idArray) throws Exception;
 
 	/**
 	 * 获取匹配数量
@@ -183,6 +183,17 @@ public interface ProductService {
 	 */
 	public SPage<Product> findB2bEnabledProductInfoByPageInfo(PageInfo pageInfo, String keyword);
 
+	/**
+	 * 分页查找客户物料(标准未禁用)
+	 *
+	 * @param pageInfo 分页参数
+	 * @param keyword
+	 *            查找关键词
+	 * @return
+	 */
+	SPage<Product> findStandardB2bEnabledProductInfoByPageInfo(PageInfo pageInfo, String keyword);
+
+
 	/**
 	 * 分页查找客户物料(非标准未禁用)
 	 *
@@ -203,7 +214,7 @@ public interface ProductService {
 	 * 禁用物料
 	 * @param code
 	 */
-	public int updateB2bEnabled(String code, Short b2bDisabled);
+	public int updateB2bEnabled(String code, Short b2bDisabled) throws Exception;
 
 	/**
 	 * ERP个人物料同步到平台
@@ -212,7 +223,7 @@ public interface ProductService {
 	 * @date 2018-01-12 19:15
 	 * @param productSalers 个人物料信息
 	 */
-    void updateProdSaler(List<ProductSaler> productSalers);
+    void updateProdSaler(List<ProductSaler> productSalers) throws Exception;
 
 	/**
 	 * ERP取消个人物料同步到平台
@@ -221,5 +232,5 @@ public interface ProductService {
 	 * @date 2018-01-12 19:31
 	 * @param productSalers
 	 */
-	void quitProdSaler(List<ProductSaler> productSalers);
+	void quitProdSaler(List<ProductSaler> productSalers) throws Exception;
 }

+ 6 - 6
src/main/java/com/uas/platform/b2b/service/ProductUsersService.java

@@ -30,14 +30,14 @@ public interface ProductUsersService {
      * @param prodInfo
      * @return
      */
-    ModelMap addNewProduct(Product prodInfo);
+    ModelMap addNewProduct(Product prodInfo) throws Exception;
 
     /**
      * 通过id解除物料绑定关系
      *
      * @param id
      */
-    void deleteById(Long id);
+    void deleteById(Long id) throws Exception;
 
     /**
      * 批量导入物料信息
@@ -45,27 +45,27 @@ public interface ProductUsersService {
      * @param workbook
      * @return
      */
-    ModelMap releaseByWorkbook(Workbook workbook);
+    ModelMap releaseByWorkbook(Workbook workbook) throws Exception;
 
     /**
      * 批量转入我的产品库
      *
      * @param ids
      */
-    ModelMap coverToUserProd(String ids);
+    ModelMap coverToUserProd(String ids) throws Exception;
 
     /**
      * 单个转入我的物料
      *
      * @param id
      */
-    void coverToUserProd(Long id);
+    void coverToUserProd(Long id) throws Exception;
 
     /**
      * 批量删除我的产品
      * @param idList
      */
-    void deleteByBatch(List<Long> idList);
+    void deleteByBatch(List<Long> idList) throws Exception;
 
     /**
      * 转入我的物料库

+ 4 - 4
src/main/java/com/uas/platform/b2b/service/PurcInquiryService.java

@@ -20,7 +20,7 @@ public interface PurcInquiryService {
 	 * @param inquiry
 	 * @return
 	 */
-	public ModelMap save(PurcInquiryInfo inquiry, List<VendorAndContact> contacts, FileUpload uploadItem);
+	public ModelMap save(PurcInquiryInfo inquiry, List<VendorAndContact> contacts, FileUpload uploadItem) throws Exception;
 
 	/**
 	 * 保存提交
@@ -29,7 +29,7 @@ public interface PurcInquiryService {
 	 * @param contacts
 	 * @return
 	 */
-	public ModelMap saveAndSubmit(PurcInquiryInfo inquiry, List<VendorAndContact> contacts, FileUpload uploadItem);
+	public ModelMap saveAndSubmit(PurcInquiryInfo inquiry, List<VendorAndContact> contacts, FileUpload uploadItem) throws Exception;
 
 	/**
 	 * 提交单据
@@ -84,7 +84,7 @@ public interface PurcInquiryService {
 	 * @param purcInquiry
 	 * @return
 	 */
-	public ModelMap saveWithoutVendor(PurcInquiryInfo purcInquiry, FileUpload uploadItem);
+	public ModelMap saveWithoutVendor(PurcInquiryInfo purcInquiry, FileUpload uploadItem) throws Exception;
 
 	/**
 	 * 公共询价(保存并提交)
@@ -92,7 +92,7 @@ public interface PurcInquiryService {
 	 * @param purcInquiry
 	 * @return
 	 */
-	public ModelMap saveAndSubmitWithoutVendor(PurcInquiryInfo purcInquiry, FileUpload uploadItem);
+	public ModelMap saveAndSubmitWithoutVendor(PurcInquiryInfo purcInquiry, FileUpload uploadItem) throws Exception;
 
 	/**
 	 * 发布公共招标

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurcOrderService.java

@@ -70,7 +70,7 @@ public interface PurcOrderService {
 	 * @param workbook
 	 * @return
 	 */
-	public ModelMap releaseByWorkbook(Workbook workbook);
+	public ModelMap releaseByWorkbook(Workbook workbook) throws Exception;
 
 	/**
 	 * 复制采购单

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurcProductService.java

@@ -11,7 +11,7 @@ public interface PurcProductService {
 	 * @param workbook
 	 * @return
 	 */
-	public ModelMap releaseByWorkbook(Workbook workbook);
+	public ModelMap releaseByWorkbook(Workbook workbook) throws Exception;
 
 	/**
 	 * 一键开启或关闭采购物料

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseTenderService.java

@@ -192,7 +192,7 @@ public interface PurchaseTenderService {
      * @param purchaseTender
      * @param contactInfos
      */
-    void publishOrSave(PurchaseTender purchaseTender, List<TenderContactInfo> contactInfos);
+    void publishOrSave(PurchaseTender purchaseTender, List<TenderContactInfo> contactInfos) throws Exception;
 
     Map<String, Integer> getTenderCount(String category);
 

+ 45 - 6
src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java

@@ -3,15 +3,47 @@ package com.uas.platform.b2b.service.impl;
 import com.uas.account.entity.RequsetStatus;
 import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ThreadTask;
-import com.uas.platform.b2b.dao.*;
-import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.DistributeDao;
+import com.uas.platform.b2b.dao.EnterpriseDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.ProductMatchResultDao;
+import com.uas.platform.b2b.dao.ProductStatusDao;
+import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
+import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
+import com.uas.platform.b2b.dao.RoleDao;
+import com.uas.platform.b2b.dao.UserBaseInfoDao;
+import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.dao.UserOrderDao;
+import com.uas.platform.b2b.dao.VendorDao;
+import com.uas.platform.b2b.model.Attach;
+import com.uas.platform.b2b.model.Component;
+import com.uas.platform.b2b.model.Distribute;
+import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.model.EnterpriseInfo;
+import com.uas.platform.b2b.model.FileUpload;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.ProductMatchResult;
+import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.Role;
+import com.uas.platform.b2b.model.User;
+import com.uas.platform.b2b.model.UserBaseInfo;
+import com.uas.platform.b2b.model.UserOrders;
+import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.BaseInfoService;
 import com.uas.platform.b2b.service.ComponentService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
-import com.uas.platform.b2b.temporary.model.*;
+import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
+import com.uas.platform.b2b.temporary.model.NewPurcOrder;
+import com.uas.platform.b2b.temporary.model.OrderItems;
+import com.uas.platform.b2b.temporary.model.PartStatus;
+import com.uas.platform.b2b.temporary.model.ProdInfo;
+import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
@@ -32,7 +64,12 @@ import org.springframework.ui.ModelMap;
 
 import javax.transaction.Transactional;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 @Service
 @Transactional
@@ -93,7 +130,7 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 	 * 批量导入物料资料
 	 */
 	@Override
-	public ModelMap releaseByWorkbook(Workbook workbook) {
+	public ModelMap releaseByWorkbook(Workbook workbook) throws Exception {
 		ModelMap modelMap = new ModelMap();
 		List<String> alters = new ArrayList<String>();
 		List<String> infos = new ArrayList<String>();
@@ -186,7 +223,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 						Product oldProd = prods.get(0);
 						if (oldProd.getIsSale() == null) {
 							oldProd.setIsSale(Constant.YES);
-							productDao.save(oldProd);
+                            // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                            ProductUtils.updateOne(product);
+//							productDao.save(oldProd);
 						}
 						alters.add(product.getCode());
 						product.setCode(null);

+ 118 - 97
src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java

@@ -1,11 +1,22 @@
 package com.uas.platform.b2b.service.impl;
 
-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.ProductDao;
+import com.uas.platform.b2b.dao.ProductMatchResultDao;
+import com.uas.platform.b2b.dao.ProductStatusDao;
+import com.uas.platform.b2b.dao.ProductStoreStatusDao;
+import com.uas.platform.b2b.dao.ProductUsersDao;
+import com.uas.platform.b2b.dao.UserOrderDao;
 import com.uas.platform.b2b.erp.model.ProductSaler;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
-import com.uas.platform.b2b.event.ProductSaveEvent;
-import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.model.Component;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.ProductMatchResult;
+import com.uas.platform.b2b.model.ProductStatus;
+import com.uas.platform.b2b.model.ProductStoreStatus;
+import com.uas.platform.b2b.model.ProductUsers;
+import com.uas.platform.b2b.model.UpdateType;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.ComponentService;
 import com.uas.platform.b2b.service.ProductService;
@@ -71,10 +82,9 @@ public class ProductServiceImpl implements ProductService {
 	private final static ErpBufferedLogger erpLogger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
 
 	@Override
-	public List<Product> save(List<Product> products) {
-		List<Product> newProducts = productDao.save(products);
-		ContextUtils.publishEvent(new ProductSaveEvent(newProducts));
-		return newProducts;
+	public void save(List<Product> products) throws Exception {
+		// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+		ProductUtils.update(products);
 	}
 
 	@Override
@@ -98,10 +108,12 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void unlock(Long id) {
+		// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
 		try {
-			Product prod = productDao.findOne(id);
-			prod.setIsSale(Constant.YES);
-			productDao.save(prod);
+            Product prod = productDao.findOne(id);
+            prod.setIsSale(Constant.YES);
+            ProductUtils.switchProduct(id, "sale", (int) Constant.YES);
+//            productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -110,10 +122,12 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void lock(Long id) {
+		// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
 		try {
-			Product prod = productDao.findOne(id);
-			prod.setIsSale(Constant.NO);
-			productDao.save(prod);
+            Product prod = productDao.findOne(id);
+            prod.setIsSale(Constant.YES);
+            ProductUtils.switchProduct(id, "sale", (int) Constant.NO);
+//            productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -121,10 +135,12 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void unlockPurc(Long id) {
+		// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
 		try {
 			Product prod = productDao.findOne(id);
 			prod.setIsPurchase(Constant.YES);
-			productDao.save(prod);
+            ProductUtils.switchProduct(id, "purc", (int) Constant.YES);
+//            productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -132,31 +148,39 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void lockPurc(Long id) {
+		// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
 		try {
 			Product prod = productDao.findOne(id);
 			prod.setIsPurchase(Constant.NO);
-			productDao.save(prod);
+            ProductUtils.switchProduct(id, "purc", (int) Constant.NO);
+//            productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
 	}
 
 	@Override
-	public ModelMap updateByBatch(List<Product> products, String updatetype, String keyword) {
+	public ModelMap updateByBatch(List<Product> products, String updatetype, String keyword) throws Exception {
 		ModelMap map = new ModelMap();
 		if (!CollectionUtils.isEmpty(products)) {
 			for (Product prod : products) {
 				if (updatetype.equals(UpdateType.BRANDUPDATE.getPhrase())) {
 					prod.setBrand(keyword);
-					productDao.save(prod);
+					// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+					ProductUtils.updateOne(prod);
+//					productDao.save(prod);
 				} else if (updatetype.equals(UpdateType.PRODSPECUPDATE.getPhrase())
 						|| updatetype.equals(UpdateType.MATERSPECUPDATE.getPhrase())) {
 					prod.setSpec(keyword);
 					prod.setCmpCode(keyword);
-					productDao.save(prod);
+					// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+					ProductUtils.updateOne(prod);
+//					productDao.save(prod);
 				} else if (updatetype.equals(UpdateType.TITLEUPDATE.getPhrase())) {
 					prod.setTitle(keyword);
-					productDao.save(prod);
+					// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+					ProductUtils.updateOne(prod);
+//					productDao.save(prod);
 				}
 			}
 			map.put("success", updatetype + "修改成功");
@@ -165,7 +189,7 @@ public class ProductServiceImpl implements ProductService {
 	}
 
 	@Override
-	public ModelMap alterByBatch(UpdateByBatchParameter param) {
+	public ModelMap alterByBatch(UpdateByBatchParameter param) throws Exception {
 		ModelMap map = new ModelMap();
 		Integer size = 0;
 		List<Product> prods = new ArrayList<Product>();
@@ -187,10 +211,10 @@ public class ProductServiceImpl implements ProductService {
 							product.setBrand(param.getNewvalue());
 							prods.add(product);
 						}
-						size = prods.size();
-						productDao.save(prods);
-					}
-				}
+                        size = prods.size();
+                    }
+                    ProductUtils.update(prods);
+                }
 
 			} else if (param.getUpdatetype().equals(UpdateType.TITLEUPDATE.getPhrase())) {
 				List<Product> products = new ArrayList<Product>();
@@ -208,11 +232,11 @@ public class ProductServiceImpl implements ProductService {
 					for (Product product : products) {
 						if (product.getCmpUuId() == null) {
 							product.setTitle(param.getNewvalue());
-							productDao.save(product);
 							prods.add(product);
 						}
 						size = prods.size();
 					}
+					ProductUtils.update(prods);
 				}
 			}
 			map.put("success", param.getUpdatetype() + "修改成功,更新数量为" + size);
@@ -247,7 +271,7 @@ public class ProductServiceImpl implements ProductService {
 	}
 
 	@Override
-	public ModelMap matchall(String matchtype) {
+	public ModelMap matchall(String matchtype) throws Exception{
 		ModelMap map = new ModelMap();
 		boolean flag = true;
 		ProductStoreStatus status = productStoreStatusDao.findByEnuu(SystemSession.getUser().getEnterprise().getUu());
@@ -269,21 +293,19 @@ public class ProductServiceImpl implements ProductService {
 		}
 		String num = null;
 		if (flag) {
-			if (matchtype.equals("sale")) {
-				num = productDao.upateResultByEnuuForSale(SystemSession.getUser().getEnterprise().getUu());
-				logger.log("产品匹配", "一键匹配了产品信息", "大小" + num);
-			} else if (matchtype.equals("purc")) {
-				num = productDao.upateResultByEnuuForPurc(SystemSession.getUser().getEnterprise().getUu());
-				logger.log("物料匹配", "一键匹配了物料信息", "大小" + num);
-			} else if (matchtype.equals("all")) {
-				num = productDao.upateResultByEnuu(SystemSession.getUser().getEnterprise().getUu());
-				logger.log("物料匹配", "一键匹配了产品(物料)信息", "大小" + num);
-			}
-			if (null == num) {
-				map.put("size", 0);
-			} else {
-				map.put("size", num);
-			}
+//			if (matchtype.equals("sale")) {
+//				num = productDao.upateResultByEnuuForSale(SystemSession.getUser().getEnterprise().getUu());
+//				logger.log("产品匹配", "一键匹配了产品信息", "大小" + num);
+//			} else if (matchtype.equals("purc")) {
+//				num = productDao.upateResultByEnuuForPurc(SystemSession.getUser().getEnterprise().getUu());
+//				logger.log("物料匹配", "一键匹配了物料信息", "大小" + num);
+//			} else if (matchtype.equals("all")) {
+//				num = productDao.upateResultByEnuu(SystemSession.getUser().getEnterprise().getUu());
+//				logger.log("物料匹配", "一键匹配了产品(物料)信息", "大小" + num);
+//			}
+            // 调用公共服务一键匹配
+            ProductUtils.matchAll(SystemSession.getUser().getEnterprise().getUu());
+            map.put("success", "一键匹配成功");
 			status.setStatus(Status.FINISH.value());
 			productStoreStatusDao.save(status);
 		}
@@ -323,7 +345,7 @@ public class ProductServiceImpl implements ProductService {
                 productStatus.setB2bDisabled(Constant.NO);
 			}
 			try {
-				prod = productDao.save(prod);
+				ProductUtils.updateOne(prod);
 				// 保存物料禁用状态信息
 				productStatusDao.save(productStatus);
 			} catch (Exception e) {
@@ -344,19 +366,19 @@ public class ProductServiceImpl implements ProductService {
 		int size1 = idStrings.size();
 		int size2 = 0;
 		if (status) {
-			// List<Product> products = productDao.findByEnUUAndMatchstatus(
-			// SystemSession.getUser().getEnterprise().getUu(),
-			// Status.SUBMITTED.value());
-			// if (!CollectionUtils.isEmpty(products)) {
-			// for (Product porduct : products) {
-			// if (porduct.getMatchresults().size() == 1) {
-			// for (ProductMatchResult result : porduct.getMatchresults()) {
-			// refreshproduct(result.getId());
-			// size2 = size2 + 1;
-			// }
-			// }
-			// }
-			// }
+//            List<Product> products = productDao.findByEnUUAndMatchstatus(
+//                    SystemSession.getUser().getEnterprise().getUu(),
+//                    Status.SUBMITTED.value());
+//            if (!CollectionUtils.isEmpty(products)) {
+//                for (Product porduct : products) {
+//                    if (porduct.getMatchresults().size() == 1) {
+//                        for (ProductMatchResult result : porduct.getMatchresults()) {
+//                            refreshproduct(result.getId());
+//                            size2 = size2 + 1;
+//                        }
+//                    }
+//                }
+//            }
 			String num = productDao.upateProductByEnuuAndType(SystemSession.getUser().getEnterprise().getUu(), type);
 			if (num != null) {
 				size2 = Integer.valueOf(num);
@@ -370,34 +392,10 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public List<ProductMatchResult> matchaone(Long id) throws Exception {
-		List<ProductMatchResult> results = productMatchResultDao.findByPrid(id);
-		if (CollectionUtils.isEmpty(results)) {// 如果还没有匹配过,再次进行匹配
-			Product prod = productDao.findOne(id);
-			if (prod != null) {
-				List<Component> components = componentService.findByCode(prod.getCmpCode());
-				short i = 1;
-				results = new ArrayList<ProductMatchResult>();
-				if (!CollectionUtils.isEmpty(components)) {
-					for (Component cmp : components) {
-						ProductMatchResult re = new ProductMatchResult();
-						re.setBrandcn(cmp.getBrand().getNameCn());
-						re.setBranden(cmp.getBrand().getNameEn());
-						re.setBrid(cmp.getBrandid());
-						re.setCmpcode(cmp.getCode());
-						re.setCmpid(cmp.getId());
-						re.setKindcn(cmp.getKind().getNameCn());
-						re.setKinden(cmp.getKind().getNameEn());
-						re.setKindid(cmp.getKindid());
-						re.setNumber(i);
-						re.setPrid(id);
-						re.setUuid(cmp.getUuid());
-						results.add(re);
-					}
-					results = productMatchResultDao.save(results);
-				}
-			}
-		}
-		return results;
+		List<Long> ids = new ArrayList<>();
+		ids.add(id);
+		ProductUtils.matchChoose(SystemSession.getUser().getEnterprise().getUu(), ids);
+		return null;
 	}
 
 	@Override
@@ -407,12 +405,14 @@ public class ProductServiceImpl implements ProductService {
 	}
 
 	@Override
-	public void onProductDownSuccess(String[] idArray) {
+	public void onProductDownSuccess(String[] idArray) throws Exception {
 		for (String id : idArray) {
 			Product product = productDao.findOne(Long.parseLong(id));
 			if (product != null) {
 				product.setDownloadstatus(Status.DOWNLOADED.value());
-				productDao.save(product);
+				// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+				ProductUtils.updateOne(product);
+//				productDao.save(product);
 			}
 		}
 	}
@@ -456,7 +456,21 @@ public class ProductServiceImpl implements ProductService {
 		return prods;
 	}
 
-	/**
+    /**
+     * 分页查找客户物料(标准未禁用)
+     *
+     * @param pageInfo 分页参数
+     * @param keyword  查找关键词
+     * @return
+     */
+    @Override
+    public SPage<Product> findStandardB2bEnabledProductInfoByPageInfo(PageInfo pageInfo, String keyword) {
+		pageInfo.expression(PredicateUtils.and(PredicateUtils.isNotNull("standard"),
+				PredicateUtils.ne("standard", Constant.NO, false)));
+        return findB2bEnabledProductInfoByPageInfo(pageInfo, keyword);
+    }
+
+    /**
 	 * 分页查找客户物料(非标准未禁用)
 	 *
 	 * @param pageInfo 分页参数
@@ -465,7 +479,8 @@ public class ProductServiceImpl implements ProductService {
 	 */
 	@Override
 	public SPage<Product> findNotStandardB2bEnabledProductInfoByPageInfo(PageInfo pageInfo, String keyword) {
-		pageInfo.expression(PredicateUtils.or(PredicateUtils.isNull("standard"), PredicateUtils.eq("standard", Constant.NO, false)));
+		pageInfo.expression(PredicateUtils.or(PredicateUtils.isNull("standard"),
+				PredicateUtils.eq("standard", Constant.NO, false)));
 		return findB2bEnabledProductInfoByPageInfo(pageInfo, keyword);
 	}
 
@@ -532,11 +547,14 @@ public class ProductServiceImpl implements ProductService {
 	}
 
 	@Override
-	public int updateB2bEnabled(String code, Short b2bDisabled) {
+	public int updateB2bEnabled(String code, Short b2bDisabled) throws Exception {
 		List<Product> products = productDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(), code);
 		if (!CollectionUtils.isEmpty(products)) {
-			ProductStatus productStatus = new ProductStatus(products.get(0), Constant.YES);
+			Product product = products.get(0);
+			product.setErpDate(new Date());
+			ProductStatus productStatus = new ProductStatus(product, Constant.YES);
 			productStatusDao.save(productStatus);
+			ProductUtils.updateOne(product);
 			return 1;
 		}
 		return 0;
@@ -550,7 +568,7 @@ public class ProductServiceImpl implements ProductService {
 	 * @date 2018-01-12 19:15
 	 */
 	@Override
-	public void updateProdSaler(List<ProductSaler> productSalers) {
+	public void updateProdSaler(List<ProductSaler> productSalers) throws Exception {
 		Long enuu = SystemSession.getUser().getEnterprise().getUu();
 		for (ProductSaler productSaler : productSalers) {
             List<Product> prods = productDao.findByEnUUAndCode(enuu, productSaler.getPs_code());
@@ -558,16 +576,17 @@ public class ProductServiceImpl implements ProductService {
                 throw new NotFoundException("[" + productSaler.getPs_code() + "]物料没找到");
             } else {
                 Product product = prods.get(0);
-                List<ProductUsers> productUsers = productUsersDao.findByEnuuAndUseruuAndAndPrid(enuu, productSaler.getEm_uu(), product.getId());
-                if (CollectionUtils.isEmpty(productUsers)) {
+                ProductUsers productUsers = productUsersDao.findByEnuuAndUseruuAndPrid(enuu, productSaler.getEm_uu(), product.getId());
+                if (null == productUsers) {
                     ProductUsers info = new ProductUsers();
                     info.setDate(new Date());
                     info.setEnuu(enuu);
                     info.setPrid(product.getId());
                     info.setUseruu(productSaler.getEm_uu());
                     info.setErpid(productSaler.getPs_id());
-                    info = productUsersDao.save(info);
-                    erpLogger.log("ERP个人物料信息同步", "关联物料id:" + info.getPrid(), 1);
+//                    info = productUsersDao.save(info);
+					Long id = ProductUtils.updateProductUsersOne(info);
+                    erpLogger.log("ERP个人物料信息同步", "关联物料id:" + id, 1);
                 }
             }
 		}
@@ -581,12 +600,14 @@ public class ProductServiceImpl implements ProductService {
      * @date 2018-01-12 19:31
      */
     @Override
-    public void quitProdSaler(List<ProductSaler> productSalers) {
+    public void quitProdSaler(List<ProductSaler> productSalers) throws Exception {
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
         for (ProductSaler productSaler : productSalers) {
             ProductUsers prod = productUsersDao.findByEnuuAndUseruuAndErpid(enuu, productSaler.getEm_uu(), productSaler.getPs_id());
             if (null != prod) {
-                productUsersDao.delete(prod);
+				// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+				ProductUtils.deleteProductUser(prod.getId());
+//                productUsersDao.delete(prod);
 				erpLogger.log("ERP删除个人物料信息同步", "关联物料id: " + prod.getPrid(), 1);
             }
         }

+ 62 - 26
src/main/java/com/uas/platform/b2b/service/impl/ProductUsersServiceImpl.java

@@ -1,12 +1,14 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.alibaba.dubbo.common.utils.CollectionUtils;
+import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.ProductUsersDao;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.ProductUsers;
 import com.uas.platform.b2b.model.Role;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.ProductUsersService;
 import com.uas.platform.b2b.service.RoleService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -75,7 +77,7 @@ public class ProductUsersServiceImpl implements ProductUsersService {
     }
 
     @Override
-    public ModelMap addNewProduct(Product prodInfo) {
+    public ModelMap addNewProduct(Product prodInfo) throws Exception {
         ModelMap map = new ModelMap();
         // 先查找以前的个人物料是否存在
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
@@ -92,7 +94,9 @@ public class ProductUsersServiceImpl implements ProductUsersService {
                 prod.setEnuu(enuu);
                 prod.setPrid(productList.get(0).getId());
                 prod.setUseruu(useruu);
-                productUsersDao.save(prod);
+                // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                ProductUtils.updateProductUsersOne(prod);
+//                productUsersDao.save(prod);
                 logger.log("个人产品库增加产品", "关联:" + productList.get(0).getId());
                 map.put("success", "新增成功");
             } else {// 不存在的话新增再绑定
@@ -125,14 +129,18 @@ public class ProductUsersServiceImpl implements ProductUsersService {
                 prodInfo.setIsShow(Constant.NO);
                 prodInfo.setStandard(Constant.NO);
                 prodInfo.setErpDate(new Date());
-                prodInfo = productDao.save(prodInfo);
+                // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                Long proId = ProductUtils.updateOne(prodInfo);
+//                prodInfo = productDao.save(prodInfo);
                 ProductUsers prod = new ProductUsers();
                 prod.setDate(new Date());
                 prod.setEnuu(enuu);
-                prod.setPrid(prodInfo.getId());
+                prod.setPrid(proId);
                 prod.setUseruu(useruu);
+                // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                ProductUtils.updateProductUsersOne(prod);
                 productUsersDao.save(prod);
-                logger.log("个人产品库增加产品", "关联:" + prodInfo.getId());
+                logger.log("个人产品库增加产品", "关联:" + proId);
                 map.put("success", "新增成功");
             }
         } else {
@@ -142,12 +150,14 @@ public class ProductUsersServiceImpl implements ProductUsersService {
     }
 
     @Override
-    public void deleteById(Long id) {
-        productUsersDao.delete(id);
+    public void deleteById(Long id) throws Exception {
+        // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+        ProductUtils.deleteProductUser(id);
+//        productUsersDao.delete(id);
     }
 
     @Override
-    public ModelMap releaseByWorkbook(Workbook workbook) {
+    public ModelMap releaseByWorkbook(Workbook workbook) throws Exception {
         ModelMap modelMap = new ModelMap();
         List<ProductUsers> productUsers = new ArrayList<ProductUsers>();
         List<String> alters = new ArrayList<String>();
@@ -269,10 +279,12 @@ public class ProductUsersServiceImpl implements ProductUsersService {
                                     }
                                 }
                             }
-                            product = productDao.save(product);
+                            // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                            Long proId = ProductUtils.updateOne(product);
+//                            product = productDao.save(product);
                             prod.setDate(new Date());
                             prod.setEnuu(enuu);
-                            prod.setPrid(product.getId());
+                            prod.setPrid(proId);
                             prod.setUseruu(useruu);
                         } else {
                             Product oldProd = prods.get(0);
@@ -290,7 +302,9 @@ public class ProductUsersServiceImpl implements ProductUsersService {
             modelMap.put("total", total);
             if (!CollectionUtils.isEmpty(productUsers)) {
                 try {
-                    productUsers = productUsersDao.save(productUsers);
+                    // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                    ProductUtils.updateProductUsersByBatch(productUsers);
+//                    productUsers = productUsersDao.save(productUsers);
                     modelMap.put("success", productUsers.size());
                     if(alters.size() > 0)
                     	modelMap.put("alters", alters);
@@ -307,20 +321,23 @@ public class ProductUsersServiceImpl implements ProductUsersService {
     }
 
     @Override
-    public ModelMap coverToUserProd(String ids) {
-        ids.replace("["," ");
-        ids.replace("]"," ");
-        Integer count = productUsersDao.coverToUserProd(ids, SystemSession.getUser().getUserUU(), SystemSession.getUser().getEnterprise().getUu());
+    public ModelMap coverToUserProd(String ids) throws Exception {
+//        ids.replace("["," ");
+//        ids.replace("]"," ");
+//        Integer count = productUsersDao.coverToUserProd(ids, SystemSession.getUser().getUserUU(), SystemSession.getUser().getEnterprise().getUu());
+        // 这里更换成调用公共服务接口
+        List<Long> idList = JSON.parseArray(ids, Long.class);
+        Integer count = ProductUtils.coverToUserProd(idList, SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU());
         logger.log("我的产品库", "新增了我产品信息", "size:" + count);
         return new ModelMap("count", count);
     }
 
     @Override
-    public void coverToUserProd(Long id) {
+    public void coverToUserProd(Long id) throws Exception {
         Long useruu = SystemSession.getUser().getUserUU();
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
-        List<ProductUsers> prods = productUsersDao.findByEnuuAndUseruuAndAndPrid(enuu, useruu, id);
-        if(CollectionUtils.isEmpty(prods)) {
+        ProductUsers productUsers = productUsersDao.findByEnuuAndUseruuAndPrid(enuu, useruu, id);
+        if(null == productUsers) {
         	Product product = productDao.findOne(id);
 	        List<Role> roles = roleService.findByEnUUAndUserUU(enuu, useruu);
 	        // 根据当前用户角色更新物料销售采购属性
@@ -329,12 +346,16 @@ public class ProductUsersServiceImpl implements ProductUsersService {
 			        if(role.getDesc().equals("业务员") || role.getDesc().equals("销售经理")) {
 			        	if(product.getIsSale() == null || product.getIsSale().equals(Constant.NO)) {
 					        product.setIsSale(Constant.YES);
-					        productDao.save(product);
+                            // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                            ProductUtils.updateOne(product);
+//					        productDao.save(product);
 				        }
 			        } else if(role.getDesc().equals("采购员")) {
 				        if(product.getIsPurchase() == null || product.getIsPurchase().equals(Constant.NO)) {
 					        product.setIsPurchase(Constant.YES);
-					        productDao.save(product);
+                            // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                            ProductUtils.updateOne(product);
+//					        productDao.save(product);
 				        }
 			        }
 		        }
@@ -344,15 +365,19 @@ public class ProductUsersServiceImpl implements ProductUsersService {
             prod.setEnuu(enuu);
             prod.setPrid(id);
             prod.setDate(new Date());
-            prod = productUsersDao.save(prod);
-            logger.log("我的产品库", "新增了我产品信息", "id:" + prod.getId());
+            // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+            Long prId = ProductUtils.updateProductUsersOne(prod);
+//            prod = productUsersDao.save(prod);
+            logger.log("我的产品库", "新增了我产品信息", "id:" + prId);
         }
     }
 
     @Override
-    public void deleteByBatch(List<Long> idList) {
-        List<ProductUsers> prods = productUsersDao.findAll(idList);
-        productUsersDao.delete(prods);
+    public void deleteByBatch(List<Long> idList) throws Exception {
+        // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+        ProductUtils.deleteProductUserByBatch(idList);
+//        List<ProductUsers> prods = productUsersDao.findAll(idList);
+//        productUsersDao.delete(prods);
     }
 
     /**
@@ -366,7 +391,18 @@ public class ProductUsersServiceImpl implements ProductUsersService {
 
             @Override
             public void run() {
-                productUsersDao.coverToUserByPrid(productId, enuu, useruu);
+//                productUsersDao.coverToUserByPrid(productId, enuu, useruu);
+                ProductUsers productUsers = productUsersDao.findByEnuuAndUseruuAndPrid(enuu, useruu, productId);
+                if (null == productUsers) {
+                    try {
+                        List<Long> idList = new ArrayList<>();
+                        idList.add(productId);
+                        ProductUtils.coverToUserProd(idList, enuu, useruu);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        logger.log("我的产品库", method + ":" + productId + "转入失败", useruu, null);
+                    }
+                }
             }
         }).run();
     }

+ 70 - 23
src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java

@@ -1,20 +1,57 @@
 package com.uas.platform.b2b.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ThreadTask;
-import com.uas.platform.b2b.dao.*;
-import com.uas.platform.b2b.erp.model.Inquiry;
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.DistributeDao;
+import com.uas.platform.b2b.dao.EnterpriseDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PublicInquiryDao;
+import com.uas.platform.b2b.dao.PublicInquiryItemDao;
+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.PurchaseInquiryInfoDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryReplyDao;
+import com.uas.platform.b2b.dao.RoleDao;
+import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.dao.UserOrderDao;
+import com.uas.platform.b2b.dao.VendorDao;
 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.ps.InquiryUtils;
+import com.uas.platform.b2b.model.Attach;
+import com.uas.platform.b2b.model.Distribute;
+import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.model.FileUpload;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PublicInquiry;
+import com.uas.platform.b2b.model.PublicInquiryItem;
+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.PurchaseInquiryInfo;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.model.PurchaseInquiryItemInfo;
+import com.uas.platform.b2b.model.PurchaseInquiryReply;
+import com.uas.platform.b2b.model.Role;
+import com.uas.platform.b2b.model.User;
+import com.uas.platform.b2b.model.UserOrders;
+import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurcInquiryService;
 import com.uas.platform.b2b.service.RoleService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
-import com.uas.platform.b2b.temporary.model.*;
+import com.uas.platform.b2b.temporary.model.InquiryDetailInfo;
+import com.uas.platform.b2b.temporary.model.InquiryProductInfo;
 import com.uas.platform.b2b.temporary.model.PurcInquiryInfo;
+import com.uas.platform.b2b.temporary.model.PurcInquiryProductInfo;
+import com.uas.platform.b2b.temporary.model.VendorAndContact;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
@@ -37,7 +74,11 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-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 PurcInquiryServiceImpl implements PurcInquiryService {
@@ -120,7 +161,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
     private PublicInquiryDao publicInquiryDao;
 
 	@Override
-	public ModelMap save(PurcInquiryInfo inquiryInfo, List<VendorAndContact> contacts, FileUpload uploadItem) {
+	public ModelMap save(PurcInquiryInfo inquiryInfo, List<VendorAndContact> contacts, FileUpload uploadItem) throws Exception {
 		ModelMap map = new ModelMap();
 		PurcInquiry old = inquiryDao.findByCode(inquiryInfo.getCode());
 		if (old == null) { // 判断是否存在,防止重复
@@ -193,9 +234,11 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 //										product.setShipAddr(SystemSession.getUser().getEnterprise().getEnAddress());
 										// 导入的物料这里没有填写规格
 										product.setSpec(purcitem.getProdTitle());
-										product = productDao.save(product);
+										// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+										Long proId = ProductUtils.updateOne(product);
+//										product = productDao.save(product);
 										item.setProduct(product);
-										item.setProductId(product.getId());
+										item.setProductId(proId);
 									}
 								}
 								item.setInquiry(inquiry);
@@ -239,7 +282,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 	}
 
 	@Override
-	public ModelMap saveAndSubmit(PurcInquiryInfo inquiryInfo, List<VendorAndContact> contacts, FileUpload uploadItem) {
+	public ModelMap saveAndSubmit(PurcInquiryInfo inquiryInfo, List<VendorAndContact> contacts, FileUpload uploadItem) throws Exception {
 		// 先进行保存
 		Object inquiryId = save(inquiryInfo, contacts, uploadItem).get("id");// 取出id进行更新状态
 		// 再进行提交
@@ -473,7 +516,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 	}
 
 	@Override
-	public ModelMap saveWithoutVendor(PurcInquiryInfo inquiryInfo, FileUpload uploadItem) {
+	public ModelMap saveWithoutVendor(PurcInquiryInfo inquiryInfo, FileUpload uploadItem) throws Exception {
 		PurcInquiry inquiry = new PurcInquiry();
 		PurcInquiry old = inquiryDao.findByCode(inquiryInfo.getCode());
 		ModelMap map = new ModelMap();
@@ -509,7 +552,6 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 				inquiry.setCurrency(inquiryInfo.getCurrency());
 				inquiry.setIfTax(inquiryInfo.getIfTax());
 				inquiry.setInquirytype(inquiryInfo.getInquirytype());
-				inquiry.setSourceapp(SOURCERAPP);
 				Set<PurcInquiryItem> items = new HashSet<PurcInquiryItem>();
 				Short i = 1;
 				if (!CollectionUtils.isEmpty(inquiryInfo.getInquiryItems())) {
@@ -538,13 +580,20 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 								product.setCmpUuId(purcitem.getProdCode());
 								product.setUnit(purcitem.getUnit());
 								product.setUserUU(SystemSession.getUser().getUserUU());
+//								product.setShipAddr(SystemSession.getUser().getEnterprise().getEnAddress());
 								product.setSpec(purcitem.getProdTitle());
-                                item.setCmpCode(product.getCmpCode());
-                                item.setInbrand(product.getBrand());
-                                item.setSpec(product.getSpec());
-                                item.setProduct(product);
+								// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+								Long proId = ProductUtils.updateOne(product);
+								product = productDao.findOne(proId);
+								System.out.println(JSON.toJSON(product));
+								if (null != product) {
+									item.setProductId(proId);
+								} else {
+
+								}
 							}
 						}
+						item.setInquiry(inquiry);
 						item.setNumber(i);
 						item.setCurrency(inquiry.getCurrency());
 						item.setFromDate(new Date());
@@ -559,18 +608,16 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 						item.setStatus((short) Status.NOT_REPLY.value());
 						item.setIsOpen(inquiryInfo.getIsOpen());
 						item.setNeedquantity(purcitem.getNeedquantity());
-						item.setSource(SOURCERAPP);
 						items.add(item);
 						i++;
 					}
 				}
-				inquiry.setInquiryItems(items);
-				try {
-					inquiry = InquiryUtils.saveInquiry(inquiry);
+				List<PurcInquiryItem> purcitems = purcInquiryItemDao.save(items);
+				if (purcitems.get(0).getId() != null) {
 					map.put("success", "询价单保存成功");
-					map.put("id", inquiry.getId());
+					map.put("id", purcitems.get(0).getInquiry().getId());
 					logger.log("询价单", "平台新增询价单", useruu, SystemSession.getUser().getIp());
-				} catch (Exception e) {
+				} else {
 					map.put("error", "询价单保存失败");
 				}
 			}
@@ -579,7 +626,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 	}
 
 	@Override
-	public ModelMap saveAndSubmitWithoutVendor(PurcInquiryInfo inquiryInfo, FileUpload uploadItem) {
+	public ModelMap saveAndSubmitWithoutVendor(PurcInquiryInfo inquiryInfo, FileUpload uploadItem) throws Exception {
 		ModelMap map = new ModelMap();
 		// 先进行保存
 		Object inquiryId = saveWithoutVendor(inquiryInfo, uploadItem).get("id");// 取出id进行更新状态

+ 8 - 3
src/main/java/com/uas/platform/b2b/service/impl/PurcOrderServiceImpl.java

@@ -5,6 +5,7 @@ import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.BaseInfoService;
 import com.uas.platform.b2b.service.PurcOrderService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -123,7 +124,7 @@ public class PurcOrderServiceImpl implements PurcOrderService {
 	}
 
 	@Override
-	public ModelMap releaseByWorkbook(Workbook workbook) {
+	public ModelMap releaseByWorkbook(Workbook workbook) throws Exception {
 		ModelMap modelMap = new ModelMap();
 		List<String> alters = new ArrayList<String>();
 		List<String> infos = new ArrayList<String>();
@@ -214,7 +215,9 @@ public class PurcOrderServiceImpl implements PurcOrderService {
 						if(product.getCode() != null) {
 							List<Product> prods = productDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(), product.getCode());
 							if (CollectionUtils.isEmpty(prods)) {
-								product = productDao.save(product);
+							    // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+								ProductUtils.updateOne(product);
+//								product = productDao.save(product);
 							} else {
 								product = prods.get(0);
 							}
@@ -225,7 +228,9 @@ public class PurcOrderServiceImpl implements PurcOrderService {
 								//生成随机编码
 								SimpleDateFormat sdf = new SimpleDateFormat("yymmddhhmm_sss");
 								product.setCode("prod" + sdf.format(new Date()));
-								product = productDao.save(product);
+								// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+								ProductUtils.updateOne(product);
+//								product = productDao.save(product);
 							} else {
 								product = prods.get(0);
 							}

+ 8 - 3
src/main/java/com/uas/platform/b2b/service/impl/PurcProductServiceImpl.java

@@ -4,6 +4,7 @@ import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.PurcProductService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
@@ -34,7 +35,7 @@ public class PurcProductServiceImpl implements PurcProductService {
 	 * 批量导入物料资料
 	 */
 	@Override
-	public ModelMap releaseByWorkbook(Workbook workbook) {
+	public ModelMap releaseByWorkbook(Workbook workbook) throws Exception {
 		ModelMap modelMap = new ModelMap();
 		List<String> alters = new ArrayList<String>();
 		List<String> infos = new ArrayList<String>();
@@ -220,7 +221,9 @@ public class PurcProductServiceImpl implements PurcProductService {
 							// oldProd.setStandard(Constant.YES);
 							// }
 							oldProd.setIsPurchase(Constant.YES);
-							productDao.save(oldProd);
+							// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+							ProductUtils.updateOne(product);
+//							productDao.save(oldProd);
 						}
 						// else if (oldProd.getIsPurchase() != null) {
 						// if (!oldProd.getIsPurchase().equals(Constant.YES)) {
@@ -280,7 +283,9 @@ public class PurcProductServiceImpl implements PurcProductService {
 			}
 			if (!CollectionUtils.isEmpty(products)) {
 				try {
-					products = productDao.save(products);
+					// TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+					ProductUtils.update(products);
+//					products = productDao.save(products);
 //					saveUserOrders(products);
 					modelMap.put("success", products.size());
 				} catch (Exception e) {

+ 56 - 10
src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java

@@ -3,13 +3,49 @@ package com.uas.platform.b2b.service.impl;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.SplitArray;
 import com.uas.platform.b2b.core.util.ThreadTask;
-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.DistributeDao;
+import com.uas.platform.b2b.dao.EnterpriseBaseInfoDao;
+import com.uas.platform.b2b.dao.EnterpriseDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseTenderAnswerDao;
+import com.uas.platform.b2b.dao.PurchaseTenderDao;
+import com.uas.platform.b2b.dao.PurchaseTenderErpDao;
+import com.uas.platform.b2b.dao.PurchaseTenderProdDao;
+import com.uas.platform.b2b.dao.RoleDao;
+import com.uas.platform.b2b.dao.SaleTenderAnswerDao;
+import com.uas.platform.b2b.dao.SaleTenderDao;
+import com.uas.platform.b2b.dao.SaleTenderErpDao;
+import com.uas.platform.b2b.dao.SaleTenderItemDao;
+import com.uas.platform.b2b.dao.SaleTenderQuestionDao;
+import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.dao.UserOrderDao;
+import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.erp.model.PurchaseTenderErp;
 import com.uas.platform.b2b.erp.model.SaleTenderErp;
 import com.uas.platform.b2b.erp.model.SaleTenderItemErp;
 import com.uas.platform.b2b.event.PurchaseTenderDecideReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseTenderSaveReleaseEvent;
-import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.model.Attach;
+import com.uas.platform.b2b.model.Distribute;
+import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2b.model.FileUpload;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseTender;
+import com.uas.platform.b2b.model.PurchaseTenderAnswer;
+import com.uas.platform.b2b.model.PurchaseTenderProd;
+import com.uas.platform.b2b.model.Role;
+import com.uas.platform.b2b.model.SaleTender;
+import com.uas.platform.b2b.model.SaleTenderAnswer;
+import com.uas.platform.b2b.model.SaleTenderItem;
+import com.uas.platform.b2b.model.SaleTenderQuestion;
+import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.User;
+import com.uas.platform.b2b.model.UserOrders;
+import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurchaseTenderService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -38,7 +74,13 @@ import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Created by dongbw on 17/03/07 14:16.
@@ -113,7 +155,7 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
      * @param contactInfos  供应商联系人信息
      */
     @Override
-    public void publishOrSave(PurchaseTender purchaseTender, List<TenderContactInfo> contactInfos) {
+    public void publishOrSave(PurchaseTender purchaseTender, List<TenderContactInfo> contactInfos) throws Exception {
         purchaseTender.setUseruu(SystemSession.getUser().getUserUU());
         purchaseTender.setEnUU(SystemSession.getUser().getEnterprise().getUu());
         if (purchaseTender.getIsPublish() == Constant.YES) {
@@ -187,7 +229,7 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
         });
     }
 
-    private void publishOpen(PurchaseTender tender) {
+    private void publishOpen(PurchaseTender tender) throws Exception {
         tender.setIsPublish(Constant.YES);
         tender.setStatus("待投标");
         purchaseTenderDao.save(tender);
@@ -198,7 +240,9 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
             List<Product> oldProducts = productDao.findByEnUUAndCode(currentEnUU, tenderProd.getProdCode());
             if (CollectionUtils.isEmpty(oldProducts)) {
                 Product newProduct = new Product(tenderProd, currentEnUU);
-                productDao.save(newProduct);
+                // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                ProductUtils.updateOne(newProduct);
+//                productDao.save(newProduct);
             }
             tenderProd.setTender(tender);
             purchaseTenderProdDao.save(tenderProd);
@@ -224,7 +268,7 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
      * @param tender  招标单
      *
      */
-    private void save(PurchaseTender tender, List<TenderContactInfo> contactInfos) {
+    private void save(PurchaseTender tender, List<TenderContactInfo> contactInfos) throws Exception {
         tender.setIsPublish(Constant.NO);
         tender.setStatus("待发布");
         tender.setEnterprise(SystemSession.getUser().getEnterprise());
@@ -237,14 +281,14 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
      * @param tender  招标单
      *
      */
-    private void publish(PurchaseTender tender, List<TenderContactInfo> contactInfos) {
+    private void publish(PurchaseTender tender, List<TenderContactInfo> contactInfos) throws Exception {
         tender.setIsPublish(Constant.YES);
         tender.setStatus("待投标");
         tender.setEnterprise(SystemSession.getUser().getEnterprise());
         saveTenderItem(tender, contactInfos);
     }
 
-    private void saveTenderItem(PurchaseTender tender, List<TenderContactInfo> contactInfos) {
+    private void saveTenderItem(PurchaseTender tender, List<TenderContactInfo> contactInfos) throws Exception {
         Long currentEnUU = SystemSession.getUser().getEnterprise().getUu();
         Set<PurchaseTenderProd> tenderProds = tender.getPurchaseTenderProds();
         for (PurchaseTenderProd tenderProd : tenderProds) {
@@ -252,7 +296,9 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
             List<Product> oldProducts = productDao.findByEnUUAndCode(currentEnUU, tenderProd.getProdCode());
             if (CollectionUtils.isEmpty(oldProducts)) {
                 Product newProduct = new Product(tenderProd, currentEnUU);
-                productDao.save(newProduct);
+                // TODO 因为这里要求数据即存即用,从公共库同步过来可能会有延迟,暂时两边都存;之后要修改为只调用公共服务方法
+                ProductUtils.updateOne(newProduct);
+//                productDao.save(newProduct);
             }
             tenderProd.setTender(tender);
             purchaseTenderProdDao.save(tenderProd);

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

@@ -359,12 +359,12 @@ public class VendorsServiceImpl implements VendorService {
 				" where 1=1 and pr_issale = 1 and pr_standard = 1 and pr_cmpcode in (").append(cmpCodesSql).append(") and en_uu not in (")
 				.append(vendUUsSql).append(") and en_uu <> ").append(enUU);
 		if (!StringUtils.isEmpty(enArea)) {
-			vendorRecommendUusSql.append(" and en_area like %").append(enArea).append("% ");
-			vendorRecommendUuNumSql.append(" and en_area like %").append(enArea).append("% ");
+			vendorRecommendUusSql.append(" and en_area like '%").append(enArea).append("%' ");
+			vendorRecommendUuNumSql.append(" and en_area like '%").append(enArea).append("%' ");
 		}
 		if (!StringUtils.isEmpty(profession)) {
-			vendorRecommendUusSql.append(" and en_profession like %").append(profession).append("% ");
-			vendorRecommendUuNumSql.append(" and en_profession like %").append(profession).append("% ");
+			vendorRecommendUusSql.append(" and en_profession like '%").append(profession).append("%' ");
+			vendorRecommendUuNumSql.append(" and en_profession like '%").append(profession).append("%' ");
 		}
 		vendorRecommendUusSql.append(rownumSql);
 		System.out.println("SQL:" + vendorRecommendUusSql.toString());

+ 1 - 1
src/main/resources/dev/message.properties

@@ -12,4 +12,4 @@ msgInquiryForB2B=629edeb3-a87e-4a40-a5e5-51d9ae734f1b
 msgAutoInquiryForB2B=8cf71d56-09bb-4d60-993e-ed87ce72ec3b
 messageUrl=http://message.ubtob.com/sms/send
 
-messagePublicServiceDevUrl=http://218.17.158.219:24000/message
+messagePublicServiceDevUrl=http://192.168.253.131:8080

+ 1 - 0
src/main/resources/prod/message.properties

@@ -12,4 +12,5 @@ msgInquiryForB2B=629edeb3-a87e-4a40-a5e5-51d9ae734f1b
 msgAutoInquiryForB2B=8cf71d56-09bb-4d60-993e-ed87ce72ec3b
 messageUrl=http://message.ubtob.com/sms/send
 
+#todo Ö®ºóÐÞ¸ÄΪÕýʽµØÖ·
 messagePublicServiceDevUrl=http://218.17.158.219:24000/message

+ 1 - 1
src/main/resources/spring/context.xml

@@ -19,7 +19,7 @@
 
 	<!-- 消息参数 -->
 	<util:properties id="message"
-		location="classpath:${profile:dev}/message.properties" />
+		location="classpath:${profile}/message.properties" />
 		
 	<bean class="com.uas.platform.b2b.core.support.ApplicationContextRegister" />
 

+ 1 - 1
src/main/resources/test/message.properties

@@ -12,4 +12,4 @@ msgInquiryForB2B=629edeb3-a87e-4a40-a5e5-51d9ae734f1b
 msgAutoInquiryForB2B=8cf71d56-09bb-4d60-993e-ed87ce72ec3b
 messageUrl=http://message.ubtob.com/sms/send
 
-messagePublicServiceDevUrl=http://218.17.158.219:24000/message
+messagePublicServiceDevUrl=http://192.168.253.12:24000/message

+ 3 - 3
src/main/webapp/resources/js/index/app.js

@@ -1052,6 +1052,7 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 
     /**
      * 新消息提醒(调用公共服务接口)  -2018-01-22 19:36:50
+     * @author dongbw
      */
     app.controller('PagingReleaseCtrl', ['$scope', 'PagingRelease', 'BaseService', 'ngTableParams', 'toaster', '$modalInstance', 'PagingReleaseInfo', function ($scope, PagingRelease, BaseService, ngTableParams, toaster, $modalInstance, PagingReleaseInfo) {
 
@@ -21359,12 +21360,11 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 
         // 批量转入我的产品库
         $scope.addtoUserByCheck = function() {
-            var ids = angular.toJson($rootScope.ids);
+            var ids = angular.copy($rootScope.ids);
             if($rootScope.ids.length == 0) {
                 toaster.pop('error', '提示', '请先选择产品');
             } else {
-                ids = ids.replace(/\[|]/g,'');
-                prodUser.coverToUserByIds({ids: ids}, {}, function(data) {
+                prodUser.coverToUserByIds({}, ids, function(data) {
                     toaster.pop('success', '提示', '选择' + $rootScope.ids.length + '个产品,成功转入' + data.count + '个产品');
                     $rootScope.ids = [];
                     $scope.tableParams.page(1);