예제 #1
0
 //[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
 public List <V_BumfCompanySendDoc> GetSendDocInfosListByWorkFlow(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
 {
     try
     {
         using (BumfCompanySendDocManagementBll SendDocBll = new BumfCompanySendDocManagementBll())
         {
             List <V_BumfCompanySendDoc> CompanyDocList = null;
             if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的公司文档信息
             {
                 //List<V_ArchivesLending> CompanyDocList = archivesLendingBll.GetArchivesLendingInfo(userID, searchObj, null, checkState);
                 if (checkState != ((int)CheckStates.ALL).ToString())
                 {
                     CompanyDocList = SendDocBll.GetSendDocInfosListByTypeCompanyDepartmentSearch(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID);
                 }
                 else
                 {
                     CompanyDocList = SendDocBll.GetSendDocInfosListByTypeCompanyDepartmentSearch(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID);
                 }
             }
             else                    //通过工作流获取公司文档信息
             {
                 ServiceClient             workFlowWS = new ServiceClient();
                 V_BumfCompanySendDoc      a          = new V_BumfCompanySendDoc();
                 FLOW_FLOWRECORDDETAIL_T   flowInfo   = new FLOW_FLOWRECORDDETAIL_T(); //审核人 操作
                 FLOW_FLOWRECORDDETAIL_T[] flowList   = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_SENDDOC", loginUserInfo.companyID, loginUserInfo.userID);
                 if (flowList == null)
                 {
                     return(null);
                 }
                 List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
                 for (int i = 0; i < flowList.Length; i++)
                 {
                     V_FlowAPP App = new V_FlowAPP();
                     App.Guid         = flowList[i].FLOWRECORDDETAILID;
                     App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                     App.EditUserID   = flowList[i].EDITUSERID;
                     App.EditUserName = flowList[i].EDITUSERNAME;
                     flowAppList.Add(App);
                 }
                 checkState     = ((int)CheckStates.Approving).ToString();
                 CompanyDocList = SendDocBll.GetSendDocInfosListByTypeCompanyDepartmentSearch(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID);
             }
             return(CompanyDocList != null ? CompanyDocList : null);
         }
     }
     catch (Exception ex)
     {
         Tracer.Debug("CompanySendDoc:" + System.DateTime.Now.ToString("d") + " " + ex.ToString());
         return(null);
     }
 }
예제 #2
0
        [OperationContract]//查询合同查看申请
        public List <V_ContractView> GetInquiryViewContractApplication(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (ContractViewapplicationsBLL cvb = new ContractViewapplicationsBLL())
            {
                List <V_ContractView> ContractViewList = null;
                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的提交申请信息
                {
                    //List<V_ContractView> ContractViewList = cab.GetInquiryViewContractApplication(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, checkState);
                    if (checkState != ((int)CheckStates.ALL).ToString())
                    {
                        ContractViewList = cvb.GetInquiryViewContractApplication(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID);
                    }
                    else
                    {
                        ContractViewList = cvb.GetInquiryViewContractApplication(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID);
                    }
                    return(ContractViewList != null?ContractViewList.ToList() : null);
                }
                else                                                                    //通过工作流获取用户要审批的申请信息
                {
                    FLOW_FLOWRECORDDETAIL_T   flowInfo = new FLOW_FLOWRECORDDETAIL_T(); //审核人 操作
                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_CONTRACTVIEW", loginUserInfo.companyID, loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return(null);
                    }
                    List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {
                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid         = flowList[i].FLOWRECORDDETAILID;
                        App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID   = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState = ((int)CheckStates.Approving).ToString();

                    ContractViewList = cvb.GetInquiryViewContractApplication(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID);
                    if (ContractViewList == null)
                    {
                        return(null);
                    }
                    else
                    {
                        return(ContractViewList.ToList());
                    }
                }
            }
        }
예제 #3
0
        public List <V_WelfareStandard> GetWelfareListByUserId(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (BenefitsAdministrationBLL bal = new BenefitsAdministrationBLL())
            {
                List <V_WelfareStandard> ArchivesList = null;
                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的提交申请信息
                {
                    //List<V_WelfareStandard> ArchivesList = bal.GetWelfareInfo(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, checkState, loginUserInfo.userID);
                    if (checkState != ((int)CheckStates.ALL).ToString())
                    {
                        ArchivesList = bal.GetWelfareInfo(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID);
                    }
                    else
                    {
                        ArchivesList = bal.GetWelfareInfo(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID);
                    }
                    return(ArchivesList != null?ArchivesList.ToList() : null);
                }
                else                                                                    //通过工作流获取用户要审批的申请信息
                {
                    FLOW_FLOWRECORDDETAIL_T   flowInfo = new FLOW_FLOWRECORDDETAIL_T(); //审核人 操作
                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_WELFAREMASERT", loginUserInfo.companyID, loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return(null);
                    }
                    List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {
                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid         = flowList[i].FLOWRECORDDETAILID;
                        App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID   = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState = ((int)CheckStates.Approving).ToString();

                    ArchivesList = bal.GetWelfareInfo(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID);
                    if (ArchivesList == null)
                    {
                        return(null);
                    }
                    else
                    {
                        return(ArchivesList.ToList());
                    }
                }
            }
        }
예제 #4
0
 public int SubmitComment(FLOW_FLOWRECORDDETAIL_T flowRecordInfo, string toUserId, string empComment)
 {
     //FLOW_FLOWRECORDDETAIL_T[] result = workFlowWS.GetFlowInfo(flowRecordInfo);
     //flowRecordInfo = result[0];
     //flowRecordInfo.Content = empComment;
     //if (workFlowWS.StartFlow(flowRecordInfo, "", toUserId, "Update") == "OK")
     //{
     //    return 1;
     //}
     //else
     //{
     //    return -1;
     //}
     return(1);
 }
예제 #5
0
        public List <V_MeetingRoomApp> GetMeetingRoomAppInfosByFlow(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (MeetingRoomAppManagementBll RoomAppBll = new MeetingRoomAppManagementBll())
            {
                IQueryable <V_MeetingRoomApp> RoomAppsList = null;

                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取待审核信息
                {
                    if (checkState == ((int)CheckStates.ALL).ToString())
                    {
                        RoomAppsList = RoomAppBll.GetMeetingRoomAppInfosByFlow(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID);
                    }
                    else
                    {
                        RoomAppsList = RoomAppBll.GetMeetingRoomAppInfosByFlow(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID);
                    }
                }
                else
                {
                    ServiceClient           workFlowWS = new ServiceClient();
                    V_MeetingRoomApp        a          = new V_MeetingRoomApp();
                    FLOW_FLOWRECORDDETAIL_T flowInfo   = new FLOW_FLOWRECORDDETAIL_T(); //审核人 操作

                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "MeetingRoomApp", loginUserInfo.companyID, loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return(null);
                    }
                    List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {
                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid         = flowList[i].FLOWRECORDDETAILID;
                        App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID   = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState   = ((int)CheckStates.Approving).ToString();
                    RoomAppsList = RoomAppBll.GetMeetingRoomAppInfosByFlow(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID);
                }
                return(RoomAppsList != null?RoomAppsList.ToList() : null);
            }
        }
예제 #6
0
        public List <T_OA_LENDARCHIVES> GetLendingListByUserId(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (ArchivesLendingBll archivesLendingBll = new ArchivesLendingBll())
            {
                IQueryable <T_OA_LENDARCHIVES> ArchivesList = null;

                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的提交借阅信息
                {
                    if (checkState != ((int)CheckStates.ALL).ToString())
                    {
                        ArchivesList = archivesLendingBll.GetArchivesLendingInfoQueryWithPaging(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID);
                    }
                    else
                    {
                        ArchivesList = archivesLendingBll.GetArchivesLendingInfoQueryWithPaging(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID);
                    }
                }
                else                    //通过工作流获取用户要审批的借阅信息
                {
                    V_ArchivesLending       a        = new V_ArchivesLending();
                    FLOW_FLOWRECORDDETAIL_T flowInfo = new FLOW_FLOWRECORDDETAIL_T();   //审核人 操作
                    //FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "0", "archivesLending", loginUserInfo.companyID, loginUserInfo.userID);
                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "archivesLending", "", loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return(null);
                    }
                    List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {
                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid         = flowList[i].FLOWRECORDDETAILID;
                        App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID   = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState   = ((int)CheckStates.Approving).ToString();
                    ArchivesList = archivesLendingBll.GetArchivesLendingInfoQueryWithPaging(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID);
                }
                return(ArchivesList != null?ArchivesList.ToList() : null);
            }
        }
예제 #7
0
 public List <V_TravelReimbursement> GetTravelReimbursementListByUserId(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
 {
     using (TravelReimbursementBLL TrBll = new TravelReimbursementBLL())
     {
         List <V_TravelReimbursement> ArchivesList = null;
         if (checkState != ((int)CheckStates.WaittingApproval).ToString())//获取用户的提交报销信息
         {
             if (checkState != ((int)CheckStates.ALL).ToString())
             {
                 ArchivesList = TrBll.GetTravelReimbursementInfo(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID);
             }
             else
             {
                 ArchivesList = TrBll.GetTravelReimbursementInfo(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID);
             }
             return(ArchivesList != null?ArchivesList.ToList() : null);
         }
         else                                                                    //通过工作流获取用户要审批的报销信息
         {
             FLOW_FLOWRECORDDETAIL_T   flowInfo = new FLOW_FLOWRECORDDETAIL_T(); //审核人 操作
             FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_TRAVELREIMBURSEMENT", loginUserInfo.companyID, loginUserInfo.userID);
             if (flowList == null)
             {
                 return(null);
             }
             List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
             for (int i = 0; i < flowList.Length; i++)
             {
                 V_FlowAPP App = new V_FlowAPP();
                 App.Guid         = flowList[i].FLOWRECORDDETAILID;
                 App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                 App.EditUserID   = flowList[i].EDITUSERID;
                 App.EditUserName = flowList[i].EDITUSERNAME;
                 flowAppList.Add(App);
             }
             checkState   = ((int)CheckStates.Approving).ToString();
             ArchivesList = TrBll.GetTravelReimbursementInfo(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID);
         }
         return(ArchivesList != null?ArchivesList.ToList() : null);
     }
 }
예제 #8
0
        public int SubmitFlow(T_OA_MEETINGINFO obj, FLOW_FLOWRECORDDETAIL_T flowRecordInfo, string toUserId)
        {
            using (MeetingManagementBll MeetingInfoBLL = new MeetingManagementBll())
            {
                MeetingInfoBLL.BeginTransaction();

                int nRet = MeetingInfoBLL.UpdateMeetingInfo(obj);
                if (nRet != 1)
                {
                    MeetingInfoBLL.RollbackTransaction();
                    return(-1);
                }
                //if (workFlowWS.StartFlow(flowRecordInfo, "", toUserId, "Add") != "OK")
                //{
                //    MeetingInfoBLL.RollbackTransaction();
                //    return -1;
                //}
                MeetingInfoBLL.CommitTransaction();
                return(1);
            }
        }
예제 #9
0
        public int SubmitCompanyDocFlow(T_OA_SENDDOC obj, FLOW_FLOWRECORDDETAIL_T flowRecordInfo, string toUserId)
        {
            using (BumfCompanySendDocManagementBll SendDocBll = new BumfCompanySendDocManagementBll())
            {
                SendDocBll.BeginTransaction();

                string nRet = this.SendDocAdd(obj); //添加公文文档信息
                if (nRet != "")
                {
                    SendDocBll.RollbackTransaction();
                    return(-1);
                }
                //if (workFlowWS.StartFlow(flowRecordInfo, "", toUserId, "Add") != "OK")
                //{
                //    SendDocBll.RollbackTransaction();
                //    return -1;
                //}
                SendDocBll.CommitTransaction();
                return(1);
            }
        }
예제 #10
0
        void auditService_GetFlowInfoCompleted(object sender, GetFlowInfoCompletedEventArgs e)
        {
            //为NULL 代表为新记录
            if (e.Result == null)
            {
                //若无结果则显示 无信息面板     
                //IsShowKPIScorePnl = false;
                ShowKPIScoreTabItem(false);
                return;
            }
            else
            {

                //获取审核信息列表,若无审核记录则表明用户未曾提交过流程,否则 则可能为审核中或完成
                //var items = from item in e.Result
                //            where item.STATECODE.ToUpper() != "STARTFLOW"
                //            orderby item.EDITDATE
                //            select item;
                var items = from item in e.Result
                            orderby item.EDITDATE
                            select item;

                if (items.ToList().Count > 0)
                {
                    #region 数据审核
                    this.AuditEntityList = items.ToList();

                    //审核记录
                    List<FLOW_FLOWRECORDDETAIL_T> list = this.AuditEntityList;
                    if (FlowStateCode != null)
                    {
                        //获取第一个符合条件的实体数据
                        FLOW_FLOWRECORDDETAIL_T currentFlow = this.AuditEntityList.FirstOrDefault(item => item.STATECODE == FlowStateCode);
                        //流程结束 如果有抽查打分 需要获取最后流程的最后两个节点
                        if (currentFlow == null && FlowStateCode.ToUpper() == "ENDFLOW")
                        {
                            currentFlow = AuditEntityList.OrderByDescending(s => s.EDITDATE).FirstOrDefault();
                        }
                        //若不为NULL 则表示需要当前用户进行审批
                        if (currentFlow != null)
                        {
                            //判断流程审批与逐级审批
                            IsFixedFlow = (currentFlow.FLOW_FLOWRECORDMASTER_T.FLOWSELECTTYPE == "0") ? true : false;
                            if (IsFixedFlow)
                            {

                                FLOW_FLOWRECORDDETAIL_T parentFlow = this.AuditEntityList.FirstOrDefault(item =>
                                {
                                    return item.FLOWRECORDDETAILID == currentFlow.PARENTSTATEID;
                                });
                                if (parentFlow == null)
                                {
                                    ShowKPIScoreTabItem(false);
                                    return;
                                }
                                else
                                {
                                    FLOW_FLOWRECORDDETAIL_T preParentFlow = this.AuditEntityList.FirstOrDefault(item =>
                                    {
                                        return item.FLOWRECORDDETAILID == parentFlow.PARENTSTATEID;
                                    });
                                    if (preParentFlow == null)
                                    {
                                        preParentFlow = new FLOW_FLOWRECORDDETAIL_T();
                                        preParentFlow.STATECODE = "";
                                        preParentFlow.EDITDATE = parentFlow.CREATEDATE;
                                        preParentFlow.EDITUSERID = parentFlow.EDITUSERID;
                                    }
                                    if (FlowStateCode.ToUpper() == "ENDFLOW")
                                    {
                                        InitialInfo(currentFlow.CREATECOMPANYID, AuditEntity.ModelCode, currentFlow.STATECODE, currentFlow.STATECODE, AuditEntity.FormID,
                                                    currentFlow.FLOWRECORDDETAILID, currentFlow.FLOWRECORDDETAILID, currentFlow.CREATEDATE.Value,
                                                    currentFlow.EDITDATE.Value, currentFlow.EDITUSERID, currentFlow.EDITUSERID);
                                    }
                                    else
                                    {
                                        InitialInfo(currentFlow.CREATECOMPANYID, AuditEntity.ModelCode, parentFlow.STATECODE, preParentFlow.STATECODE, AuditEntity.FormID,
                                                   parentFlow.FLOWRECORDDETAILID, preParentFlow.FLOWRECORDDETAILID, preParentFlow.EDITDATE.Value,
                                                   parentFlow.EDITDATE.Value, parentFlow.EDITUSERID, parentFlow.EDITUSERID);
                                    }
                                }
                            }
                            else
                            {
                                ShowKPIScoreTabItem(false);
                                return;
                            }
                        }
                        else
                        {

                        }
                    }
                    #region
                    else
                    {
                        //获取第一个符合条件的实体数据
                        FLOW_FLOWRECORDDETAIL_T currentFlow = this.AuditEntityList.FirstOrDefault(item =>
                        {
                            //当前用户是否为审核用户
                            bool bUser = item.EDITUSERID == AuditEntity.EditUserID;
                            bool bResult = item.FLAG == "0";//0:未处理,1:已处理
                            return bResult && bUser;
                        });
                        //若不为NULL 则表示需要当前用户进行审批
                        if (currentFlow != null)
                        {
                            //判断流程审批与逐级审批
                            IsFixedFlow = (currentFlow.FLOW_FLOWRECORDMASTER_T.FLOWSELECTTYPE == "0") ? true : false;
                            if (IsFixedFlow)
                            {
                                //流程审核
                                // 1s 冉龙军 来自审核控件
                                list.Remove(currentFlow);
                                AuditEntity.ModelCode = currentFlow.FLOW_FLOWRECORDMASTER_T.MODELCODE;
                                AuditEntity.GUID = currentFlow.FLOWRECORDDETAILID;
                                currentFLOWRECORDDETAIL = currentFlow;

                                #region 显示控件(来自审核控件ShowKPI(AuditOperation auditOperation, AuditAction action))
                                if (currentFLOWRECORDDETAIL == null)
                                {
                                    //IsShowKPIScorePnl = false;
                                    ShowKPIScoreTabItem(false);
                                    return;
                                }
                                FLOW_FLOWRECORDDETAIL_T c = currentFLOWRECORDDETAIL;

                                FLOW_FLOWRECORDDETAIL_T parentFlow = this.AuditEntityList.FirstOrDefault(item =>
                                {
                                    return item.FLOWRECORDDETAILID == c.PARENTSTATEID;
                                });
                                if (parentFlow == null)
                                {
                                    parentFlow = new FLOW_FLOWRECORDDETAIL_T();
                                    parentFlow.STATECODE = "";
                                    parentFlow.EDITDATE = c.CREATEDATE;
                                    parentFlow.EDITUSERID = c.EDITUSERID;
                                }
                                //初始化控件
                                //InitialInfo(c.CREATECOMPANYID, AuditEntity.ModelCode, c.STATECODE, parentFlow.STATECODE, AuditEntity.FormID,
                                //            c.FLOWRECORDDETAILID, parentFlow.FLOWRECORDDETAILID, parentFlow.EDITDATE.Value,
                                //            System.DateTime.Now, parentFlow.EDITUSERID, c.EDITUSERID);
                                // 2s 冉龙军
                                // 需求错了
                                //InitialInfo(c.CREATECOMPANYID, AuditEntity.ModelCode, c.STATECODE, parentFlow.STATECODE, AuditEntity.FormID,
                                //            c.FLOWRECORDDETAILID, parentFlow.FLOWRECORDDETAILID, parentFlow.EDITDATE.Value,
                                //            c.EDITDATE.Value, parentFlow.EDITUSERID, c.EDITUSERID);
                                if (parentFlow != null)
                                {
                                    FLOW_FLOWRECORDDETAIL_T preParentFlow = this.AuditEntityList.FirstOrDefault(item =>
                                    {
                                        return item.FLOWRECORDDETAILID == parentFlow.PARENTSTATEID;
                                    });
                                    if (preParentFlow == null)
                                    {
                                        preParentFlow = new FLOW_FLOWRECORDDETAIL_T();
                                        preParentFlow.STATECODE = "";
                                        preParentFlow.EDITDATE = parentFlow.CREATEDATE;
                                        preParentFlow.EDITUSERID = parentFlow.EDITUSERID;
                                    }
                                    InitialInfo(c.CREATECOMPANYID, AuditEntity.ModelCode, parentFlow.STATECODE, preParentFlow.STATECODE, AuditEntity.FormID,
                                                parentFlow.FLOWRECORDDETAILID, preParentFlow.FLOWRECORDDETAILID, preParentFlow.EDITDATE.Value,
                                                parentFlow.EDITDATE.Value, parentFlow.EDITUSERID, parentFlow.EDITUSERID);

                                }
                                else
                                {
                                    ShowKPIScoreTabItem(false);
                                    return;
                                }
                                // 2e
                                #endregion
                                // 1e
                            }
                            else
                            {
                                //逐级审核
                                //IsShowKPIScorePnl = false;
                                ShowKPIScoreTabItem(false);
                            }

                        }
                        else
                        {
                            //审核结束
                            //IsShowKPIScorePnl = false;
                            ShowKPIScoreTabItem(false);
                            IsAuditUser = false;
                            //获取第一个符合条件的实体数据
                            currentFlow = this.AuditEntityList.FirstOrDefault(item =>
                            {
                                //当前用户是否为审核用户
                                bool bUser = item.EDITUSERID != AuditEntity.EditUserID;
                                bool bResult = item.FLAG == "0";//0:未处理,1:已处理
                                return bResult && bUser;
                            });
                            //若不为NULL 则表示需要当前用户进行审批
                            if (currentFlow != null)
                            {
                                // 1s 冉龙军 来自审核控件
                                list.Remove(currentFlow);
                                AuditEntity.ModelCode = currentFlow.FLOW_FLOWRECORDMASTER_T.MODELCODE;
                                AuditEntity.GUID = currentFlow.FLOWRECORDDETAILID;
                                currentFLOWRECORDDETAIL = currentFlow;

                                //显示控件
                                if (currentFLOWRECORDDETAIL == null)
                                {
                                    //IsShowKPIScorePnl = false;
                                    ShowKPIScoreTabItem(false);
                                    return;
                                }
                                FLOW_FLOWRECORDDETAIL_T c = currentFLOWRECORDDETAIL;

                                FLOW_FLOWRECORDDETAIL_T parentFlow = this.AuditEntityList.FirstOrDefault(item =>
                                {
                                    return item.FLOWRECORDDETAILID == c.PARENTSTATEID;
                                });
                                if (parentFlow == null)
                                {
                                    parentFlow = new FLOW_FLOWRECORDDETAIL_T();
                                    parentFlow.STATECODE = "";
                                    parentFlow.EDITDATE = c.CREATEDATE;
                                    parentFlow.EDITUSERID = c.EDITUSERID;
                                }
                                this.lastStepDate = parentFlow.EDITDATE.Value;
                                this.stepDate = c.EDITDATE.Value;
                                //是否抽查打分
                                // 2s 冉龙军
                                //client.GetKPIRecordAsync(this.AuditEntity.FormID, this.AuditEntity.FlowCode, currentFlow.STATECODE);
                                // client.GetKPIRecordAsync(this.AuditEntity.FormID, this.AuditEntity.FlowCode, parentFlow.STATECODE, "Flow");
                                // 2e
                                //client.GetKPIRecordRandomPersonIDAsync(this.AuditEntity.FormID, this.AuditEntity.FlowCode, currentFlow.STATECODE);

                            }
                        }
                    }
                    #endregion

                    #endregion
                    //if (IsKpi == "1")
                    //{
                    //    IsShowKPIScorePnl = true;
                    //    ShowKPIScoreTabItem(true);
                    //}
                }
                else
                {
                    //数据未曾提交成功,需要重新 提交审核
                    //IsShowKPIScorePnl = false;
                    ShowKPIScoreTabItem(false);
                }
            }

            // 1s 冉龙军 (待续)
            //if (OnBindingDataCompleted.IsNotNull())
            //    OnBindingDataCompleted(this, EventArgs.Empty);
            // 1e
        }
예제 #11
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
 /// <summary>
 /// 更新[流程审批明细表]
 /// </summary>
 /// <param name="entity">流程审批明细表</param>
 /// <returns></returns>
 public FLOW_FLOWRECORDDETAIL_T UpdateFlowRecord2(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity)
 {
     FLOW_FLOWRECORDDETAIL_TDAL Dal = new FLOW_FLOWRECORDDETAIL_TDAL();
     entity.FLAG = "1";
     FLOW_FLOWRECORDDETAIL_TDAL.Update(con, entity);
     return entity;
 }
예제 #12
0
        public List<T_OA_LENDARCHIVES> GetLendingListByUserId(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (ArchivesLendingBll archivesLendingBll = new ArchivesLendingBll())
            {
                IQueryable<T_OA_LENDARCHIVES> ArchivesList = null;

                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的提交借阅信息
                {
                    if (checkState != ((int)CheckStates.ALL).ToString())
                    {
                        ArchivesList = archivesLendingBll.GetArchivesLendingInfoQueryWithPaging(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, checkState, loginUserInfo.userID);
                    }
                    else
                    {
                        ArchivesList = archivesLendingBll.GetArchivesLendingInfoQueryWithPaging(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, "", loginUserInfo.userID);
                    }
                }
                else                    //通过工作流获取用户要审批的借阅信息
                {
                    V_ArchivesLending a = new V_ArchivesLending();
                    FLOW_FLOWRECORDDETAIL_T flowInfo = new FLOW_FLOWRECORDDETAIL_T();   //审核人 操作              
                    //FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "0", "archivesLending", loginUserInfo.companyID, loginUserInfo.userID);
                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "archivesLending", "", loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return null;
                    }
                    List<V_FlowAPP> flowAppList = new List<V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {

                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid = flowList[i].FLOWRECORDDETAILID;
                        App.FormID = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState = ((int)CheckStates.Approving).ToString();
                    ArchivesList = archivesLendingBll.GetArchivesLendingInfoQueryWithPaging(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, flowAppList, checkState, loginUserInfo.userID);
                }
                return ArchivesList != null ? ArchivesList.ToList() : null;
            }
        }
예제 #13
0
        void auditService_GetFlowInfoCompleted(object sender, GetFlowInfoCompletedEventArgs e)
        {
            ////beyond
            //if (this.tbTest.Text != "")
            //{
            //    //beyond 记录日记
            //    string message = "GetFlowInfoCompleted:" +  DateTime.Now.ToString() + "\n";
            //    this.tbTest.Text =this.tbTest.Text+message;
            //}
            this.LayoutRoot.Visibility = System.Windows.Visibility.Visible;
            //为NULL 代表为新记录
            if (e.Result == null)
            {
                #region 是否可以使用自选流程

                //if (IsUserFreeFlow)
                //{//使用自选流程
                //    RdbAuditFree.Visibility = Visibility.Visible;
                //    EndAuditPnl.Visibility = Visibility.Visible;
                //    SelectAuditPersonPnl.Visibility = Visibility.Visible;
                //}
                //else
                //{
                //    RdbAuditFree.Visibility = Visibility.Collapsed;
                //    EndAuditPnl.Visibility = Visibility.Collapsed;
                //    SelectAuditPersonPnl.Visibility = Visibility.Collapsed;
                //}
                #endregion
                //若无结果则显示 无信息面板
                //TempPanel.Visibility = Visibility.Visible;
                //GotoState(AuditFormViewState.AuditStart);
                GetIsFreeFlowAndIsCancel(AuditFormViewState.AuditStart);
                return;
            }
            else
            {
                //获取审核信息列表,若无审核记录则表明用户未曾提交过流程,否则 则可能为审核中或完成
                var items = from item in e.Result
                            where item.STATECODE.ToUpper() != "STARTFLOW"
                            orderby item.FLAG descending, item.EDITDATE
                            select item;
                //获取当前节点之前所有的的节点 用于系统自动打分
                AllAuditEntityList = e.Result.ToList();

                if (items.ToList().Count > 0)
                {
                    #region 数据审核
                    this.AuditEntityList = items.ToList();
                    TempPanel.Visibility = Visibility.Collapsed;
                    //审核记录
                    List<FLOW_FLOWRECORDDETAIL_T> list = this.AuditEntityList;

                    //获取第一个符合条件的实体数据,判断审核人
                    FLOW_FLOWRECORDDETAIL_T currentFlow = this.AuditEntityList.FirstOrDefault(item =>
                    {
                        //当前用户是否为审核用户
                        bool bUser = (item.EDITUSERID == AuditEntity.EditUserID || item.AGENTUSERID == AuditEntity.EditUserID);
                        bool bResult = item.FLAG == "0";//0:未处理,1:已处理
                        return bResult && bUser;
                    });
                    //若不为NULL 则表示需要当前用户进行审批
                    if (currentFlow != null)
                    {
                        //判断流程审批与逐级审批
                        IsFixedFlow = (currentFlow.FLOW_FLOWRECORDMASTER_T.FLOWSELECTTYPE == "0") ? true : false;
                        if (IsFixedFlow)
                        {
                            GotoState(AuditFormViewState.Auditing);
                        }
                        else
                        {
                            GotoState(AuditFormViewState.FreeAuditing);
                        }

                        list.Remove(currentFlow);
                        AuditEntity.ModelCode = currentFlow.FLOW_FLOWRECORDMASTER_T.MODELCODE;
                        AuditEntity.GUID = currentFlow.FLOWRECORDDETAILID;
                        currentFLOWRECORDDETAIL = currentFlow;
                        InitFileLoad(currentFlow.FLOWRECORDDETAILID, FormTypes.New, this.uploadFile, true);
                    }
                    else
                    {
                        //判断流程是否为终审通过
                        FLOW_FLOWRECORDDETAIL_T AuditingFlow = this.AuditEntityList.FirstOrDefault(item2 =>
                        {
                            return item2.FLOW_FLOWRECORDMASTER_T.CHECKSTATE == "1";
                        });

                        //若为终审则修改其最后一条数据为终审状态
                        if (AuditingFlow == null)
                        {
                            FLOW_FLOWRECORDDETAIL_T temp = list[list.Count - 1];
                            if (temp.CHECKSTATE == "0")
                                temp.CHECKSTATE = "3";
                            else if (temp.CHECKSTATE == "1")
                                temp.CHECKSTATE = "4";

                            list.RemoveAt(list.Count - 1);
                            list.Add(temp);
                        }
                        var bol = RetSubmit;
                        if (bol)
                        {
                            //IsShowAuditTypePnl = true;
                            //return;
                            GotoState(AuditFormViewState.AuditStart);
                        }
                        else
                        {
                            GotoState(AuditFormViewState.End);
                        }

                        IsAuditUser = false;
                    }
                    //Modify by 安凯航 2011年5月21日
                    //修改审核信息显示,改为按照不同的提交过程分组.并始终显示提交人
                    //获取审核记录并根据审核记录显示记录列表
                    //this.IsShowList = list.Count == 0 ? false : true;
                    //绑定审核记录信息
                    //if (list.Count > 0)
                    //{

                    /* 原来的代码
                    List<FLOW_FLOWRECORDMASTER_T> tdlist = new List<FLOW_FLOWRECORDMASTER_T>();
                    tdlist.Add(list[0].FLOW_FLOWRECORDMASTER_T);
                    TDInfo.ItemsSource = tdlist;
                    this.AuditListBox.ItemsSource = list; */
                    //}
                    //修改后代码
                    var auditResults = from t in e.Result
                                       group t by t.FLOW_FLOWRECORDMASTER_T
                                           into g
                                           orderby g.Key.CREATEDATE
                                           select g.Key;
                    foreach (var item in auditResults)
                    {
                        //排除流程起始的默认数据
                        FLOW_FLOWRECORDDETAIL_T sub = item.FLOW_FLOWRECORDDETAIL_T.FirstOrDefault(p => p.STATECODE.ToUpper() == "STARTFLOW");
                        item.FLOW_FLOWRECORDDETAIL_T.Remove(sub);
                        //暂时屏蔽,不确定是否需要.2011年5月24日
                        //sub = item.FLOW_FLOWRECORDDETAIL_T.FirstOrDefault(p => p.EDITUSERID == SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID && p.CHECKSTATE == "2");
                        //item.FLOW_FLOWRECORDDETAIL_T.Remove(sub);//排出当前审核人是自己的数据

                        //审核记录按照时间先后顺序排序.
                        ObservableCollection<FLOW_FLOWRECORDDETAIL_T> details = new ObservableCollection<FLOW_FLOWRECORDDETAIL_T>();
                        //foreach (var detail in item.FLOW_FLOWRECORDDETAIL_T.OrderBy(p => p.EDITDATE))
                        //{
                        //    details.Add(detail);
                        //}



                        List<FLOW_FLOWRECORDDETAIL_T> source = item.FLOW_FLOWRECORDDETAIL_T.Where(d => d.FLAG == "1").OrderBy(d => d.EDITDATE).ToList();
                        source.AddRange(item.FLOW_FLOWRECORDDETAIL_T.Where(d => d.FLAG != "1").OrderBy(d => d.EDITDATE).ToList());

                        foreach (var detail in source)
                        {
                            details.Add(detail);
                        }
                        item.FLOW_FLOWRECORDDETAIL_T = details;
                        //foreach (var detail in details)
                        //{
                        //    item.FLOW_FLOWRECORDDETAIL_T.Add(detail);
                        //}
                    }
                    if (auditResults.Count() > 0)
                    {
                        //显示代理人beyond
                        auditResults.ForEach(master =>
                        {
                            if (master.FLOW_FLOWRECORDDETAIL_T != null)
                            {
                                master.FLOW_FLOWRECORDDETAIL_T.ForEach(detail =>
                                {
                                    if (!string.IsNullOrEmpty(detail.AGENTERNAME))
                                    {
                                        detail.EDITUSERNAME = detail.EDITUSERNAME + "(" + detail.AGENTERNAME + ")";
                                    }
                                });
                            }
                        });
                        this.AuditListPnl.ItemsSource = auditResults;
                        this.AuditListPnl.Visibility = System.Windows.Visibility.Visible;
                    }
                    else
                    {
                        this.AuditListPnl.ItemsSource = null;
                    }
                    //end Modify.

                    #endregion

                    // 转发
                    this.AuditPersonList = AllAuditEntityList.Select(item => item.EDITUSERID).ToList();
                }
                else
                {
                    #region 使用自选流程

                    //if (IsUserFreeFlow)
                    //{//使用自选流程
                    //    RdbAuditFree.Visibility = Visibility.Visible;
                    //    EndAuditPnl.Visibility = Visibility.Visible;
                    //    SelectAuditPersonPnl.Visibility = Visibility.Visible;
                    //}
                    //else
                    //{
                    //    RdbAuditFree.Visibility = Visibility.Collapsed;
                    //    EndAuditPnl.Visibility = Visibility.Collapsed;
                    //    SelectAuditPersonPnl.Visibility = Visibility.Collapsed;
                    //}
                    #endregion
                    #region 数据未曾提交成功,需要重新 提交审核
                    //GotoState(AuditFormViewState.AuditStart);
                    GetIsFreeFlowAndIsCancel(AuditFormViewState.AuditStart);
                    //IsFixedFlow = true;
                    #endregion
                }

                #region beyond
                this.ExtendLoad(AllAuditEntityList);
                #endregion
            }
            if (OnBindingDataCompleted.IsNotNull())
                OnBindingDataCompleted(this, EventArgs.Empty);
        }
예제 #14
0
        /// <summary>
        /// 获取流程
        /// </summary>
        /// <param name="con">OracleConnection连接对象</param>
        /// <param name="FormID">表单ID</param>
        /// <param name="FlowGUID">明细ID</param>
        /// <param name="CheckState">审批状态(同意:1,不同意:0 ,未处理:2,会签同意7,会签不同意8)</param>
        /// <param name="Flag">审批状态(已审批:1,未审批:0)</param>
        /// <param name="ModelCode">模块代码</param>
        /// <param name="CompanyID">创建公司ID</param>
        /// <param name="EditUserID">操作人</param>
        /// <param name="FlowType">流程类型(0:审批流程,1:任务流程)</param>
        /// <returns></returns>      
        public static List<FLOW_FLOWRECORDDETAIL_T> GetFlowRecordV(OracleConnection con, string FormID, string FlowGUID, string CheckState, string Flag, string ModelCode, string CompanyID, string EditUserID, List<string> FlowType)
        {
            if (con.State != ConnectionState.Open)
            {
                con.Open();
            }
            #region sql

            StringBuilder sb = new StringBuilder();
            sb.Append(@"select FLOW_FLOWRECORDDETAIL_T.* from FLOW_FLOWRECORDDETAIL_T
join FLOW_FLOWRECORDMASTER_T
on FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID=FLOW_FLOWRECORDDETAIL_T.FLOWRECORDMASTERID
where 1=1 ");

            if (!string.IsNullOrEmpty(FlowGUID))
            {
                sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID='" + FlowGUID + "'");

            }
            if (!string.IsNullOrEmpty(Flag))
            {
                sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLAG='" + Flag + "'");
            }

            if (!string.IsNullOrEmpty(EditUserID))
            {
                sb.Append(" and (FLOW_FLOWRECORDDETAIL_T.EDITUSERID='" + EditUserID + "' or FLOW_FLOWRECORDDETAIL_T.AGENTUSERID='" + EditUserID + "')");
            }


            if (!string.IsNullOrEmpty(CompanyID))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID='" + CompanyID + "'");
            }
            if (!string.IsNullOrEmpty(ModelCode))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.MODELCODE='" + ModelCode + "'");
            }
            if (!string.IsNullOrEmpty(FormID))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.FORMID='" + FormID + "'");
            }
            if (!string.IsNullOrEmpty(CheckState))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.CHECKSTATE='" + CheckState + "'");
            }

            if (FlowType != null)
            {
                if (FlowType.Count == 1)
                {
                    sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE='" + FlowType[0] + "'");
                }
                else
                {
                    sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE in (");
                    for (int i = 0; i < FlowType.Count - 1; i++)
                    {
                        sb.Append("'" + FlowType[i] + "',");
                    }
                    sb.Append("'" + FlowType[FlowType.Count - 1] + "'");
                    sb.Append(")");
                }
            }


            #endregion
            List<FLOW_FLOWRECORDDETAIL_T> listDetail = new List<FLOW_FLOWRECORDDETAIL_T>();
            List<FLOW_FLOWRECORDMASTER_T> listMaster = new List<FLOW_FLOWRECORDMASTER_T>();
            
                OracleDataReader dr = null;
                try
                {
                    List<string> listDetailID = new List<string>();
                    List<string> listMasterID = new List<string>();
               
                    //OracleCommand command = con.CreateCommand();
                    //command.CommandText = sb.ToString();
                    //dr = command.ExecuteReader();
                    dr = MsOracle.ExecuteReaderByTransaction(con, sb.ToString(), null);
                    while (dr.Read())
                    {
                        #region detail
                        FLOW_FLOWRECORDDETAIL_T detail = new FLOW_FLOWRECORDDETAIL_T();
                        detail.FLOW_FLOWRECORDMASTER_T = new FLOW_FLOWRECORDMASTER_T();
                        detail.AGENTEDITDATE = dr["AGENTEDITDATE"] == DBNull.Value ? null : (DateTime?)dr["AGENTEDITDATE"];
                        detail.AGENTERNAME = dr["AGENTERNAME"] == DBNull.Value ? null : dr["AGENTERNAME"].ToString();
                        detail.AGENTUSERID = dr["AGENTUSERID"] == DBNull.Value ? null : dr["AGENTUSERID"].ToString();
                        detail.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString();
                        detail.CONTENT = dr["CONTENT"] == DBNull.Value ? null : dr["CONTENT"].ToString();
                        detail.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                        detail.CREATEDATE = (DateTime)dr["CREATEDATE"];
                        detail.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        detail.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString();
                        detail.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                        detail.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                        detail.EDITCOMPANYID = dr["EDITCOMPANYID"] == DBNull.Value ? null : dr["EDITCOMPANYID"].ToString();
                        detail.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                        detail.EDITDEPARTMENTID = dr["EDITDEPARTMENTID"] == DBNull.Value ? null : dr["EDITDEPARTMENTID"].ToString();
                        detail.EDITPOSTID = dr["EDITPOSTID"] == DBNull.Value ? null : dr["EDITPOSTID"].ToString();
                        detail.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                        detail.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                        detail.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString();
                        detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                        detail.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"] == DBNull.Value ? null : dr["FLOWRECORDDETAILID"].ToString();
                        detail.PARENTSTATEID = dr["PARENTSTATEID"] == DBNull.Value ? null : dr["PARENTSTATEID"].ToString();
                        detail.STATECODE = dr["STATECODE"] == DBNull.Value ? null : dr["STATECODE"].ToString();
                        detail.FLOW_CONSULTATION_T = new EntityCollection<FLOW_CONSULTATION_T>();
                        listDetail.Add(detail);
                        listDetailID.Add("'" + detail.FLOWRECORDDETAILID + "'");
                        if (!listMasterID.Contains(detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID))
                        {
                            listMasterID.Add("'" + detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID + "'");
                        }


                        #endregion
                    }
                    dr.Close();

                    #region master
                    if (listMasterID.Count > 0)
                    {
                        string sql= @"select CHECKSTATE,CREATECOMPANYID,CREATEDATE,CREATEDEPARTMENTID,CREATEPOSTID,CREATEUSERID,CREATEUSERNAME,
                                               EDITDATE,EDITUSERID,EDITUSERNAME,FLOWCODE,FLOWRECORDMASTERID,FLOWSELECTTYPE,FLOWTYPE,FORMID,INSTANCEID,MODELCODE
                                              from FLOW_FLOWRECORDMASTER_T where FLOWRECORDMASTERID in (" + string.Join(",", listMasterID.ToArray()) + ")";
                     
                        dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                        while (dr.Read())
                        {
                            #region master
                            FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T();

                            //master.ACTIVEROLE = dr["ACTIVEROLE"] == DBNull.Value ? null : dr["ACTIVEROLE"].ToString();
                            //master.BUSINESSOBJECT = dr["BUSINESSOBJECT"] == DBNull.Value ? null : dr["BUSINESSOBJECT"].ToString();
                            master.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString();
                            master.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                            master.CREATEDATE = (DateTime)dr["CREATEDATE"];
                            master.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                            master.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString();
                            master.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                            master.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                            master.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                            master.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                            master.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                            master.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                            master.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                            master.FLOWSELECTTYPE = dr["FLOWSELECTTYPE"] == DBNull.Value ? null : dr["FLOWSELECTTYPE"].ToString();
                            master.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                            master.FORMID = dr["FORMID"] == DBNull.Value ? null : dr["FORMID"].ToString();
                            master.INSTANCEID = dr["INSTANCEID"] == DBNull.Value ? null : dr["INSTANCEID"].ToString();
                            //master.KPITIMEXML = dr["KPITIMEXML"] == DBNull.Value ? null : dr["KPITIMEXML"].ToString();
                            master.MODELCODE = dr["MODELCODE"] == DBNull.Value ? null : dr["MODELCODE"].ToString();
                            master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>();
                            listMaster.Add(master);
                            #endregion

                        }
                        dr.Close();

                    }
                    #endregion
                    #region FLOW_CONSULTATION_T

                    List<FLOW_CONSULTATION_T> listConsultation = new List<FLOW_CONSULTATION_T>();
                    if (!string.IsNullOrEmpty(FormID) && !string.IsNullOrEmpty(ModelCode))
                    {
                        if (listDetailID.Count > 0)
                        {

                            string sql = @"select * from FLOW_CONSULTATION_T where FLOWRECORDDETAILID in (" + string.Join(",", listDetailID.ToArray()) + ")";
                      
                            dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                            while (dr.Read())
                            {
                                #region FLOW_CONSULTATION_T
                                FLOW_CONSULTATION_T consul = new FLOW_CONSULTATION_T();
                                consul.CONSULTATIONCONTENT = dr["CONSULTATIONCONTENT"] == DBNull.Value ? null : dr["CONSULTATIONCONTENT"].ToString();
                                consul.CONSULTATIONDATE = dr["CONSULTATIONDATE"] == DBNull.Value ? null : (DateTime?)dr["CONSULTATIONDATE"];
                                consul.CONSULTATIONID = dr["CONSULTATIONID"] == DBNull.Value ? null : dr["CONSULTATIONID"].ToString();
                                consul.CONSULTATIONUSERID = dr["CONSULTATIONUSERID"] == DBNull.Value ? null : dr["CONSULTATIONUSERID"].ToString();
                                consul.CONSULTATIONUSERNAME = dr["CONSULTATIONUSERNAME"] == DBNull.Value ? null : dr["CONSULTATIONUSERNAME"].ToString();
                                consul.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString();
                                consul.FLOW_FLOWRECORDDETAIL_T = new FLOW_FLOWRECORDDETAIL_T();
                                consul.FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"].ToString();
                                consul.REPLYCONTENT = dr["REPLYCONTENT"] == DBNull.Value ? null : dr["REPLYCONTENT"].ToString();
                                consul.REPLYDATE = dr["REPLYDATE"] == DBNull.Value ? null : (DateTime?)dr["REPLYDATE"];
                                consul.REPLYUSERID = dr["REPLYUSERID"] == DBNull.Value ? null : dr["REPLYUSERID"].ToString();
                                consul.REPLYUSERNAME = dr["REPLYUSERNAME"] == DBNull.Value ? null : dr["REPLYUSERNAME"].ToString();

                                listConsultation.Add(consul);

                                #endregion

                            }
                            dr.Close();

                        }
                    }
                    #endregion
              
                    listDetail.ForEach(detail =>
                    {
                        #region
                        FLOW_FLOWRECORDMASTER_T master = listMaster.FirstOrDefault(m => m.FLOWRECORDMASTERID == detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID);

                        detail.FLOW_FLOWRECORDMASTER_T = master;
                        if (master.FLOW_FLOWRECORDDETAIL_T == null)
                        {
                            master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>();
                        }
                        master.FLOW_FLOWRECORDDETAIL_T.Add(detail);

                        if (!string.IsNullOrEmpty(FormID) && !string.IsNullOrEmpty(ModelCode))
                        {
                            IEnumerable<FLOW_CONSULTATION_T> iFLOW_CONSULTATION_T = listConsultation.Where(c => c.FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID == detail.FLOWRECORDDETAILID);
                            if (iFLOW_CONSULTATION_T.Count() > 0)
                            {
                                detail.FLOW_CONSULTATION_T = new EntityCollection<FLOW_CONSULTATION_T>();
                                foreach (var consultation in iFLOW_CONSULTATION_T)
                                {
                                    consultation.FLOW_FLOWRECORDDETAIL_T = detail;
                                    detail.FLOW_CONSULTATION_T.Add(consultation);
                                }
                            }
                        }
                        #endregion
                    });
                    return listDetail;

                }
                catch (Exception ex)
                {
                    if (dr != null && !dr.IsClosed)
                    {
                        dr.Close();
                    }

                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }
                    throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL->GetFlowRecordV:-" + FormID + "-" + ex.Message + ex.InnerException);
                }

    



        }
