Jelajahi Sumber

更新公共服务地址

hejq 8 tahun lalu
induk
melakukan
d378f9622b

+ 0 - 327
src/main/java/com/uas/erp/schedular/psProduct/task/AbstractTask.java

@@ -1,327 +0,0 @@
-package com.uas.erp.schedular.psProduct.task;
-
-import com.alibaba.fastjson.JSON;
-import com.uas.erp.schedular.b2b.domain.KeyEntity;
-import com.uas.erp.schedular.core.Constant;
-import com.uas.erp.schedular.database.RestJdbcTemplate;
-import com.uas.erp.schedular.entity.Master;
-import com.uas.erp.schedular.psInquiry.domain.Attach;
-import com.uas.erp.schedular.psInquiry.domain.Enterprise;
-import com.uas.erp.schedular.psProduct.domain.Prod;
-import com.uas.erp.schedular.service.SettingService;
-import com.uas.erp.schedular.util.CollectionUtil;
-import com.uas.erp.schedular.util.ContextHolder;
-import com.uas.erp.schedular.util.DateUtil;
-import com.uas.erp.schedular.util.HmacUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-import org.springframework.util.StringUtils;
-import org.springframework.web.client.RestTemplate;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URLEncoder;
-import java.util.Date;
-import java.util.List;
-
-/**
- * 公共物料的轮询配置
- * 
- * @author hejq
- * @date 2018-01-17 14:25
- */
-public class AbstractTask {
-
-    // 数据传输单次大小限制
-    protected static final int DATA_SIZE_LIMIT = 500;
-
-    @Autowired
-    private RestTemplate restTemplate;
-
-    @Autowired
-    protected RestJdbcTemplate jdbcTemplate;
-
-    @Autowired
-    protected SettingService settingService;
-
-    protected Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    /**
-     * 按账套环境,使用不同接口地址
-     * @return
-     */
-    private String getApiDomain() {
-        String key = "test".equals(ContextHolder.getMaster().getMa_env()) ? "api.psProduct.test.url" : "api.psProduct.url";
-        return settingService.getValue(key);
-    }
-
-    /**
-     * UAS系统外网地址
-     * @return
-     */
-    private String getUASUrl() {
-        return settingService.getValue("api.uas.outer.url");
-    }
-
-    /**
-     * URI加身份签名
-     * @param url
-     * @param vars
-     * @return
-     */
-    private String getURI(String url, Object... vars) {
-        Master master = ContextHolder.getMaster();
-        if (null == master.getMa_uu() || StringUtils.isEmpty(master.getMa_accesssecret())) {
-            throw new RuntimeException("未设置企业UU和私钥");
-        }
-        StringBuffer accessUrl = new StringBuffer(url);
-        accessUrl.append(url.contains("?") ? "&" : "?");
-        // 身份ID
-        accessUrl.append("access_id=").append(master.getMa_uu());
-        // 时间戳
-        accessUrl.append("&_timestamp=").append(System.currentTimeMillis());
-        URI uri = restTemplate.getUriTemplateHandler().expand(getApiDomain() + accessUrl.toString(), vars);
-        url = uri.toString();
-        // 签名
-        return url + "&_signature=" + HmacUtils.encode(url, master.getMa_accesssecret());
-    }
-
-    protected <T> T getForObject(String url, Class<T> objectClass, Object... vars) {
-        return restTemplate.getForObject(getURI(url, vars), objectClass);
-    }
-
-    protected <T> List<T> getForList(String url, Class<T> objectClass, Object... vars) {
-        String resultStr = restTemplate.getForObject(getURI(url, vars), String.class);
-        return JSON.parseArray(resultStr, objectClass);
-    }
-
-    /**
-     * b2b当前版本的接口只支持以form-data方式提交,requestBody方式暂不支持
-     * @param url
-     * @param vars
-     */
-    protected void post(String url, MultiValueMap<String, String> vars) {
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(vars, headers);
-        restTemplate.postForLocation(getURI(url), request);
-    }
-
-    protected ResponseEntity postForEntity(String url, MultiValueMap<String, String> vars) {
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(vars, headers);
-        return restTemplate.postForEntity(getURI(url), request, String.class);
-    }
-
-    protected <T> List<T> postForList(String url, Class<T> objectClass, MultiValueMap<String, String> vars) {
-        ResponseEntity<String> resultEntity = postForEntity(url, vars);
-        return JSON.parseArray(resultEntity.getBody(), objectClass);
-    }
-
-    /**
-     * 封装成平台接口数据格式
-     * @param data
-     * @return
-     */
-    protected static MultiValueMap<String, String> dataWrap(Object data) {
-        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
-        String dataStr = null;
-        Class<?> cls = data.getClass();
-        if (cls.isAssignableFrom(String.class) || cls.isAssignableFrom(Number.class) ||
-                cls.isAssignableFrom(Character.class)) {
-            dataStr = data.toString();
-        } else {
-            dataStr = JSON.toJSONString(data);
-        }
-        try {
-            dataStr = URLEncoder.encode(dataStr, "UTF-8");
-        } catch (UnsupportedEncodingException e) {
-
-        }
-        map.set("data", dataStr);
-        return map;
-    }
-
-    /**
-     * 数据上传工具,封装了处理前、后置、错误处理方法
-     * @param <T>
-     */
-    protected abstract class AbstractHandler<T> {
-
-        private List<T> data;
-
-        public AbstractHandler(List<T> data) {
-            this.data = data;
-        }
-
-        /**
-         * onHandler方法前执行
-         */
-        protected void onBefore(){
-
-        }
-
-        protected abstract ResponseEntity onHandler(List<T> data);
-
-        /**
-         * onHandler方法执行成功后执行
-         */
-        protected void onSuccess(){
-
-        }
-
-        /**
-         * onHandler方法执行失败后执行
-         */
-        protected void onError(String message){
-            throw new RuntimeException(message);
-        }
-
-        /**
-         * 所有方法执行完成后执行
-         */
-        protected void onAfter(){
-
-        }
-
-        public void run() {
-            String errMsg = null;
-            onBefore();
-            try {
-                ResponseEntity response = onHandler(data);
-                if (!response.getStatusCode().is2xxSuccessful()) {
-                    errMsg = String.valueOf(response.getBody());
-                }
-            } catch (Exception e) {
-                errMsg = e.getMessage();
-            }
-            try {
-                if (null == errMsg) {
-                    onSuccess();
-                } else {
-                    onError(errMsg);
-                }
-            } finally {
-                onAfter();
-            }
-        }
-    }
-
-    /**
-     * POST方式处理工具
-     * @param <T>
-     */
-    protected class AbstractPostHandler<T> extends AbstractHandler<T> {
-        private String postUri;
-
-        public AbstractPostHandler(String postUri, List<T> data) {
-            super(data);
-            this.postUri = postUri;
-        }
-
-        @Override
-        protected ResponseEntity onHandler(List<T> data) {
-            return postForEntity(postUri, dataWrap(data));
-        }
-    }
-
-    /**
-     * 基于状态控制的处理工具
-     * @param <T>
-     */
-    protected abstract class AbstractStatusBasedHandler<T extends KeyEntity> extends AbstractPostHandler<T> {
-
-        private String idStr;
-        private String tableName;
-        private String idColumn;
-        private String statusColumn;
-
-        public AbstractStatusBasedHandler(String tableName, String idColumn, String statusColumn, String postUri, List<T> data) {
-            super(postUri, data);
-            this.idStr = CollectionUtil.getKeyString(data);
-            this.tableName = tableName;
-            this.idColumn = idColumn;
-            this.statusColumn = statusColumn;
-        }
-
-        @Override
-        protected void onBefore() {
-            jdbcTemplate.execute(String.format("update %s set %s='上传中' where %s in (%s)", tableName, statusColumn, idColumn, idStr));
-        }
-
-        @Override
-        protected void onSuccess() {
-            jdbcTemplate.execute(String.format("update %s set %s='已上传' where %s in (%s)", tableName, statusColumn, idColumn, idStr));
-        }
-
-        @Override
-        protected void onError(String message) {
-            jdbcTemplate.execute(String.format("update %s set %s='待上传' where %s in (%s) and %s='上传中'", tableName, statusColumn, idColumn, idStr, statusColumn));
-            super.onError(message);
-        }
-    }
-
-    /**
-     * 基于状态控制的处理工具
-     * @param <T>
-     */
-    protected class StatusBasedHandler<T extends KeyEntity> extends AbstractStatusBasedHandler<T> {
-
-        public StatusBasedHandler(String tableName, String idColumn, String statusColumn, String postUri, List<T> data) {
-            super(tableName, idColumn, statusColumn, postUri, data);
-        }
-    }
-
-    /**
-     * 处理物料上传的工具
-     */
-    protected final class ProductHandler extends StatusBasedHandler<Prod>{
-
-        public ProductHandler(List<Prod> data, Enterprise enterprise) {
-            super("product", "pr_id", "PR_SENDSTATUS", "/erp/product?enuu=" + enterprise.getEn_uu(), data);
-        }
-    }
-
-    /**
-     * 查找附件
-     * @param attachIds 附件ID
-     * @return
-     */
-    protected List<Attach> getAttachs(String[] attachIds) {
-        String erpUrl = getUASUrl();
-        List<Attach> attaches = jdbcTemplate.queryForBeanList("select fp_id, fp_size, fp_name from filepath where fp_id in ("
-                + StringUtils.arrayToDelimitedString(attachIds, ",") + ")", Attach.class);
-        if (!CollectionUtils.isEmpty(attaches)) {
-            for (Attach attach : attaches) {
-                attach.setFp_url(erpUrl + Attach.DOWN_FILE_ACTION + attach.getFp_id());
-            }
-        }
-        return attaches;
-    }
-
-    /**
-     * 创建消息
-     *
-     * @param caller
-     * @param sourceIds
-     * @param type
-     */
-    protected void createMessage(String caller, String sourceIds, String type) {
-        Integer mid = jdbcTemplate.getInt("select max(mm_id) from MESSAGEMODEL left join MESSAGEROLE on mm_id=mr_mmid where MR_ISUSED=-1 AND MM_ISUSED=-1 and mm_caller=? and MM_OPERATE='b2b' AND MM_ACTION=?",
-                caller, type);
-        if (null != mid) {
-            jdbcTemplate.callForString("{call SP_CREATEINFO(?,'ADMIN',?,?,?)}",
-                    mid, sourceIds, DateUtil.parseDateToOracleString(Constant.YMD_HMS, new Date()));
-        }
-    }
-
-}

