Browse Source

【越加红】纷享销客 物料根据中间表定时更新 成本单价(含税)、样品仓库存、批量仓库存、物料类型

wub 3 years ago
parent
commit
8c349e92a7

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

@@ -0,0 +1,77 @@
+package com.uas.eis.beans.result;
+
+import com.google.common.base.MoreObjects;
+
+import java.io.Serializable;
+
+public class Product implements Serializable {
+
+    private static final long serialVersionUID = 3486839815456351252L;
+
+    private String dataObjectApiName;
+    private String _id;
+    private Double field_ea4Nh__c;//成本单价(含税)
+    private String field_i0v47__c;//样品仓库存
+    private String field_iW998__c;//批量仓库存
+    private String field_dioys__c;//物料类型
+
+    public String getDataObjectApiName() {
+        return dataObjectApiName;
+    }
+
+    public void setDataObjectApiName(String dataObjectApiName) {
+        this.dataObjectApiName = dataObjectApiName;
+    }
+
+    public String get_id() {
+        return _id;
+    }
+
+    public void set_id(String _id) {
+        this._id = _id;
+    }
+
+    public Double getField_ea4Nh__c() {
+        return field_ea4Nh__c;
+    }
+
+    public void setField_ea4Nh__c(Double field_ea4Nh__c) {
+        this.field_ea4Nh__c = field_ea4Nh__c;
+    }
+
+    public String getField_i0v47__c() {
+        return field_i0v47__c;
+    }
+
+    public void setField_i0v47__c(String field_i0v47__c) {
+        this.field_i0v47__c = field_i0v47__c;
+    }
+
+    public String getField_iW998__c() {
+        return field_iW998__c;
+    }
+
+    public void setField_iW998__c(String field_iW998__c) {
+        this.field_iW998__c = field_iW998__c;
+    }
+
+    public String getField_dioys__c() {
+        return field_dioys__c;
+    }
+
+    public void setField_dioys__c(String field_dioys__c) {
+        this.field_dioys__c = field_dioys__c;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("dataObjectApiName", dataObjectApiName)
+                .add("_id",_id)
+                .add("field_ea4Nh__c", field_ea4Nh__c)
+                .add("field_i0v47__c", field_i0v47__c)
+                .add("field_iW998__c", field_iW998__c)
+                .add("field_dioys__c", field_dioys__c)
+                .toString();
+    }
+}

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

@@ -28,6 +28,6 @@ public interface ProductManager {
      * @return
      * @throws AccessTokenException
      */
-    public BaseResult updateGoods(Goods goods) throws AccessTokenException;
+    public BaseResult updateGoods(Product product) throws AccessTokenException;
 
 }

+ 3 - 2
src/main/java/com/uas/eis/manager/impl/ProductManagerImpl.java

@@ -6,6 +6,7 @@ import com.uas.eis.beans.req.CrmUpdateReq;
 import com.uas.eis.beans.result.BaseResult;
 import com.uas.eis.beans.result.CrmAddResult;
 import com.uas.eis.beans.result.Goods;
+import com.uas.eis.beans.result.Product;
 import com.uas.eis.exception.AccessTokenException;
 import com.uas.eis.manager.AccessTokenManager;
 import com.uas.eis.manager.OpenUserIdManager;
@@ -64,13 +65,13 @@ public class ProductManagerImpl implements ProductManager {
     }
 
     @Override
