Explorar el Código

【越加红】纷享销客 废物料资料作、物料资料删除

wub hace 3 años
padre
commit
b64484ce9d

+ 34 - 0
src/main/java/com/uas/eis/beans/req/CrmDeleteReq.java

@@ -0,0 +1,34 @@
+package com.uas.eis.beans.req;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Crm更新对象数据参数
+ * Created by zhongcy on 2017/1/4.
+ */
+public class CrmDeleteReq<T> extends BaseOfOpenUserIdReq {
+    private static final long serialVersionUID = -3661876864620608225L;
+
+    private T data;
+
+    public CrmDeleteReq() {
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("corpAccessToken", corpAccessToken)
+                .add("corpId", corpId)
+                .add("currentOpenUserId", currentOpenUserId)
+                .add("data", data)
+                .toString();
+    }
+}

+ 34 - 0
src/main/java/com/uas/eis/beans/req/CrmInvalidReq.java

@@ -0,0 +1,34 @@
+package com.uas.eis.beans.req;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Crm更新对象数据参数
+ * Created by zhongcy on 2017/1/4.
+ */
+public class CrmInvalidReq<T> extends BaseOfOpenUserIdReq {
+    private static final long serialVersionUID = -3661876864620608225L;
+
+    private T data;
+
+    public CrmInvalidReq() {
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("corpAccessToken", corpAccessToken)
+                .add("corpId", corpId)
+                .add("currentOpenUserId", currentOpenUserId)
+                .add("data", data)
+                .toString();
+    }
+}

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

@@ -4,6 +4,8 @@ package com.uas.eis.manager;
 import com.uas.eis.beans.result.*;
 import com.uas.eis.exception.AccessTokenException;
 
+import java.util.List;
+
 /**
  *
  * 
@@ -39,4 +41,19 @@ public interface ProductManager {
      */
     public BaseResult updateGoods(Product product) throws AccessTokenException;
 
+    /**
+     * 作废物料资料
+     * @param dataId
+     * @return
+     * @throws AccessTokenException
+     */
+    public BaseResult invalidProduct(String dataId) throws AccessTokenException;
+
+    /**
+     * 作废物料资料
+     * @param idList
+     * @return
+     * @throws AccessTokenException
+     */
+    public BaseResult deleteProducts(List<String> idList) throws AccessTokenException;
 }

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

@@ -2,6 +2,8 @@ package com.uas.eis.manager.impl;
 
 import com.uas.eis.beans.CorpAccessToken;
 import com.uas.eis.beans.req.CrmAddReq;
+import com.uas.eis.beans.req.CrmDeleteReq;
+import com.uas.eis.beans.req.CrmInvalidReq;
 import com.uas.eis.beans.req.CrmUpdateReq;
 import com.uas.eis.beans.result.BaseResult;
 import com.uas.eis.beans.result.CrmAddResult;
@@ -111,4 +113,48 @@ public class ProductManagerImpl implements ProductManager {
         }
         return baseResult;
     }
+
+    @Override
+    public BaseResult invalidProduct(String dataId) throws AccessTokenException {
+        BaseResult baseResult = new BaseResult();
+
+        CorpAccessToken token = accessTokenManager.getCorpAccessToken();
+        String openUserId = configuration.getOpenUserId();
+        CrmInvalidReq crmInvalidReq = new CrmInvalidReq();
+        crmInvalidReq.setCorpAccessToken(token.getCorpAccessToken());
+        crmInvalidReq.setCorpId(token.getCorpId());
+        crmInvalidReq.setCurrentOpenUserId(openUserId);
+        Map<String,Object> map = new HashMap<>();
+        map.put("object_data_id",dataId);
+        map.put("dataObjectApiName","ProductObj");
+        crmInvalidReq.setData(map);
+        try {
+            baseResult = OpenAPIUtils.invalidCrmData(crmInvalidReq);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return baseResult;
+    }
+
+    @Override
+    public BaseResult deleteProducts(List<String> idList) throws AccessTokenException {
+        BaseResult baseResult = new BaseResult();
+
+        CorpAccessToken token = accessTokenManager.getCorpAccessToken();
+        String openUserId = configuration.getOpenUserId();
+        CrmDeleteReq crmDeleteReq = new CrmDeleteReq();
+        crmDeleteReq.setCorpAccessToken(token.getCorpAccessToken());
+        crmDeleteReq.setCorpId(token.getCorpId());
+        crmDeleteReq.setCurrentOpenUserId(openUserId);
+        Map<String,Object> map = new HashMap<>();
+        map.put("idList",idList);
+        map.put("dataObjectApiName","ProductObj");
+        crmDeleteReq.setData(map);
+        try {
+            baseResult = OpenAPIUtils.deleteCrmData(crmDeleteReq);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return baseResult;
+    }
 }

+ 39 - 0
src/main/java/com/uas/eis/task/ProductTask.java

@@ -14,6 +14,9 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Component
 @EnableAsync
 @EnableScheduling
@@ -53,6 +56,42 @@ public class ProductTask {
         }
     }
 