+ 1 - 1
src/main/java/com/uas/erp/schedular/psInquiry/domain/Attach.java → src/main/java/com/uas/erp/schedular/publicService/domain/Attach.java

@@ -1,4 +1,4 @@
-package com.uas.erp.schedular.psInquiry.domain;
+package com.uas.erp.schedular.publicService.domain;
 
 import java.io.Serializable;
 

+ 1 - 1
src/main/java/com/uas/erp/schedular/psInquiry/domain/BatchInProduct.java → src/main/java/com/uas/erp/schedular/publicService/domain/BatchInProduct.java

@@ -1,4 +1,4 @@
-package com.uas.erp.schedular.psInquiry.domain;
+package com.uas.erp.schedular.publicService.domain;
 
 /**
  * 公共询价物料信息

+ 1 - 1
src/main/java/com/uas/erp/schedular/psInquiry/domain/BatchInquiry.java → src/main/java/com/uas/erp/schedular/publicService/domain/BatchInquiry.java

@@ -1,4 +1,4 @@
-package com.uas.erp.schedular.psInquiry.domain;
+package com.uas.erp.schedular.publicService.domain;
 
 import com.uas.erp.schedular.b2b.domain.KeyEntity;
 

+ 1 - 1
src/main/java/com/uas/erp/schedular/psInquiry/domain/Enterprise.java → src/main/java/com/uas/erp/schedular/publicService/domain/Enterprise.java

@@ -1,4 +1,4 @@
-package com.uas.erp.schedular.psInquiry.domain;
+package com.uas.erp.schedular.publicService.domain;
 
 /**
  * 企业信息

+ 1 - 1
src/main/java/com/uas/erp/schedular/psProduct/domain/Prod.java → src/main/java/com/uas/erp/schedular/publicService/domain/Prod.java

@@ -1,4 +1,4 @@
-package com.uas.erp.schedular.psProduct.domain;
+package com.uas.erp.schedular.publicService.domain;
 
 import com.uas.erp.schedular.b2b.domain.KeyEntity;
 

+ 5 - 5
src/main/java/com/uas/erp/schedular/psInquiry/task/AbstractTask.java → src/main/java/com/uas/erp/schedular/publicService/task/AbstractTask.java

@@ -1,13 +1,13 @@
-package com.uas.erp.schedular.psInquiry.task;
+package com.uas.erp.schedular.publicService.task;
 
 import com.alibaba.fastjson.JSON;
 import com.uas.erp.schedular.b2b.domain.KeyEntity;
 import com.uas.erp.schedular.core.Constant;
 import com.uas.erp.schedular.database.RestJdbcTemplate;
 import com.uas.erp.schedular.entity.Master;
-import com.uas.erp.schedular.psInquiry.domain.Attach;
-import com.uas.erp.schedular.psInquiry.domain.Enterprise;
-import com.uas.erp.schedular.psProduct.domain.Prod;
+import com.uas.erp.schedular.publicService.domain.Attach;
+import com.uas.erp.schedular.publicService.domain.Enterprise;
+import com.uas.erp.schedular.publicService.domain.Prod;
 import com.uas.erp.schedular.service.SettingService;
 import com.uas.erp.schedular.util.CollectionUtil;
 import com.uas.erp.schedular.util.ContextHolder;
@@ -59,7 +59,7 @@ public class AbstractTask {
      * @return
      */
     private String getApiDomain() {
-        String key = "test".equals(ContextHolder.getMaster().getMa_env()) ? "api.psInquiry.test.url" : "api.psInquiry.url";
+        String key = "test".equals(ContextHolder.getMaster().getMa_env()) ? "api.publicService.test.url" : "api.publicService.url";
         return settingService.getValue(key);
     }
 

