Преглед изворни кода

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

hulh пре 8 година
родитељ
комит
ece007046c

+ 45 - 0
src/main/java/com/uas/ps/product/controller/ProductController.java

@@ -57,6 +57,21 @@ public class ProductController {
         log(prods, "上传物料资料");
     }
 
+    /**
+     * 将ERP的数据单个同步
+     *
+     * @param data 物料信息
+     * @param enUU 企业uu
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "/erp/update", method = RequestMethod.POST)
+    public void updateProduct(@RequestParam("data") String data, @RequestParam("enUU") Long enUU) throws UnsupportedEncodingException {
+        String jsonStr = URLDecoder.decode(data, "UTF-8");
+        Prod prod = JSONObject.parseObject(jsonStr, Prod.class);
+        productService.save(productService.convertProductOne(prod, enUU));
+    }
+
     /**
      * 定时任务更新物料信息
      *
@@ -161,6 +176,36 @@ public class ProductController {
         return productService.assignPersonalProduct(userUU, productId);
     }
 
+    /**
+     * 批量分配个人物料
+     *
+     * @param userUU
+     * @param productId
+     * @return
+     */
+    @RequestMapping(value = "/assign/batch", method = RequestMethod.POST)
+    @ResponseBody
+    public String assignPersonalProductByBatch(@RequestParam Long userUU, @RequestBody String productId) throws UnsupportedEncodingException {
+        List<Long> productIds = JSONObject.parseArray(URLDecoder.decode(productId, "utf-8"), Long.class);
+        for (Long prid : productIds) {
+            productService.assignPersonalProduct(userUU,prid);
+        }
+        return "success";
+    }
+
+    /**
+     * 解除个人物料关系
+     *
+     * @param userUU
+     * @param productId
+     * @return
+     */
+    @RequestMapping("/assign/delete")
+    @ResponseBody
+    public ModelMap assignPersonalProductDelete(@RequestParam Long userUU, @RequestParam Long productId) {
+        return productService.disAssignPersonalProduct(userUU, productId);
+    }
+
     /**
      * 将更新的ERP的物料数据回传回ERP
      *

+ 43 - 0
src/main/java/com/uas/ps/product/entity/Prod.java

@@ -30,6 +30,22 @@ public class Prod implements Serializable {
      */
     private String pr_detail;
 
+    /**
+     * ERP空闲库存
+     */
+    private Double pr_reserve;
+
+    /**
+     * 价格
+     */
+    private Double price;
+
+
+    /**
+     * 产品生产日期
+     */
+    private String manufactureDate;
+
     /**
      * 物料规格
      */
@@ -340,6 +356,30 @@ public class Prod implements Serializable {
         this.pr_enuu = pr_enuu;
     }
 
+    public Double getPr_reserve() {
+        return pr_reserve;
+    }
+
+    public void setPr_reserve(Double pr_reserve) {
+        this.pr_reserve = pr_reserve;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public String getManufactureDate() {
+        return manufactureDate;
+    }
+
+    public void setManufactureDate(String manufactureDate) {
+        this.manufactureDate = manufactureDate;
+    }
+
     /**
      * 转为平台的产品
      *
@@ -380,6 +420,9 @@ public class Prod implements Serializable {
         product.setStandard(this.standard);
         product.setSourceApp("ERP");
         product.setErpDate(new Date());
+        product.setReserve(this.pr_reserve);
+        product.setPrice(this.price);
+        product.setManufactureDate(this.manufactureDate);
         return product;
     }
 

+ 9 - 0
src/main/java/com/uas/ps/product/repository/ProductUsersDao.java

@@ -27,6 +27,15 @@ public interface ProductUsersDao extends JpaSpecificationExecutor<ProductUsers>,
      */
     List<ProductUsers> findByEnuuAndUseruuAndPrid(Long enuu, Long useruu, Long prid);
 
+    /**
+     * 通过个人uu和物料id查询我的产品库物料信息
+     *
+     * @param useruu 用户UU
+     * @param prid 物料id
+     * @return 个人产品库list
+     */
+    List<ProductUsers> findByUseruuAndPrid( Long useruu, Long prid);
+
     /**
      * 通过ERPid查询个人物料信息
      *

+ 18 - 0
src/main/java/com/uas/ps/product/service/ProductService.java

@@ -40,6 +40,15 @@ public interface ProductService {
      */
     List<Product> convertProduct(List<Prod> prods, Long enUU);
 
+    /**
+     * 将ERP系统的产品,转为物料库的产品
+     *
+     * @param prod erp物料信息
+     * @param enUU 物料所属企业UU
+     * @return
+     */
+    Product convertProductOne(Prod prod, Long enUU);
+
     /**
      * 通过 enUU 查询非标准器件进行存储
      *
@@ -68,6 +77,15 @@ public interface ProductService {
      */
     ModelMap assignPersonalProduct(Long userUU, Long productId);
 
+    /**
+     * 解除分配个人物料
+     *
+     * @param userUU
+     * @param productId
+     * @return
+     */
+    ModelMap disAssignPersonalProduct(Long userUU, Long productId);
+
     /**
      * 通过所属企业UU、应用和下载状态查询物料信息
      *

+ 38 - 1
src/main/java/com/uas/ps/product/service/impl/ProductServiceImpl.java

@@ -89,6 +89,24 @@ public class ProductServiceImpl implements ProductService {
         return products;
     }
 
+    @Override
+    public Product convertProductOne(Prod prod, Long enUU) {
+        prod.setPr_enuu(enUU);
+        prod.setKind(prod.getPr_detail());
+        if (prod.getPr_orispeccode() == null) {// 如果原厂型号不存在,将规格赋值给原厂型号
+            prod.setPr_orispeccode(prod.getPr_spec());
+        }
+        List<Product> prodResult = productDao.findByEnUUAndCode(prod.getPr_enuu(), prod.getPr_code());
+        if (CollectionUtils.isEmpty(prodResult)) {// 不存在的新上传上来的物料,新增
+            return (prod.convert());
+        } else {// 物料库上已经存在的物料,修改
+            Product product = prod.convert();
+            product.setId(prodResult.get(0).getId());
+            product.setCode(prodResult.get(0).getCode());
+            return product;
+        }
+    }
+
     @Override
     public ModelMap match(Long enUU, Long userUU, String matchtype) {
         ModelMap map = new ModelMap();
@@ -220,7 +238,26 @@ public class ProductServiceImpl implements ProductService {
     @Override
     public ModelMap assignPersonalProduct(Long userUU, Long productId) {
         ModelMap map = new ModelMap();
-        // TODO
+        List<ProductUsers> productUsers = productUsersDao.findByUseruuAndPrid(userUU,productId);
+        ProductUsers productUsers1;
+        if (productUsers == null) {
+            productUsers1 = new ProductUsers();
+            productUsers1.setUseruu(userUU);
+            productUsers1.setPrid(productId);
+        } else {
+            productUsers1 = productUsers.get(0);
+        }
+        productUsersDao.save(productUsers1);
+        return map;
+    }
+
+    @Override
+    public ModelMap disAssignPersonalProduct(Long userUU, Long productId) {
+        ModelMap map = new ModelMap();
+        List<ProductUsers> productUsers = productUsersDao.findByUseruuAndPrid(userUU,productId);
+        if (productUsers != null) {
+            productUsersDao.delete(productUsers);
+        }
         return map;
     }