本次小飞鱼开发的程序主要解决某下属公司在人力系统中增加账号不能马上审批完毕的问题,可以通过这个流程审批后由插件在后台判断自动增加OA账号,增加机制与hr与OA系统同步相同。

只进行增加操作,没有修改、删除的操作。原有已经进行了两个系统的数据自动同步开发,因此这次的开发属于一个补充的内容,仅在此提供一个应用的思路和开发过程的探讨。

前端发起人申请时填写hr系统中已经分配的工号,即可对应查询出其他相关数据。为了避免查出数据后对工号修改,增加一个确认工号输入框。其他信息由Ajax自动获取为只读形式。这样通过从另外的系统获取数据方式可以避免完全人为输入数据造成错误。


通过流程审批完毕后,流转到OA管理员哪里,管理员在进行下一步转交时即在后台创建账号,如果没有错误则会提示创建成功,如果有错误也会进行提示。



hr系统为宏景的人力系统,数据库为sql Server2008,因此本开发中还需要连接sqlserver的数据库。

系统的主要代码:

$query="select * from t_hr_view where c01u7='" .$gonghao. "'";
$cursor=sqlsrv_query($conn,$query);

if($row=sqlsrv_fetch_array($cursor,sqlSRV_FETCH_ASSOC)){
	
	$hr_dept_id=$row["E0122_0"];  
	$hr_dept_name=$row["e0122"]; 
	$OA=$row["OA"];
	$hr_name=$row["A0101"];
	$hr_gangwei=$row["e01a1"];
	$hr_gonghao=$row["c01u7"];
	$hr_unique_id=$row["unique_id"];

	if($OA==1 or $OA==2){
		$query2="select * from user where hr_unique_id='$hr_unique_id' limit 1";
		$cursor2=exequery(TD::conn(),$query2);
		$num=MysqL_num_rows($cursor2);
		if($num==0 and $hr_gonghao!=""){
			//新增用户
					
			$DEPT_ID="0";
			$new_flag=1;
			$query4="select DEPT_ID   from department where hr_dept_id='$hr_dept_id' limit 1";
			$cursor4=exequery(TD::conn(),$query4);
			if($row4=MysqL_fetch_row($cursor4)){
				$DEPT_ID=$row4[0];
			}
			if(in_array($hr_dept_name,$neitui_dept_arr)){  
				$DEPT_ID="0";
			}				
			
			/****查询byname有没有重复的**/
			$query5="select * from user where BYNAME='$hr_gonghao' limit 1";
			$cursor5=exequery(TD::conn(),$query5);
			$num5=MysqL_num_rows($cursor5);			
			//$num5=1;//测试失败			
			if($num5==1){
				$new_flag=-1;  
			}

			/******/
			if($new_flag==1){  //允许新增用户
					$has_user_id_str = '';
					$queryn = 'SELECT UID,USER_ID FROM user';
					$cursorn = exequery(TD::conn(),$queryn);
					while ($rown = MysqL_fetch_array($cursorn)) {
						$has_user_id_str .= $rown['USER_ID'] . ',';
					}
					$USER_ID = get_user_id($has_user_id_str);
			
					$BYNAME=$hr_gonghao;  //登录名为工号
					$BYNAME = trim($BYNAME);
					$USER_NAME=$hr_name;
					$USER_NAME = trim($USER_NAME);
					$BYNAME = trim($BYNAME);

					$UID=add_user_new($ARRAY);
						if($UID!=""){  
							$USER_ID=$UID;
							$query3 = "insert into USER_EXT(UID,USER_ID,USE_POP3,EMAIL_CAPACITY,FOLDER_CAPACITY,WEBMAIL_CAPACITY,WEBMAIL_NUM,DUTY_TYPE) values('$UID','$USER_ID','0','500','1')";							
							exequery(TD::conn(),$query3);																					
					} 
			} 
			
		} 		
	} 
}

