从浙政钉-企业微信-钉钉同步数据步骤
- 概述
- 在于浙政钉-企业微信-钉钉进行组织结构同步的代码步骤.
- 首先需要理解ccbpm的部门、人员、以及部门于人员对应关系的表结构.
- 理解OrgNo的组织编号概念.
- 理解集团模式,SAAS模式的概念.
- 同步步骤.
- 创建空白的表结构, Port_Dept_TB, Port_Emp_TB,Port_DeptEmp_TB, 表结构与现有的表结构一致。
- 把数据同步到这几个临时表里.
- 执行如下代码逻辑进行同步到ccbpm的组织结构里.
- 代码同步逻辑.
- 每个表都涉及到,新增部分,删除部分,变更部分三个操作.
- 因为部门与人员对应关系都是外键,所以不涉及到修改部分.
- c#代码结构.
string orgNo = BP.Web.WebUser.OrgNo;
//1.
删除全部的数据
.
string sql = "DELETE FROM Port_Dept_TB WHERE OrgNo='"+orgNo+"'";
DBAccess.RunSQL(sql);
sql = "DELETE FROM Port_Emp_TB WHERE OrgNo='" + orgNo + "'";
DBAccess.RunSQL(sql);
sql = "DELETE FROM Port_DeptEmp_TB WHERE OrgNo='" + orgNo + "'";
DBAccess.RunSQL(sql);
//2.
把获得数据写入到这三个表
.
//3.
开始写入人员数据表
.
//3.1
更新部门
,
查询出来新增部分
.
sql = "SELECT * FROM Port_Dept_TB WHERE No Not IN (SELECT No from Port_Dept where OrgNo='" + orgNo+"') AND OrgNo='"+orgNo+"'";
DataTable dtDept = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtDept.Rows)
{
Dept dept = new Dept();
dept.No = dr[0].ToString();
dept.Name = dr[1].ToString();
dept.ParentNo = dr[2].ToString();
dept.Insert();
}
//3.2
查询出来删除的
.
sql = "SELECT * FROM Port_Dept WHERE No Not IN ( SELECT No from Port_Dept_TB where OrgNo='" + orgNo + "') AND OrgNo='" + orgNo + "'";
dtDept = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtDept.Rows)
{
Dept dept = new Dept();
dept.No = dr[0].ToString();
dept.Delete();
}
//3.3
查询出来名称变化的
.
sql = "SELECT A.No,A.Name FROM Port_Dept_TB A, Port_Dept B WHERE A.No=B.No AND A.Name!=B.Name ";
dtDept = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtDept.Rows)
{
Dept dept = new Dept();
dept.No = dr[0].ToString();
dept.Retrieve();
dept.Name = dr[1].ToString();
dept.Update();
}
//4.
同步人员数据
.
//4.1
更新部门
,
查询出来新增部分
.
sql = "SELECT * FROM Port_Emp_TB WHERE No Not IN (SELECT No from Port_Emp where OrgNo='" + orgNo + "') AND OrgNo='" + orgNo + "'";
DataTable dtEmp = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtEmp.Rows)
{
Emp emp = new Emp();
emp.No = dr[0].ToString();
emp.Name = dr[1].ToString();
emp.OrgNo = dr[2].ToString();
emp.Pass = "";
emp.Insert();
}
//4.2
查询出来删除的
.
sql = "SELECT * FROM Port_Emp WHERE No Not IN ( SELECT No from Port_Emp_TB where OrgNo='" + orgNo + "') AND OrgNo='" + orgNo + "'";
dtEmp = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtEmp.Rows)
{
Emp emp = new Emp();
emp.No = dr[0].ToString();
emp.Delete();
}
//4.3
查询出来名称变化的
.
sql = "SELECT A.No,A.Name FROM Port_Emp_TB A, Port_Emp B WHERE A.No=B.No AND A.Name!=B.Name ";
dtEmp = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtEmp.Rows)
{
Emp emp = new Emp();
emp.No = dr[0].ToString();
emp.Retrieve();
emp.Name = dr[1].ToString();
emp.Update();
}
//5.
同步人员部门数据
.
//5.1
更新部门
,
查询出来新增部分
.
sql = "SELECT * FROM Port_DeptEmp_TB WHERE MyPK Not IN (SELECT MyPK from Port_DeptEmp WHERE OrgNo='" + orgNo + "') AND OrgNo='" + orgNo + "'";
DataTable dtDeptEmp = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtDeptEmp.Rows)
{
DeptEmp de = new DeptEmp();
de.MyPK = dr[0].ToString();
de.FK_Emp = dr[1].ToString();
de.FK_Dept = dr[2].ToString();
de.OrgNo = dr[3].ToString();
de.Insert();
}
//5.2
查询出来删除的
.
sql = "SELECT * FROM Port_DeptEmp WHERE No Not IN ( SELECT No from Port_DeptEmp_TB where OrgNo='" + orgNo + "') AND OrgNo='" + orgNo + "'";
dtDeptEmp = DBAccess.RunSQLReturnTable(sql);
foreach (DataRow dr in dtDeptEmp.Rows)
{
DeptEmp de = new DeptEmp();
de.MyPK = dr[0].ToString();
de.Delete();
}
从浙政钉-企业微信-钉钉同步数据步骤相关推荐
- 【浙政钉】微信-专有钉钉小程序-开发踩坑实记
文章目录 ⭐[浙政钉]微信-专有钉钉小程序-开发踩坑实记 ⭐ 创建项目 ⭐ 转化方案 ⭐ 政务钉钉调试 ⭐ 上传发布 ⭐[浙政钉]微信-专有钉钉小程序-开发踩坑实记 最近有个需求,要将微信小程序转为浙 ...
- 安装kube-prometheus项目:k8s部署prometheus、监控k8s核心组件、添加告警(微信、钉钉、企业微信)、进行数据持久化
概述 很多地方提到Prometheus Operator是kubernetes集群监控的终极解决方案,但是目前Prometheus Operator已经不包含完整功能,完整的解决方案已经变为kube- ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- delphi 企业微信消息机器人_消息通知支持企业微信、钉钉机器人,MeterSphere v1.4.0发布...
2020年10月27日15:00,MeterSphere v1.4版本发布说明会,现已开启官网报名. 10月27日,MeterSphere开源持续测试平台正式发布v1.4.0版本.在该版本中,Mete ...
- zabbix配置步骤、操作及使用个人邮箱、企业微信、钉钉报警的配置
一.监控端配置 步骤: 1.去官网下载包,从而有zabbix.repo,更新yum源 2.yum安装zabbix-server-mysql zabbix-web-mysql zabbix-agent ...
- 华为WeLink钉钉企业微信飞书等,通过竹云IDaaS,访问企业内部应用及SaaS应用
背景@TOC 钉钉.企业微信.飞书.华为WeLink等,通过竹云IDaaS,访问企业内部应用及SaaS应用 背景 随着移动办公的需求,华为WeLink.钉钉.企业微信.飞书等移动办公App在各行各业中 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 企业微信篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 微信篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- vue从url中获取token并加入到 请求头里_轻流amp;amp;企业微信——获取打卡数据...
企业微信开放了打卡应用的api,功能包括查询打卡数据,能获取到用户.地点.时间.打卡类型等信息,在轻流中可以基于以上数据做一段时间内的迟到/事假等统计,以及更深层数据处理,方便管理. 第一步:获取ac ...
最新文章
- 天津科技大学计算机科学与信息工程学院,天津科技大学人工智能学院欢迎您!...
- java和python哪个好学-Python和Java,哪个容易学呢?
- Spark SQL概述,DataFrames,创建DataFrames的案例,DataFrame常用操作(DSL风格语法),sql风格语法
- python计算余弦距离_在Python中计算余弦距离的优化方法
- 使用命令行刷新Magento索引管理 Rebuilt Magento Indexes in terminal with php-cli
- Flutter之Stepper源码浅析
- Nginx伪静态配置和常用Rewrite伪静态规则
- Mysql数据库恢复到指定时间点
- Erstudio8.0怎么用?Erstudio8.0汉化版详细使用教程
- [项目管理]-第三章:需求分析
- Chrome浏览器的跨域设置----包含新老版本两种设置
- 如何解决硬盘固件区损坏?只要学会这几步
- Qt 如何获取本机ip地址
- SBC音频编解码算法(转载)
- html 不显示undefine,undefined是阴性的意思吗
- 2017 ICPCECIC 北方邀请赛 H MJF wants to work (贪心)
- 原来动漫中的羞耻表情都是这样出来的,学会以后可以自己慢慢YY了
- TeamViewer14检测为商业用途最优解
- 评分卡模型(一)评分卡建模实战
- 【LeetCode-SQL】196. 删除重复的电子邮箱