+    @Scheduled(cron = "0 0/10 * * * ?")
+    public void syncBannedProducts() {
+        SqlRowList rs = baseDao.queryForRowSet("select * from (select * from product where nvl(pr_statuscode,' ')='DISABLE' and nvl(pr_sfjszy_user,' ')<>'是' and nvl(pr_sendstatus,' ')='待上传' and 1=2 order by pr_id) where rownum<=200");
+        while (rs.next()){
+            Product product = setProduct(rs);
+            try {
+                BaseResult baseResult = productManager.invalidProduct(product.get_id());
+                int errorCode = baseResult.getErrorCode();
+                if(errorCode == 0){
+                    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("update product set pr_sendstatus='未上传成功' 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,'"+baseResult.getErrorMessage()+"','物料资料作废','"+rs.getString("pr_code")+"')");
+                    logger.info("异常信息:"+baseResult.getErrorMessage());
+                }
+                List<String> idList = new ArrayList<>();
+                idList.add(product.get_id());
+                BaseResult baseResult_del = productManager.deleteProducts(idList);
+                int errorCode_del = baseResult_del.getErrorCode();
+                if(errorCode_del == 0){
+                    baseDao.execute("update product set pr_sendstatus='已上传' 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("update product set pr_sendstatus='未上传成功' 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,'"+baseResult_del.getErrorMessage()+"','物料资料删除','"+rs.getString("pr_code")+"')");
+                    logger.info("异常信息:"+baseResult_del.getErrorMessage());
+                }
+            }catch (Exception e){
+                baseDao.execute("update product set pr_sendstatus='未上传成功' 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,'"+e.getMessage()+"','物料资料作废或删除','"+rs.getString("pr_code")+"')");
+                logger.info("异常信息:"+e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
     @Scheduled(cron = "0 0 23 * * ?")
     public void syncUpdateProducts() {
         SqlRowList rs = baseDao.queryForRowSet("select * from (select distinct pis_prodcode from productInfoSync where trunc(pis_date)=trunc(sysdate) and pis_updatedate is null) left join product on pis_prodcode=pr_code where nvl(pr_statuscode,' ')='AUDITED' and nvl(pr_sfjszy_user,' ')<>'是' order by pr_id");

+ 12 - 4
src/main/java/com/uas/eis/utils/OpenAPIUtils.java

@@ -156,11 +156,19 @@ public class OpenAPIUtils {
 
     /**
      * CRM作废 元数据接口
-     *//*
-    public static BaseResult dropCrmData(CrmDeleteArg arg) {
-        String url = prefix + "/cgi/crm/data/drop";
+     */
+    public static BaseResult invalidCrmData(CrmInvalidReq arg) {
+        String url = prefix + "/cgi/crm/v2/data/invalid";
         return doPost(url, arg, BaseResult.class);
-    }*/
+    }
+
+    /**
+     * CRM删除已作废的数据 元数据接口
+     */
+    public static BaseResult deleteCrmData(CrmDeleteReq arg) {
+        String url = prefix + "/cgi/crm/v2/data/delete";
+        return doPost(url, arg, BaseResult.class);
+    }
 
     /**
      * CRM查询列表 元数据接口