public JsonResult _Edit(Guid UploadOrderId, string htCode, string MMCoEImageOne, string MMCoEImageTwo, string MMCoEImageThree, int FileType, int IsAttentSame, string AttentSameReason, string SpecialReason, int IsAddFile, int IsMeetingInfoSame, string MeetingInfoSameReason, string Memo) { //用户信息 P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO; var uploadChannel = UploadOrderApiClientChannelFactory.GetChannel(); var userInfoChannel = UserInfoClientChannelFactory.GetChannel(); var orderChannel = OrderApiClientChannelFactory.GetChannel(); //DM var uploadInfo = uploadChannel.FindApproveInfo(userInfo.UserId); if (uploadInfo == null || uploadInfo.UserId == null) { return(Json(new { state = 0, txt = "您的直线经理信息有误,请隔日再尝试提交。", errCode = 6666 })); } var uploadInfoDMDelegate = userInfoChannel.isAgent(uploadInfo.UserId); //RM var uploaderRMInfo = new WP_QYUSER(); var uploaderRDInfo = new WP_QYUSER(); P_UserDelegate uploaderRDDelegate = null; if (uploadInfo != null && uploadInfo.UserId != null) { uploaderRMInfo = uploadChannel.FindApproveInfo(uploadInfo.UserId); if (uploaderRMInfo != null && uploaderRMInfo.UserId != null) { //RD/SD uploaderRDInfo = uploadChannel.FindApproveInfo(uploaderRMInfo.UserId); uploaderRDDelegate = userInfoChannel.isAgent(uploaderRDInfo.UserId); } } var uploadOrderInfo = uploadChannel.LoadPreUploadOrder(UploadOrderId); var orderInfo = orderChannel.FindOrderByCN(htCode); uploadOrderInfo.ModifyDate = DateTime.Now; //修改日期 uploadOrderInfo.State = "1"; uploadOrderInfo.BUHeadName = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.Name : uploaderRDDelegate.DelegateUserName) : (uploadInfoDMDelegate == null ? uploadInfo.Name : uploadInfoDMDelegate.DelegateUserName); //审批人姓名 uploadOrderInfo.BUHeadMUDID = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.UserId : uploaderRDDelegate.DelegateUserMUDID) : (uploadInfoDMDelegate == null ? uploadInfo.UserId : uploadInfoDMDelegate.DelegateUserMUDID); //审批人ID uploadOrderInfo.MMCoEImageOne = MMCoEImageOne; //上传文件1 uploadOrderInfo.MMCoEImageTwo = MMCoEImageTwo; //上传文件2 uploadOrderInfo.MMCoEImageThree = MMCoEImageThree; //上传文件2 uploadOrderInfo.IsAttentSame = IsAttentSame; uploadOrderInfo.AttentSameReason = AttentSameReason; uploadOrderInfo.SpecialReason = SpecialReason; uploadOrderInfo.IsAddFile = IsAddFile; uploadOrderInfo.IsMeetingInfoSame = IsMeetingInfoSame; uploadOrderInfo.MeetingInfoSameReason = MeetingInfoSameReason; uploadOrderInfo.Memo = Memo; if (orderInfo.IsTransfer == 1) { uploadOrderInfo.IsTransfer = orderInfo.IsTransfer; uploadOrderInfo.TransferUserName = orderInfo.TransferUserName; uploadOrderInfo.TransferUserMUDID = orderInfo.TransferUserMUDID; uploadOrderInfo.TransferOperatorName = orderInfo.TransferOperatorName; uploadOrderInfo.TransferOperatorMUDID = orderInfo.TransferOperatorMUDID; uploadOrderInfo.TransferOperateDate = orderInfo.TransferOperateDate; } uploadChannel.Update(uploadOrderInfo); P_OrderApproveHistory history = new P_OrderApproveHistory() { ID = Guid.NewGuid(), PID = UploadOrderId, UserName = CurrentWxUser.Name, UserId = CurrentWxUser.UserId, ActionType = 4, ApproveDate = DateTime.Now, type = 2 }; uploadChannel.AddOrderApproveHistory(history); WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(uploadOrderInfo); return(Json(new { state = 1 })); }
//[AdminSessionFilter(Order = 1)] //[PermissionFilter(Order = 2, Permission = "00000000-0000-0000-5000-000000000001")] public JsonResult SyncQyUser() { LogHelper.Info("SyncQyUser Start!"); string account = System.Configuration.ConfigurationManager.AppSettings["SFTPAccount"]; string pass = System.Configuration.ConfigurationManager.AppSettings["SFTPPass"]; SFTPOperation sftp = new SFTPOperation("esft-cn.gsk.com", "22", account, pass); //读取人员数据 var employeeFile = sftp.ReadFile("shared/UserList/EXP_EMPLOYEE_USER_LIST_WX_DD.CSV"); String csvSplitBy = "(?<=^|,)(\"(?:[^\"]|\"\")*\"|[^,]*)"; StreamReader sr = new StreamReader(employeeFile, System.Text.UTF8Encoding.UTF8); List <SyncUserInfo> syncUserInfo = new List <SyncUserInfo>(); DataTable dt = new DataTable(); int i = 0, m = 0; sr.Peek(); while (sr.Peek() > 0) { m = m + 1; string strd = sr.ReadLine(); if (m >= 0 + 1) { if (m == 0 + 1) //如果是字段行,则自动加入字段。 { MatchCollection mcs = Regex.Matches(strd, csvSplitBy); foreach (Match mc in mcs) { dt.Columns.Add(mc.Value); //增加列标题 } } else { MatchCollection mcs = Regex.Matches(strd, "(?<=^|,)(\"(?:[^\"]|\"\")*\"|[^,]*)"); i = 0; System.Data.DataRow dr = dt.NewRow(); foreach (Match mc in mcs) { dr[i] = mc.Value; i++; } dt.Rows.Add(dr); //DataTable 增加一行 } } } foreach (DataRow item in dt.Rows) { SyncUserInfo syncUser = new SyncUserInfo(); syncUser.ID = Guid.NewGuid(); syncUser.UserId = item[0].ToString().Replace("\"", "").Trim(); syncUser.UserName = item[1].ToString().Replace("\"", ""); syncUser.UserNo = item[3].ToString().Replace("\"", ""); syncUser.Email = item[4].ToString().Replace("\"", ""); syncUser.LineManager = item[8].ToString().Replace("\"", ""); syncUser.IsCurrent = item[9].ToString().Replace("\"", "") == "YES" ? 1 : 0; syncUser.Department = item[5].ToString().Replace("\"", ""); syncUser.Title = item[11].ToString().Replace("\"", "").Replace("?", "").Replace("?", "").Replace("�", "").Replace("㡰", ""); syncUserInfo.Add(syncUser); } //List<SyncUserInfo> syncUserInfo = new List<SyncUserInfo>(); //SyncUserInfo syncUser = new SyncUserInfo(); //syncUser.ID = Guid.NewGuid(); //syncUser.UserId = "yw960402"; //syncUser.UserName = "******"; //syncUser.UserNo = ""; //syncUser.Email = ""; //syncUser.LineManager = "jjz63156"; //syncUser.IsCurrent = 1; //syncUser.Department = ""; //syncUser.Title = ""; //syncUserInfo.Add(syncUser); //SyncUserInfo syncUser1 = new SyncUserInfo(); //syncUser1.ID = Guid.NewGuid(); //syncUser1.UserId = "jjz63156"; //syncUser1.UserName = "******"; //syncUser1.UserNo = ""; //syncUser1.Email = ""; //syncUser1.LineManager = "jfh21155"; //syncUser1.IsCurrent = 1; //syncUser1.Department = ""; //syncUser1.Title = ""; //syncUserInfo.Add(syncUser1); List <WP_QYUSER> qyUserList = new List <WP_QYUSER>(); List <WP_QYUSER> qyUserListLine2 = new List <WP_QYUSER>(); Guid weChatId = Guid.NewGuid(); foreach (var item in syncUserInfo.ToList()) { WP_QYUSER qyUser = new WP_QYUSER(); qyUser.ID = item.ID; qyUser.WechatID = weChatId; qyUser.Name = item.UserName; qyUser.UserId = item.UserId; qyUser.Email = item.Email; qyUser.CreateDate = DateTime.Now; qyUser.Creator = Guid.Empty; qyUser.ModifyDate = qyUser.CreateDate; qyUser.Modifier = qyUser.Creator; var lineManager = syncUserInfo.FirstOrDefault(p => p.UserId == item.LineManager); if (lineManager != null) { qyUser.LineManager = lineManager.UserId + "," + lineManager.UserName; qyUser.LineManagerID = lineManager.ID; } qyUser.State = item.IsCurrent == 1 ? 1 : 4; qyUser.DeptNames = item.Department; qyUser.Position = item.Title; qyUser.Gender = 0; qyUserList.Add(qyUser); } var LineManagerList = userInfoService.FindUserManagerInfo(); foreach (var item in syncUserInfo.ToList()) { WP_QYUSER qyUser = new WP_QYUSER(); qyUser.ID = item.ID; qyUser.WechatID = weChatId; qyUser.Name = item.UserName; qyUser.UserId = item.UserId; qyUser.Email = item.Email; qyUser.CreateDate = DateTime.Now; qyUser.Creator = Guid.Empty; qyUser.ModifyDate = qyUser.CreateDate; qyUser.Modifier = qyUser.Creator; var LineManager1 = LineManagerList.Where(x => x.UserId == item.UserId).FirstOrDefault(); if (LineManager1 != null && LineManager1.LineManagerId != null) { qyUser.LineManager = LineManager1.LineManagerId; } else { qyUser.LineManager = ""; } qyUser.State = item.IsCurrent == 1 ? 1 : 4; qyUser.DeptNames = item.Department; qyUser.Position = item.Title; qyUser.Gender = 0; qyUserListLine2.Add(qyUser); } if (qyUserList.Count > 0) { Task.Factory.StartNew(() => { try { userInfoService.SyncWorkDayUserInfo(qyUserList); } catch (Exception ex) { LogHelper.Error("SysUserError:Start"); LogHelper.Error(ex.Message); LogHelper.Error("SysUserError:End"); throw ex; } }); Task.Factory.StartNew(() => { try { LogHelper.Info("SyncQyUser Start!"); SyncPreChange(qyUserList, qyUserListLine2); } catch (Exception ex) { throw ex; } }); //对结果进行遍历 foreach (var item in qyUserList) { //查询用户是否有未完成的上传文件审批 var uploadOrderList = uploadOrderService.GetUploadOrderByUserId(item.UserId); foreach (var uploadOrder in uploadOrderList) { if (item.State != 4) { //判断未完成的订单是否审批人发生了变化 LogHelper.Info("SyncQyUser:UserID" + item.UserId); if (item.LineManager == null || item.LineManager == "") { continue; } var uploadInfoDMDelegate = userInfoService.isAgent(item.LineManager.Split(',')[0]); if (uploadInfoDMDelegate != null && uploadOrder.BUHeadMUDID.Equals(uploadInfoDMDelegate) && uploadOrder.IsReAssign == false) { continue; } if ((!uploadOrder.BUHeadMUDID.Equals(item.LineManager.Split(',')[0]) && uploadOrder.IsReAssign == false) || (uploadOrder.IsReAssign == true && !uploadOrder.ReAssignBUHeadMUDID.Equals(item.LineManager.Split(',')[0]))) { LogHelper.Info("SyncQyUser:LineManager" + item.LineManager); //将待审批上传文件转交给新的审批人 PreApprovalService.UpdatePuoReAssign(uploadOrder.ID.ToString(), "系统自动", "系统自动", item.LineManager.Split(',')[0], item.LineManager.Split(',')[1]); //发消息 var messageBase = "该订单已上传会议支持文件"; switch (uploadOrder.FileType) { case 1: messageBase = "该订单已提交退单原因"; break; case 2: messageBase = "该订单已提交会议支持文件丢失原因"; break; case 3: messageBase = "该订单已提交未送达,会议未正常召开原因"; break; } LogHelper.Info("SyncQyUser:HTCode" + uploadOrder.HTCode); var approverMsg = $"{uploadOrder.HTCode},{messageBase},请<a href='{ConfigurationManager.AppSettings["MealH5SiteUrl"]}/P/Upload/Approval?id={uploadOrder.ID}&from=0'>点击这里</a>进行审批。"; var rtnVal = WxMessageClientChannelFactory.GetChannel().SendText(item.LineManager.Split(',')[0], approverMsg); } } } } } LogHelper.Info("SyncQyUser Success!"); //new TaskPlanController().AutoTransfer(); return(Json(new { state = 1 })); }
public JsonResult _Submit(string htCode, string MMCoEImageOne, string MMCoEImageTwo, string MMCoEImageThree, int FileType, int IsAttentSame, string AttentSameReason, string SpecialReason, int IsAddFile, int IsMeetingInfoSame, string MeetingInfoSameReason, string Memo) { //用户信息 P_USERINFO userInfo = Session[MealH5.Util.ConstantHelper.CURRENTWXUSER] as P_USERINFO; var uploadChannel = UploadOrderApiClientChannelFactory.GetChannel(); var userInfoChannel = UserInfoClientChannelFactory.GetChannel(); var orderChannel = OrderApiClientChannelFactory.GetChannel(); //DM var uploadInfo = uploadChannel.FindApproveInfo(userInfo.UserId); if (uploadInfo == null || uploadInfo.UserId == null) { return(Json(new { state = 0, txt = "您的直线经理信息有误,请隔日再尝试提交。", errCode = 6666 })); } var uploadInfoDMDelegate = userInfoChannel.isAgent(uploadInfo.UserId); //RM var uploaderRMInfo = new WP_QYUSER(); var uploaderRDInfo = new WP_QYUSER(); P_UserDelegate uploaderRDDelegate = null; if (uploadInfo != null && uploadInfo.UserId != null) { uploaderRMInfo = uploadChannel.FindApproveInfo(uploadInfo.UserId); if (uploaderRMInfo != null && uploaderRMInfo.UserId != null) { //RD/SD uploaderRDInfo = uploadChannel.FindApproveInfo(uploaderRMInfo.UserId); uploaderRDDelegate = userInfoChannel.isAgent(uploaderRDInfo.UserId); } } var orderInfo = orderChannel.FindOrderByCN(htCode); var orderUpload = new P_PREUPLOADORDER(); orderUpload.ID = Guid.NewGuid(); orderUpload.ApplierName = orderInfo.IsTransfer == 0 ? userInfo.Name : orderInfo.Consignee; //登录人姓名 orderUpload.ApplierMUDID = orderInfo.IsTransfer == 0 ? userInfo.UserId : orderInfo.UserId; //登录人ID orderUpload.CreateDate = DateTime.Now; //创建日期 orderUpload.ModifyDate = orderUpload.CreateDate; //修改日期 orderUpload.HTCode = htCode; //HT编号 orderUpload.BUHeadName = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.Name : uploaderRDDelegate.DelegateUserName) : (uploadInfoDMDelegate == null ? uploadInfo.Name : uploadInfoDMDelegate.DelegateUserName); //审批人姓名 orderUpload.BUHeadMUDID = FileType == 2 ? (uploaderRDDelegate == null ? uploaderRDInfo.UserId : uploaderRDDelegate.DelegateUserMUDID) : (uploadInfoDMDelegate == null ? uploadInfo.UserId : uploadInfoDMDelegate.DelegateUserMUDID); //审批人ID orderUpload.IsReAssign = false; //是否重新分配 orderUpload.State = "1"; //状态 orderUpload.MMCoEImageOne = MMCoEImageOne; //上传文件1 orderUpload.MMCoEImageTwo = MMCoEImageTwo; //上传文件2 orderUpload.MMCoEImageThree = MMCoEImageThree; //上传文件2 orderUpload.FileType = FileType; orderUpload.IsAttentSame = IsAttentSame; orderUpload.AttentSameReason = AttentSameReason; orderUpload.SpecialReason = SpecialReason; orderUpload.IsAddFile = IsAddFile; orderUpload.IsMeetingInfoSame = IsMeetingInfoSame; orderUpload.MeetingInfoSameReason = MeetingInfoSameReason; orderUpload.Memo = Memo; if (orderInfo.IsTransfer == 1) { orderUpload.IsTransfer = orderInfo.IsTransfer; orderUpload.TransferUserName = orderInfo.TransferUserName; orderUpload.TransferUserMUDID = orderInfo.TransferUserMUDID; orderUpload.TransferOperatorName = orderInfo.TransferOperatorName; orderUpload.TransferOperatorMUDID = orderInfo.TransferOperatorMUDID; orderUpload.TransferOperateDate = orderInfo.TransferOperateDate; } var res = uploadChannel.Add(orderUpload); if (res > 0) { P_OrderApproveHistory history = new P_OrderApproveHistory() { ID = Guid.NewGuid(), PID = orderUpload.ID, UserName = userInfo.Name, UserId = userInfo.UserId, ActionType = 1, ApproveDate = DateTime.Now, type = 2 }; uploadChannel.AddOrderApproveHistory(history); WxMessageHandler.GetInstance().SendOrderStateChangeMessageToUser(orderUpload); return(Json(new { state = 1 })); } if (res == 0) { return(Json(new { state = 0, txt = "您的文件已经提交过,请勿重复提交。", errCode = 5555 })); } else { return(Json(new { state = 0 })); } }