通达OA 使用Ajax和工作流插件实现根据人力资源系统数据增加OA账号图文的更多相关文章

  1. iOS:用于填充异步提取数据的设计模式

    我正在开发一个从Web获取数据并将其显示给用户的应用程序.假设数据是餐馆的评论,并且在一个视图上显示一个评论.用户可以向左或向右滑动以转到上一个/下一个评论.数据是异步提取的.这是问题陈述–假设已经提取了5条评论,并且用户正在查看当前的第3条评论.现在,第6次审核被提取,我想将其显示为用户的第4次审核.我的模型类应该如何通知视图控制器?除上述3之外的其他建议值得欢迎!

  2. ios – 1天后firebase crashlytics报告中没有数据

    解决方法对于那些仍然有问题的人.检查您的podfile中是否还有pod’Firebase/Crash’.当我删除旧的Firebase崩溃报告时,我的问题已修复.

  3. 将AWS DynamoDB表中的数据加载到iOS上的UITableView

    我的iOS应用程序中使用Swift编写的一个屏幕是UITableView.在这个UITableView中,我想从AWSDynamoDB表中加载名为Books的数据.目前,这是我在故事板上的原型单元格:在表格中我有3个属性:“名称”,“价格”和“ISBN”.我想要的是扫描“书籍”表,并过滤结果,因此结果的“ISBN”属性将包含数字“9”.在我筛选结果后,我想将它们应用到UITableView,因此“

  4. ios – 未为测试目标生成核心数据类

    我使用CoreData的自动生成的类.除测试目标外,我的项目还有3个目标.对于每个目标,正确生成CoreData类,我通过检查DerivedData文件夹进行验证.但是,尽管在核心数据模型文件中打勾,但不会为测试目标生成类.当我尝试引用测试目标中的一个CoreData类时,这会导致“未声明的标识符”和“使用未声明的类型”错误.我该如何解决这个问题?

  5. ios – NSURLCache和数据保护

    我正在尝试保护存储在NSURLCache中的敏感数据.我的应用程序文件和CoreDatasqlite文件设置为NSFileProtectionComplete.但是,我无法将NSURLCache文件数据保护级别更改为NSFileProtectionCompleteUntilFirstUserAuthentication以外的任何其他级别.这会在设备锁定时暴露缓存中的任何敏感数据.我需要缓存响应,以

  6. ios – 领域:如何获取数据库的当前大小

    是否有RealmAPI方法使用RealmSwift作为数据存储来获取我的RealmSwift应用程序的当前数据库大小?

  7. 核心数据 – 核心数据NSPersistentStore问题

    我正在开发一个分阶段推出的应用程序.对于每个sprint,都有数据库更改,因此已实现核心数据迁移.到目前为止,我们已经有3个阶段发布.每当连续升级时,应用程序运行正常.但每当我尝试从版本1升级到版本3时,都会发生’无法添加持久存储’错误.有人可以帮我解决这个问题吗?

  8. iOS Swift在哪里存储用户登录数据或OAuth令牌?

    事情并不像在用户手机上存储登录数据的最佳做法那样清晰.有人建议将userID=123和loggedIn=true类型数据等数据存储在NSUSerDefaults数据中.然而根据我的理解,根据这篇文章https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/,这些数据可以很容易地被操作所以问题是:当用户浏览各种屏幕时,持久登录数

  9. ios – Swift – 使用字典数组从字典访问数据时出错

    我有一个非常简单的例子,说明我想做什么基本上,我有一个字典,其值包含[String:String]字典数组.我把数据填入其中,但当我去访问数据时,我收到此错误:Cannotsubscriptavalueoftype‘[([String:String])]?’withanindexoftype‘Int’请让我知道我做错了什么.解决方法您的常量数组是可选的.订阅字典总是返回一个可选项.你必须打开它.更

  10. ios – 在iphone xcode中存储纬度经度的最佳和最精确的数据类型是什么?

    我正在构建一个基于地理定位的应用程序,我想知道哪个数据类型最适合存储lat/long我使用doubleValue但我认为我们可以更精确地像10个小数位.解决方法double是iOS本身使用的值.iOS使用CLLocationdegrees来表示lat/long值,它是double的typedef.IMO,使用double/CLLocationdegrees将是最佳选择.

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到<input>中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部