예제 #1
0
        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 }));
        }
예제 #3
0
        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 }));
            }
        }