//[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); } }
[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()); } } } }
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()); } } } }
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); }
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); } }
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); } }
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); } }
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); } }
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); } }
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 }
/// <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; }
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; } }
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); }
/// <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); } }
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 }
/// <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); } }
public string UpdateFlow(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity) { FlowBLL2 bll = new FlowBLL2(); bll.UpdateFlowRecord(con, entity, "", ""); return ""; }
//下一审核人提交审核时调用方法 /// <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); } }
/// <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); } }
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; }
/// <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); } }
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(); } } } }
//[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); } }
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); } } }
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; }
/// <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); } }
/// <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; } }
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(); } } } }
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); } } }
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; } }
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); } } }
/// <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; } }
/// <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); } }
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; }
/// <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); } }
/// <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; }
/// <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); }
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; } } }
/// <summary> /// 新增[流程审批明细表] /// </summary> /// <param name="entity">流程审批明细表</param> void AddFlowRecord2(OracleConnection con, FLOW_FLOWRECORDDETAIL_T entity) { FLOW_FLOWRECORDDETAIL_TDAL.Add(con, entity); }
void AddFlowRecord2(FLOW_FLOWRECORDDETAIL_T entity) { //FLOW_FLOWRECORDDETAIL_TDAL Dal = new FLOW_FLOWRECORDDETAIL_TDAL(); //Dal.AddFlowRecord(entity); FLOW_FLOWRECORDDETAIL_TDAL.Add(entity); }