Пример #1
0
        /// <summary>
        /// 更新流程
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="advise">意见</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool UpdateInfo(string billNo, string advise, out string error)
        {
            error = null;

            IBillMessagePromulgatorServer serverBill            = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>();
            ISystemFileBasicInfo          m_serverFileBasicInfo = Service_Quality_File.ServerModuleFactory.GetServerModule <ISystemFileBasicInfo>();
            FileServiceSocket             m_serverFTP           = new FileServiceSocket(GlobalObject.GlobalParameter.FTPServerIP,
                                                                                        GlobalObject.GlobalParameter.FTPServerAdvancedUser,
                                                                                        GlobalObject.GlobalParameter.FTPServerAdvancedPassword);

            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            try
            {
                var varData = from a in ctx.FM_InstitutionProcess
                              where a.BillNo == billNo
                              select a;

                FM_InstitutionProcess lnqProcess = varData.Single();

                serverBill.BillType = serverBill.GetBillTypeEnum(lnqProcess.TypeCode).ToString();
                CE_BillTypeEnum       billType   = GlobalObject.GeneralFunction.StringConvertToEnum <CE_BillTypeEnum>(serverBill.BillType);
                InstitutionBillStatus billStatus = GlobalObject.GeneralFunction.StringConvertToEnum <InstitutionBillStatus>(lnqProcess.BillStatus);

                var varList = from a in ctx.FM_InstitutionProcessPointDept
                              where a.BillNo == billNo
                              select a;

                FM_InstitutionProcessPointDept        lnqPoint = new FM_InstitutionProcessPointDept();
                List <FM_InstitutionProcessPointDept> list     = varList.ToList();
                List <string> listTemp = new List <string>();

                switch (billStatus)
                {
                case InstitutionBillStatus.新建流程:
                    break;

                case InstitutionBillStatus.等待科长审查:

                    lnqProcess.BillStatus  = InstitutionBillStatus.等待负责人审查.ToString();
                    lnqProcess.Chief       = BasicInfo.LoginName;
                    lnqProcess.ChiefAdvise = advise;
                    lnqProcess.ChiefTime   = ServerTime.Time;

                    serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                               BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptPrincipalRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList());
                    break;

                case InstitutionBillStatus.等待负责人审查:

                    lnqProcess.BillStatus           = InstitutionBillStatus.等待相关负责人审查.ToString();
                    lnqProcess.DepartmentHead       = BasicInfo.LoginName;
                    lnqProcess.DepartmentHeadAdvise = advise;
                    lnqProcess.DepartmentHeadTime   = ServerTime.Time;

                    if (billType == CE_BillTypeEnum.制度销毁申请流程)
                    {
                        lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList());
                    }
                    else
                    {
                        listTemp = (from a in list
                                    where a.PersonnelType == RoleStyle.负责人.ToString()
                                    select a.Personnel).ToList();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.用户, listTemp);
                    }

                    break;

                case InstitutionBillStatus.等待相关负责人审查:

                    lnqPoint = (from a in list
                                where a.Personnel == BasicInfo.LoginID &&
                                a.PersonnelType == RoleStyle.负责人.ToString()
                                select a).Single();

                    lnqPoint.PersonnelTime = ServerTime.Time;
                    lnqPoint.Advise        = advise;

                    var varHead = from a in list
                                  where a.PersonnelType == RoleStyle.负责人.ToString() &&
                                  a.PersonnelTime == null
                                  select a;

                    if (varHead.Count() == 0)
                    {
                        if (IsThreeTripFile(lnqProcess.SortID))
                        {
                            lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString();

                            serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                       BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList());
                        }
                        else
                        {
                            lnqProcess.BillStatus = InstitutionBillStatus.等待相关分管领导审查.ToString();

                            listTemp = (from a in list
                                        where a.PersonnelType == RoleStyle.分管领导.ToString()
                                        select a.Personnel).ToList();

                            serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                       BillFlowMessage_ReceivedUserType.用户, listTemp);
                        }
                    }
                    else
                    {
                        listTemp = (from a in varHead
                                    select a.Personnel).ToList();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.用户, listTemp);
                    }

                    break;

                case InstitutionBillStatus.等待相关分管领导审查:
                    lnqPoint = (from a in list
                                where a.Personnel == BasicInfo.LoginID &&
                                a.PersonnelType == RoleStyle.分管领导.ToString()
                                select a).Single();

                    lnqPoint.PersonnelTime = ServerTime.Time;
                    lnqPoint.Advise        = advise;

                    var varLead = from a in list
                                  where a.PersonnelType == RoleStyle.分管领导.ToString() &&
                                  a.PersonnelTime == null
                                  select a;

                    if (varLead.Count() == 0)
                    {
                        lnqProcess.BillStatus = InstitutionBillStatus.等待总经理审查.ToString();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.总经理.ToString());
                    }
                    else
                    {
                        listTemp = (from a in varLead
                                    select a.Personnel).ToList();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.用户, listTemp);
                    }

                    break;

                case InstitutionBillStatus.等待分管领导审查:
                case InstitutionBillStatus.等待总经理审查:

                    lnqProcess.BillStatus           = InstitutionBillStatus.流程已结束.ToString();
                    lnqProcess.GeneralManager       = BasicInfo.LoginName;
                    lnqProcess.GeneralManagerAdvise = advise;
                    lnqProcess.GeneralManagerTime   = ServerTime.Time;

                    FM_FileList fileInfo = new FM_FileList();

                    if (lnqProcess.FileID != null)
                    {
                        var varFileInfo = from a in ctx.FM_FileList
                                          where a.FileID == lnqProcess.FileID
                                          select a;

                        if (varFileInfo.Count() == 1)
                        {
                            fileInfo = varFileInfo.Single();
                        }
                    }

                    if (billType == CE_BillTypeEnum.制度发布流程)
                    {
                        string strVersion = "1.0";

                        if (lnqProcess.ReplaceFileID == null)
                        {
                            DataTable dtTemp = m_serverFileBasicInfo.GetFilesInfo(lnqProcess.FileNo, null);
                        }
                        else
                        {
                            m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, Convert.ToInt32(lnqProcess.ReplaceFileID), 29);
                            strVersion =
                                (Convert.ToDouble(m_serverFileBasicInfo.GetFile(Convert.ToInt32(lnqProcess.ReplaceFileID)).Version) + 0.1).ToString();
                        }

                        FM_FileList lnqFile = new FM_FileList();

                        lnqFile.Department = lnqProcess.Department;
                        lnqFile.FileName   = lnqProcess.FileName;
                        lnqFile.FileNo     = lnqProcess.FileNo;
                        lnqFile.FileUnique = lnqProcess.FileUnique;
                        lnqFile.SortID     = lnqProcess.SortID;
                        lnqFile.Version    = strVersion;

                        ctx.FM_FileList.InsertOnSubmit(lnqFile);

                        if (m_serverFTP.Errormessage.Length != 0)
                        {
                            throw new Exception(m_serverFTP.Errormessage);
                        }
                    }
                    else if (billType == CE_BillTypeEnum.制度修订废弃申请流程 && lnqProcess.OperationMode == "废弃")
                    {
                        if (fileInfo != null)
                        {
                            fileInfo.SortID = 29;
                        }
                    }
                    else if (billType == CE_BillTypeEnum.制度销毁申请流程)
                    {
                        ctx.FM_FileList.DeleteOnSubmit(fileInfo);
                    }

                    serverBill.EndFlowMessage(lnqProcess.BillNo,
                                              string.Format("{0}号文件审查流程已结束", lnqProcess.BillNo), null,
                                              (from a in varList select a.Personnel).ToList());

                    break;

                case InstitutionBillStatus.流程已结束:
                    break;

                default:
                    break;
                }

                ctx.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// 添加信息
        /// </summary>
        /// <param name="institution">LINQ信息</param>
        /// <param name="deptList">部门信息</param>
        /// <param name="billEnum">单据类型</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True</returns>
        public bool AddInfo(FM_InstitutionProcess institution, List <string> deptList, out string error)
        {
            error = null;

            DepotManagementDataContext    ctx        = CommentParameter.DepotDataContext;
            IBillMessagePromulgatorServer serverBill = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>();

            serverBill.BillType = serverBill.GetBillTypeEnum(institution.TypeCode).ToString();

            try
            {
                institution.Propoer     = BasicInfo.LoginName;
                institution.PropoerTime = ServerTime.Time;
                institution.BillStatus  = InstitutionBillStatus.等待科长审查.ToString();

                ctx.FM_InstitutionProcess.InsertOnSubmit(institution);

                List <FM_InstitutionProcessPointDept> listPoint = new List <FM_InstitutionProcessPointDept>();
                FM_InstitutionProcessPointDept        tempLnq   = new FM_InstitutionProcessPointDept();

                if (deptList != null)
                {
                    foreach (string item in deptList)
                    {
                        List <string> list = serverBill.GetUserCodes(serverBill.GetDeptPrincipalRoleName(item).ToList(), null);
                        foreach (string workID in list)
                        {
                            tempLnq = new FM_InstitutionProcessPointDept();

                            tempLnq.BillNo        = institution.BillNo;
                            tempLnq.PersonnelType = RoleStyle.负责人.ToString();
                            tempLnq.Personnel     = workID;

                            listPoint.Add(tempLnq);
                        }

                        if (!IsThreeTripFile(institution.SortID))
                        {
                            list = serverBill.GetUserCodes(serverBill.GetDeptLeaderRoleName(item).ToList(), null);
                            foreach (string workID in list)
                            {
                                tempLnq = new FM_InstitutionProcessPointDept();

                                tempLnq.BillNo        = institution.BillNo;
                                tempLnq.PersonnelType = RoleStyle.分管领导.ToString();
                                tempLnq.Personnel     = workID;

                                listPoint.Add(tempLnq);
                            }
                        }
                    }

                    var varData = (from a in listPoint
                                   select new { a.BillNo, a.Personnel, a.PersonnelType }).Distinct();

                    listPoint = new List <FM_InstitutionProcessPointDept>();

                    foreach (var item in varData)
                    {
                        tempLnq = new FM_InstitutionProcessPointDept();

                        tempLnq.PersonnelType = item.PersonnelType;
                        tempLnq.Personnel     = item.Personnel;
                        tempLnq.BillNo        = item.BillNo;

                        listPoint.Add(tempLnq);
                    }

                    ctx.FM_InstitutionProcessPointDept.InsertAllOnSubmit(listPoint);
                }

                ctx.SubmitChanges();

                serverBill.DestroyMessage(institution.BillNo);
                serverBill.SendNewFlowMessage(institution.BillNo,
                                              string.Format("{0}号文件审查流程已提交,请等待上级审核", institution.BillNo),
                                              BillFlowMessage_ReceivedUserType.角色, serverBill.GetSuperior(CE_RoleStyleType.级领导, BasicInfo.LoginID));

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }