postlist = orgManager.getEntityListNoRelation(V3xOrgPost.class.getSimpleName(),
+ "code", val, null);
+ log.info("岗位转换:" + val + ",查询结果:" + (postlist != null && postlist.size() > 0));
+ if(postlist != null&&! ListUtils.EMPTY_LIST.equals(postlist)){
+ for (V3xOrgEntity v3xOrgEntity : postlist) {
+ V3xOrgPost post = (V3xOrgPost) v3xOrgEntity;
+ if(val.equals(post.getCode())){
+ val = post.getId() + "";
+ break;
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ } catch (Exception e) {
+ log.error("处理字段异常:" + field.getName()+ "," + field.getDisplay());
+ }
+ return val;
+ }
+
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/constants/BipConstants.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/constants/BipConstants.java
new file mode 100644
index 0000000..ed0e5f2
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/constants/BipConstants.java
@@ -0,0 +1,35 @@
+package com.seeyon.apps.bip.constants;
+
+public enum BipConstants {
+
+ plugin("bip","插件ID"),
+ bipUrl("http://10.1.90.21:9083", "BIP地址"),
+ bipWageUrl("/servlet/ApproveTodo?usercode=${code}&salary=60656013p&v5ticket=", "BIP工资详情URL"),
+ ssoUrl("http://10.1.90.21:9083", "BIP SSO地址"),
+ //bipWaiwangUrl("http://bip.hbsxly.com", "BIP地址"),
+ clientId("OA", "clientId"),
+ client_security("30dcf9a3cfef4b98a157e926db6369f0", "client_security"),
+ dsname("BIPKF", "dsname"),
+ busicentercode("sxbip", "busicentercode");
+
+ BipConstants(String defaultValue, String description) {
+ this.defaultValue = defaultValue;
+ this.description = description;
+ }
+
+ private String defaultValue;
+ private String description;
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public static String getPluginId() {
+ return plugin.defaultValue;
+ }
+
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/FukuanContractNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/FukuanContractNode.java
new file mode 100644
index 0000000..397e4d9
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/FukuanContractNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.contract.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.3.1OA付款合同同步BIP付款合同接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class FukuanContractNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_receivecontract";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "fukuanContractNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "付款合同同步BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/ShoukuanContractrefundNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/ShoukuanContractrefundNode.java
new file mode 100644
index 0000000..2b964c4
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/ShoukuanContractrefundNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.contract.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.3.2OA一般收款合同变更同步BIP收款合同接口
+ *
+ *
+ * @Author: HuangZhengguo
+ * @Date: 2023/01/15
+ */
+public class ShoukuanContractrefundNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/servlet/RefundOrderServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "shoukuanContractrefundNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "OA一般收款合同退款同步BIP收款合同";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/UpdateFukuanContractNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/UpdateFukuanContractNode.java
new file mode 100644
index 0000000..6090380
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/UpdateFukuanContractNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.contract.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.3.2OA一般付款合同变更同步BIP付款合同接口
+ *
+ *
+ * @Author: HuangZhengguo
+ * @Date: 2023/12/29
+ */
+public class UpdateFukuanContractNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/servlet/UpdatePaymentContract";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "updateFukuanContractNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "OA一般付款合同变更同步BIP付款合同";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/UpdateShoukuanContractNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/UpdateShoukuanContractNode.java
new file mode 100644
index 0000000..57dfd74
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/UpdateShoukuanContractNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.contract.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.3.2OA一般收款合同变更同步BIP收款合同接口
+ *
+ *
+ * @Author: HuangZhengguo
+ * @Date: 2023/12/29
+ */
+public class UpdateShoukuanContractNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/servlet/UpdateGatheringContract";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "updateShoukuanContractNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "OA一般收款合同变更同步BIP收款合同";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/ZulinContractNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/ZulinContractNode.java
new file mode 100644
index 0000000..c1e55b4
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/contract/node/ZulinContractNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.contract.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.3.2OA租赁合同同步BIP收款合同接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class ZulinContractNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_receivecontract";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "zulinContractNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "租赁合同同步BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/LogDownloadController.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/LogDownloadController.java
new file mode 100644
index 0000000..396da37
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/LogDownloadController.java
@@ -0,0 +1,79 @@
+package com.seeyon.apps.bip.ctrl;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.Date;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.seeyon.ctp.common.SystemEnvironment;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.seeyon.ctp.common.controller.BaseController;
+import com.seeyon.ctp.common.encrypt.CoderFactory;
+import com.seeyon.ctp.common.filemanager.manager.FileManager;
+import com.seeyon.ctp.common.po.filemanager.V3XFile;
+import com.seeyon.ctp.util.Strings;
+import com.seeyon.ctp.util.annotation.NeedlessCheckLogin;
+
+public class LogDownloadController extends BaseController {
+
+
+ //公文正文MimeType
+ private static String docLongType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+ private static String docType = "application/msword";
+ private static String excelType = "application/vnd.ms-excel";
+
+ private FileManager fileManager;
+
+ public FileManager getFileManager() {
+ return fileManager;
+ }
+
+ public void setFileManager(FileManager fileManager) {
+ this.fileManager = fileManager;
+ }
+
+ public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ String date = request.getParameter("date");
+ String num = request.getParameter("num");
+ String name = request.getParameter("name");
+ File file;
+ String fileName = "";
+ String logsFolder = SystemEnvironment.getLogsFolder();
+ if (null == date) {
+ fileName = logsFolder + name + ".log";
+ } else {
+ fileName = logsFolder + date + "/" + name + "." + date + "." + num + ".log";
+ }
+ file = new File(fileName);
+ if(!file.exists()) {
+ super.rendJavaScript(response, "alert('日志文件不存在');");
+ return null;
+ }
+ response.setContentType("application/force-download");// 扢离Ч秶狟婥祥湖羲
+ response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(name + ".log", "UTF-8"));
+ FileInputStream fin = null;
+ OutputStream os = null;
+ try {
+ os = response.getOutputStream();
+ fin = new FileInputStream(file);
+ CoderFactory.getInstance().download(fin, os);
+ } catch (Exception e) {
+ throw e;
+ } finally {
+ if (fin != null) {
+ fin.close();
+ }
+ if (os != null) {
+ os.close();
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/NccSsoController.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/NccSsoController.java
new file mode 100644
index 0000000..ecfef85
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/NccSsoController.java
@@ -0,0 +1,79 @@
+package com.seeyon.apps.bip.ctrl;
+
+import cn.hutool.http.HttpRequest;
+import com.seeyon.apps.addressbook.manager.AddressBookCustomerFieldInfoManager;
+import com.seeyon.apps.addressbook.po.AddressBook;
+import com.seeyon.apps.bip.constants.BipConstants;
+import com.seeyon.apps.bip.util.BipHttpUtil;
+import com.seeyon.apps.bip.vo.BipResponse;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.common.controller.BaseController;
+import com.seeyon.ctp.common.taglibs.functions.Functions;
+import com.seeyon.ctp.organization.bo.V3xOrgMember;
+import com.seeyon.ctp.organization.manager.OrgManager;
+import com.seeyon.ctp.organization.manager.OrgManagerImpl;
+import com.seeyon.ctp.util.Strings;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/1
+ */
+public class NccSsoController extends BaseController {
+
+ @Inject
+ private ICstConfigApi cstConfigApi;
+ @Inject
+ private AddressBookCustomerFieldInfoManager addressBookCustomerFieldInfoManager;
+
+
+ @Override
+ public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ ConfigVo config = cstConfigApi.getConfig(BipConstants.getPluginId());
+ String url = config.getParamVal(BipConstants.ssoUrl.name());
+// 获取当前登录人ID AppContext.currentUserId()
+// OrgManager orgManager = new OrgManagerImpl();
+// orgManager.getMemberById(AppContext.currentUserId());根据人员ID获取人员信息
+ AddressBook addressBook = addressBookCustomerFieldInfoManager.getByMemberId(AppContext.currentUserId());
+ if(null == addressBook) {
+ super.rendJavaScript(response, "alert('BIP账号未维护,无法单点登录!');");
+ return null;
+ }
+ String code = addressBook.getExtAttr2();
+ if(Strings.isBlank(code)) {
+ super.rendJavaScript(response, "alert('BIP账号未维护,无法单点登录!');");
+ return null;
+ }
+ // 获取token走内网地址
+ String interUrl = config.getParamVal(BipConstants.bipUrl.name());
+ String tokenUrl = interUrl + "/servlet/NCTokenServlet?dsname=" + config.getParamVal(BipConstants.dsname.name())
+ + "&usercode=" + code + "&system=OA&busicentercode=" + config.getParamVal(BipConstants.busicentercode.name());
+ try {
+ String body = HttpRequest.get(tokenUrl).execute().body();
+ BipResponse bipResponse = BipHttpUtil.parseResponse(body);
+ if(bipResponse.isSuccess()) {
+ String ssoUrl = url + "/nccloud/resources/uap/rbac/thirdpartylogin/main/index.htmlac?cesstoken=" + bipResponse.getData()
+ + "&redirect_uri=" + url + "/nccloud";
+ response.sendRedirect(ssoUrl);
+ } else {
+ super.rendJavaScript(response, "alert('单点登录错误:" + bipResponse.getMsg() + "');");
+ }
+ } catch (Exception e) {
+ logger.error("单点登录异常", e);
+ super.rendJavaScript(response, "alert('后台发生错误');");
+ }
+ return null;
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/NccWageSsoController.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/NccWageSsoController.java
new file mode 100644
index 0000000..7ec5f75
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/ctrl/NccWageSsoController.java
@@ -0,0 +1,79 @@
+package com.seeyon.apps.bip.ctrl;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.log.Log;
+import com.seeyon.apps.addressbook.manager.AddressBookCustomerFieldInfoManager;
+import com.seeyon.apps.addressbook.po.AddressBook;
+import com.seeyon.apps.bip.constants.BipConstants;
+import com.seeyon.apps.bip.util.BipHttpUtil;
+import com.seeyon.apps.bip.vo.BipResponse;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.common.controller.BaseController;
+import com.seeyon.ctp.util.Strings;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/1
+ */
+public class NccWageSsoController extends BaseController {
+
+ private static Log log = Log.get(NccWageSsoController.class);
+ @Inject
+ private ICstConfigApi cstConfigApi;
+ @Inject
+ private AddressBookCustomerFieldInfoManager addressBookCustomerFieldInfoManager;
+
+ @Override
+ public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ StringBuffer localUrl = request.getRequestURL();
+ String v5ticket = request.getParameter("ticket");
+ ConfigVo config = cstConfigApi.getConfig(BipConstants.getPluginId());
+ String url = config.getParamVal(BipConstants.ssoUrl.name());
+ AddressBook addressBook = addressBookCustomerFieldInfoManager.getByMemberId(AppContext.currentUserId());
+ if(null == addressBook) {
+ super.rendJavaScript(response, "alert('BIP账号未维护,无法单点登录!');");
+ return null;
+ }
+ String code = addressBook.getExtAttr2();
+ if(Strings.isBlank(code)) {
+ super.rendJavaScript(response, "alert('BIP账号未维护,无法单点登录!');");
+ return null;
+ }
+ // 获取token走内网地址
+ String interUrl = config.getParamVal(BipConstants.bipUrl.name());
+ String tokenUrl = interUrl + "/servlet/NCTokenServlet?dsname=" + config.getParamVal(BipConstants.dsname.name())
+ + "&usercode=" + code + "&system=OA&busicentercode=" + config.getParamVal(BipConstants.busicentercode.name());
+ try {
+ String body = HttpRequest.get(tokenUrl).execute().body();
+ BipResponse bipResponse = BipHttpUtil.parseResponse(body);
+ if(bipResponse.isSuccess()) {
+// String ssoUrl = url + "/nccloud/resources/uap/rbac/thirdpartylogin/main/index.html?accesstoken=" + bipResponse.getData()
+// + "&redirect_uri=" + url + "/servlet/ApproveTodo?usercode="+ code +"&salary=60656013p&v5ticket="+v5ticket;
+ String ssoUrl = url +config.getParamVal(BipConstants.bipWageUrl.name())+v5ticket;
+// String ssoUrl = url + "/nccloud/resources/uap/rbac/thirdpartylogin/main/index.html?accesstoken=" + bipResponse.getData()
+// + "&redirect_uri=" + url + config.getParamVal(BipConstants.bipWageUrl.name())+v5ticket;
+ ssoUrl = ssoUrl.replace("${code}",code);
+ System.out.println(ssoUrl);
+ response.sendRedirect(ssoUrl);
+ } else {
+ super.rendJavaScript(response, "alert('单点登录错误:" + bipResponse.getMsg() + "');");
+ }
+ } catch (Exception e) {
+ logger.error("单点登录异常", e);
+ super.rendJavaScript(response, "alert('后台发生错误');");
+ }
+ return null;
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/custom/node/AddCustomerNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/custom/node/AddCustomerNode.java
new file mode 100644
index 0000000..04def02
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/custom/node/AddCustomerNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.custom.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/19
+ */
+public class AddCustomerNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_customerServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "addCustomerNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "新增客商推送BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/FeiQicheRongziApplyNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/FeiQicheRongziApplyNode.java
new file mode 100644
index 0000000..18d4931
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/FeiQicheRongziApplyNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.feiyong.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.2.8非汽车板块融资申请表同步信贷申请单接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/5
+ */
+public class FeiQicheRongziApplyNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_debitApplyServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "feiQicheRongziApplyNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "非汽车板块融资申请推送BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/HuazhangJiesuanNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/HuazhangJiesuanNode.java
new file mode 100644
index 0000000..5000959
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/HuazhangJiesuanNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.feiyong.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.2.6划账结算单同步划账结算单接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/5
+ */
+public class HuazhangJiesuanNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_transformServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "huazhangJiesuanNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "划账结算单推送BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/QicheRongziApplyNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/QicheRongziApplyNode.java
new file mode 100644
index 0000000..a115563
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/QicheRongziApplyNode.java
@@ -0,0 +1,37 @@
+package com.seeyon.apps.bip.feiyong.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+import com.seeyon.apps.bip.constants.BipConstants;
+import com.seeyon.apps.bip.util.BipHttpUtil;
+import com.seeyon.apps.bip.vo.BipResponse;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+
+/**
+ * 功能描述:
+ *
+ * 2.2.8非汽车板块融资申请表同步信贷申请单接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/5
+ */
+public class QicheRongziApplyNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_debitApplyServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "qicheRongziApplyNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "汽车板块融资申请推送BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/ShangShouXiaboNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/ShangShouXiaboNode.java
new file mode 100644
index 0000000..70a9aca
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/ShangShouXiaboNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.feiyong.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.2.5资金上收下拨审批单同步下拨单接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class ShangShouXiaboNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_allocationServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "shangShouXiaboNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "资金上收下拨推送BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/WuyeshoufeiNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/WuyeshoufeiNode.java
new file mode 100644
index 0000000..dc38069
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/feiyong/node/WuyeshoufeiNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.feiyong.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ * 2.2.7物业收费结算单同步收款单接口
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class WuyeshoufeiNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_gatherbillServlet";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "wuyeshoufeiNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "物业收费结算单推送BIP";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchLizhiStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchLizhiStopEvent.java
new file mode 100644
index 0000000..6f3e8a2
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchLizhiStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class BatchLizhiStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "batchLizhiStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP批量离职单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchRuzhiStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchRuzhiStopEvent.java
new file mode 100644
index 0000000..d38f778
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchRuzhiStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class BatchRuzhiStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "batchRuzhiStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP批量入职单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchZhuanzhengStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchZhuanzhengStopEvent.java
new file mode 100644
index 0000000..a463753
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/BatchZhuanzhengStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class BatchZhuanzhengStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "batchZhuanzhengStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP批量转正单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/DiaopeiStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/DiaopeiStopEvent.java
new file mode 100644
index 0000000..3581c4d
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/DiaopeiStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class DiaopeiStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "diaopeiStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP调配单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/HrCommonEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/HrCommonEvent.java
new file mode 100644
index 0000000..5c736c2
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/HrCommonEvent.java
@@ -0,0 +1,80 @@
+package com.seeyon.apps.bip.hr.event;
+
+import com.seeyon.apps.bip.constants.BipConstants;
+import com.seeyon.apps.bip.util.BipHttpUtil;
+import com.seeyon.apps.bip.vo.BipResponse;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.common.workflow.constants.WorkFlowType;
+import com.seeyon.apps.common.workflow.event.ACommonWorkflowEvent;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.WorkflowEventContext;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.ctp.common.AppContext;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public abstract class HrCommonEvent extends ACommonWorkflowEvent {
+
+ protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
+
+ public abstract String getMethod();
+
+ @Override
+ protected WorkflowEventContext proceed(String request, FormDataVo formDataVo, WorkFlowType workFlowType, FormDataMasterBean formDataMasterBean) throws Exception {
+ WorkflowEventContext context = new WorkflowEventContext();
+ ConfigVo configVo = cstConfigApi.getConfig(getPluginId());
+ context.setNeedSave(true);
+ String url = configVo.getParamVal(BipConstants.bipUrl.name());
+ url += getMethod();
+ context.setRequest(request);
+ context.setUrl(url);
+ try {
+ String response = BipHttpUtil.doPost(url, request, configVo.getParamVal(BipConstants.clientId.name()), configVo.getParamVal(BipConstants.client_security.name()));
+ context.setResponse(response);
+ BipResponse bipResponse = BipHttpUtil.parseResponse(response);
+ if(bipResponse.isSuccess()) {
+ context.setSuccess(true);
+ context.setErrMsg("推送BIP成功:" + bipResponse.getMsg());
+ formDataVo.getNewFieldDataMap().put("BIP返回结果", "推送BIP成功:" + bipResponse.getMsg());
+ } else {
+ if("当前操作人没有待办任务.".equals(bipResponse.getMsg())){
+ context.setSuccess(true);
+ context.setErrMsg("推送BIP成功:" + bipResponse.getMsg());
+ formDataVo.getNewFieldDataMap().put("BIP返回结果", "推送BIP成功:" + bipResponse.getMsg());
+ }else{
+ context.setSuccess(false);
+ context.setErrMsg("推送BIP失败:" + bipResponse.getMsg());
+ formDataVo.getNewFieldDataMap().put("BIP返回结果", "推送BIP失败:" + bipResponse.getMsg());
+ }
+ }
+ } catch (Exception e) {
+ context.setSuccess(false);
+ context.setErrMsg("推送BIP失败:OA处理异常:" + e.getMessage());
+ formDataVo.getNewFieldDataMap().put("BIP返回结果", "推送BIP失败:OA处理异常" + e.getMessage());
+ }
+ return context;
+ }
+
+ @Override
+ public String getPluginId() {
+ return BipConstants.getPluginId();
+ }
+
+ @Override
+ public String getFormParse() {
+ return "json";
+ }
+
+ @Override
+ public WorkFlowType[] getTypes() {
+ return new WorkFlowType[] { WorkFlowType.onBeforeStop };
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/LizhiStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/LizhiStopEvent.java
new file mode 100644
index 0000000..adb7b9c
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/LizhiStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class LizhiStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "lizhiStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP离职单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/NeibujianzhiStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/NeibujianzhiStopEvent.java
new file mode 100644
index 0000000..f7d9891
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/NeibujianzhiStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class NeibujianzhiStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "neibujianzhiStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP内部兼职单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/RuzhiStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/RuzhiStopEvent.java
new file mode 100644
index 0000000..3841c38
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/RuzhiStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class RuzhiStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "ruzhiStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP入职单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/ZhuanzhengStopEvent.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/ZhuanzhengStopEvent.java
new file mode 100644
index 0000000..3b82615
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/event/ZhuanzhengStopEvent.java
@@ -0,0 +1,28 @@
+package com.seeyon.apps.bip.hr.event;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2023/2/22
+ */
+public class ZhuanzhengStopEvent extends HrCommonEvent {
+
+ @Override
+ public String getId() {
+ return "zhuanzhengStopEvent";
+ }
+
+ @Override
+ public String getLabel() {
+ return "BIP转正单事件";
+ }
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchLizhiApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchLizhiApproveBipHrNode.java
new file mode 100644
index 0000000..51cb6b0
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchLizhiApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class BatchLizhiApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "batchLizhiApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR批量离职审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchRuzhiApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchRuzhiApproveBipHrNode.java
new file mode 100644
index 0000000..5cf8c1d
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchRuzhiApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class BatchRuzhiApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "batchRuzhiApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR批量入职审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchZhuanzhengApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchZhuanzhengApproveBipHrNode.java
new file mode 100644
index 0000000..6f9cc64
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/BatchZhuanzhengApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class BatchZhuanzhengApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "batchZhuanzhengApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR批量转正审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/DiaopeiApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/DiaopeiApproveBipHrNode.java
new file mode 100644
index 0000000..74c62a7
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/DiaopeiApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class DiaopeiApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "diaopeiApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR调配审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/LizhiApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/LizhiApproveBipHrNode.java
new file mode 100644
index 0000000..21afad8
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/LizhiApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class LizhiApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "lizhiApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR离职审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/NeibujianzhiApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/NeibujianzhiApproveBipHrNode.java
new file mode 100644
index 0000000..dd89106
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/NeibujianzhiApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class NeibujianzhiApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "neibujianzhiApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR内部兼职审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/RuzhiApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/RuzhiApproveBipHrNode.java
new file mode 100644
index 0000000..34b4d29
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/RuzhiApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class RuzhiApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "ruzhiApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR入职审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/WaibujianzhiNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/WaibujianzhiNode.java
new file mode 100644
index 0000000..f557473
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/WaibujianzhiNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/30
+ */
+public class WaibujianzhiNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_external_part_time_job";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "waibujianzhiNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR外部兼职数据回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/ZhuanzhengApproveBipHrNode.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/ZhuanzhengApproveBipHrNode.java
new file mode 100644
index 0000000..7619840
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/hr/node/ZhuanzhengApproveBipHrNode.java
@@ -0,0 +1,30 @@
+package com.seeyon.apps.bip.hr.node;
+
+import com.seeyon.apps.bip.BIPCommonNode;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/12/7
+ */
+public class ZhuanzhengApproveBipHrNode extends BIPCommonNode {
+
+ @Override
+ public String getMethod() {
+ return "/service/sxly_oa_hrresultacceptance";
+ }
+
+ @Override
+ public String getNodeId() {
+ return "zhuanzhengApproveBipHrNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "BIP-HR转正审批通过结果回传";
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/bip/quartz/QixinSyncQuartz.java b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/quartz/QixinSyncQuartz.java
new file mode 100644
index 0000000..267c1c5
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/bip/quartz/QixinSyncQuartz.java
@@ -0,0 +1,275 @@
+package com.seeyon.apps.bip.quartz;
+
+import cn.hutool.core.convert.Convert;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.seeyon.apps.bip.constants.BipConstants;
+import com.seeyon.apps.common.workflow.util.FormDataBeanUtil;
+import com.seeyon.apps.ext.quartz.AbstractQuartzTask;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.mplus.api.MplusApi;
+import com.seeyon.cap4.bizportalold.util.HttpClientUtil;
+import com.seeyon.cap4.form.api.FormApi4Cap4;
+import com.seeyon.cap4.form.bean.FormBean;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.cap4.form.bean.fieldCtrl.enums.CreditQueryConstant;
+import com.seeyon.ctp.common.exceptions.BusinessException;
+import com.seeyon.ctp.util.JDBCAgent;
+import com.seeyon.ctp.util.Strings;
+import com.seeyon.ctp.util.json.JSONUtil;
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.inject.Inject;
+import java.io.File;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static com.seeyon.cap4.form.bean.fieldCtrl.enums.CreditQueryConstant.Category.*;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2024/1/8
+ */
+public class QixinSyncQuartz extends AbstractQuartzTask {
+
+ private static final Log LOGGER = LogFactory.getLog(QixinSyncQuartz.class);
+
+ private static final Integer ENTERPRISE_INFO_EXACT_BUSINESS = 11;
+ private static final Integer ENTERPRISE_INFO_EXACT_INSTITUTION = 12;
+ private static final Integer ENTERPRISE_INFO_EXACT_LAW = 13;
+
+
+ final String serviceCode = "m20000000000003002";
+
+ @Inject
+ private MplusApi mplusApi;
+ @Inject
+ private FormApi4Cap4 formApi4Cap4;
+
+ @Override
+ public String taskRun(String param) throws Exception {
+ /* String path = SystemEnvironment.getLogsFolder() + "gongshang.log";
+ FileUtils.writeStringToFile(new File(path), JSONUtil.toJSONString(getCreditQueryInfo(param)), "UTF-8");*/
+ AtomicInteger success = new AtomicInteger(0);
+ AtomicInteger error = new AtomicInteger(0);
+ Vector syncMsgs = new Vector();
+ FormBean formBean = formApi4Cap4.getFormByFormCode("inner_gs");
+ String sql = "select id from " + formBean.getMasterTableBean().getTableName();
+ // 根据税号查询数据
+ try(JDBCAgent agent = new JDBCAgent(true, false)) {
+ agent.execute(Strings.isNotBlank(param) ? param : sql);
+ List