+ 11 - 11
src/main/java/com/uas/erp/schedular/psInquiry/task/InquiryTask.java → src/main/java/com/uas/erp/schedular/publicService/task/InquiryTask.java

@@ -1,14 +1,14 @@
-package com.uas.erp.schedular.psInquiry.task;
+package com.uas.erp.schedular.publicService.task;
 
 import com.uas.erp.schedular.b2b.domain.Inquiry;
 import com.uas.erp.schedular.b2b.domain.InquiryDecide;
 import com.uas.erp.schedular.b2b.domain.InquiryDetail;
 import com.uas.erp.schedular.b2b.domain.RemoteFile;
 import com.uas.erp.schedular.database.SqlTemplate;
-import com.uas.erp.schedular.psInquiry.domain.BatchInProduct;
-import com.uas.erp.schedular.psInquiry.domain.BatchInquiry;
-import com.uas.erp.schedular.psInquiry.domain.Enterprise;
-import com.uas.erp.schedular.psProduct.domain.Prod;
+import com.uas.erp.schedular.publicService.domain.BatchInProduct;
+import com.uas.erp.schedular.publicService.domain.BatchInquiry;
+import com.uas.erp.schedular.publicService.domain.Enterprise;
+import com.uas.erp.schedular.publicService.domain.Prod;
 import com.uas.erp.schedular.task.support.Method;
 import com.uas.erp.schedular.task.support.TaskMapping;
 import com.uas.erp.schedular.util.CollectionUtil;