-    public BaseResult updateGoods(Goods goods) throws AccessTokenException {
+    public BaseResult updateGoods(Product product) throws AccessTokenException {
         BaseResult baseResult = new BaseResult();
 
         CorpAccessToken token = accessTokenManager.getCorpAccessToken();
         String openUserId = configuration.getOpenUserId();
         Map<String, Object> object_data = new HashMap<>();
-        object_data.put("object_data",goods);
+        object_data.put("object_data",product);
         CrmUpdateReq crmUpdateReq = new CrmUpdateReq();
         crmUpdateReq.setCorpAccessToken(token.getCorpAccessToken());
         crmUpdateReq.setCorpId(token.getCorpId());

+ 33 - 3
src/main/java/com/uas/eis/task/ProductTask.java

@@ -1,11 +1,12 @@
 package com.uas.eis.task;
 
+import com.uas.eis.beans.result.BaseResult;
 import com.uas.eis.beans.result.CrmAddResult;
 import com.uas.eis.beans.result.Goods;
+import com.uas.eis.beans.result.Product;
 import com.uas.eis.dao.BaseDao;
 import com.uas.eis.dao.SqlRowList;
 import com.uas.eis.manager.ProductManager;
-import com.uas.eis.utils.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +34,7 @@ public class ProductTask {
 
     @Scheduled(cron = "*/10 * * * * ?")
     public void syncProducts() {
-        SqlRowList rs = baseDao.queryForRowSet("select pr_id,pr_code,pr_detail,pr_unit,pr_standardprice from product where nvl(pr_sendstatus,' ')='待上传' and 1=2 order by pr_id");
+        SqlRowList rs = baseDao.queryForRowSet("select pr_id,pr_code,pr_detail,pr_unit,pr_standardprice from product where 1=2 and nvl(pr_statuscode,' ')='AUDITED' and nvl(pr_sendstatus,' ')='待上传' order by pr_id");
         while (rs.next()){
             List<Map<String,Object>> sku = new ArrayList<>();
             Map<String,Object> map = new HashMap<>();
@@ -55,8 +56,9 @@ public class ProductTask {
                 CrmAddResult crmAddResult = productManager.addGoods(goods);
                 int errorCode = crmAddResult.getErrorCode();
                 String dataId = crmAddResult.getDataId();
+                String extraData = crmAddResult.getExtraData();
                 if(errorCode == 0){
-                    baseDao.execute("update product set pr_sendstatus='已上传',PR_FXXKDATAID='"+dataId+"' where pr_id="+rs.getInt("pr_id"));
+                    baseDao.execute("update product set pr_sendstatus='已上传',PR_FXXKDATAID='"+extraData+"' 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")+"')");
@@ -69,4 +71,32 @@ public class ProductTask {
             }
         }
     }
+
+    @Scheduled(cron = "*/10 * * * * ?")
+    public void syncUpdateProducts() {
+        SqlRowList rs = baseDao.queryForRowSet("select * from (select distinct pis_prodcode from productInfoSync where 1=2 and trunc(pis_date)=trunc(sysdate)) left join product on pis_prodcode=pr_code order by pr_id");
+        while (rs.next()){
+            Product product = new Product();
+            product.setDataObjectApiName("ProductObj");
+            product.set_id(rs.getGeneralString("pr_fxxkdataid"));
+            product.setField_ea4Nh__c(rs.getGeneralDouble("pr_purcprice"));
+            product.setField_i0v47__c(rs.getGeneralString("pr_YPstock"));
+            product.setField_iW998__c(rs.getGeneralString("pr_PLstock"));
+            product.setField_dioys__c(rs.getGeneralString("pr_serial"));
+            try {
+                BaseResult baseResult = productManager.updateGoods(product);
+                int errorCode = baseResult.getErrorCode();
+                if(errorCode == 0){
+                    baseDao.execute("update productInfoSync set pis_updatestatus='已更新',pis_updatedate=sysdate where pis_prodcode='"+rs.getInt("pr_id")+"' and trunc(pis_date)=trunc(sysdate)");
+                }else{
+                    baseDao.execute("update productInfoSync set pis_error='"+baseResult.getErrorMessage()+"' where pis_prodcode='"+rs.getInt("pr_id")+"' and trunc(pis_date)=trunc(sysdate)");
+                    logger.info("异常信息:"+baseResult.getErrorMessage());
+                }
+            }catch (Exception e){
+                baseDao.execute("update productInfoSync set pis_error='"+e.getMessage()+"' where pis_prodcode='"+rs.getInt("pr_id")+"' and trunc(pis_date)=trunc(sysdate)");
+                logger.info("异常信息:"+e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
 }