فهرست منبع

【越加红】纷享销客
物料上传 由新增商品改成新增产品

wub 3 سال پیش
والد
کامیت
96d78c50b1

+ 27 - 0
src/main/java/com/uas/eis/beans/result/Product.java

@@ -19,6 +19,33 @@ public class Product implements Serializable {
     private String field_cwppk__c;//封装
     private String field_r02le__c;//最小包装
     private String unit;//单位
+    private String name;//物料名称
+    private Double price;//标准价格
+    private String category;//分类
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
 
     public String getField_cwppk__c() {
         return field_cwppk__c;

+ 9 - 0
src/main/java/com/uas/eis/manager/ProductManager.java

@@ -21,6 +21,15 @@ public interface ProductManager {
      */
     public CrmAddResult addGoods(Goods goods) throws AccessTokenException;
 
+    /**
+     * 添加商品
+     *
+     * @param
+     * @return
+     * @throws AccessTokenException
+     */
+    public CrmAddResult addProducts(Product product) throws AccessTokenException;
+
     /**
      * 修改商品
      *

+ 27 - 0
src/main/java/com/uas/eis/manager/impl/ProductManagerImpl.java

@@ -64,6 +64,33 @@ public class ProductManagerImpl implements ProductManager {
         return crmAddResult;
     }
 
+    @Override
+    public CrmAddResult addProducts(Product product) throws AccessTokenException {
+        CrmAddResult crmAddResult = new CrmAddResult();
+
+        CorpAccessToken token = accessTokenManager.getCorpAccessToken();
+
+        String openUserId = configuration.getOpenUserId();
+        //object_data里赋值openUserId
+        List<String> owner = new ArrayList<>();
+        owner.add(openUserId);
+
+        Map<String, Object> object_data = new HashMap<>();
+        object_data.put("object_data",product);
+
+        CrmAddReq crmAddReq = new CrmAddReq();
+        crmAddReq.setCorpAccessToken(token.getCorpAccessToken());
+        crmAddReq.setCorpId(token.getCorpId());
+        crmAddReq.setCurrentOpenUserId(openUserId);
+        crmAddReq.setData(object_data);
+        try {
+            crmAddResult = OpenAPIUtils.createCrmData(crmAddReq);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return crmAddResult;
+    }
+
     @Override
     public BaseResult updateGoods(Product product) throws AccessTokenException {
         BaseResult baseResult = new BaseResult();

+ 7 - 26
src/main/java/com/uas/eis/task/ProductTask.java

@@ -36,36 +36,14 @@ public class ProductTask {
     public void syncProducts() {
         SqlRowList rs = baseDao.queryForRowSet("select * from (select * from product where nvl(pr_statuscode,' ')='AUDITED' and nvl(pr_sendstatus,' ')='待上传' order by pr_id) where rownum<=200");
         while (rs.next()){
-            List<Map<String,Object>> sku = new ArrayList<>();
-            Map<String,Object> map = new HashMap<>();
-            List spec_and_value = new ArrayList();
-            map.put("spec_and_value",spec_and_value);
-            map.put("product_status","1");
-            map.put("unit",rs.getString("pr_unit"));
-            sku.add(map);
-            Goods goods = new Goods();
-            goods.setDataObjectApiName("SPUObj");
-            goods.setUnit(rs.getString("pr_unit"));
-            goods.setIs_spec(false);
-            goods.setStandard_price(rs.getDouble("pr_standardprice") == -1.0 ? 0.0 : rs.getDouble("pr_standardprice"));
-            goods.setProduct_line("1");
-            goods.setName(rs.getString("pr_brand")+"~"+rs.getGeneralString("pr_spec"));
-            goods.setCategory("6");
-            goods.setSku(sku);
+            Product product = setProduct(rs);
+            product.set_id("");
             try {
-                CrmAddResult crmAddResult = productManager.addGoods(goods);
+                CrmAddResult crmAddResult = productManager.addProducts(product);
                 int errorCode = crmAddResult.getErrorCode();
                 String dataId = crmAddResult.getDataId();
-                String extraData = crmAddResult.getExtraData();
                 if(errorCode == 0){
-                    //上传后更新部分字段
-                    Product product = setProduct(rs);
-                    product.set_id(extraData);
-                    BaseResult baseResult = productManager.updateGoods(product);
-                    if(baseResult.getErrorCode() != 0){
-                        baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+baseResult.getErrorMessage()+"','物料资料上传后更新失败','"+rs.getString("pr_code")+"')");
-                    }
-                    baseDao.execute("update product set pr_sendstatus='已上传',PR_FXXKDATAID='"+extraData+"' where pr_id="+rs.getInt("pr_id"));
+                    baseDao.execute("update product set pr_sendstatus='已上传',PR_FXXKDATAID='"+dataId+"' where pr_id="+rs.getInt("pr_id"));
                     baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'物料资料上传成功','物料资料上传','"+rs.getString("pr_code")+"')");
                 }else{
                     baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+crmAddResult.getErrorMessage()+"','物料资料上传','"+rs.getString("pr_code")+"')");
@@ -114,6 +92,9 @@ public class ProductTask {
         product.setField_cwppk__c(rs.getGeneralString("pr_fz_user"));
         product.setField_r02le__c(rs.getGeneralString("pr_zxbzs"));
         product.setUnit(rs.getGeneralString("pr_unit"));
+        product.setName(rs.getGeneralString("pr_brand")+"~"+rs.getGeneralString("pr_spec"));
+        product.setPrice(rs.getGeneralDouble("pr_standardprice"));
+        product.setCategory("6");
         return product;
     }
 }