예제 #15
0
파일: Service.cs 프로젝트: JuRogn/OA
        public string UpdateFlow(FLOW_FLOWRECORDDETAIL_T entity)
        {
            OracleConnection con = ADOHelper.GetOracleConnection();
            SMT.FlowWFService.NewFlow.Service s2 = new SMT.FlowWFService.NewFlow.Service();
            return s2.UpdateFlow(con, entity);
            #region 旧代码
            //FlowBLL bll = new FlowBLL();
            //bll.UpdateFlowRecord(entity, "", "");

            //return "";
            #endregion
        }
예제 #16
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        /// <summary>
        /// 自选流程(对数据库操作、对服务操作)
        /// </summary>
        /// <param name="ApprovalData"></param>
        /// <param name="APPDataResult"></param>
        /// <param name="fd"></param>
        /// <returns></returns>
        public DataResult ApprovalFreeFlow(OracleConnection con, SubmitData ApprovalData, DataResult APPDataResult, List<FLOW_FLOWRECORDDETAIL_T> fd)
        {
            // WorkflowRuntime workflowRuntime = null;
            WorkflowInstance instance = null;
            FLOW_FLOWRECORDDETAIL_T entity = new FLOW_FLOWRECORDDETAIL_T();
            entity.FLOW_FLOWRECORDMASTER_T = new FLOW_FLOWRECORDMASTER_T();
            UserInfo AppUser = new UserInfo(); //下一审核人
            UserInfo AgentAppUser = new UserInfo(); //代理下一审核人
            try
            {
                APPDataResult.RunTime += "---GetAppInfoStart:" + DateTime.Now.ToString();
                List<FLOW_FLOWRECORDDETAIL_T> tmp = fd.Where(c => (c.EDITUSERID == ApprovalData.ApprovalUser.UserID || c.AGENTUSERID == ApprovalData.ApprovalUser.UserID) && c.FLAG == "0").ToList();
                APPDataResult.RunTime += "---GetAppInfoEnd:" + DateTime.Now.ToString();
                if (tmp == null)
                {
                    APPDataResult.FlowResult = FlowResult.FAIL;
                    APPDataResult.Err = "没有找到待审核信息";
                    // DataResult.UserInfo = null;
                    return APPDataResult;
                }

                entity = tmp[0];
                entity.EDITDATE = DateTime.Now;  //审批时间

                if (entity.AGENTUSERID == ApprovalData.ApprovalUser.UserID)
                {
                    entity.AGENTEDITDATE = entity.EDITDATE;  //代理审批时审批时间与代理审批时间到致
                }
                //entity.EditUserID = AppUserId;
                entity.CONTENT = ApprovalData.ApprovalContent;
                entity.CHECKSTATE = ((int)ApprovalData.ApprovalResult).ToString();


                workflowRuntime = SMTWorkFlowManage.CreateWorkFlowRuntime(true);
                LogHelper.WriteLog("ApprovalFreeFlow从持久化库在恢复创建工作流实例ID=" + tmp[0].FLOW_FLOWRECORDMASTER_T.INSTANCEID);
                instance = SMTWorkFlowManage.GetWorkflowInstance(workflowRuntime, tmp[0].FLOW_FLOWRECORDMASTER_T.INSTANCEID);// workflowRuntime.GetWorkflow(new Guid(tmp[0].FLOW_FLOWRECORDMASTER_T.INSTANCEID));

                //不同意状态处理
                if (ApprovalData.ApprovalResult == ApprovalResult.NoPass)
                {
                    instance.Terminate("0");
                    entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "3"; //设为终审不通过
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = ApprovalData.ApprovalUser.UserID;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = ApprovalData.ApprovalUser.UserName;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITDATE = DateTime.Now;
                    UpdateFlowRecord(con, entity, ApprovalData.NextStateCode, ApprovalData.NextApprovalUser.UserID);
                    FLOW_FLOWRECORDMASTER_TDAL.Update(con, entity.FLOW_FLOWRECORDMASTER_T);//对数据库操作
                    APPDataResult.CheckState = "3";//
                    APPDataResult.FlowResult = FlowResult.END;
                    // DataResult.UserInfo = null;
                    // return DataResult;

                }
                else
                {


                    //下一审核人赋值
                    AppUser = ApprovalData.NextApprovalUser;

                    AgentAppUser = GetAgentUserInfo(ApprovalData.ModelCode, AppUser.UserID); //查询是否启用了代理人(对服务操作)

                    FlowDataType.FlowData FlowData = new FlowDataType.FlowData();
                    FlowData.xml = ApprovalData.XML;



                    workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
                    {//完成工作流实例
                        instance = null;
                    };

                    ApprovalData.NextStateCode = ApprovalData.NextStateCode == "EndFlow" ? "EndFlow" : "Approval";
                    APPDataResult.RunTime += "---DoFlowStart:" + DateTime.Now.ToString();

                    APPDataResult = DoFlowRecord(con, workflowRuntime, instance, entity, ApprovalData.NextStateCode, AppUser, AgentAppUser, ApprovalData.SubmitFlag, ApprovalData.FlowType); //处理流程数据
                    APPDataResult.AgentUserInfo = AgentAppUser;
                    APPDataResult.RunTime += "---DoFlowEnd:" + DateTime.Now.ToString();
                    if (ApprovalData.NextStateCode == "EndFlow")
                    {
                        workflowRuntime.GetService<FlowEvent>().OnDoFlow(instance.InstanceId, FlowData); //激发流程引擎执行到一下流程
                        System.Threading.Thread.Sleep(1000);
                    }



                }
                return APPDataResult;
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
            finally
            {
                AppUser = null;
                AgentAppUser = null;
                entity = null;
                instance = null;
                SMTWorkFlowManage.ColseWorkFlowRuntime(workflowRuntime);
            }
        }
예제 #17
0
파일: Service2.cs 프로젝트: JuRogn/OA
        public string UpdateFlow(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity)
        {

            FlowBLL2 bll = new FlowBLL2();
            bll.UpdateFlowRecord(con, entity, "", "");

            return "";
        }
예제 #18
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        //下一审核人提交审核时调用方法
        /// <summary>
        /// 下一审核人提交审核时调用方法
        /// </summary>
        /// <param name="submitData"></param>
        /// <param name="dataResult"></param>
        /// <param name="listDetail"></param>
        /// <returns></returns>
        public DataResult ApprovalFlow2(OracleConnection con, SubmitData submitData, DataResult dataResult, List<FLOW_FLOWRECORDDETAIL_T> listDetail, ref string msg)
        {
            ///针对会签,该次审核成功后是否跳转至下一状态
            bool isGotoNextState = true;
            // WorkflowRuntime workflowRuntime = null;
            WorkflowInstance instance = null;
            FLOW_FLOWRECORDDETAIL_T entity = new FLOW_FLOWRECORDDETAIL_T();
            entity.FLOW_FLOWRECORDMASTER_T = new FLOW_FLOWRECORDMASTER_T();

            try
            {
                #region Entity赋值
                List<FLOW_FLOWRECORDDETAIL_T> tmpEntity = listDetail.Where(c => (c.EDITUSERID == submitData.ApprovalUser.UserID || c.AGENTUSERID == submitData.ApprovalUser.UserID) && c.FLAG == "0").ToList();
                if (tmpEntity == null)
                {
                    dataResult.FlowResult = FlowResult.FAIL;
                    dataResult.Err = "没有找到待审核信息";
                    return dataResult;
                }
                entity = tmpEntity[0];
                entity.EDITDATE = DateTime.Now;  //审批时间
                if (entity.AGENTUSERID == submitData.ApprovalUser.UserID)
                {
                    entity.AGENTEDITDATE = entity.EDITDATE;  //代理审批时审批时间与代理审批时间到致
                }

                entity.CONTENT = submitData.ApprovalContent;
                entity.CHECKSTATE = ((int)submitData.ApprovalResult).ToString();
                #endregion

                //workflowRuntime.StartRuntime();
                msg += "SMTWorkFlowManage.CreateWorkFlowRuntime(true)" + DateTime.Now.ToString() + "\r\n";
                workflowRuntime = SMTWorkFlowManage.CreateWorkFlowRuntime(true);
                try
                {
                    instance = SMTWorkFlowManage.GetWorkflowInstance(workflowRuntime, entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID);// workflowRuntime.GetWorkflow(new Guid(tmp[0].FLOW_FLOWRECORDMASTER_T.INSTANCEID));
                    LogHelper.WriteLog("FormID=" + submitData.FormID + ";ApprovalFlow2(try)从持久化库[ 完成 ]恢复创建工作流实例ID=" + entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID);


                }
                catch (Exception exGetWorkflowInstance)
                {
                    #region 重新创建新流程,将新流程设置为当前状态。
                    try
                    {
                        string exc = "FormID=" + submitData.FormID + ";从持久化恢复工作流失败 SMTWorkFlowManage.GetWorkflowInstance(" + workflowRuntime.Name + ", " + entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID + ");原因如下:\r\n" + exGetWorkflowInstance.ToString() + ";\r\n下面重新创建新流程,并将新流程设置为当前状态;\r\nGetFlowByModelName:submitData.ApprovalUser.DepartmentID=" + submitData.ApprovalUser.DepartmentID + ";OrgType='" + ((int)submitData.FlowType).ToString() + "'";
                        LogHelper.WriteLog(exc);

                        List<FLOW_MODELFLOWRELATION_T> MODELFLOWRELATION = GetFlowByModelName(con, entity.FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID, entity.FLOW_FLOWRECORDMASTER_T.CREATEDEPARTMENTID, submitData.ModelCode, ((int)submitData.FlowType).ToString());

                        FLOW_MODELFLOWRELATION_T flowRelation = MODELFLOWRELATION[0];
                        FLOW_FLOWDEFINE_T flowDefine = flowRelation.FLOW_FLOWDEFINE_T;
                        instance = SMTWorkFlowManage.CreateWorkflowInstance(workflowRuntime, flowDefine.XOML, flowDefine.RULES);
                        LogHelper.WriteLog("FormID=" + submitData.FormID + ";ApprovalFlow2(catch)完成重新创建工作流实例ID=" + instance.InstanceId);
                        StateMachineWorkflowInstance workflowinstance = new StateMachineWorkflowInstance(workflowRuntime, instance.InstanceId);
                        workflowinstance.SetState(entity.STATECODE);
                        System.Threading.Thread.Sleep(1000);
                        instance = SMTWorkFlowManage.GetWorkflowInstance(workflowRuntime, instance.InstanceId.ToString());
                        LogHelper.WriteLog("FormID=" + submitData.FormID + ";ApprovalFlow2(catch)从持久化库再恢复刚才创建工作流实例ID=" + instance.InstanceId);

                        entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID = instance.InstanceId.ToString();
                        //FLOW_FLOWRECORDDETAIL_TDAL.UpdateMasterINSTANCEID(entity.FLOW_FLOWRECORDMASTER_T);
                        FLOW_FLOWRECORDMASTER_TDAL.UpdateMasterINSTANCEID(con, entity.FLOW_FLOWRECORDMASTER_T);

                    }
                    catch (Exception exNewInstance)
                    {
                        LogHelper.WriteLog("重新创建新流程,将新流程设置为当前状态失败:FormID=" + submitData.FormID + "FlowBll2->ApprovalFlow2" + exNewInstance.Message);
                        //Tracer.Debug("exNewInstance: -" + submitData.FormID + "--submitDataXML:" + submitData.XML + "-" + exNewInstance.InnerException + exNewInstance.Message);
                        throw exGetWorkflowInstance;
                    }
                    #endregion
                }
                msg += "SMTWorkFlowManage.CreateWorkFlowRuntime(true)完成" + DateTime.Now.ToString() + "\r\n";


                #region 当前状态会签状态处理
                bool currentIsCountersign = false;
                string currentCountersignType = "0";

                Utility.IsCountersign(entity.FLOW_FLOWRECORDMASTER_T.ACTIVEROLE, entity.STATECODE, ref currentIsCountersign, ref currentCountersignType);
                if (currentIsCountersign)
                {
                    msg += "状态会签状态处理" + DateTime.Now.ToString() + "\r\n";
                    if (currentCountersignType == "1")//一人通过即所有通过,可以跳转至下一状态
                    {
                        isGotoNextState = true;
                    }
                    else
                    {
                        ///该审核是会签的最后的审核人
                        if (entity.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T.Count == 1)
                        {
                            isGotoNextState = true;
                        }
                        else
                        {
                            isGotoNextState = false;
                        }
                    }
                    msg += "状态会签状态处理完成" + DateTime.Now.ToString() + "\r\n";
                }
                #endregion
                //不同意状态处理
                if (submitData.ApprovalResult == ApprovalResult.NoPass)
                {
                    msg += "不同意状态处理" + DateTime.Now.ToString() + "\r\n";
                    #region
                    instance.Terminate("0");
                    entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "3"; //设为终审不通过
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = submitData.ApprovalUser.UserID;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = submitData.ApprovalUser.UserName;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITDATE = DateTime.Now;
                    UpdateFlowRecord(con, entity, submitData.NextStateCode, submitData.NextApprovalUser.UserID);
                    FLOW_FLOWRECORDMASTER_TDAL.Update(entity.FLOW_FLOWRECORDMASTER_T);
                    dataResult.CheckState = "3";//
                    dataResult.FlowResult = FlowResult.END;

                    if (currentIsCountersign)
                    {
                        #region 当前是会签状态,删除未审核记录
                        entity.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T
                                .Where(detail => detail.FLOWRECORDDETAILID != entity.FLOWRECORDDETAILID && detail.STATECODE == entity.STATECODE && detail.FLAG == "0")
                                .ToList().ForEach(item =>
                                {
                                    item.FLAG = "1";
                                    item.CHECKSTATE = "8";
                                    UpdateFlowRecord2(con, item);
                                });
                        #endregion
                    }

                    #endregion
                    msg += "不同意状态处理完成" + DateTime.Now.ToString() + "\r\n";

                }
                else
                {
                    if (!isGotoNextState)
                    {
                        msg += "isGotoNextState" + DateTime.Now.ToString() + "\r\n";
                        #region

                        UpdateFlowRecord2(con, entity);
                        dataResult.AppState = entity.STATECODE;
                        dataResult.FlowResult = FlowResult.SUCCESS;
                        dataResult.CheckState = "1";
                        #endregion
                        msg += "isGotoNextState完成" + DateTime.Now.ToString() + "\r\n";
                    }
                    else
                    {
                        msg += "获取下一状态数据" + DateTime.Now.ToString() + "\r\n";
                        #region 获取下一状态数据
                        List<string> User = new List<string>();
                        User.Add(entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERID);
                        User.Add(submitData.ApprovalUser.UserID);

                        List<string> tmpPostID = new List<string>();
                        tmpPostID.Add(entity.FLOW_FLOWRECORDMASTER_T.CREATEPOSTID);
                        tmpPostID.Add(entity.EDITPOSTID);
                        GetUserByInstance2(entity.FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID, workflowRuntime, instance, entity.FLOW_FLOWRECORDMASTER_T.ACTIVEROLE, submitData.XML, entity.STATECODE, User, tmpPostID, submitData.FlowType, ref dataResult);

                        if (dataResult.FlowResult == FlowResult.FAIL)
                        {
                            return dataResult;
                        }
                        submitData.NextStateCode = dataResult.AppState;
                        if (dataResult.IsCountersign)
                        {
                            #region
                            if (dataResult.FlowResult == FlowResult.Countersign)
                            {
                                if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0)
                                {
                                    return dataResult;
                                }
                            }
                            else
                            {
                                if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0)
                                {
                                    submitData.DictCounterUser = dataResult.DictCounterUser;
                                }
                            }
                            #endregion
                        }
                        else
                        {
                            #region
                            if (dataResult.FlowResult == FlowResult.MULTIUSER)
                            {
                                if (submitData.NextApprovalUser == null || (Utility.GetString(submitData.NextApprovalUser.UserID) == "" || Utility.GetString(submitData.NextApprovalUser.UserName) == ""))
                                {
                                    return dataResult;
                                }
                            }
                            else
                            {
                                if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0)
                                {
                                    submitData.NextApprovalUser = dataResult.UserInfo[0];
                                }
                            }
                            #endregion
                        }

                        #endregion

                        msg += "获取下一状态数据完成" + DateTime.Now.ToString() + "\r\n";


                        msg += "单会签情况" + DateTime.Now.ToString() + "\r\n";
                        #region 对于单会签情况,需要将其他审核人的审核设为会签通过状态

                        if (currentIsCountersign && currentCountersignType == "1")
                        {
                            entity.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T
                               .Where(detail => detail.FLOWRECORDDETAILID != entity.FLOWRECORDDETAILID && detail.STATECODE == entity.STATECODE && detail.FLAG == "0")
                               .ToList().ForEach(item =>
                               {
                                   item.FLAG = "1";
                                   item.CHECKSTATE = "7";
                                   UpdateFlowRecord2(con, item);
                               });
                        }
                        #endregion
                        msg += "单会签情况完成" + DateTime.Now.ToString() + "\r\n";

                        #region


                        FlowDataType.FlowData FlowData = new FlowDataType.FlowData();
                        FlowData.xml = submitData.XML;
                        workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
                        {
                            instance = null;

                        };
                        msg += "处理kpi" + DateTime.Now.ToString() + "\r\n";

                        #region 处理kpi时间
                        string KPITime = "";
                        //PerformanceServiceWS.PerformanceServiceClient psc = new PerformanceServiceWS.PerformanceServiceClient();
                        string pscResult = entity.FLOW_FLOWRECORDMASTER_T.KPITIMEXML;
                        //psc.Close();
                        if (!string.IsNullOrEmpty(pscResult))
                        {
                            XElement xe = XElement.Parse(pscResult);
                            Func<XElement, bool> f = (x) =>
                            {
                                XAttribute xid = x.Attribute("id");
                                XAttribute xvalue = x.Attribute("value");
                                if (xid == null || xvalue == null)
                                    return false;
                                else
                                {
                                    if (xid.Value == dataResult.AppState)
                                        return true;
                                    else return false;
                                }
                            };
                            XElement FlowNode = xe.Elements("FlowNode").FirstOrDefault(f);
                            if (FlowNode != null)
                            {
                                KPITime = FlowNode.Attribute("value").Value;
                            }
                        }
                        dataResult.KPITime = KPITime;

                        #endregion

                        msg += "处理kpi完成" + DateTime.Now.ToString() + "\r\n";

                        if (!dataResult.IsCountersign)
                        {
                            msg += "非会签" + DateTime.Now.ToString() + "\r\n";
                            #region  非会签

                            UserInfo AppUser = submitData.NextApprovalUser;
                            dataResult.UserInfo.Clear();
                            dataResult.UserInfo.Add(AppUser);
                            UserInfo AgentAppUser = GetAgentUserInfo(submitData.ModelCode, AppUser.UserID);//查询是否启用了代理人                            
                            dataResult = DoFlowRecord2(con, workflowRuntime, instance, entity, submitData.NextStateCode, AppUser, AgentAppUser, submitData.SubmitFlag, submitData.FlowType); //处理流程数据
                            dataResult.AgentUserInfo = AgentAppUser;
                            dataResult.IsCountersign = false;
                            #endregion
                            msg += "非会签完成" + DateTime.Now.ToString() + "\r\n";
                        }
                        else
                        {
                            #region  会签

                            dataResult.DictCounterUser = submitData.DictCounterUser;
                            Dictionary<UserInfo, UserInfo> dictAgentUserInfo = GetAgentUserInfo2(submitData.ModelCode, submitData.DictCounterUser);
                            dataResult = DoFlowRecord_Approval(con, workflowRuntime, instance, entity, submitData.NextStateCode, submitData.DictCounterUser, dictAgentUserInfo, submitData.SubmitFlag, submitData.FlowType); //处理流程数据
                            dataResult.DictAgentUserInfo = dictAgentUserInfo;
                            dataResult.IsCountersign = true;


                            #endregion
                        }

                        msg += "激发流程引擎执行到一下流程" + DateTime.Now.ToString() + "\r\n";
                        #region 激发流程引擎执行到一下流程
                        if (dataResult.AppState == null || dataResult.AppState == "")
                            workflowRuntime.GetService<FlowEvent>().OnDoFlow(instance.InstanceId, FlowData); //激发流程引擎执行到一下流程
                        else
                        {
                            string ss = "";
                            int n = 0;
                            StateMachineWorkflowInstance workflowinstance = new StateMachineWorkflowInstance(workflowRuntime, instance.InstanceId);

                            workflowinstance.SetState(dataResult.AppState); //流程跳转到指定节点
                            //while (true)
                            //{
                            //    ss += (n++).ToString()+"|" + workflowinstance.CurrentStateName;
                            //    string stateName = workflowinstance.CurrentStateName;

                            //    if (stateName != null && stateName.ToUpper().IndexOf("START") == -1)
                            //    {
                            //        break;
                            //    }
                            //}
                        }
                        #endregion
                        msg += "激发流程引擎执行到一下流程完成" + DateTime.Now.ToString() + "\r\n";
                        //dataResult.CanSendMessage = true;

                        msg += "System.Threading.Thread.Sleep(1000)" + DateTime.Now.ToString() + "\r\n";
                        System.Threading.Thread.Sleep(1000);
                        if (submitData.FlowType == FlowType.Task)
                            dataResult.SubModelCode = Utility.GetSubModelCode(entity.FLOW_FLOWRECORDMASTER_T.ACTIVEROLE, dataResult.AppState); //返回下一子模块代码
                        msg += "System.Threading.Thread.Sleep(1000)完成" + DateTime.Now.ToString() + "\r\n";

                        #endregion
                    }


                }
                dataResult.CurrentIsCountersign = currentIsCountersign;
                dataResult.IsGotoNextState = isGotoNextState;
                return dataResult;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {

                entity = null;
                instance = null;
                SMTWorkFlowManage.ColseWorkFlowRuntime(workflowRuntime);
            }
        }
예제 #19
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        /// <summary>
        /// 自选流程审批(对服务操作)
        /// </summary>
        /// <param name="ApprovalData"></param>
        /// <param name="APPDataResult"></param>
        /// <returns></returns>
        public DataResult AddFreeFlow(OracleConnection con, SubmitData ApprovalData, DataResult APPDataResult)
        {
            // WorkflowRuntime workflowRuntime = null;
            WorkflowInstance instance = null;
            FLOW_FLOWRECORDDETAIL_T entity = new FLOW_FLOWRECORDDETAIL_T();
            entity.FLOW_FLOWRECORDMASTER_T = new FLOW_FLOWRECORDMASTER_T();
            UserInfo AppUser = new UserInfo(); //下一审核人
            UserInfo AgentAppUser = new UserInfo(); //代理下一审核人
            try
            {
                entity.FLOW_FLOWRECORDMASTER_T.BUSINESSOBJECT = ApprovalData.XML;
                entity.FLOW_FLOWRECORDMASTER_T.FORMID = ApprovalData.FormID;
                entity.FLOW_FLOWRECORDMASTER_T.MODELCODE = ApprovalData.ModelCode;

                // entity.FLOWRECORDDETAILID = FlowGUID;
                entity.CREATECOMPANYID = ApprovalData.ApprovalUser.CompanyID;
                entity.CREATEDEPARTMENTID = ApprovalData.ApprovalUser.DepartmentID;
                entity.CREATEPOSTID = ApprovalData.ApprovalUser.PostID;
                entity.CREATEUSERID = ApprovalData.ApprovalUser.UserID;
                entity.CREATEUSERNAME = ApprovalData.ApprovalUser.UserName;
                entity.FLOW_FLOWRECORDMASTER_T.FLOWTYPE = ((int)ApprovalData.FlowType).ToString();
                entity.FLOW_FLOWRECORDMASTER_T.FLOWSELECTTYPE = ((int)ApprovalData.FlowSelectType).ToString();
                entity.FLOW_FLOWRECORDMASTER_T.FLOWCODE = "FreeFlow";
                workflowRuntime = SMTWorkFlowManage.CreateWorkFlowRuntime(true);
                instance = SMTWorkFlowManage.CreateWorkflowInstance(workflowRuntime, "FreeFlow.xml");//自选流程使用
                LogHelper.WriteLog("自选流程使用 AddFreeFlow(try)创建工作流实例ID=" + instance.InstanceId);
                entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID = instance.InstanceId.ToString();


                //下一审核人赋值
                AppUser = ApprovalData.NextApprovalUser;

                APPDataResult.RunTime += "---DoFlowStart:" + DateTime.Now.ToString();
                ApprovalData.NextStateCode = "Approval";
                AgentAppUser = GetAgentUserInfo(ApprovalData.ModelCode, AppUser.UserID); //查询是否启用了代理人(对服务操作)

                APPDataResult = DoFlowRecord(con, workflowRuntime, instance, entity, ApprovalData.NextStateCode, AppUser, AgentAppUser, ApprovalData.SubmitFlag, ApprovalData.FlowType); //处理流程数据
                APPDataResult.AgentUserInfo = AgentAppUser;
                APPDataResult.RunTime += "---DoFlowEnd:" + DateTime.Now.ToString();
                return APPDataResult;
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
            finally
            {
                AppUser = null;
                AgentAppUser = null;
                entity = null;
                instance = null;
                SMTWorkFlowManage.ColseWorkFlowRuntime(workflowRuntime);
            }
        }
예제 #20
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        public DataResult CancelFlow(SubmitData submitData, DataResult dataResult, List<FLOW_FLOWRECORDDETAIL_T> fd)
        {
            //WorkflowRuntime workflowRuntime = null;
            WorkflowInstance instance = null;

            FLOW_FLOWRECORDDETAIL_T entity = new FLOW_FLOWRECORDDETAIL_T();
            #region
            entity.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
            entity.CREATECOMPANYID = submitData.ApprovalUser.CompanyID;
            entity.CREATEDEPARTMENTID = submitData.ApprovalUser.DepartmentID;
            entity.CREATEPOSTID = submitData.ApprovalUser.PostID;
            entity.CREATEUSERID = submitData.ApprovalUser.UserID;
            entity.CREATEUSERNAME = submitData.ApprovalUser.UserName;
            entity.EDITDATE = DateTime.Now;
            entity.CONTENT = submitData.ApprovalContent;
            entity.CHECKSTATE = "9";
            entity.STATECODE = "Cancel";
            entity.FLAG = "1";
            entity.PARENTSTATEID = entity.FLOWRECORDDETAILID;

            entity.CREATEDATE = DateTime.Now;
            entity.EDITDATE = DateTime.Now;
            entity.EDITUSERID = entity.CREATEUSERID;
            entity.EDITUSERNAME = entity.CREATEUSERNAME;
            entity.EDITCOMPANYID = entity.CREATECOMPANYID;
            entity.EDITDEPARTMENTID = entity.CREATEDEPARTMENTID;
            entity.EDITPOSTID = entity.CREATEPOSTID;

            entity.FLOW_FLOWRECORDMASTER_T = fd[0].FLOW_FLOWRECORDMASTER_T;
            entity.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T.Add(entity);
            entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "9"; //设为撤销
            entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = submitData.ApprovalUser.UserID;
            entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = submitData.ApprovalUser.UserName;
            entity.FLOW_FLOWRECORDMASTER_T.EDITDATE = DateTime.Now;
            #endregion

            workflowRuntime = SMTWorkFlowManage.CreateWorkFlowRuntime(true);
            LogHelper.WriteLog("CancelFlow从持久化库在恢复创建工作流实例ID=" + entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID);
            instance = SMTWorkFlowManage.GetWorkflowInstance(workflowRuntime, entity.FLOW_FLOWRECORDMASTER_T.INSTANCEID);
            instance.Terminate("0");
            FLOW_FLOWRECORDDETAIL_TDAL Dal = new FLOW_FLOWRECORDDETAIL_TDAL();
            entity.FLAG = "1";
            //Dal.AddFlowRecord(entity);
            FLOW_FLOWRECORDDETAIL_TDAL.Add(entity);
            FLOW_FLOWRECORDMASTER_TDAL.Update(entity.FLOW_FLOWRECORDMASTER_T);
            fd.Where(detail => detail.FLAG == "0").ToList().ForEach(item =>
                {
                    //Dal.Delete(item);
                    //Dal.DeleteFlowRecord(item);
                    FLOW_FLOWRECORDDETAIL_TDAL.Delete(item);
                });
            dataResult.CheckState = "9";//
            dataResult.FlowResult = FlowResult.SUCCESS;
            return dataResult;
        }
예제 #21
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        /// <summary>
        /// 新增流程(对数据库操作)
        /// </summary>
        /// <param name="ApprovalData"></param>
        /// <param name="APPDataResult"></param>
        /// <returns></returns>    
        public DataResult AddFlow2(OracleConnection con, SubmitData submitData, DataResult dataResult, ref string msg)
        {
            // WorkflowRuntime workflowRuntime = null;
            WorkflowInstance instance = null;


            try
            {
                msg += "获取定义的流程" + DateTime.Now.ToString() + "\r\n";
                #region 获取定义的流程
                LogHelper.WriteLog("获取定义的流程.GetFlowByModelName:submitData.ApprovalUser.DepartmentID=" + submitData.ApprovalUser.DepartmentID + ";OrgType='" + ((int)submitData.FlowType).ToString() + "'");
                List<FLOW_MODELFLOWRELATION_T> MODELFLOWRELATION = GetFlowByModelName(con, submitData.ApprovalUser.CompanyID, submitData.ApprovalUser.DepartmentID, submitData.ModelCode, ((int)submitData.FlowType).ToString());//对数据库操作
                if (MODELFLOWRELATION == null || MODELFLOWRELATION.Count == 0)
                {
                    dataResult.FlowResult = FlowResult.FAIL;
                    dataResult.Err = "没有找到可使用的流程";
                    return dataResult;
                }
                msg += "获取定义的流程完成" + DateTime.Now.ToString() + "\r\n";
                #endregion
                FLOW_MODELFLOWRELATION_T flowRelation = MODELFLOWRELATION[0];
                FLOW_FLOWDEFINE_T flowDefine = flowRelation.FLOW_FLOWDEFINE_T;
                if (flowDefine.RULES != null && flowDefine.RULES.Trim() == "")
                {
                    flowDefine.RULES = null;
                }
                //if (string.IsNullOrEmpty(flowDefine.RULES.Trim()))
                //{
                //    flowDefine.RULES = null;
                //}
                msg += " SMTWorkFlowManage.CreateWorkFlowRuntime(true)" + DateTime.Now.ToString() + "\r\n";
                workflowRuntime = SMTWorkFlowManage.CreateWorkFlowRuntime(true);
                instance = SMTWorkFlowManage.CreateWorkflowInstance(workflowRuntime, flowDefine.XOML, flowDefine.RULES);
                LogHelper.WriteLog("AddFlow2创建工作流实例ID=" + instance.InstanceId);
                workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
                {
                    instance = null;

                };
                msg += " SMTWorkFlowManage.CreateWorkFlowRuntime(true)完成" + DateTime.Now.ToString() + "\r\n";
                #region master赋值
                FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T();
                master.INSTANCEID = instance.InstanceId.ToString();
                master.BUSINESSOBJECT = submitData.XML;
                master.FORMID = submitData.FormID;
                master.MODELCODE = submitData.ModelCode;
                master.ACTIVEROLE = Utility.GetActiveRlue(flowDefine.LAYOUT);
                master.FLOWTYPE = ((int)submitData.FlowType).ToString();
                master.FLOWSELECTTYPE = ((int)submitData.FlowSelectType).ToString();
                master.FLOWCODE = flowDefine.FLOWCODE;
                #endregion

                #region 获取下一状态数据
                msg += " 获取下一状态数据" + DateTime.Now.ToString() + "\r\n";
                DateTime star = DateTime.Now;
                GetUserByFlow2(submitData.ApprovalUser.CompanyID, flowDefine.XOML, flowDefine.RULES, master.ACTIVEROLE, submitData.XML, submitData.ApprovalUser.UserID, submitData.ApprovalUser.PostID, submitData.FlowType, ref dataResult, ref msg);
                DateTime end = DateTime.Now;
                msg += " 获取下一状态数据完成" + DateTime.Now.ToString() + "\r\n";
                string str = Service2.DateDiff(end, star);
                if (dataResult.FlowResult == FlowResult.FAIL)
                {
                    return dataResult;
                }
                submitData.NextStateCode = dataResult.AppState;
                if (dataResult.IsCountersign)
                {
                    #region
                    if (dataResult.FlowResult == FlowResult.Countersign)
                    {
                        if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0)
                        {
                            return dataResult;
                        }
                    }
                    else
                    {
                        if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0)
                        {
                            submitData.DictCounterUser = dataResult.DictCounterUser;
                        }
                    }
                    #endregion
                }
                else
                {
                    #region
                    if (dataResult.FlowResult == FlowResult.MULTIUSER)
                    {
                        if (submitData.NextApprovalUser == null || (Utility.GetString(submitData.NextApprovalUser.UserID) == "" || Utility.GetString(submitData.NextApprovalUser.UserName) == ""))
                        {
                            return dataResult;
                        }
                    }
                    else
                    {
                        if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0)
                        {
                            submitData.NextApprovalUser = dataResult.UserInfo[0];
                        }
                    }
                    #endregion
                }

                #endregion

                #region 实体赋值
                FLOW_FLOWRECORDDETAIL_T entity = new FLOW_FLOWRECORDDETAIL_T();
                entity.FLOW_FLOWRECORDMASTER_T = master;
                entity.CREATECOMPANYID = submitData.ApprovalUser.CompanyID;
                entity.CREATEDEPARTMENTID = submitData.ApprovalUser.DepartmentID;
                entity.CREATEPOSTID = submitData.ApprovalUser.PostID;
                entity.CREATEUSERID = submitData.ApprovalUser.UserID;
                entity.CREATEUSERNAME = submitData.ApprovalUser.UserName;
                #endregion
                msg += " 处理kpi时间" + DateTime.Now.ToString() + "\r\n";
                #region 处理kpi时间
                string KPITime = "";
                #region 加入缓存
                string pscResult = CacheProvider.GetCache<string>(flowRelation.MODELFLOWRELATIONID);
                if (string.IsNullOrEmpty(pscResult))
                {
                    PerformanceServiceWS.PerformanceServiceClient psc = new PerformanceServiceWS.PerformanceServiceClient();
                    pscResult = psc.GetKPIPointsByBusinessCode(flowRelation.MODELFLOWRELATIONID);//调用服务
                    CacheProvider.Add<string>(flowRelation.MODELFLOWRELATIONID, pscResult);
                    psc.Close();
                }
                #endregion
                //PerformanceServiceWS.PerformanceServiceClient psc = new PerformanceServiceWS.PerformanceServiceClient();
                //string pscResult = psc.GetKPIPointsByBusinessCode(flowRelation.MODELFLOWRELATIONID);//调用服务
                //psc.Close();
                if (!string.IsNullOrEmpty(pscResult))
                {
                    XElement xe = XElement.Parse(pscResult);
                    Func<XElement, bool> f = (x) =>
                    {
                        XAttribute xid = x.Attribute("id");
                        XAttribute xvalue = x.Attribute("value");
                        if (xid == null || xvalue == null)
                            return false;
                        else
                        {
                            if (xid.Value == dataResult.AppState)
                                return true;
                            else return false;
                        }
                    };
                    XElement FlowNode = xe.Elements("FlowNode").FirstOrDefault(f);
                    if (FlowNode != null)
                    {
                        KPITime = FlowNode.Attribute("value").Value;
                    }
                }

                dataResult.KPITime = KPITime;
                master.KPITIMEXML = pscResult;
                #endregion
                msg += " 处理kpi时间完成" + DateTime.Now.ToString() + "\r\n";
                FlowDataType.FlowData FlowData = new FlowDataType.FlowData();
                FlowData.xml = submitData.XML;

                if (!dataResult.IsCountersign)
                {
                    #region  非会签
                    UserInfo AppUser = new UserInfo(); //下一审核人
                    AppUser = submitData.NextApprovalUser;
                    dataResult.UserInfo.Clear();
                    dataResult.UserInfo.Add(AppUser);
                    UserInfo AgentAppUser = GetAgentUserInfo(submitData.ModelCode, AppUser.UserID);//查询是否启用了代理人                    
                    dataResult = DoFlowRecord2(con, workflowRuntime, instance, entity, submitData.NextStateCode, AppUser, AgentAppUser, submitData.SubmitFlag, submitData.FlowType); //处理流程数据
                    dataResult.IsCountersign = false;
                    dataResult.AgentUserInfo = AgentAppUser;
                    #endregion
                }
                else
                {
                    msg += " 会签" + DateTime.Now.ToString() + "\r\n";
                    #region  会签
                    //Tracer.Debug("-----DoFlowRecord_Add:" + DateTime.Now.ToString()+"\n");
                    dataResult.DictCounterUser = submitData.DictCounterUser;
                    Dictionary<UserInfo, UserInfo> dictAgentUserInfo = GetAgentUserInfo2(submitData.ModelCode, submitData.DictCounterUser);
                    dataResult = DoFlowRecord_Add(con, workflowRuntime, instance, entity, submitData.NextStateCode, submitData.DictCounterUser, dictAgentUserInfo, submitData.SubmitFlag, submitData.FlowType); //处理流程数据
                    //Tracer.Debug("-----DoFlowRecord_AddEnd:" + DateTime.Now.ToString()+"\n");
                    dataResult.IsCountersign = true;
                    dataResult.DictAgentUserInfo = dictAgentUserInfo;
                    #endregion
                    msg += "会签完成" + DateTime.Now.ToString() + "\r\n";
                }
                msg += "激发流程引擎执行到一下流程" + DateTime.Now.ToString() + "\r\n";
                #region 激发流程引擎执行到一下流程
                string ss = "";
                int n = 0;
                if (dataResult.AppState == null || dataResult.AppState == "")
                {
                    msg += " workflowRuntime.GetService<FlowEvent>()" + DateTime.Now.ToString() + "\r\n";
                    workflowRuntime.GetService<FlowEvent>().OnDoFlow(instance.InstanceId, FlowData); //激发流程引擎执行到一下流程
                    msg += " workflowRuntime.GetService<FlowEvent>()完成" + DateTime.Now.ToString() + "\r\n";
                }
                else
                {
                    StateMachineWorkflowInstance workflowinstance = new StateMachineWorkflowInstance(workflowRuntime, instance.InstanceId);

                    workflowinstance.SetState(dataResult.AppState); //流程跳转到指定节点

                    while (true)
                    {

                        ss += (n++).ToString() + "|" + workflowinstance.CurrentStateName + "\r\n";
                        string stateName = workflowinstance.CurrentStateName;
                        if (stateName != null && stateName.ToUpper().IndexOf("STATE") >= 0)
                        {
                            break;
                        }

                    }
                }

                #endregion
                msg += "激发流程引擎执行到一下流程完成" + DateTime.Now.ToString() + "\r\n";
                msg += "System.Threading.Thread.Sleep(1000)" + DateTime.Now.ToString() + "\r\n";
                //System.Threading.Thread.Sleep(1000);//当前用到
                dataResult.ModelFlowRelationID = flowRelation.MODELFLOWRELATIONID; //返回关联ID
                dataResult.KPITime = KPITime;
                //dataResult.CanSendMessage = true;
                if (submitData.FlowType == FlowType.Task)
                {
                    dataResult.SubModelCode = Utility.GetSubModelCode(master.ACTIVEROLE, dataResult.AppState); //返回下一子模块代码
                }
                msg += "System.Threading.Thread.Sleep(1000)完成" + DateTime.Now.ToString() + "\r\n";
                return dataResult;
            }

            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
            finally
            {

                instance = null;
                SMTWorkFlowManage.ColseWorkFlowRuntime(workflowRuntime);
            }


        }
예제 #22
0
        public List<V_ContractApplications> GetApprovalListById(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (ContractApprovalBLL cab = new ContractApprovalBLL())
            {
                List<V_ContractApplications> ArchivesList = null;
                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的提交申请信息
                {
                    if (checkState != ((int)CheckStates.ALL).ToString())
                    {
                        ArchivesList = cab.GetApprovalInfoPrinting(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, checkState);
                    }
                    else
                    {
                        ArchivesList = cab.GetApprovalInfoPrinting(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, "");
                    }
                    return ArchivesList != null ? ArchivesList.ToList() : null;
                }
                else                    //通过工作流获取用户要审批的申请信息
                {
                    FLOW_FLOWRECORDDETAIL_T flowInfo = new FLOW_FLOWRECORDDETAIL_T();   //审核人 操作              
                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_CONTRACTAPP", loginUserInfo.companyID, loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return null;
                    }
                    List<V_FlowAPP> flowAppList = new List<V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {

                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid = flowList[i].FLOWRECORDDETAILID;
                        App.FormID = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState = ((int)CheckStates.Approving).ToString();

                    ArchivesList = cab.GetApprovalInfoPrinting(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, flowAppList, checkState);
                    if (ArchivesList == null)
                    {
                        return null;
                    }
                    else
                    {
                        return ArchivesList.ToList();
                    }
                }
            }
        }
예제 #23
0
 //[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
 public List <V_BumfCompanySendDoc> GetSendDocInfosListByWorkFlowForMVC(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo, ref int recordsTotal)
 {
     try
     {
         using (BumfCompanySendDocManagementBll SendDocBll = new BumfCompanySendDocManagementBll())
         {
             //HouseInfoManagerBll bll = new HouseInfoManagerBll();
             //List<string> postIDs = new List<string>();
             //postIDs.Add("0c7a189f-fdbe-4632-a092-52c3463e0c7b");
             //postIDs.Add("6dbed528-5d9f-42f9-8278-178c4e5d8b1c");
             //postIDs.Add("9e0bf63a-023f-4b6a-a18e-fa5dbe057d8b");
             //List<string> postID1s = new List<string>();
             //postID1s.Add("c1f72286-eee5-45bd-bded-5993e8a317c9");
             //postID1s.Add("06aa0d8b-b32e-4eee-9d3c-db08b6a3b1fd");
             //List<string> postID2s = new List<string>();
             //postID2s.Add("cafdca8a-c630-4475-a65d-490d052dca36");
             //postID2s.Add("bac05c76-0f5b-40ae-b73b-8be541ed35ed");
             //int aa = 99999;
             //bll.GetHouseAndNoticeInfoToMobile(pageIndex, pageSize, ref pageCount, ref aa, "6ba49ec8-feb0-4f78-b801-2b8ea5387ab3", postID1s, postID2s, postID1s, string.Empty, null,string.Empty);
             List <V_BumfCompanySendDoc> CompanyDocList = null;
             if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的公司文档信息
             {
                 //List<V_ArchivesLending> CompanyDocList = archivesLendingBll.GetArchivesLendingInfo(userID, searchObj, null, checkState);
                 if (checkState != ((int)CheckStates.ALL).ToString())
                 {
                     CompanyDocList = SendDocBll.GetSendDocInfosListByTypeCompanyDepartmentSearchForMVC(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, checkState, loginUserInfo.userID, ref recordsTotal);
                 }
                 else
                 {
                     CompanyDocList = SendDocBll.GetSendDocInfosListByTypeCompanyDepartmentSearchForMVC(pageIndex, pageSize, sort, filterString, paras, ref pageCount, null, "", loginUserInfo.userID, ref recordsTotal);
                 }
             }
             else                    //通过工作流获取公司文档信息
             {
                 ServiceClient             workFlowWS = new ServiceClient();
                 V_BumfCompanySendDoc      a          = new V_BumfCompanySendDoc();
                 FLOW_FLOWRECORDDETAIL_T   flowInfo   = new FLOW_FLOWRECORDDETAIL_T(); //审核人 操作
                 FLOW_FLOWRECORDDETAIL_T[] flowList   = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_SENDDOC", loginUserInfo.companyID, loginUserInfo.userID);
                 if (flowList == null)
                 {
                     return(null);
                 }
                 List <V_FlowAPP> flowAppList = new List <V_FlowAPP>();
                 for (int i = 0; i < flowList.Length; i++)
                 {
                     V_FlowAPP App = new V_FlowAPP();
                     App.Guid         = flowList[i].FLOWRECORDDETAILID;
                     App.FormID       = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                     App.EditUserID   = flowList[i].EDITUSERID;
                     App.EditUserName = flowList[i].EDITUSERNAME;
                     flowAppList.Add(App);
                 }
                 checkState     = ((int)CheckStates.Approving).ToString();
                 CompanyDocList = SendDocBll.GetSendDocInfosListByTypeCompanyDepartmentSearchForMVC(pageIndex, pageSize, sort, filterString, paras, ref pageCount, flowAppList, checkState, loginUserInfo.userID, ref recordsTotal);
             }
             return(CompanyDocList != null ? CompanyDocList : null);
         }
     }
     catch (Exception ex)
     {
         Tracer.Debug("CompanySendDoc:" + System.DateTime.Now.ToString("d") + " " + ex.ToString());
         return(null);
     }
 }
예제 #24
0
        public static void Update(FLOW_FLOWRECORDDETAIL_T detail)
        {
            using (OracleConnection con = new OracleConnection(ADOHelper.ContextOracleConnection))
            {
                try
                {
                    string sql = @" update FLOW_FLOWRECORDDETAIL_T set FLOWRECORDMASTERID=:pFLOWRECORDMASTERID,STATECODE=:pSTATECODE,PARENTSTATEID=:pPARENTSTATEID,
                                        CONTENT=:pCONTENT,CHECKSTATE=:pCHECKSTATE,FLAG=:pFLAG,CREATEUSERID=:pCREATEUSERID,CREATEUSERNAME=:pCREATEUSERNAME,
                                        CREATECOMPANYID=:pCREATECOMPANYID,CREATEDEPARTMENTID=:pCREATEDEPARTMENTID,CREATEPOSTID=:pCREATEPOSTID,
                                         CREATEDATE=:pCREATEDATE,EDITUSERID=:pEDITUSERID,EDITUSERNAME=:pEDITUSERNAME,EDITDATE=:pEDITDATE,
                                         AGENTUSERID=:pAGENTUSERID,AGENTERNAME=:pAGENTERNAME,AGENTEDITDATE=:pAGENTEDITDATE,EDITCOMPANYID=:pEDITCOMPANYID,
                                        EDITDEPARTMENTID=:pEDITDEPARTMENTID,EDITPOSTID=:pEDITPOSTID
                                     where  FLOWRECORDDETAILID=:pFLOWRECORDDETAILID";
                                 

                    #region
                    con.Open();


                    OracleCommand cmd = con.CreateCommand();
                    cmd.CommandText = sql;


                    ADOHelper.AddParameter("FLOWRECORDDETAILID", detail.FLOWRECORDDETAILID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("FLOWRECORDMASTERID", detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID, OracleType.VarChar, cmd.Parameters);
                    ADOHelper.AddParameter("STATECODE", detail.STATECODE, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("PARENTSTATEID", detail.PARENTSTATEID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CONTENT", detail.CONTENT, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CHECKSTATE", detail.CHECKSTATE, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("FLAG", detail.FLAG, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEUSERID", detail.CREATEUSERID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEUSERNAME", detail.CREATEUSERNAME, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATECOMPANYID", detail.CREATECOMPANYID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEDEPARTMENTID", detail.CREATEDEPARTMENTID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEPOSTID", detail.CREATEPOSTID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEDATE", detail.CREATEDATE, OracleType.DateTime, cmd.Parameters);
                    ADOHelper.AddParameter("EDITUSERID", detail.EDITUSERID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITUSERNAME", detail.EDITUSERNAME, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITDATE", detail.EDITDATE, OracleType.DateTime, cmd.Parameters);
                    ADOHelper.AddParameter("AGENTUSERID", detail.AGENTUSERID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("AGENTERNAME", detail.AGENTERNAME, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("AGENTEDITDATE", detail.AGENTEDITDATE, OracleType.DateTime, cmd.Parameters);
                    ADOHelper.AddParameter("EDITCOMPANYID", detail.EDITCOMPANYID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITDEPARTMENTID", detail.EDITDEPARTMENTID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITPOSTID", detail.EDITPOSTID, OracleType.NVarChar, cmd.Parameters);

                    cmd.ExecuteNonQuery();

                    con.Close();
                    #endregion
                }
                catch (Exception ex)
                {
                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }
                    throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL_Add:" + ex.Message);
                }

            }
        }
예제 #25
0
파일: FlowBLL.cs 프로젝트: JuRogn/OA
        public FLOW_FLOWRECORDDETAIL_T UpdateFlowRecord2(FLOW_FLOWRECORDDETAIL_T entity)
        {
            FLOW_FLOWRECORDDETAIL_TDAL Dal = new FLOW_FLOWRECORDDETAIL_TDAL();


            entity.FLAG = "1";
            FLOW_FLOWRECORDDETAIL_TDAL.Update(entity);
            //Dal.UpdateFlowRecord2(entity);
            return entity;




        }
예제 #26
0
        /// <summary>
        /// 删除[流程审批明细表]
        /// </summary>
        /// <param name="con">OracleConnection连接对象</param>
        /// <param name="detail">流程审批明细表</param>
        public static int Delete(OracleConnection con, FLOW_FLOWRECORDDETAIL_T detail)
        {
            try
            {
                string delSql = "DELETE FROM FLOW_FLOWRECORDDETAIL_T  WHERE   FLOWRECORDDETAILID=:FLOWRECORDDETAILID";
                OracleParameter[] pageparm =
                {               
                    new OracleParameter(":FLOWRECORDDETAILID",OracleType.NVarChar) 

                };
                pageparm[0].Value = detail.FLOWRECORDDETAILID;
                return MsOracle.ExecuteSQLByTransaction(con, delSql, pageparm);
            }
            catch (Exception ex)
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                LogHelper.WriteLog("FLOW_FLOWRECORDDETAIL_TDAL->Delete:FLOWRECORDDETAILID=" + detail.FLOWRECORDDETAILID +";时间:" + DateTime.Now.ToString() + "\r\n异常信息:" + ex.Message);

                throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL->Delete:" + ex.Message);
            }
        }
예제 #27
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        /// <summary>
        /// 会签
        /// </summary>
        /// <param name="workflowRuntime"></param>
        /// <param name="instance"></param>
        /// <param name="entity"></param>
        /// <param name="NextStateCode"></param>
        /// <param name="dictUserInfo"></param>
        /// <param name="dictAgentUserInfo"></param>
        /// <param name="SubmitFlag"></param>
        /// <param name="FlowType"></param>
        /// <returns></returns>

        public DataResult DoFlowRecord_Add(OracleConnection con, WorkflowRuntime workflowRuntime, WorkflowInstance instance, FLOW_FLOWRECORDDETAIL_T entity, string NextStateCode, Dictionary<Role_UserType, List<UserInfo>> dictUserInfo, Dictionary<UserInfo, UserInfo> dictAgentUserInfo, SubmitFlag SubmitFlag, FlowType FlowType)
        {
            DataResult tmpDataResult = new DataResult();
            tmpDataResult.DictCounterUser = dictUserInfo;

            try
            {
                if (SubmitFlag == SubmitFlag.New)
                {

                    #region 添加启动状态

                    entity.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = Guid.NewGuid().ToString();
                    entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "1";
                    entity.FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID = entity.CREATECOMPANYID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEPOSTID = entity.CREATEPOSTID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERID = entity.CREATEUSERID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERNAME = entity.CREATEUSERNAME;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.CREATEUSERID;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.CREATEUSERNAME;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEDATE = DateTime.Now;

                    entity.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                    // entity.FLOW_FLOWRECORDMASTER_T .INSTANCEID  = instance.InstanceId.ToString();
                    entity.FLAG = "1";
                    entity.CHECKSTATE = "1";
                    //entity.FlowCode = "TestFlow";  //正式使用时关屏蔽

                    entity.STATECODE = "StartFlow";
                    entity.PARENTSTATEID = entity.FLOWRECORDDETAILID;
                    entity.CREATEDATE = DateTime.Now;
                    entity.EDITDATE = DateTime.Now;
                    entity.EDITUSERID = entity.CREATEUSERID;
                    entity.EDITUSERNAME = entity.CREATEUSERNAME;
                    entity.EDITCOMPANYID = entity.CREATECOMPANYID;
                    entity.EDITDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity.EDITPOSTID = entity.CREATEPOSTID;
                    FLOW_FLOWRECORDMASTER_TDAL.Add(con, entity.FLOW_FLOWRECORDMASTER_T);
                    AddFlowRecord2(con, entity);

                    #endregion
                }
                else
                {
                    #region

                    //entity.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = Guid.NewGuid().ToString();
                    entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "1";
                    entity.FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID = entity.CREATECOMPANYID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEPOSTID = entity.CREATEPOSTID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERID = entity.CREATEUSERID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERNAME = entity.CREATEUSERNAME;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.CREATEUSERID;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.CREATEUSERNAME;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEDATE = DateTime.Now;

                    entity.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                    // entity.FLOW_FLOWRECORDMASTER_T .INSTANCEID  = instance.InstanceId.ToString();
                    entity.FLAG = "1";
                    entity.CHECKSTATE = "1";
                    //entity.FlowCode = "TestFlow";  //正式使用时关屏蔽

                    entity.STATECODE = "StartFlow";
                    entity.PARENTSTATEID = entity.FLOWRECORDDETAILID;
                    entity.CREATEDATE = DateTime.Now;
                    entity.EDITDATE = DateTime.Now;
                    entity.EDITUSERID = entity.CREATEUSERID;
                    entity.EDITUSERNAME = entity.CREATEUSERNAME;
                    entity.EDITCOMPANYID = entity.CREATECOMPANYID;
                    entity.EDITDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity.EDITPOSTID = entity.CREATEPOSTID;
                    entity.CHECKSTATE = "6";
                    entity.STATECODE = "ReSubmit";
                    entity.FLAG = "1";
                    AddFlowRecord2(con, entity);
                    FLOW_FLOWRECORDMASTER_TDAL.Update(entity.FLOW_FLOWRECORDMASTER_T);
                    #endregion
                }
                //System.Threading.Thread.Sleep(1000);
                string stateCode = NextStateCode == "" ? SMTWorkFlowManage.GetNextState(workflowRuntime, instance, entity.STATECODE) : NextStateCode;
                tmpDataResult.AppState = stateCode;
                if (stateCode != "EndFlow")
                {
                    #region
                    dictUserInfo.Values.ToList().ForEach(users =>
                    {
                        users.ForEach(user =>
                        {
                            #region
                            FLOW_FLOWRECORDDETAIL_T entity2 = new FLOW_FLOWRECORDDETAIL_T();
                            entity2.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                            entity2.FLOW_FLOWRECORDMASTER_T = entity.FLOW_FLOWRECORDMASTER_T;
                            entity2.STATECODE = stateCode;
                            entity2.PARENTSTATEID = entity.FLOWRECORDDETAILID;//entity.StateCode;                            
                            entity2.FLAG = "0";
                            entity2.CHECKSTATE = "2";
                            entity2.CREATEPOSTID = entity.CREATEPOSTID;
                            entity2.CREATECOMPANYID = entity.CREATECOMPANYID;
                            entity2.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;
                            entity2.CREATEUSERID = entity.EDITUSERID;
                            entity2.CREATEUSERNAME = entity.EDITUSERNAME;
                            entity2.CREATEDATE = DateTime.Now;
                            entity2.EDITUSERID = user.UserID;
                            entity2.EDITUSERNAME = user.UserName;
                            entity2.EDITCOMPANYID = user.CompanyID;
                            entity2.EDITDEPARTMENTID = user.DepartmentID;
                            entity2.EDITPOSTID = user.PostID;
                            entity2.EDITDATE = DateTime.Now;
                            if (dictAgentUserInfo.ContainsKey(user))
                            {
                                entity2.AGENTUSERID = dictAgentUserInfo[user].UserID;
                                entity2.AGENTERNAME = dictAgentUserInfo[user].UserName;
                                entity2.AGENTEDITDATE = DateTime.Now;
                            }
                            AddFlowRecord2(con, entity2);

                            #endregion
                        });
                    });
                    #endregion
                    tmpDataResult.AppState = stateCode;
                    tmpDataResult.FlowResult = FlowResult.SUCCESS;
                    tmpDataResult.CheckState = "1";
                }
                else
                {
                    tmpDataResult.CheckState = "2";
                    tmpDataResult.FlowResult = FlowResult.END;   //如果没有下一处理节点,则返回END
                }
                tmpDataResult.IsCountersignComplete = true;
                return tmpDataResult;


            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("DoFlowRecord_Add异常信息 :" + ex.ToString());
                throw new Exception("DoFlowRecord_Add:" + ex.InnerException + ex.Message);
                //tmpDataResult.FlowResult = FlowResult.FAIL;
                //tmpDataResult.Err = ex.Message;
                //return tmpDataResult;
            }
        }
예제 #28
0
        public List<V_WelfarePaymentWithdrawal> GetWelfarePaymentWithdrawal(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, string checkState, LoginUserInfo loginUserInfo)
        {
            using (WelfarePaymentWithdrawalBLL wpwl = new WelfarePaymentWithdrawalBLL())
            {
                List<V_WelfarePaymentWithdrawal> ArchivesList = null;
                if (checkState != ((int)CheckStates.WaittingApproval).ToString())  //获取用户的提交申请信息
                {
                    if (checkState != ((int)CheckStates.ALL).ToString())
                    {
                        ArchivesList = wpwl.GetWelfarePaymentWithdrawal(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, checkState, loginUserInfo.userID);
                    }
                    else
                    {
                        ArchivesList = wpwl.GetWelfarePaymentWithdrawal(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, null, "", loginUserInfo.userID);
                    }
                    return ArchivesList != null ? ArchivesList.ToList() : null;
                }
                else                    //通过工作流获取用户要审批的申请信息
                {
                    FLOW_FLOWRECORDDETAIL_T flowInfo = new FLOW_FLOWRECORDDETAIL_T();   //审核人 操作              
                    FLOW_FLOWRECORDDETAIL_T[] flowList = workFlowWS.GetFlowInfo("", "", "", "0", "T_OA_WELFAREDISTRIBUTEUNDO", loginUserInfo.companyID, loginUserInfo.userID);
                    if (flowList == null)
                    {
                        return null;
                    }
                    List<V_FlowAPP> flowAppList = new List<V_FlowAPP>();
                    for (int i = 0; i < flowList.Length; i++)
                    {
                        V_FlowAPP App = new V_FlowAPP();
                        App.Guid = flowList[i].FLOWRECORDDETAILID;
                        App.FormID = flowList[i].FLOW_FLOWRECORDMASTER_T.FORMID;
                        App.EditUserID = flowList[i].EDITUSERID;
                        App.EditUserName = flowList[i].EDITUSERNAME;
                        flowAppList.Add(App);
                    }
                    checkState = ((int)CheckStates.Approving).ToString();

                    ArchivesList = wpwl.GetWelfarePaymentWithdrawal(pageIndex, pageSize, sort, filterString, paras, ref  pageCount, flowAppList, checkState, loginUserInfo.userID);
                    if (ArchivesList == null)
                    {
                        return null;
                    }
                    else
                    {
                        return ArchivesList.ToList();
                    }
                }
            }
        }
예제 #29
0
        public static void Add(FLOW_FLOWRECORDDETAIL_T detail)
        {
            //FLOW_FLOWRECORDDETAIL_T details = new FLOW_FLOWRECORDDETAIL_T();
            //details = detail;
            using (OracleConnection con = new OracleConnection(ADOHelper.ContextOracleConnection))
            {
                try
                {


                    string sql = @"insert into FLOW_FLOWRECORDDETAIL_T(FLOWRECORDDETAILID,FLOWRECORDMASTERID,STATECODE,PARENTSTATEID,
                                        CONTENT,CHECKSTATE,FLAG,CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID,
                                         CREATEDATE,EDITUSERID,EDITUSERNAME,EDITDATE,AGENTUSERID,AGENTERNAME,AGENTEDITDATE,EDITCOMPANYID,
                                        EDITDEPARTMENTID,EDITPOSTID) 
                                  values(:pFLOWRECORDDETAILID,:pFLOWRECORDMASTERID,:pSTATECODE,:pPARENTSTATEID,
                                        :pCONTENT,:pCHECKSTATE,:pFLAG,:pCREATEUSERID,:pCREATEUSERNAME,:pCREATECOMPANYID,:pCREATEDEPARTMENTID,:pCREATEPOSTID,
                                         :pCREATEDATE,:pEDITUSERID,:pEDITUSERNAME,:pEDITDATE,:pAGENTUSERID,:pAGENTERNAME,:pAGENTEDITDATE,:pEDITCOMPANYID,
                                        :pEDITDEPARTMENTID,:pEDITPOSTID)";

                   
                    //string sql = "insert into FLOW_FLOWRECORDDETAIL_T(FLOWRECORDDETAILID,FLOWRECORDMASTERID,STATECODE,PARENTSTATEID, " +
                    //                   " CONTENT,CHECKSTATE,FLAG,CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID, " +
                    //                   "  CREATEDATE,EDITUSERID,EDITUSERNAME,EDITDATE,AGENTUSERID,AGENTERNAME,AGENTEDITDATE,EDITCOMPANYID, "+
                    //                   " EDITDEPARTMENTID,EDITPOSTID) "+
                    //             " values('" + detail.FLOWRECORDDETAILID + "','" + detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID + "','" + detail.STATECODE + "','" + detail.PARENTSTATEID + "', " +
                    //               "  '" + detail.CONTENT + "',to_date('" + detail.CHECKSTATE + "','yyyy-mm-dd'),'" + detail.FLAG + "','" + detail.CREATEUSERID + "','" + detail.CREATEUSERNAME + "','" + detail.CREATECOMPANYID + "','" + detail.CREATEDEPARTMENTID + "','" + detail.CREATEPOSTID + "', " +
                    //               "  to_date('" + detail.CREATEDATE + "','yyyy-mm-dd'),'" + detail.EDITUSERID + "','" + detail.EDITUSERNAME + "',to_date('" + detail.EDITDATE + "','yyyy-mm-dd'),'" + detail.AGENTUSERID + "','" + detail.AGENTERNAME + "','" + detail.AGENTEDITDATE + "','" + detail.EDITCOMPANYID + "'," +
                    //               "   '" + detail.EDITDEPARTMENTID + "','" + detail.EDITPOSTID + "') ";

                                            

                    #region
                    con.Open();


                    OracleCommand cmd = con.CreateCommand();
                    cmd.CommandText = sql;


                    ADOHelper.AddParameter("FLOWRECORDDETAILID", detail.FLOWRECORDDETAILID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("FLOWRECORDMASTERID", detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID, OracleType.VarChar, cmd.Parameters);
                    ADOHelper.AddParameter("STATECODE", detail.STATECODE, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("PARENTSTATEID", detail.PARENTSTATEID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CONTENT", detail.CONTENT, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CHECKSTATE", detail.CHECKSTATE, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("FLAG", detail.FLAG, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEUSERID", detail.CREATEUSERID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEUSERNAME", detail.CREATEUSERNAME, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATECOMPANYID", detail.CREATECOMPANYID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEDEPARTMENTID", detail.CREATEDEPARTMENTID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEPOSTID", detail.CREATEPOSTID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("CREATEDATE", detail.CREATEDATE, OracleType.DateTime, cmd.Parameters);
                    ADOHelper.AddParameter("EDITUSERID", detail.EDITUSERID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITUSERNAME", detail.EDITUSERNAME, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITDATE", detail.EDITDATE, OracleType.DateTime, cmd.Parameters);
                    ADOHelper.AddParameter("AGENTUSERID", detail.AGENTUSERID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("AGENTERNAME", detail.AGENTERNAME, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("AGENTEDITDATE", detail.AGENTEDITDATE, OracleType.DateTime, cmd.Parameters);
                    ADOHelper.AddParameter("EDITCOMPANYID", detail.EDITCOMPANYID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITDEPARTMENTID", detail.EDITDEPARTMENTID, OracleType.NVarChar, cmd.Parameters);
                    ADOHelper.AddParameter("EDITPOSTID", detail.EDITPOSTID, OracleType.NVarChar, cmd.Parameters);
                      


                    cmd.ExecuteNonQuery();

                    con.Close();
                    #endregion
                }
                catch (Exception ex)
                {
                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }
                    throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL_Add:" + ex.Message);
                }

            }
        }
예제 #30
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        public DataResult DoFlowRecord_Approval(OracleConnection con, WorkflowRuntime workflowRuntime, WorkflowInstance instance, FLOW_FLOWRECORDDETAIL_T entity, string NextStateCode, Dictionary<Role_UserType, List<UserInfo>> dictUserInfo, Dictionary<UserInfo, UserInfo> dictAgentUserInfo, SubmitFlag SubmitFlag, FlowType FlowType)
        {
            DataResult tmpDataResult = new DataResult();
            tmpDataResult.DictCounterUser = dictUserInfo;

            try
            {


                #region 更新流程
                //如果NextStateCode为空则自动获取模型中的下一状态,如果不为空则使用传入状态代码,并使用传入下一任务人ID

                //更新本流程



                entity = UpdateFlowRecord2(con, entity);
                string stateCode = "";
                if (NextStateCode.ToUpper() == "ENDFLOW")
                {
                    stateCode = NextStateCode;
                }
                else
                {
                    stateCode = string.IsNullOrEmpty(NextStateCode) ? SMTWorkFlowManage.GetNextState(workflowRuntime, instance, entity.STATECODE) : NextStateCode;
                }
                //string stateCode = NextStateCode == "" ? SMTWorkFlowManage.GetNextState(workflowRuntime, instance, entity.STATECODE) : NextStateCode;
                tmpDataResult.AppState = stateCode;



                if (stateCode == "EndFlow")
                {
                    entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "2"; //设为终审通过
                    if (entity.EDITDATE == entity.AGENTEDITDATE)  //代理审核时
                    {
                        entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.AGENTUSERID;
                        entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.AGENTERNAME;
                    }
                    else   //正常审核时
                    {
                        entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.EDITUSERID;
                        entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.EDITUSERNAME;
                    }

                    entity.FLOW_FLOWRECORDMASTER_T.EDITDATE = DateTime.Now;

                    UpdateFlowRecord2(con, entity);
                    FLOW_FLOWRECORDMASTER_TDAL.Update(entity.FLOW_FLOWRECORDMASTER_T);
                    tmpDataResult.FlowResult = FlowResult.END;   //如果没有下一处理节点,则返回END
                    tmpDataResult.CheckState = "2";
                }
                else
                {
                    dictUserInfo.Values.ToList().ForEach(users =>
                    {
                        users.ForEach(user =>
                        {
                            #region
                            //添加下一状态
                            //FLOW_FLOWRECORDDETAIL_T entity2 = new FLOW_FLOWRECORDDETAIL_T();

                            ////添加下一状态
                            //entity2.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                            //entity2.FLOW_FLOWRECORDMASTER_T = entity.FLOW_FLOWRECORDMASTER_T;
                            //entity2.PARENTSTATEID = entity.FLOWRECORDDETAILID;// entity.StateCode;

                            ////entity2.Content = "";
                            //entity2.STATECODE = stateCode;
                            //entity2.FLAG = "0";
                            //entity2.CHECKSTATE = "2";
                            //entity2.CREATEPOSTID = entity.CREATEPOSTID;
                            //entity2.CREATECOMPANYID = entity.CREATECOMPANYID;
                            //entity2.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;

                            ////if (entity.EDITDATE == entity.AGENTEDITDATE) //代理审核时
                            ////{
                            ////    entity2.CREATEUSERID = entity.AGENTUSERID;
                            ////    entity2.CREATEUSERNAME = entity.AGENTERNAME;
                            ////}
                            ////else   //正常审核时
                            ////{
                            //entity2.CREATEUSERID = entity.EDITUSERID;
                            //entity2.CREATEUSERNAME = entity.EDITUSERNAME;
                            ////}

                            //entity2.EDITUSERID = user.UserID;
                            //entity2.EDITUSERNAME = user.UserName;
                            //entity2.EDITCOMPANYID = user.CompanyID;
                            //entity2.EDITDEPARTMENTID = user.DepartmentID;
                            //entity2.EDITPOSTID = user.PostID;

                            //entity2.CREATEDATE = DateTime.Now;

                            //entity2.EDITDATE = DateTime.Now;
                            //if (dictAgentUserInfo.ContainsKey(user))
                            //{
                            //    entity2.AGENTUSERID = dictAgentUserInfo[user].UserID;
                            //    entity2.AGENTERNAME = dictAgentUserInfo[user].UserName;
                            //    entity2.AGENTEDITDATE = DateTime.Now;
                            //}
                            //AddFlowRecord2(entity2);

                            #endregion

                            #region
                            FLOW_FLOWRECORDDETAIL_T entity2 = new FLOW_FLOWRECORDDETAIL_T();
                            entity2.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                            entity2.FLOW_FLOWRECORDMASTER_T = entity.FLOW_FLOWRECORDMASTER_T;
                            entity2.STATECODE = stateCode;
                            entity2.PARENTSTATEID = entity.FLOWRECORDDETAILID;//entity.StateCode;                            
                            entity2.FLAG = "0";
                            entity2.CHECKSTATE = "2";
                            entity2.CREATEPOSTID = entity.CREATEPOSTID;
                            entity2.CREATECOMPANYID = entity.CREATECOMPANYID;
                            entity2.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;
                            entity2.CREATEUSERID = entity.EDITUSERID;
                            entity2.CREATEUSERNAME = entity.EDITUSERNAME;
                            entity2.CREATEDATE = DateTime.Now;
                            entity2.EDITUSERID = user.UserID;
                            entity2.EDITUSERNAME = user.UserName;
                            entity2.EDITCOMPANYID = user.CompanyID;
                            entity2.EDITDEPARTMENTID = user.DepartmentID;
                            entity2.EDITPOSTID = user.PostID;
                            entity2.EDITDATE = DateTime.Now;
                            if (dictAgentUserInfo.ContainsKey(user))
                            {
                                entity2.AGENTUSERID = dictAgentUserInfo[user].UserID;
                                entity2.AGENTERNAME = dictAgentUserInfo[user].UserName;
                                entity2.AGENTEDITDATE = DateTime.Now;
                            }
                            AddFlowRecord2(con, entity2);

                            #endregion
                        });
                    });

                    tmpDataResult.AppState = stateCode;
                    tmpDataResult.FlowResult = FlowResult.SUCCESS;
                    tmpDataResult.CheckState = "1";

                }

                tmpDataResult.IsCountersignComplete = true;
                return tmpDataResult;

                #endregion


            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("DoFlowRecord_Approval异常信息 :" + ex.ToString());
                throw new Exception("DoFlowRecord_Approval:" + ex.InnerException + ex.Message);
                //tmpDataResult.FlowResult = FlowResult.FAIL;
                //tmpDataResult.Err = ex.Message;
                //return tmpDataResult;
            }
        }
예제 #31
0
        public static void Delete(FLOW_FLOWRECORDDETAIL_T detail)
        {
            using (OracleConnection con = new OracleConnection(ADOHelper.ContextOracleConnection))
            {
                try
                {
                    string sql = @" delete from  FLOW_FLOWRECORDDETAIL_T  where  FLOWRECORDDETAILID=:pFLOWRECORDDETAILID";


                    #region
                    con.Open();


                    OracleCommand cmd = con.CreateCommand();
                    cmd.CommandText = sql;


                    ADOHelper.AddParameter("FLOWRECORDDETAILID", detail.FLOWRECORDDETAILID, OracleType.NVarChar, cmd.Parameters);                   

                    cmd.ExecuteNonQuery();

                    con.Close();
                    #endregion
                }
                catch (Exception ex)
                {
                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }
                    throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL_Add:" + ex.Message);
                }

            }
        }
예제 #32
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
        /// <summary>
        /// 流程数据处理(对应SubmitFlow)对数据库操作
        /// </summary>
        /// <param name="workflowRuntime"></param>
        /// <param name="instance"></param>
        /// <param name="entity"></param>
        /// <param name="NextStateCode"></param>
        /// <param name="EditUserId"></param>
        /// <param name="EditUserName"></param>
        /// <param name="SubmitFlag"></param>
        /// <param name="FlowType"></param>
        /// <returns></returns>
        public DataResult DoFlowRecord(OracleConnection con, WorkflowRuntime workflowRuntime, WorkflowInstance instance, FLOW_FLOWRECORDDETAIL_T entity, string NextStateCode, UserInfo AppUser, UserInfo AgentUser, SubmitFlag SubmitFlag, FlowType FlowType)
        {
            DataResult tmpDataResult = new DataResult();
            UserInfo tmpUserInfo = AppUser;

            //tmpUserInfo.UserID = EditUserId;
            //tmpUserInfo.UserName = EditUserName;

            tmpDataResult.UserInfo.Add(tmpUserInfo);
            try
            {

                if (SubmitFlag == SubmitFlag.New)
                {
                    #region 新增流程
                    //添加启动状态

                    entity.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = Guid.NewGuid().ToString();

                    entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "1";

                    entity.FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID = entity.CREATECOMPANYID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEPOSTID = entity.CREATEPOSTID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERID = entity.CREATEUSERID;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEUSERNAME = entity.CREATEUSERNAME;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.CREATEUSERID;
                    entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.CREATEUSERNAME;
                    entity.FLOW_FLOWRECORDMASTER_T.CREATEDATE = DateTime.Now;

                    entity.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                    // entity.FLOW_FLOWRECORDMASTER_T .INSTANCEID  = instance.InstanceId.ToString();
                    entity.FLAG = "1";
                    entity.CHECKSTATE = "1";

                    //entity.FlowCode = "TestFlow";  //正式使用时关屏蔽

                    entity.STATECODE = "StartFlow";
                    entity.PARENTSTATEID = entity.FLOWRECORDDETAILID;

                    entity.CREATEDATE = DateTime.Now;
                    entity.EDITDATE = DateTime.Now;
                    entity.EDITUSERID = entity.CREATEUSERID;
                    entity.EDITUSERNAME = entity.CREATEUSERNAME;
                    entity.EDITCOMPANYID = entity.CREATECOMPANYID;
                    entity.EDITDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity.EDITPOSTID = entity.CREATEPOSTID;

                    #region 引擎自动提交时停留在提交人处

                    if (FlowType == FlowType.Pending)
                    {
                        entity.FLAG = "0";
                        entity.EDITUSERID = AppUser.UserID;
                        entity.EDITUSERNAME = AppUser.UserName;
                        entity.EDITCOMPANYID = AppUser.CompanyID;
                        entity.EDITDEPARTMENTID = AppUser.DepartmentID;
                        entity.EDITPOSTID = AppUser.PostID;
                        FLOW_FLOWRECORDMASTER_TDAL.Add(con, entity.FLOW_FLOWRECORDMASTER_T);//对数据库操作
                        AddFlowRecord(con, entity, NextStateCode, AppUser.UserID);
                        tmpDataResult.FlowResult = FlowResult.SUCCESS;
                        tmpDataResult.CheckState = "1";
                        return tmpDataResult;
                    }

                    #endregion

                    FLOW_FLOWRECORDMASTER_TDAL.Add(con, entity.FLOW_FLOWRECORDMASTER_T);//对数据库操作
                    AddFlowRecord(con, entity, NextStateCode, AppUser.UserID);



                    FLOW_FLOWRECORDDETAIL_T entity2 = new FLOW_FLOWRECORDDETAIL_T();

                    //添加下一状态
                    entity2.FLOWRECORDDETAILID = Guid.NewGuid().ToString();
                    entity2.FLOW_FLOWRECORDMASTER_T = entity.FLOW_FLOWRECORDMASTER_T;
                    entity2.STATECODE = NextStateCode == "" ? SMTWorkFlowManage.GetNextState(workflowRuntime, instance, entity.STATECODE) : NextStateCode;
                    entity2.PARENTSTATEID = entity.FLOWRECORDDETAILID;//entity.StateCode;

                    //entity2.Content = ".";
                    entity2.FLAG = "0";
                    entity2.CHECKSTATE = "2";
                    entity2.CREATEPOSTID = entity.CREATEPOSTID;
                    entity2.CREATECOMPANYID = entity.CREATECOMPANYID;
                    entity2.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;
                    entity2.CREATEUSERID = entity.EDITUSERID;
                    entity2.CREATEUSERNAME = entity.EDITUSERNAME;
                    entity2.CREATEDATE = DateTime.Now;
                    entity2.EDITUSERID = AppUser.UserID;
                    entity2.EDITUSERNAME = AppUser.UserName;
                    entity2.EDITCOMPANYID = AppUser.CompanyID;
                    entity2.EDITDEPARTMENTID = AppUser.DepartmentID;
                    entity2.EDITPOSTID = AppUser.PostID;
                    entity2.EDITDATE = DateTime.Now;

                    if (AgentUser != null)  //如果启用了代理,把代理人信息写入
                    {
                        entity2.AGENTUSERID = AgentUser.UserID;
                        entity2.AGENTERNAME = AgentUser.UserName;
                        entity2.AGENTEDITDATE = DateTime.Now;
                    }

                    tmpDataResult.AppState = entity2.STATECODE;

                    if (entity2.STATECODE != "EndFlow")
                    {
                        AddFlowRecord(con, entity2, NextStateCode, AppUser.UserID);//对数据库操作
                        tmpDataResult.FlowResult = FlowResult.SUCCESS;
                        tmpDataResult.CheckState = "1";
                    }
                    else
                    {
                        tmpDataResult.CheckState = "2";
                        tmpDataResult.FlowResult = FlowResult.END;   //如果没有下一处理节点,则返回END
                    }

                    return tmpDataResult;

                    #endregion
                }
                else
                {
                    #region 更新流程
                    //如果NextStateCode为空则自动获取模型中的下一状态,如果不为空则使用传入状态代码,并使用传入下一任务人ID

                    //更新本流程



                    entity = UpdateFlowRecord(con, entity, NextStateCode, AppUser.UserID);//对数据库操作

                    //添加下一状态
                    FLOW_FLOWRECORDDETAIL_T entity2 = new FLOW_FLOWRECORDDETAIL_T();

                    //添加下一状态
                    entity2.FLOWRECORDDETAILID = Guid.NewGuid().ToString();


                    if (NextStateCode != "")
                    {
                        entity2.STATECODE = NextStateCode;
                        //entity2.EditUserID = EditUserId;
                        //entity2.EditUserName = EditUserName;
                    }
                    else
                    {
                        entity2.STATECODE = SMTWorkFlowManage.GetNextState(workflowRuntime, instance, entity.STATECODE);
                        // entity2.EditUserID = entity2.StateCode=="EndFlow" ? "" : "EditUserId"; //根据状态查询权限表中用户ID
                    }

                    if (entity2.STATECODE == "EndFlow")
                    {

                        entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE = "2"; //设为终审通过
                        if (entity.EDITDATE == entity.AGENTEDITDATE)  //代理审核时
                        {
                            entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.AGENTUSERID;
                            entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.AGENTERNAME;
                        }
                        else   //正常审核时
                        {
                            entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.EDITUSERID;
                            entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.EDITUSERNAME;
                        }

                        entity.FLOW_FLOWRECORDMASTER_T.EDITDATE = DateTime.Now;

                        UpdateFlowRecord(con, entity, NextStateCode, AppUser.UserID);//对数据库操作
                        FLOW_FLOWRECORDMASTER_TDAL.Update(entity.FLOW_FLOWRECORDMASTER_T);//对数据库操作
                    }




                    entity2.PARENTSTATEID = entity.FLOWRECORDDETAILID;// entity.StateCode;

                    //entity2.Content = "";
                    entity2.FLAG = "0";
                    entity2.CHECKSTATE = "2";
                    entity2.CREATEPOSTID = entity.CREATEPOSTID;
                    entity2.CREATECOMPANYID = entity.CREATECOMPANYID;
                    entity2.CREATEDEPARTMENTID = entity.CREATEDEPARTMENTID;

                    //if (entity.EDITDATE == entity.AGENTEDITDATE) //代理审核时
                    //{
                    //    entity2.CREATEUSERID = entity.AGENTUSERID;
                    //    entity2.CREATEUSERNAME = entity.AGENTERNAME;
                    //}
                    //else   //正常审核时
                    //{
                    entity2.CREATEUSERID = entity.EDITUSERID;
                    entity2.CREATEUSERNAME = entity.EDITUSERNAME;
                    //}

                    entity2.EDITUSERID = AppUser.UserID;
                    entity2.EDITUSERNAME = AppUser.UserName;
                    entity2.EDITCOMPANYID = AppUser.CompanyID;
                    entity2.EDITDEPARTMENTID = AppUser.DepartmentID;
                    entity2.EDITPOSTID = AppUser.PostID;

                    entity2.CREATEDATE = DateTime.Now;

                    entity2.EDITDATE = DateTime.Now;
                    if (AgentUser != null)  //如果启用了代理,把代理人信息写入
                    {
                        entity2.AGENTUSERID = AgentUser.UserID;
                        entity2.AGENTERNAME = AgentUser.UserName;
                        entity2.AGENTEDITDATE = DateTime.Now;
                    }

                    tmpDataResult.AppState = entity2.STATECODE;

                    if (entity2.STATECODE != "EndFlow")
                    {
                        entity2.FLOW_FLOWRECORDMASTER_T = entity.FLOW_FLOWRECORDMASTER_T;
                        AddFlowRecord(con, entity2, NextStateCode, AppUser.UserID);//对数据库操作
                        tmpDataResult.FlowResult = FlowResult.SUCCESS;
                        tmpDataResult.CheckState = "1";

                    }
                    else
                    {
                        tmpDataResult.FlowResult = FlowResult.END;   //如果没有下一处理节点,则返回END
                        tmpDataResult.CheckState = "2";
                    }

                    return tmpDataResult;   //如有下一节点,返回SUCCESS

                    #endregion

                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("DoFlowRecord异常信息 :" + ex.ToString());
                throw new Exception("DoFlowRecord:" + ex.InnerException + ex.Message);
                //tmpDataResult.FlowResult = FlowResult.FAIL;
                //tmpDataResult.Err = ex.Message;
                //return tmpDataResult;
            }
        }
예제 #33
0
        /// <summary>
        /// 新增[流程审批明细表]
        /// </summary>
        /// <param name="con">OracleConnection连接对象</param>
        /// <param name="detail">流程审批明细表</param>
        public static int Add(OracleConnection con, FLOW_FLOWRECORDDETAIL_T model)
        {
            try
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                #region
                string insSql = "INSERT INTO FLOW_FLOWRECORDDETAIL_T (FLOWRECORDDETAILID,FLOWRECORDMASTERID,STATECODE,PARENTSTATEID,CONTENT,CHECKSTATE,FLAG,CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID,CREATEDATE,EDITUSERID,EDITUSERNAME,EDITCOMPANYID,EDITDEPARTMENTID,EDITPOSTID,EDITDATE,AGENTUSERID,AGENTERNAME,AGENTEDITDATE) VALUES (:FLOWRECORDDETAILID,:FLOWRECORDMASTERID,:STATECODE,:PARENTSTATEID,:CONTENT,:CHECKSTATE,:FLAG,:CREATEUSERID,:CREATEUSERNAME,:CREATECOMPANYID,:CREATEDEPARTMENTID,:CREATEPOSTID,:CREATEDATE,:EDITUSERID,:EDITUSERNAME,:EDITCOMPANYID,:EDITDEPARTMENTID,:EDITPOSTID,:EDITDATE,:AGENTUSERID,:AGENTERNAME,:AGENTEDITDATE)";
                OracleParameter[] pageparm =
                {               
                    new OracleParameter(":FLOWRECORDDETAILID",OracleType.NVarChar), 
                    new OracleParameter(":FLOWRECORDMASTERID",OracleType.NVarChar), 
                    new OracleParameter(":STATECODE",OracleType.NVarChar), 
                    new OracleParameter(":PARENTSTATEID",OracleType.NVarChar), 
                    new OracleParameter(":CONTENT",OracleType.NVarChar), 
                    new OracleParameter(":CHECKSTATE",OracleType.NVarChar), 
                    new OracleParameter(":FLAG",OracleType.NVarChar), 
                    new OracleParameter(":CREATEUSERID",OracleType.NVarChar), 
                    new OracleParameter(":CREATEUSERNAME",OracleType.NVarChar), 
                    new OracleParameter(":CREATECOMPANYID",OracleType.NVarChar), 
                    new OracleParameter(":CREATEDEPARTMENTID",OracleType.NVarChar), 
                    new OracleParameter(":CREATEPOSTID",OracleType.NVarChar), 
                    new OracleParameter(":CREATEDATE",OracleType.DateTime), 
                    new OracleParameter(":EDITUSERID",OracleType.NVarChar), 
                    new OracleParameter(":EDITUSERNAME",OracleType.NVarChar), 
                    new OracleParameter(":EDITCOMPANYID",OracleType.NVarChar), 
                    new OracleParameter(":EDITDEPARTMENTID",OracleType.NVarChar), 
                    new OracleParameter(":EDITPOSTID",OracleType.NVarChar), 
                    new OracleParameter(":EDITDATE",OracleType.DateTime), 
                    new OracleParameter(":AGENTUSERID",OracleType.NVarChar), 
                    new OracleParameter(":AGENTERNAME",OracleType.NVarChar), 
                    new OracleParameter(":AGENTEDITDATE",OracleType.DateTime) 

                };
                pageparm[0].Value = MsOracle.GetValue(model.FLOWRECORDDETAILID);//
                pageparm[1].Value = MsOracle.GetValue( model.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID);//
                pageparm[2].Value = MsOracle.GetValue( model.STATECODE );//
                pageparm[3].Value = MsOracle.GetValue( model.PARENTSTATEID );//
                pageparm[4].Value =MsOracle.GetValue(  model.CONTENT);//
                pageparm[5].Value =MsOracle.GetValue(  model.CHECKSTATE );//同意:1,不同意:0 ,未处理:2,会签同意7,会签不同意8
                pageparm[6].Value = MsOracle.GetValue( model.FLAG );//已审批:1,未审批:0
                pageparm[7].Value = MsOracle.GetValue( model.CREATEUSERID );//
                pageparm[8].Value = MsOracle.GetValue( model.CREATEUSERNAME);//
                pageparm[9].Value = MsOracle.GetValue( model.CREATECOMPANYID);//
                pageparm[10].Value =MsOracle.GetValue(  model.CREATEDEPARTMENTID );//
                pageparm[11].Value =MsOracle.GetValue(  model.CREATEPOSTID);//
                pageparm[12].Value =MsOracle.GetValue(  model.CREATEDATE);//
                pageparm[13].Value =MsOracle.GetValue(  model.EDITUSERID);//
                pageparm[14].Value =MsOracle.GetValue(  model.EDITUSERNAME );//
                pageparm[15].Value =MsOracle.GetValue(  model.EDITCOMPANYID);//
                pageparm[16].Value =MsOracle.GetValue(  model.EDITDEPARTMENTID);//
                pageparm[17].Value =MsOracle.GetValue(  model.EDITPOSTID);//
                pageparm[18].Value =MsOracle.GetValue(  model.EDITDATE);//
                pageparm[19].Value =MsOracle.GetValue(  model.AGENTUSERID);//
                pageparm[20].Value = MsOracle.GetValue( model.AGENTERNAME );//
                pageparm[21].Value =MsOracle.GetValue(  model.AGENTEDITDATE);//

                int n= MsOracle.ExecuteSQLByTransaction(con, insSql, pageparm);
                LogHelper.WriteLog("FLOW_FLOWRECORDDETAIL_TDAL->Add新增[流程审批明细表]成功:FLOWRECORDDETAILID=" + model.FLOWRECORDDETAILID + ";FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID=" + model.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID + ";时间:" + DateTime.Now.ToString());
                return n;

                #endregion
            }
            catch (Exception ex)
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                LogHelper.WriteLog("FLOW_FLOWRECORDDETAIL_TDAL->Add新增[流程审批明细表]失败:FLOWRECORDDETAILID=" + model.FLOWRECORDDETAILID + ";FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID=" + model.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID + ";时间:" + DateTime.Now.ToString() + "\r\n异常信息:" + ex.Message);
                throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL->Add:" + ex.Message);
            }
        }
예제 #34
0
파일: FlowBLL.cs 프로젝트: JuRogn/OA
        public FLOW_FLOWRECORDDETAIL_T UpdateFlowRecord(FLOW_FLOWRECORDDETAIL_T entity, string NextStateCode, string EditUserId)
        {
            FLOW_FLOWRECORDDETAIL_TDAL Dal = new FLOW_FLOWRECORDDETAIL_TDAL();


            //List<FLOW_FLOWRECORDDETAIL_T> Temp = Dal.GetFlowRecord("", entity.FLOWRECORDDETAILID, "", "", "", "", "");
            //Temp[0].CONTENT = entity.CONTENT;
            //Temp[0].CHECKSTATE = entity.CHECKSTATE;
            //Temp[0].FLAG = "1";
            //Temp[0].EDITDATE = DateTime.Now;
            //if (entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE != null)
            //    Temp[0].FLOW_FLOWRECORDMASTER_T.CHECKSTATE = entity.FLOW_FLOWRECORDMASTER_T.CHECKSTATE;
            //if (entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID != null)
            //    Temp[0].FLOW_FLOWRECORDMASTER_T.EDITUSERID = entity.FLOW_FLOWRECORDMASTER_T.EDITUSERID;
            //if (entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME != null)
            //    Temp[0].FLOW_FLOWRECORDMASTER_T.EDITUSERNAME = entity.FLOW_FLOWRECORDMASTER_T.EDITUSERNAME;
            //if (entity.FLOW_FLOWRECORDMASTER_T.EDITDATE != null)
            //    Temp[0].FLOW_FLOWRECORDMASTER_T.EDITDATE = entity.FLOW_FLOWRECORDMASTER_T.EDITDATE;

            //entity = Temp[0];

            //  entity.EDITDATE = DateTime.Now;
            entity.FLAG = "1";
            FLOW_FLOWRECORDDETAIL_TDAL.Update(entity);
            //Dal.UpdateFlowRecord(entity);
            return entity;




        }
예제 #35
0
        /// <summary>
        /// 获取流程(只返回前100条detail)
        /// </summary>
        /// <param name="con">OracleConnection连接对象</param>
        /// <param name="FormID">表单ID</param>
        /// <param name="FlowGUID">明细ID</param>
        /// <param name="CheckState">审批状态(同意:1,不同意:0 ,未处理:2,会签同意7,会签不同意8)</param>
        /// <param name="Flag">审批状态(已审批:1,未审批:0)</param>
        /// <param name="ModelCode">模块代码</param>
        /// <param name="CompanyID">创建公司ID</param>
        /// <param name="EditUserID">操作人</param>
        /// <param name="FlowType">流程类型(0:审批流程,1:任务流程)</param>
        /// <returns></returns>      
        public static List<FLOW_FLOWRECORDDETAIL_T> GetFlowRecordTop(OracleConnection con ,string FormID, string FlowGUID, string CheckState, string Flag, string ModelCode, string CompanyID, string EditUserID, List<string> FlowType)
        {
            if (con.State != ConnectionState.Open)
            {
                con.Open();
            }
            #region 旧的sql

//            StringBuilder sb = new StringBuilder();
//            sb.Append(@"select FLOW_FLOWRECORDMASTER_T.CHECKSTATE,FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID,FLOW_FLOWRECORDMASTER_T.CREATEDATE,
//                           FLOW_FLOWRECORDMASTER_T.CREATEDEPARTMENTID,FLOW_FLOWRECORDMASTER_T.CREATEPOSTID,FLOW_FLOWRECORDMASTER_T.CREATEUSERID,
//                           FLOW_FLOWRECORDMASTER_T.CREATEUSERNAME,FLOW_FLOWRECORDMASTER_T.EDITDATE,FLOW_FLOWRECORDMASTER_T.EDITUSERID,
//                           FLOW_FLOWRECORDMASTER_T.EDITUSERNAME,FLOW_FLOWRECORDMASTER_T.FLOWCODE,FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID,
//                           FLOW_FLOWRECORDMASTER_T.FLOWSELECTTYPE,FLOW_FLOWRECORDMASTER_T.FLOWTYPE,FLOW_FLOWRECORDMASTER_T.FORMID,
//                       FLOW_FLOWRECORDMASTER_T.INSTANCEID,FLOW_FLOWRECORDMASTER_T.MODELCODE 
//                    from FLOW_FLOWRECORDMASTER_T");
//            sb.Append(" where FLOWRECORDMASTERID in (");
//            sb.Append(@" select distinct FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID from FLOW_FLOWRECORDMASTER_T 
//                            join FLOW_FLOWRECORDDETAIL_T
//                            on FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID=FLOW_FLOWRECORDDETAIL_T.FLOWRECORDMASTERID where 1=1");

//            #region detail 条件
//            if (!string.IsNullOrEmpty(FlowGUID))
//            {
//                sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID='" + FlowGUID + "'");

//            }
//            if (!string.IsNullOrEmpty(Flag))
//            {
//                sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLAG='" + Flag + "'");
//            }

//            if (!string.IsNullOrEmpty(EditUserID))
//            {
//                sb.Append(" and (FLOW_FLOWRECORDDETAIL_T.EDITUSERID='" + EditUserID + "' or FLOW_FLOWRECORDDETAIL_T.AGENTUSERID='" + EditUserID + "')");
//            }
//            #endregion

//            #region master 条件

//            if (!string.IsNullOrEmpty(CompanyID))
//            {
//                sb.Append(" and FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID='" + CompanyID + "'");
//            }
//            if (!string.IsNullOrEmpty(ModelCode))
//            {
//                sb.Append(" and FLOW_FLOWRECORDMASTER_T.MODELCODE='" + ModelCode + "'");
//            }
//            if (!string.IsNullOrEmpty(FormID))
//            {
//                sb.Append(" and FLOW_FLOWRECORDMASTER_T.FORMID='" + FormID + "'");
//            }
//            if (!string.IsNullOrEmpty(CheckState))
//            {
//                sb.Append(" and FLOW_FLOWRECORDMASTER_T.CHECKSTATE='" + CheckState + "'");
//            }

//            if (FlowType != null)
//            {
//                if (FlowType.Count == 1)
//                {
//                    sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE='" + FlowType[0] + "'");
//                }
//                else
//                {
//                    sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE in (");
//                    for (int i = 0; i < FlowType.Count - 1; i++)
//                    {
//                        sb.Append("'" + FlowType[i] + "',");
//                    }
//                    sb.Append("'" + FlowType[FlowType.Count - 1] + "'");
//                    sb.Append(")");
//                }
//            }
//            #endregion

//            sb.Append(")");

//            sb.Append(" and rownum <=20");
//            sb.Append(" order by FLOW_FLOWRECORDMASTER_T.CREATEDATE desc");
            #endregion
            #region 新的sql(根据结果排序)

            StringBuilder sb = new StringBuilder();
            sb.Append(@"select * from ( select FLOW_FLOWRECORDMASTER_T.CHECKSTATE,FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID,FLOW_FLOWRECORDMASTER_T.CREATEDATE,
                           FLOW_FLOWRECORDMASTER_T.CREATEDEPARTMENTID,FLOW_FLOWRECORDMASTER_T.CREATEPOSTID,FLOW_FLOWRECORDMASTER_T.CREATEUSERID,
                           FLOW_FLOWRECORDMASTER_T.CREATEUSERNAME,FLOW_FLOWRECORDMASTER_T.EDITDATE,FLOW_FLOWRECORDMASTER_T.EDITUSERID,
                           FLOW_FLOWRECORDMASTER_T.EDITUSERNAME,FLOW_FLOWRECORDMASTER_T.FLOWCODE,FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID,
                           FLOW_FLOWRECORDMASTER_T.FLOWSELECTTYPE,FLOW_FLOWRECORDMASTER_T.FLOWTYPE,FLOW_FLOWRECORDMASTER_T.FORMID,
                       FLOW_FLOWRECORDMASTER_T.INSTANCEID,FLOW_FLOWRECORDMASTER_T.MODELCODE 
                    from FLOW_FLOWRECORDMASTER_T");
            sb.Append(" where FLOWRECORDMASTERID in (");
            sb.Append(@" select distinct FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID from FLOW_FLOWRECORDMASTER_T 
                            join FLOW_FLOWRECORDDETAIL_T
                            on FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID=FLOW_FLOWRECORDDETAIL_T.FLOWRECORDMASTERID where 1=1");

            #region detail 条件
            if (!string.IsNullOrEmpty(FlowGUID))
            {
                sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID='" + FlowGUID + "'");

            }
            if (!string.IsNullOrEmpty(Flag))
            {
                sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLAG='" + Flag + "'");
            }

            if (!string.IsNullOrEmpty(EditUserID))
            {
                sb.Append(" and (FLOW_FLOWRECORDDETAIL_T.EDITUSERID='" + EditUserID + "' or FLOW_FLOWRECORDDETAIL_T.AGENTUSERID='" + EditUserID + "')");
            }
            #endregion

            #region master 条件

            if (!string.IsNullOrEmpty(CompanyID))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID='" + CompanyID + "'");
            }
            if (!string.IsNullOrEmpty(ModelCode))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.MODELCODE='" + ModelCode + "'");
            }
            if (!string.IsNullOrEmpty(FormID))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.FORMID='" + FormID + "'");
            }
            if (!string.IsNullOrEmpty(CheckState))
            {
                sb.Append(" and FLOW_FLOWRECORDMASTER_T.CHECKSTATE='" + CheckState + "'");
            }

            if (FlowType != null)
            {
                if (FlowType.Count == 1)
                {
                    sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE='" + FlowType[0] + "'");
                }
                else
                {
                    sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE in (");
                    for (int i = 0; i < FlowType.Count - 1; i++)
                    {
                        sb.Append("'" + FlowType[i] + "',");
                    }
                    sb.Append("'" + FlowType[FlowType.Count - 1] + "'");
                    sb.Append(")");
                }
            }
            #endregion

            sb.Append(")");

            sb.Append(" and rownum <=20)");
            sb.Append(" order by CREATEDATE desc");
            #endregion
            List<FLOW_FLOWRECORDDETAIL_T> listDetail = new List<FLOW_FLOWRECORDDETAIL_T>();
            List<FLOW_FLOWRECORDMASTER_T> listMaster = new List<FLOW_FLOWRECORDMASTER_T>();          
                OracleDataReader dr = null;
                try
                {

                    List<string> listMasterID = new List<string>();
                    //OracleCommand command = con.CreateCommand();
                    //command.CommandText = sb.ToString();
                    //dr = command.ExecuteReader();
                    dr = MsOracle.ExecuteReaderByTransaction(con, sb.ToString(), null);
                    while (dr.Read())
                    {
                        #region master
                        FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T();

                        //master.ACTIVEROLE = dr["ACTIVEROLE"] == DBNull.Value ? null : dr["ACTIVEROLE"].ToString();
                        //master.BUSINESSOBJECT = dr["BUSINESSOBJECT"] == DBNull.Value ? null : dr["BUSINESSOBJECT"].ToString();
                        master.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString();
                        master.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                        master.CREATEDATE = (DateTime)dr["CREATEDATE"];
                        master.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        master.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString();
                        master.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                        master.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                        master.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                        master.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                        master.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                        master.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                        master.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                        master.FLOWSELECTTYPE = dr["FLOWSELECTTYPE"] == DBNull.Value ? null : dr["FLOWSELECTTYPE"].ToString();
                        master.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                        master.FORMID = dr["FORMID"] == DBNull.Value ? null : dr["FORMID"].ToString();
                        master.INSTANCEID = dr["INSTANCEID"] == DBNull.Value ? null : dr["INSTANCEID"].ToString();
                        //master.KPITIMEXML = dr["KPITIMEXML"] == DBNull.Value ? null : dr["KPITIMEXML"].ToString();
                        master.MODELCODE = dr["MODELCODE"] == DBNull.Value ? null : dr["MODELCODE"].ToString();
                        master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>();
                        listMaster.Add(master);
                        listMasterID.Add("'" + master.FLOWRECORDMASTERID + "'");
                        #endregion

                    }
                    dr.Close();
                    if (listMasterID.Count > 0)
                    {
                        string sql = @"select *  from FLOW_FLOWRECORDDETAIL_T where FLOWRECORDMASTERID in (" + string.Join(",", listMasterID.ToArray()) + ")";
                 
                        dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                        while (dr.Read())
                        {
                            #region detail
                            FLOW_FLOWRECORDDETAIL_T detail = new FLOW_FLOWRECORDDETAIL_T();
                            string FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                            detail.FLOW_FLOWRECORDMASTER_T = listMaster.FirstOrDefault(m => m.FLOWRECORDMASTERID == FLOWRECORDMASTERID);
                            detail.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T.Add(detail);

                            detail.AGENTEDITDATE = dr["AGENTEDITDATE"] == DBNull.Value ? null : (DateTime?)dr["AGENTEDITDATE"];
                            detail.AGENTERNAME = dr["AGENTERNAME"] == DBNull.Value ? null : dr["AGENTERNAME"].ToString();
                            detail.AGENTUSERID = dr["AGENTUSERID"] == DBNull.Value ? null : dr["AGENTUSERID"].ToString();
                            detail.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString();
                            detail.CONTENT = dr["CONTENT"] == DBNull.Value ? null : dr["CONTENT"].ToString();
                            detail.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                            detail.CREATEDATE = (DateTime)dr["CREATEDATE"];
                            detail.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                            detail.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString();
                            detail.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                            detail.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                            detail.EDITCOMPANYID = dr["EDITCOMPANYID"] == DBNull.Value ? null : dr["EDITCOMPANYID"].ToString();
                            detail.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                            detail.EDITDEPARTMENTID = dr["EDITDEPARTMENTID"] == DBNull.Value ? null : dr["EDITDEPARTMENTID"].ToString();
                            detail.EDITPOSTID = dr["EDITPOSTID"] == DBNull.Value ? null : dr["EDITPOSTID"].ToString();
                            detail.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                            detail.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                            detail.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString();
                            //detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                            detail.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"] == DBNull.Value ? null : dr["FLOWRECORDDETAILID"].ToString();
                            detail.PARENTSTATEID = dr["PARENTSTATEID"] == DBNull.Value ? null : dr["PARENTSTATEID"].ToString();
                            detail.STATECODE = dr["STATECODE"] == DBNull.Value ? null : dr["STATECODE"].ToString();
                            detail.FLOW_CONSULTATION_T = new EntityCollection<FLOW_CONSULTATION_T>();
                            listDetail.Add(detail);

                            #endregion
                        }
                        dr.Close();
                    }

                    return listDetail;

                }
                catch (Exception ex)
                {
                    if (dr != null && !dr.IsClosed)
                    {
                        dr.Close();
                    }

                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }
                    throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL->GetFlowRecordTop:-" + FormID + "-" + ex.Message + ex.InnerException);
                }
        

        }
예제 #36
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
 /// <summary>
 /// 更新[流程审批明细表]
 /// </summary>
 /// <param name="entity">流程审批明细表</param>
 /// <param name="NextStateCode">下一个状态代码</param>
 /// <param name="EditUserId">编辑用户ID</param>
 /// <returns></returns>
 public FLOW_FLOWRECORDDETAIL_T UpdateFlowRecord(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity, string NextStateCode, string EditUserId)
 {
     entity.FLAG = "1";
     FLOW_FLOWRECORDDETAIL_TDAL.Update(con, entity);
     return entity;
 }
예제 #37
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
 /// <summary>
 /// 新增[流程审批明细表]
 /// </summary>
 /// <param name="entity">流程审批明细表</param>
 /// <param name="NextStateCode">下一个状态代码</param>
 /// <param name="EditUserId">编辑用户ID</param>
 void AddFlowRecord(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity, string NextStateCode, string EditUserId)
 {
     FLOW_FLOWRECORDDETAIL_TDAL.Add(con, entity);
 }
예제 #38
0
        public static List<FLOW_FLOWRECORDMASTER_T> GetFlowRecordBySubmitUserID(string CheckState, string EditUserID)
        {
            List<FLOW_FLOWRECORDMASTER_T> listMaster = new List<FLOW_FLOWRECORDMASTER_T>();
            List<string> listMasterID = new List<string>();
            using (OracleConnection con = new OracleConnection(ADOHelper.ContextOracleConnection))
            {
                OracleDataReader dr = null;
                try
                {
                    StringBuilder sbMaster = new StringBuilder();
                    sbMaster.Append(@"select FLOWRECORDMASTERID,INSTANCEID,MODELCODE,FLOWCODE,
                                        FORMID,CHECKSTATE,CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID,
                                         CREATEDATE,EDITUSERID,EDITUSERNAME,EDITDATE,FLOWTYPE,FLOWSELECTTYPE
                                         from FLOW_FLOWRECORDMASTER_T where 1=1 ");
                    if (!string.IsNullOrEmpty(EditUserID))
                    {
                        sbMaster.Append(" and CREATEUSERID='" + EditUserID + "'");
                    }

                    if (!string.IsNullOrEmpty(CheckState))
                    {
                        sbMaster.Append(" and CHECKSTATE='" + CheckState + "'");
                    }


                    #region
                    con.Open();
                    OracleCommand cmd = con.CreateCommand();
                    cmd.CommandText = sbMaster.ToString();
                    dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        #region master
                        FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T();
                        //master.ACTIVEROLE = dr["ACTIVEROLE"] == DBNull.Value ? null : dr["ACTIVEROLE"].ToString();
                        //master.BUSINESSOBJECT = dr["BUSINESSOBJECT"] == DBNull.Value ? null : dr["BUSINESSOBJECT"].ToString();
                        master.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString();
                        master.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                        master.CREATEDATE = (DateTime)dr["CREATEDATE"];
                        master.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        master.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString();
                        master.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                        master.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                        master.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                        master.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                        master.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                        master.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                        master.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                        master.FLOWSELECTTYPE = dr["FLOWSELECTTYPE"] == DBNull.Value ? null : dr["FLOWSELECTTYPE"].ToString();
                        master.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                        master.FORMID = dr["FORMID"] == DBNull.Value ? null : dr["FORMID"].ToString();
                        master.INSTANCEID = dr["INSTANCEID"] == DBNull.Value ? null : dr["INSTANCEID"].ToString();
                        //master.KPITIMEXML = dr["KPITIMEXML"] == DBNull.Value ? null : dr["KPITIMEXML"].ToString();
                        master.MODELCODE = dr["MODELCODE"] == DBNull.Value ? null : dr["MODELCODE"].ToString();
                        master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>();
                        listMaster.Add(master);
                        listMasterID.Add("'" + master.FLOWRECORDMASTERID + "'");
                        #endregion

                    }
                    dr.Close();

                    if (listMasterID.Count > 0)
                    {
                        #region detail
                        cmd.CommandText = @"select * from FLOW_FLOWRECORDDETAIL_T where FLOWRECORDMASTERID in (" + string.Join(",", listMasterID.ToArray()) + ")";
                        dr = cmd.ExecuteReader();
                        while (dr.Read())
                        {
                            #region detail
                            FLOW_FLOWRECORDDETAIL_T detail = new FLOW_FLOWRECORDDETAIL_T();
                            detail.FLOW_FLOWRECORDMASTER_T = listMaster.FirstOrDefault(m => m.FLOWRECORDMASTERID == dr["FLOWRECORDMASTERID"].ToString());
                            detail.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T.Add(detail);
                            detail.AGENTEDITDATE = dr["AGENTEDITDATE"] == DBNull.Value ? null : (DateTime?)dr["AGENTEDITDATE"];
                            detail.AGENTERNAME = dr["AGENTERNAME"] == DBNull.Value ? null : dr["AGENTERNAME"].ToString();
                            detail.AGENTUSERID = dr["AGENTUSERID"] == DBNull.Value ? null : dr["AGENTUSERID"].ToString();
                            detail.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString();
                            detail.CONTENT = dr["CONTENT"] == DBNull.Value ? null : dr["CONTENT"].ToString();
                            detail.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                            detail.CREATEDATE = (DateTime)dr["CREATEDATE"];
                            detail.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                            detail.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString();
                            detail.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                            detail.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                            detail.EDITCOMPANYID = dr["EDITCOMPANYID"] == DBNull.Value ? null : dr["EDITCOMPANYID"].ToString();
                            detail.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                            detail.EDITDEPARTMENTID = dr["EDITDEPARTMENTID"] == DBNull.Value ? null : dr["EDITDEPARTMENTID"].ToString();
                            detail.EDITPOSTID = dr["EDITPOSTID"] == DBNull.Value ? null : dr["EDITPOSTID"].ToString();
                            detail.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                            detail.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                            detail.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString();
                            //detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString();
                            detail.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"] == DBNull.Value ? null : dr["FLOWRECORDDETAILID"].ToString();
                            detail.PARENTSTATEID = dr["PARENTSTATEID"] == DBNull.Value ? null : dr["PARENTSTATEID"].ToString();
                            detail.STATECODE = dr["STATECODE"] == DBNull.Value ? null : dr["STATECODE"].ToString();
                            #endregion
                        }
                        dr.Close();
                        #endregion
                    }

                    con.Close();
                    return listMaster;
                    #endregion


                }
                catch (Exception ex)
                {
                    if (dr != null && !dr.IsClosed)
                    {
                        dr.Close();
                    }
                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }
                    throw ex;
                }

            }
        }
예제 #39
0
파일: FlowBLL2.cs 프로젝트: JuRogn/OA
 /// <summary>
 /// 新增[流程审批明细表]
 /// </summary>
 /// <param name="entity">流程审批明细表</param>
 void AddFlowRecord2(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity)
 {
     FLOW_FLOWRECORDDETAIL_TDAL.Add(con, entity);
 }
예제 #40
0
파일: FlowBLL.cs 프로젝트: JuRogn/OA
        void AddFlowRecord2(FLOW_FLOWRECORDDETAIL_T entity)
        {
            //FLOW_FLOWRECORDDETAIL_TDAL Dal = new FLOW_FLOWRECORDDETAIL_TDAL();
            //Dal.AddFlowRecord(entity);
            FLOW_FLOWRECORDDETAIL_TDAL.Add(entity);

        }