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

ERP个人物料操作同步到平台

hejq 8 лет назад
Родитель
Сommit
f8ea13962d

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

@@ -66,4 +66,13 @@ public interface ProductUsersDao extends JpaSpecificationExecutor<ProductUsers>,
      */
     @Procedure(procedureName = "product_covertouser_byenuu")
     void coverToUserByEnuu(Long enuu);
+
+    /**
+     * 通过ERPid查询个人物料信息
+     *
+     * @param enuu 企业UU
+     * @param em_uu 个人uu
+     * @param ps_id erpid
+     */
+    ProductUsers findByEnuuAndUseruuAndErpid(Long enuu, Long em_uu, Long ps_id);
 }

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.erp.controller;
 
 import com.uas.platform.b2b.erp.model.Prod;
+import com.uas.platform.b2b.erp.model.ProductSaler;
 import com.uas.platform.b2b.erp.service.ProdService;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.model.Product;
@@ -29,7 +30,7 @@ import java.util.List;
  * @author yingp
  * 
  */
-@Controller()
+@Controller
 @RequestMapping("/erp/product")
 public class ProdController {
 
@@ -120,4 +121,38 @@ public class ProdController {
 		Short b2benabled = Constant.YES;
 		return productService.updateB2bEnabled(code, b2benabled);
 	}
+
+	/**
+	 * ERP个人物料同步到平台
+	 *
+	 * @author hejq
+	 * @date 2018-01-12 19:11
+	 * @param data
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/produser", method = RequestMethod.POST)
+	@ResponseBody
+	public void updateProdSaler(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+        List<ProductSaler> productSalers = FlexJsonUtils.fromJsonArray(jsonStr, ProductSaler.class);
+        productService.updateProdSaler(productSalers);
+        logger.log("物料资料", "上传个人物料资料", productSalers.size());
+	}
+
+    /**
+     * ERP个人物料删除同步状态到平台
+     *
+     * @author hejq
+     * @date 2018-01-12 19:11
+     * @param data
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "/produser/quit", method = RequestMethod.POST)
+    @ResponseBody
+    public void uploadProductSalerForCancel(@RequestParam("data") String data) throws UnsupportedEncodingException {
+        String jsonStr = URLDecoder.decode(data, "UTF-8");
+        List<ProductSaler> productSalers = FlexJsonUtils.fromJsonArray(jsonStr, ProductSaler.class);
+        productService.quitProdSaler(productSalers);
+        logger.log("物料资料", "ERP取消个人物料同步到平台", productSalers.size());
+    }
 }

+ 48 - 0
src/main/java/com/uas/platform/b2b/erp/model/ProductSaler.java

@@ -0,0 +1,48 @@
+package com.uas.platform.b2b.erp.model;
+
+/**
+ * ERP个人物料
+ *
+ * Created by hejq on 2018-01-12.
+ */
+public class ProductSaler {
+
+    /**
+     * 主键id
+     */
+    private Long ps_id;
+
+    /**
+     * 物料code
+     */
+    private String ps_code;
+
+    /**
+     * 个人uu号
+     */
+    private Long em_uu;
+
+    public Long getPs_id() {
+        return ps_id;
+    }
+
+    public void setPs_id(Long ps_id) {
+        this.ps_id = ps_id;
+    }
+
+    public String getPs_code() {
+        return ps_code;
+    }
+
+    public void setPs_code(String ps_code) {
+        this.ps_code = ps_code;
+    }
+
+    public Long getEm_uu() {
+        return em_uu;
+    }
+
+    public void setEm_uu(Long em_uu) {
+        this.em_uu = em_uu;
+    }
+}

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/ProductUsers.java

@@ -58,6 +58,12 @@ public class ProductUsers implements Serializable {
     @Column(name = "pu_date")
     private Date date;
 
+    /**
+     * 存在ERP同步过来数据的情况,记录id
+     */
+    @Column(name = "pu_erpid")
+    private Long erpid;
+
     public Long getId() {
         return id;
     }
@@ -105,4 +111,12 @@ public class ProductUsers implements Serializable {
     public void setDate(Date date) {
         this.date = date;
     }
+
+    public Long getErpid() {
+        return erpid;
+    }
+
+    public void setErpid(Long erpid) {
+        this.erpid = erpid;
+    }
 }

+ 19 - 0
src/main/java/com/uas/platform/b2b/service/ProductService.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.service;
 
 import java.util.List;
 
+import com.uas.platform.b2b.erp.model.ProductSaler;
 import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
 
@@ -193,4 +194,22 @@ public interface ProductService {
 	 * @param code
 	 */
 	public int updateB2bEnabled(String code, Short b2benabled);
+
+	/**
+	 * ERP个人物料同步到平台
+	 *
+	 * @author hejq
+	 * @date 2018-01-12 19:15
+	 * @param productSalers 个人物料信息
+	 */
+    void updateProdSaler(List<ProductSaler> productSalers);
+
+	/**
+	 * ERP取消个人物料同步到平台
+	 *
+	 * @author hejq
+	 * @date 2018-01-12 19:31
+	 * @param productSalers
+	 */
+	void quitProdSaler(List<ProductSaler> productSalers);
 }

+ 58 - 0
src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java

@@ -2,6 +2,8 @@ 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.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.search.SearchService;
@@ -10,6 +12,7 @@ import com.uas.platform.b2b.service.ProductService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.b2b.temporary.model.UpdateByBatchParameter;
+import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
@@ -57,8 +60,13 @@ public class ProductServiceImpl implements ProductService {
 	@Autowired
 	private UserOrderDao userOrderDao;
 
+	@Autowired
+    private ProductUsersDao productUsersDao;
+
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
+	private final static ErpBufferedLogger erpLogger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
+
 	@Override
 	public List<Product> save(List<Product> products) {
 		List<Product> newProducts = productDao.save(products);
@@ -507,4 +515,54 @@ public class ProductServiceImpl implements ProductService {
 	public int updateB2bEnabled(String code, Short b2benabled) {
 		return productDao.updateB2bEnabled(SystemSession.getUser().getEnterprise().getUu(), code, b2benabled);
 	}
+
+	/**
+	 * ERP个人物料同步到平台
+	 *
+	 * @param productSalers 个人物料信息
+	 * @author hejq
+	 * @date 2018-01-12 19:15
+	 */
+	@Override
+	public void updateProdSaler(List<ProductSaler> productSalers) {
+		Long enuu = SystemSession.getUser().getEnterprise().getUu();
+		for (ProductSaler productSaler : productSalers) {
+            List<Product> prods = productDao.findByEnUUAndCode(enuu, productSaler.getPs_code());
+            if (CollectionUtils.isEmpty(prods)) {
+                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 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);
+                }
+            }
+		}
+	}
+
+    /**
+     * ERP取消个人物料同步到平台
+     *
+     * @param productSalers
+     * @author hejq
+     * @date 2018-01-12 19:31
+     */
+    @Override
+    public void quitProdSaler(List<ProductSaler> productSalers) {
+        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);
+				erpLogger.log("ERP删除个人物料信息同步", "关联物料id: " + prod.getPrid(), 1);
+            }
+        }
+    }
 }