Ejemplo n.º 1
0
        /// <summary>
        /// 批准流程
        /// </summary>
        /// <param name="releseProcess">LNQ数据集</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool ApproveInfo(FM_RevisedAbolishedBill raBill, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

                var varData = from a in ctx.FM_RevisedAbolishedBill
                              where a.BillNo == raBill.BillNo
                              select a;

                if (varData.Count() != 1)
                {
                    error = "数据错误";
                    return(false);
                }
                else
                {
                    FM_RevisedAbolishedBill lnqTemp = varData.Single();

                    lnqTemp.BillStatus     = "单据已完成";
                    lnqTemp.ApproverAdvise = raBill.ApproverAdvise;
                    lnqTemp.Approver       = BasicInfo.LoginName;
                    lnqTemp.ApproverTime   = ServerTime.Time;

                    if (lnqTemp.OperationFlag)
                    {
                        var varRegisterList = from a in ctx.FM_DistributionOfRecyclingRegisterList
                                              where a.FileID == lnqTemp.FileID &&
                                              a.RecoverPersonnel != null &&
                                              a.RecoverPersonnel.Trim().Length != 0
                                              select a;

                        if (varRegisterList.Count() != 0)
                        {
                            m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, lnqTemp.FileID, 10);
                        }
                        else
                        {
                            m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, lnqTemp.FileID, 11);
                        }
                    }
                }

                ctx.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
        /// <summary>
        /// 销毁
        /// </summary>
        /// <param name="fileID">文件ID</param>
        public void Destroy(int fileID)
        {
            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            var varData = from a in ctx.FM_DestroyLogList
                          where a.FileID == fileID
                          select a;

            if (varData.Count() != 1)
            {
                throw new Exception("数据错误");
            }
            else
            {
                FM_DestroyLogList lnqTemp = varData.Single();

                if (lnqTemp.Approver != null && lnqTemp.ApproverTime != null &&
                    lnqTemp.DestroyPersonnel == null && lnqTemp.DestroyTime == null)
                {
                    lnqTemp.DestroyPersonnel = BasicInfo.LoginName;
                    lnqTemp.DestroyTime      = ServerTime.Time;

                    m_serverBasicInfo.OperatorFTPSystemFile(ctx, lnqTemp.FileID, 0);
                }
                else
                {
                    throw new Exception("记录流程错误,请重新确认");
                }
            }

            ctx.SubmitChanges();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 替换文件的FTP操作
        /// </summary>
        /// <param name="ctx">LINQ数据上下文</param>
        /// <param name="fileID">文件ID</param>
        void RepalceFile(DepotManagementDataContext ctx, int fileID)
        {
            var varDORRList = from a in ctx.FM_DistributionOfRecyclingRegisterList
                              where a.FileID == fileID
                              select a;

            m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, fileID, varDORRList.Count() == 0 ? 11 : 10);
            //strVersion = (Convert.ToDouble(fileVersion) + 0.1).ToString();
        }
        /// <summary>
        /// 确认回收
        /// </summary>
        /// <param name="id">序号</param>
        public void Recover(int id)
        {
            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            try
            {
                var varData = from a in ctx.FM_DistributionOfRecyclingRegisterList
                              where a.ID == id
                              select a;

                if (varData.Count() != 1)
                {
                    throw new Exception("数据错误");
                }
                else
                {
                    FM_DistributionOfRecyclingRegisterList lnqTemp = varData.Single();

                    if (lnqTemp.RecoverPersonnel == null && lnqTemp.RecoverTime == null &&
                        lnqTemp.SignPersonnel != null && lnqTemp.SignTime != null)
                    {
                        lnqTemp.RecoverPersonnel = BasicInfo.LoginName;
                        lnqTemp.RecoverTime      = ServerTime.Time;

                        ctx.SubmitChanges();

                        varData = from a in ctx.FM_DistributionOfRecyclingRegisterList
                                  where a.FileID == lnqTemp.FileID &&
                                  a.RecoverPersonnel == null &&
                                  a.RecoverTime == null
                                  select a;

                        if (varData.Count() == 0 && m_serverBasicInfo.GetFile(lnqTemp.FileID).SortID == 10)
                        {
                            m_serverBasicInfo.OperatorFTPSystemFile(ctx, lnqTemp.FileID, 11);
                        }

                        ctx.SubmitChanges();
                    }
                    else
                    {
                        throw new Exception("记录流程错误,请重新确认");
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Ejemplo n.º 5
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);
            }
        }