“luojun” 7 miesięcy temu
rodzic
commit
d34350ea77

+ 0 - 159
websrc/com/kingdee/eas/custom/synctask/utils/SynctaskUtils.java

@@ -1,159 +0,0 @@
-package com.kingdee.eas.custom.synctask.utils;
-
-import com.alibaba.fastjson.JSONObject;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.kingdee.bos.BOSException;
-import com.kingdee.bos.Context;
-import com.kingdee.bos.metadata.entity.EntityViewInfo;
-import com.kingdee.bos.metadata.entity.FilterInfo;
-import com.kingdee.bos.metadata.entity.FilterItemInfo;
-import com.kingdee.bos.metadata.entity.SelectorItemCollection;
-import com.kingdee.bos.metadata.query.util.CompareType;
-import com.kingdee.eas.basedata.org.AdminOrgUnitCollection;
-import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
-import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
-import com.kingdee.eas.basedata.org.IAdminOrgUnit;
-import com.kingdee.eas.custom.synctask.ActionTypeEnum;
-import com.kingdee.eas.custom.synctask.entity.AdminOrg;
-import com.kingdee.eas.hr.ats.AtsUtil;
-import com.kingdee.util.StringUtils;
-import okhttp3.*;
-import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.log4j.Logger;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * @author qingwu
- * @date 2024/10/21
- * @apiNote
- */
-public class SynctaskUtils {
-    public static Logger logger = Logger.getLogger("com.kingdee.eas.custom.synctask.utils.SynctaskUtils");
-    private Properties propt = new Properties();
-
-    public SynctaskUtils() {
-        try {
-            this.propt.load(new FileInputStream("E:\\Kingdee\\eas\\server\\properties\\scy\\syncOAConfig.properties"));
-            //propt.load(new FileInputStream(System.getProperty("EAS_HOME") + "/server/properties/scy/syncOAConfig.properties"));
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 同步组织
-     * 1、当参数billIds不为空值时,增量同步参数中的部门数据到OA
-     * 2、当参数billIds为空时,全量同步所有组织数据到OA
-     * 3、当参数action不为空时,根据操作类型同步数据
-     * 4、当参数action为空时,判断部门状态是否为失效,如果失效就执行删除同步,否则就执行编辑同步
-     * 5、部门新增,调用部门同步方法增量同步,操作类型为新增
-     *
-     * @param billds
-     * @param action
-     * @throws BOSException
-     */
-    public void _syncOrgUnitToOA(Context ctx, String billds, ActionTypeEnum action) throws BOSException, IOException {
-        logger.error("_syncOrgUnitToOA----------------------start");
-        logger.error("_syncOrgUnitToOA----------------------billds: " + billds);
-        IAdminOrgUnit iAdminOrgUnit = AdminOrgUnitFactory.getLocalInstance(ctx);
-        List dataList = new ArrayList();
-        String actionType = action == null ? "" : action.getValue().toLowerCase();
-        //当参数billIds不为空值时,增量同步参数中的部门数据到OA
-        FilterInfo filterInfo = null;
-        if (!StringUtils.isEmpty(billds)) {
-            Set<String> adminOrgIds = AtsUtil.toSet(billds);
-            filterInfo = new FilterInfo();
-            filterInfo.getFilterItems().add(new FilterItemInfo("id", adminOrgIds, CompareType.INCLUDE));
-        }
-        SelectorItemCollection sic = new SelectorItemCollection();
-        sic.add("*");
-        sic.add("parent.number");
-        EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, sic, null);
-        AdminOrgUnitCollection adminOrgUnitCollection = iAdminOrgUnit.getAdminOrgUnitCollection(entityViewInfo);
-        for (int i = 0; i < adminOrgUnitCollection.size(); i++) {
-            AdminOrgUnitInfo adminOrgUnitInfo = adminOrgUnitCollection.get(i);
-            String orgName = adminOrgUnitInfo.getName();
-            AdminOrg adminOrg = new AdminOrg();
-            boolean isSealUp = adminOrgUnitInfo.isIsSealUp();
-            if (isSealUp) {
-                adminOrg.setAction("delete");
-                adminOrg.setCanceled("0");
-            } else {
-                adminOrg.setAction("add");
-            }
-            adminOrg.setCode(adminOrgUnitInfo.getNumber());
-            adminOrg.setShortname(orgName);
-            adminOrg.setFullname(orgName);
-            //adminOrg.setParent_code("ITCS");
-            adminOrg.setOrg_code("0");
-            adminOrg.setParent_code(adminOrgUnitInfo.getParent().getNumber());
-            //adminOrg.setOrder((String.valueOf(adminOrgUnitInfo.getIndex())));
-            dataList.add(adminOrg);
-        }
-        //调用执行同步组织到OA
-        executeSyncOrgUnitToOA(dataList);
-    }
-
-    /**
-     * 执行同步组织到OA
-     *
-     * @param dataList
-     */
-    public void executeSyncOrgUnitToOA(List dataList) throws IOException, BOSException {
-        if (dataList != null && dataList.size() > 0) {
-            ObjectMapper mapper = new ObjectMapper();
-            //封装请求参数
-            String data = mapper.writeValueAsString(dataList);
-            String params = String.format("token = %s &data = %s", getToken(), data);
-            logger.error("executeSyncOrgUnitToOA----------------------params" + params);
-            //封装请求参数
-            //String syncOrgUnitApiUrl = "/api/hrm/resful/synDepartment";
-            String syncOrgUnitApiUrl = this.propt.getProperty("syncOrgUnitApiUrl");
-            String url = this.propt.getProperty("url");
-            logger.error("executeSyncOrgUnitToOA----------------------syncOrgUnitApiUrl" + syncOrgUnitApiUrl);
-            if (StringUtils.isEmpty(syncOrgUnitApiUrl)) {
-                throw new BOSException("同步组织到OA接口地址不能为空!");
-            }
-            OkHttpClient client = new OkHttpClient();
-            MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
-            RequestBody body = RequestBody.create(mediaType, params);
-            Request request = new Request.Builder()
-                    .url(url + syncOrgUnitApiUrl)
-                    .post(body)
-                    .addHeader("Content-Type", "application/json")
-                    .addHeader("Accept", "*/*")
-                    .addHeader("Accept-Encoding", "gzip, deflate, br")
-                    .addHeader("User-Agent", "PostmanRuntime-ApipostRuntime/1.1.0")
-                    .addHeader("Connection", "keep-alive")
-                    .build();
-            Response response = client.newCall(request).execute();
-            String respBody = response.body().string();
-            if (response.isSuccessful()) {
-
-            } else {
-
-            }
-        }
-    }
-
-    /**
-     * 获取token
-     *
-     * @return
-     */
-    public String getToken() {
-        String key = this.propt.getProperty("key");
-        long l = System.currentTimeMillis();//时间戳毫秒数
-        String code = key.concat(Long.toString(l));
-        //String s = DigestUtils.md5Hex(code).toUpperCase();
-        String s = DigestUtils.md5Hex(code).toUpperCase();
-        Map<String, String> map = new HashMap<>();
-        map.put("key", s);
-        map.put("ts", Long.toString(l));
-        logger.error("getToken" + JSONObject.toJSONString(map));
-        return JSONObject.toJSONString(map);
-    }
-}