public void SAP_OA_JK_08([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://jiuzhou.com/SAP_OA_JK_08")]ZRFC_HR_OA_003_REQ ZRFC_HR_OA_003_REQ){ oaApp.SaveOrUpdateStaffInfo(ZRFC_HR_OA_003_REQ); }
/// <summary> /// 员工信息推送 /// </summary> /// <param name="req"></param> public void SaveOrUpdateStaffInfo(ZRFC_HR_OA_003_REQ req) { ZRFC_HR_OA_003_HEAD[] heads = req.HEAD; ZRFC_HR_OA_RESP resp = new ZRFC_HR_OA_RESP(); // string xmlStr = ""; for (int i = 0; i < heads.Count(); i++) { Logger.Log("总共员工数:" + heads.Count().ToString()); resp.MSGTXT = ""; ZRFC_HR_OA_003_HEAD entity = heads[i]; //部门编号 string NACHN = entity.NACHN; //姓名 string PERNR = entity.PERNR; //员工编号 string PERSG = entity.PERSG; //员工组 string PERSK = entity.PERSK; //员工子组 string GESCH = entity.GESCH; //性别 //string ULONG = entity.USRID_LONG; //电子邮件 string USRID = entity.USRID; //手机 string OBJID_DEP = entity.OBJID_DEP; //所属部门编码 string ORGTX = entity.ORGTX; //所属部门名称 //string OBJID_COM = entity.OBJID_COM;//所属GSP部门编码 string OBJID_S = entity.OBJID_S; //岗位编码 string GBDAT = entity.GBDAT; //生日 string BEGDA = entity.BEGDA; //入职日期 string SYSTEM = entity.SYSTEM; //人员账号类别 //string LOGID = entity.LOGID;//人员账号 string STELL = entity.STELL; //职务编码 string STLTX = entity.STLTX; //职务文本 string STAT2 = entity.STAT2; //在职状态1:离职 2:退休 3:在职 string log = ""; #region 排除特殊情况 List <DbParameter> paramList = new List <DbParameter>(); string xmlStr = XmlSerializeHelper.XmlSerialize <ZRFC_HR_OA_003_HEAD>(entity) + "\r\n"; //Logger.Log(xmlStr); log = xmlStr; string[] idarray = { "4317", "4320", "4322", "4321", "4319", "4323", "4325", "4309", "4310", "4312", "4318", "4311", "4327", "4313", "4314" }; if (Array.IndexOf(idarray, PERNR.TrimStart('0')) > -1) { log = log + "排除特殊情况_人员" + "\r\n"; continue; } string[] stringdeptname = { "挂靠部门", "挂证部门", "虚拟组织" }; if (Array.IndexOf(stringdeptname, ORGTX) > -1) { log = log + "排除特殊情况_部门" + "\r\n"; continue; } #endregion #region //List<DbParameter> paramList = new List<DbParameter>(); //string xmlStr = XmlSerializeHelper.XmlSerialize<ZRFC_HR_OA_003_HEAD>(entity) + "\r\n"; //判断该账号是否存在 //if (string.IsNullOrEmpty(LOGID)) //{ // LOGID = PERNR; //} // 获取deptid #endregion string username = NACHN + "(sap)"; string p_sapid = PERNR.TrimStart('0'); string p_sapdeptid = OBJID_DEP; string p_sex = GESCH == "1" ? "0" : "1"; string p_mobil_no = string.IsNullOrEmpty(USRID) ? "" : USRID; string p_birthday = string.IsNullOrEmpty(GBDAT) ? "" : GBDAT; string p_not_login = string.IsNullOrEmpty(STAT2) ? "0" : (STAT2 == "3" ? "0" : "1"); //string ret_code; //string ret_msg; //生成用户账号 //IN p_username varchar(30),IN p_sapid varchar(30),IN p_sapdeptid int,IN p_sex varchar(30),IN p_mobil_no varchar(30),IN p_birthday varchar(30),IN p_not_login varchar(30),OUT ret_code INT,OUT ret_msg VARCHAR(30) // string tsql = "call proc_sap_addUser(@username,@p_sapid,@p_sapdeptid,@p_sex,@p_mobil_no,@p_birthday,@p_not_login,@ret_code,@ret_msg)"; string tsql = "call proc_sap_addUser(@username,@p_sapid,@p_sapdeptid,@p_sex,@p_mobil_no,@p_birthday,@p_not_login)"; paramList.Clear(); paramList.Add(oaDB.MakeInParam("username", username)); //姓名 paramList.Add(oaDB.MakeInParam("p_sapid", p_sapid)); //sapid todo去除前导0 paramList.Add(oaDB.MakeInParam("p_sapdeptid", p_sapdeptid)); //所属部门编码 paramList.Add(oaDB.MakeInParam("p_sex", p_sex)); //性别 paramList.Add(oaDB.MakeInParam("p_mobil_no", p_mobil_no)); //手机 paramList.Add(oaDB.MakeInParam("p_birthday", p_birthday)); //生日//在职状态1:离职 2:退休 3:在职 paramList.Add(oaDB.MakeInParam("p_not_login", p_not_login)); // //paramList.Add(oaDB.MakeParam("ret_msg", "", ParameterDirection.Output)); //paramList.Add(oaDB.MakeParam("ret_code", 0, ParameterDirection.Output)); log = log + (string.Format("{0}_{1}_{2}_{3}_{4}_{5}_{6}", username, p_sapid, p_sapdeptid, p_sex, p_mobil_no, p_birthday, p_not_login) + "\r\n"); DataSet pResult = oaDB.ExecuteDataset(CommandType.Text, tsql, paramList.ToArray()); //ret_code = paramList[7].Value.ToString(); //ret_msg = paramList[8].Value.ToString(); if (pResult != null && pResult.Tables.Count > 0) { DataRowCollection rows = pResult.Tables[0].Rows; if (rows.Count > 0) { DataRow row = rows[0]; if (Convert.ToInt16(row[1]) > 0) { // select ret_msg,ret_code,v_uid,p_username,p_sapid,p_sapdeptid,p_sex,p_mobil_no,p_birthday,v_wx_dept_id; CreateUser user = new CreateUser(); user.userid = row[2].ToString(); user.name = row[3].ToString(); user.mobile = row[7].ToString(); user.gender = GESCH == "1" ? "1" : "2"; user.email = ""; user.department = new List <int> { Convert.ToInt32(row[9]) }; user.to_invite = false; //更新数据 //log = log + (string.Format("{0}_{1}_{2}_{3}_{4}", user.userid, user.name, user.mobile, user.gender, Convert.ToInt32(row[9]))); if (Convert.ToInt16(row[1]) == 1) { //添加日志 if (user.mobile != "") { AccessTokenManage.UpdateUserApi(user, ref log); } else { log = log + "手机号为空不更新" + "\r\n"; } //AccessTokenManage.CreateUserApi(user); } //添加数据 if (Convert.ToInt16(row[1]) == 2) { AccessTokenManage.CreateUserApi(user, ref log); } } else { log = log + string.Format("存储过程值{0},描述{1}", row[0].ToString(), row[1]) + "\r\n"; //Logger.Log(string.Format("存储过程值{0},描述{1}", row[0].ToString(), row[1])); } //resp.MSGTXT += xmlStr + row[1].ToString() + "\r\n"; } } else { log = log + "存储过程范围值为空" + "\r\n"; //Logger.Log("存储过程范围值为空"); //resp.MSGTXT += xmlStr + "操作失败没有table" + "\r\n"; } Logger.Log(log); //loginfo.loginfor(resp.MSGTXT); } // } }