示例#1
0
 public void SAP_OA_JK_06([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://jiuzhou.com/SAP_OA_JK_06")]ZRFC_HR_OA_001_REQ ZRFC_HR_OA_001_REQ){
     oaApp.SaveOrUpdateDeptInfo(ZRFC_HR_OA_001_REQ);
 }
示例#2
0
        /// <summary>
        /// 集团组织架构推送
        /// </summary>
        /// <param name="ZRFC_HR_OA_001_REQ"></param>
        public void SaveOrUpdateDeptInfo(ZRFC_HR_OA_001_REQ req)
        {
            ZRFC_HR_OA_001_HEAD[] heads = req.HEAD;
            ZRFC_HR_OA_RESP       resp  = new ZRFC_HR_OA_RESP();

            for (int i = 0; i < heads.Count(); i++)
            {
                Logger.Log("总共部门数:" + heads.Count().ToString());
                ZRFC_HR_OA_001_HEAD entity = heads[i];
                //部门编号
                string sapdept_id = entity.BJID;
                string sappid     = entity.PUP;
                string dept_name  = entity.STEXT + "(sap)";
                string dept_no    = entity.NUM;
                string log        = "";
                string xmlStr     = XmlSerializeHelper.XmlSerialize <ZRFC_HR_OA_001_HEAD>(entity) + "\r\n";
                log += xmlStr;
                List <DbParameter> paramList = new List <DbParameter>();
                #region 排除特殊情况
                if (sapdept_id == "10000000")
                {
                    continue;
                }
                string[] stringdeptname = { "挂靠部门", "挂证部门", "虚拟组织" };
                if (Array.IndexOf(stringdeptname, entity.STEXT) > -1)
                {
                    log = log + "排除特殊情况_部门" + "\r\n";
                    //Logger.Log("排除特殊情况_部门");
                    continue;
                }
                // < BJID > 13000000 </ BJID >
                //< STEXT > 杭州九洲大药房连锁有限公司 </ STEXT >
                //< PUP > 10000000 </ PUP >
                //< NUM > 4 </ NUM >

                //< BJID > 50002303 </ BJID >
                //< STEXT > 商采中心 </ STEXT >
                //< PUP > 11000000 </ PUP >
                //< NUM > 23 </ NUM >
                #region 测试
                //List <DbParameter> paramList = new List<DbParameter>();
                //string sql = "SELECT DEPT_ID FROM department WHERE dept_name=@name";
                //paramList.Add(oaDB.MakeInParam("name", name+ "(新)"));
                //DataSet dataSet = oaDB.ExecuteDataset(CommandType.Text, sql, paramList.ToArray());
                //if (dataSet != null && dataSet.Tables.Count > 0)
                //{
                //    DataRowCollection rows = dataSet.Tables[0].Rows;
                //    if (rows.Count > 0)
                //    {
                //        DataRow row = rows[0];
                //        int DEPT_ID = Int32.Parse(row[0].ToString());
                //        //string SAP_DEPT_ID =row[1].ToString();
                //        string operate_sql = "UPDATE department SET SAP_DEPT_ID=@SAP_DEPT_ID WHERE DEPT_ID=@dept_id";
                //        paramList.Clear();
                //        paramList.Add(oaDB.MakeInParam("DEPT_ID", DEPT_ID));
                //        paramList.Add(oaDB.MakeInParam("SAP_DEPT_ID", bjid));
                //        num = oaDB.ExecuteNonQuery(CommandType.Text, operate_sql, paramList.ToArray());
                //    }
                //}
                #endregion
                //xmlStr = XmlSerializeHelper.XmlSerialize<ZRFC_HR_OA_001_HEAD>(entity) + "\r\n";
                #endregion
                //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_addDept(@p_sapdeptid,@p_sapparentdeptid,@p_deptname)";
                paramList.Clear();
                paramList.Add(oaDB.MakeInParam("p_sapdeptid", sapdept_id));   //
                paramList.Add(oaDB.MakeInParam("p_sapparentdeptid", sappid)); //
                paramList.Add(oaDB.MakeInParam("p_deptname", dept_name));     //
                //paramList.Add(oaDB.MakeParam("ret_msg", "", ParameterDirection.Output));
                //paramList.Add(oaDB.MakeParam("ret_code", 0, ParameterDirection.Output));
                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;
                            CreateDept dept = new CreateDept();
                            //dept.id = Convert.ToInt16(row[4]);
                            dept.name     = dept_name;
                            dept.parentid = Convert.ToInt16(row[5]);
                            //更新数据
                            log = log + string.Format("{0}_{1}", dept.name, dept.parentid) + "\r\n";
                            //Logger.Log(string.Format("{0}_{1}", dept.name, dept.parentid));
                            if (Convert.ToInt16(row[1]) == 1)
                            {
                                //添加日志
                                dept.id = Convert.ToInt16(row[4]);
                                AccessTokenManage.UpdateDeptApi(dept, ref log);
                            }
                            //添加数据
                            if (Convert.ToInt16(row[1]) == 2)
                            {
                                int id = AccessTokenManage.CreateDeptApi(dept, ref log);
                                if (id > 0)
                                {
                                    string updatewxdeptid = "update department set WEIXIN_DEPT_ID=@weixindeptid where  dept_id=@dept_id";
                                    paramList.Clear();
                                    paramList.Add(oaDB.MakeInParam("weixindeptid", id));
                                    paramList.Add(oaDB.MakeInParam("dept_id", Convert.ToInt16(row[2])));
                                    int issuc = oaDB.ExecuteNonQuery(CommandType.Text, updatewxdeptid, paramList.ToArray());
                                    if (issuc == 1)
                                    {
                                        log = log + string.Format("更新成功WEIXIN_DEPT_ID成功,WEIXIN_DEPT_ID{0}", id) + "\r\n";
                                    }
                                    else
                                    {
                                        log = log + "更新WEIXIN_DEPT_ID失败" + "\r\n";
                                    }
                                }
                            }
                        }
                        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);
            }
        }