@@ -63,7 +63,7 @@ public class InquiryTask extends AbstractTask {
                 ContextHolder.setDataSize(inquiries.size());
                 logger.info("inquiries size: " + inquiries.size());
                 logger.info("inquiries keys: " + CollectionUtil.getKeyString(inquiries));
-                String url = "/inquiry/public?enuu=" + enterprise.getEn_uu() + "&address=" + enterprise.getEn_address();
+                String url = "inquiry/inquiry/public?enuu=" + enterprise.getEn_uu() + "&address=" + enterprise.getEn_address();
                 new AbstractTask.StatusBasedHandler<BatchInquiry>("batchinquiry", "bi_id", "bi_sendstatus", url, inquiries).run();
             }
         }
@@ -73,7 +73,7 @@ public class InquiryTask extends AbstractTask {
     public void downloadReply() throws Exception{
         Enterprise enterprise = getEnterprise();
         if (null != enterprise) {
-            List<InquiryDetail> details = getForList("/inquiry/public/quotation?enuu=" + enterprise.getEn_uu(), InquiryDetail.class);
+            List<InquiryDetail> details = getForList("inquiry/inquiry/public/quotation?enuu=" + enterprise.getEn_uu(), InquiryDetail.class);
             if (!CollectionUtils.isEmpty(details)) {
                 ContextHolder.setDataSize(details.size());
                 saveInquiryReply(details);
@@ -128,7 +128,7 @@ public class InquiryTask extends AbstractTask {
      */
     private void onReplySuccess(List<InquiryDetail> details, Enterprise enterprise) {
         String idStr = CollectionUtil.getKeyString(details);
-        post("/inquiry/public/reply/back?enuu=" + enterprise.getEn_uu(), dataWrap(idStr));
+        post("inquiry/inquiry/public/reply/back?enuu=" + enterprise.getEn_uu(), dataWrap(idStr));
     }
 
     /**
@@ -168,7 +168,7 @@ public class InquiryTask extends AbstractTask {
             List<Inquiry> inquiries = jdbcTemplate.queryForBeanList("select * from (select in_id,in_code from inquiryAuto where in_checkStatus = '已提交' and in_checkSendStatus='待上传' and nvl(in_class,' ')<>'主动报价' and in_sendStatus='已上传' order by in_id) where rownum < 100", Inquiry.class);
             if (!CollectionUtils.isEmpty(inquiries)) {
                 ContextHolder.setDataSize(inquiries.size());
-                new StatusBasedHandler<Inquiry>("inquiryAuto", "in_id", "in_checkSendStatus", "/erp/purchase/publicinquiry/checking?enuu=" + enterprise.getEn_uu(), inquiries).run();
+                new StatusBasedHandler<Inquiry>("inquiryAuto", "in_id", "in_checkSendStatus", "inquiry/inquiry/public/checking?enuu=" + enterprise.getEn_uu(), inquiries).run();
             }
         }
     }
@@ -187,7 +187,7 @@ public class InquiryTask extends AbstractTask {
                     InquiryDecide.class);
             if (!CollectionUtils.isEmpty(replies)) {
                 ContextHolder.setDataSize(replies.size());
-                post("/inquiry/public/reply/decide?enuu=" + enterprise.getEn_uu(), dataWrap(replies));
+                post("inquiry/inquiry/public/reply/decide?enuu=" + enterprise.getEn_uu(), dataWrap(replies));
                 String idStr = CollectionUtil.getKeyString(replies);
                 logger.info("上传采纳决策到平台,ids: " + idStr);
                 jdbcTemplate.execute("update InquiryAutoDetail set id_sendstatus='已下载' where id_id in (" + idStr + ")");
@@ -209,7 +209,7 @@ public class InquiryTask extends AbstractTask {
                     Inquiry.class);
             if (!CollectionUtils.isEmpty(inquiries)) {
                 ContextHolder.setDataSize(inquiries.size());
-                post("/erp/purchase/publicinquiry/invalid?enuu=" + enterprise.getEn_uu(), dataWrap(inquiries));
+                post("inquiry/inquiry/public/invalid?enuu=" + enterprise.getEn_uu(), dataWrap(inquiries));
                 String idStr = CollectionUtil.getKeyString(inquiries);
                 logger.info("公共询价单作废单据,ids: " + idStr);
                 jdbcTemplate.execute("update InquiryAuto set in_sendStatus='作废已上传' where in_id in (" + idStr + ")");

+ 8 - 8
src/main/java/com/uas/erp/schedular/psProduct/task/ProdTask.java → src/main/java/com/uas/erp/schedular/publicService/task/ProdTask.java

@@ -1,7 +1,7 @@
-package com.uas.erp.schedular.psProduct.task;
+package com.uas.erp.schedular.publicService.task;
 
-import com.uas.erp.schedular.psInquiry.domain.Enterprise;
-import com.uas.erp.schedular.psProduct.domain.Prod;
+import com.uas.erp.schedular.publicService.domain.Enterprise;
+import com.uas.erp.schedular.publicService.domain.Prod;
 import com.uas.erp.schedular.task.support.Method;
 import com.uas.erp.schedular.task.support.TaskMapping;
 import com.uas.erp.schedular.util.CollectionUtil;
@@ -33,7 +33,7 @@ public class ProdTask extends AbstractTask {
                     Prod.class);
             if (!CollectionUtils.isEmpty(prods)) {
                 ContextHolder.increaseDataSize(prods.size());
-                new StatusBasedHandler<Prod>("product", "pr_id", "PR_SENDSTATUS", "/product/cycleupdate", prods).run();
+                new StatusBasedHandler<Prod>("product", "pr_id", "PR_SENDSTATUS", "product/product/cycleupdate", prods).run();
                 if (prods.size() == DATA_SIZE_LIMIT) {
                     // 递归,直到没有需要上传的数据
                     uploadProduct();
@@ -49,7 +49,7 @@ public class ProdTask extends AbstractTask {
     public void downloadProduct() {
         Enterprise enterprise = getEnterprise();
         if (null != enterprise) {
-            List<Prod> prods = getForList("/product/backtouas", Prod.class);
+            List<Prod> prods = getForList("product/product/backtouas", Prod.class);
             if (!CollectionUtils.isEmpty(prods)) {
                 ContextHolder.setDataSize(prods.size());
                 saveProdDown(prods);
@@ -84,7 +84,7 @@ public class ProdTask extends AbstractTask {
                 return obj.getB2b_id();
             }
         });
-        post("/product/refreshDownloadstatus", dataWrap(idStr));
+        post("product/product/refreshDownloadstatus", dataWrap(idStr));
     }
 
     /**
@@ -92,8 +92,8 @@ public class ProdTask extends AbstractTask {
      *
      * @return
      */
-    public com.uas.erp.schedular.psInquiry.domain.Enterprise getEnterprise() {
-        Enterprise enterprise = jdbcTemplate.queryForBean("select en_address, en_uu, en_name from enterprise where en_uu is not null", com.uas.erp.schedular.psInquiry.domain.Enterprise.class);
+    public com.uas.erp.schedular.publicService.domain.Enterprise getEnterprise() {
+        Enterprise enterprise = jdbcTemplate.queryForBean("select en_address, en_uu, en_name from enterprise where en_uu is not null", com.uas.erp.schedular.publicService.domain.Enterprise.class);
         return enterprise;
     }
 }

+ 5 - 12
src/main/resources/init/setting.json

@@ -41,17 +41,10 @@
   "description": "定制商城正式接口地址",
   "value": "http://10.10.100.23:20215"
 },{
-  "key": "api.psInquiry.test.url",
-  "description": "公共询价测试地址",
-  "value": "http://192.168.253.12:24001"
+  "key": "api.publicService.test.url",
+  "description": "公共服务测试地址",
+  "value": "http://218.17.158.219:24000/"
 },{
-  "key": "api.psInquiry.url",
-  "description": "公共询价正式地址"
-},{
-  "key": "api.psProduct.test.url",
-  "description": "公共物料测试地址",
-  "value": "http://218.17.158.219:24000"
-},{
-  "key": "api.psProduct.url",
-  "description": "公共物料正式地址"
+  "key": "api.publicService.url",
+  "description": "公共服务正式地址"
 }]