private void 审批ToolStripMenuItem1_Click(object sender, EventArgs e) { if (lblStatus.Text.Trim() == DimissionBillStatus.等待人力资源审阅.ToString()) { if (txtHROpinion.Text.Trim() == "") { MessageDialog.ShowPromptMessage("请填写人力资源部意见!"); return; } HR_DimissionBill dimission = new HR_DimissionBill(); dimission.HR_Opinion = txtHROpinion.Text; dimission.HR_Signature = txtHRSignature.Text; dimission.HR_SignatureDate = dtpHRDate.Value; dimission.WorkID = txtApplicant.Tag.ToString(); dimission.Date = dtpDate.Value; dimission.Reason = txtReason.Text; billID = Convert.ToInt32(m_dimiServer.AddAndUpdateDimission(dimission, "人力资源部审批", out error)); if (billID == 0) { MessageDialog.ShowPromptMessage(error); return; } MessageDialog.ShowPromptMessage("人力资源部审批成功!等待分管领导审核"); m_billMessageServer.PassFlowMessage(billID.ToString(), string.Format("{0}号离职申请单,请分管领导审核", billID.ToString()), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptLeaderRoleName(m_personnerServer.GetPersonnelViewInfo(txtApplicant.Tag.ToString()).部门编号).ToList()); } else { MessageDialog.ShowPromptMessage("请确认单据状态!"); return; } this.Close(); }
/// <summary> /// 回退单据 /// </summary> /// <param name="strDJH">单据号</param> /// <param name="strBillStatus">单据状态</param> /// <param name="strRebackReason">回退状态</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>操作成功返回True,操作失败返回False</returns> public bool ReturnBill(string strDJH, string strBillStatus, string strRebackReason, out string error) { error = null; try { DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; var result = from a in dataContxt.HR_OnBusinessBill where a.ID == Convert.ToInt32(strDJH) select a; string strMsg = ""; if (result.Count() == 1) { HR_OnBusinessBill onBusiness = result.Single(); m_billMessageServer.BillType = "出差申请单"; DataTable dt = new PersonnelArchiveServer().GetHighestDept(onBusiness.Applicant); if (dt != null && dt.Rows.Count > 0) { m_highDept = dt.Rows[0]["deptCode"].ToString(); } switch (strBillStatus) { case "等待主管审核": strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH); m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptDirectorRoleName(m_highDept).ToList()); onBusiness.BillStatus = OnBusinessBillStatus.等待部门负责人审核.ToString(); onBusiness.Authorize = false; onBusiness.Confirmor = ""; onBusiness.ConfirmorDate = ServerTime.Time; onBusiness.DeptPrincipal = ""; onBusiness.DeptSignatureDate = ServerTime.Time; onBusiness.GeneralManager = ""; onBusiness.GM_SignatureDate = ServerTime.Time; onBusiness.LeaderSignature = ""; onBusiness.LeaderSignatureDate = ServerTime.Time; onBusiness.RealBeginTime = ServerTime.Time; onBusiness.RealEndTime = ServerTime.Time; //onBusiness.Result = ""; break; case "等待分管领导审批": strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH); m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptLeaderRoleName(m_highDept).ToList()); onBusiness.BillStatus = OnBusinessBillStatus.等待分管领导审批.ToString(); onBusiness.Confirmor = ""; onBusiness.ConfirmorDate = ServerTime.Time; onBusiness.GeneralManager = ""; onBusiness.GM_SignatureDate = ServerTime.Time; onBusiness.LeaderSignature = ""; onBusiness.LeaderSignatureDate = ServerTime.Time; onBusiness.RealBeginTime = ServerTime.Time; onBusiness.RealEndTime = ServerTime.Time; //onBusiness.Result = ""; break; case "等待总经理批准": strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH); m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.总经理.ToString()); onBusiness.BillStatus = OnBusinessBillStatus.等待总经理批准.ToString(); onBusiness.Authorize = false; onBusiness.Confirmor = ""; onBusiness.ConfirmorDate = ServerTime.Time; onBusiness.GeneralManager = ""; onBusiness.GM_SignatureDate = ServerTime.Time; onBusiness.RealBeginTime = ServerTime.Time; onBusiness.RealEndTime = ServerTime.Time; //onBusiness.Result = ""; break; case "等待销差人确认": strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH); m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.用户, onBusiness.Applicant.ToString()); onBusiness.BillStatus = OnBusinessBillStatus.等待销差人确认.ToString(); onBusiness.Confirmor = ""; onBusiness.ConfirmorDate = ServerTime.Time; onBusiness.RealBeginTime = ServerTime.Time; onBusiness.RealEndTime = ServerTime.Time; //onBusiness.Result = ""; break; default: break; } dataContxt.SubmitChanges(); return(true); } else { error = "数据不唯一或者为空"; return(false); } } catch (Exception ex) { error = ex.Message; return(false); } }
private void 调出审批toolStripButton2_Click(object sender, EventArgs e) { if (lblStatus.Text == PostChangeStatus.等待调出部门负责人审核.ToString()) { if (txtOldDeptOpinion.Text.Trim() == "") { MessageDialog.ShowPromptMessage("请填写【调出部门负责人意见】!"); return; } if (!cbOldDeptAuthorize.Checked) { if (MessageDialog.ShowEnquiryMessage("您同意【" + txtApplicant.Text + "】调出此岗位吗?") == DialogResult.Yes) { cbOldDeptAuthorize.Checked = true; } } if (!m_PostChangeServer.UpdateOldDept(Convert.ToInt32(m_billNo), txtOldDeptOpinion.Text.Trim(), cbOldDeptAuthorize.Checked, out m_error)) { MessageDialog.ShowPromptMessage(m_error); return; } else { m_billMessageServer.PassFlowMessage(m_billNo.ToString(), string.Format("{0}号部门调动申请,请调出部门分管领导审核", m_billNo), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptLeaderRoleName(txtOldDept.Tag.ToString()).ToList()); MessageDialog.ShowPromptMessage("审批成功!"); this.Close(); } } else { MessageDialog.ShowPromptMessage("请确认单据状态!"); return; } }
/// <summary> /// 更新流程 /// </summary> /// <param name="billNo">单据号</param> /// <param name="advise">意见</param> /// <param name="error">错误信息</param> /// <returns>成功返回True,失败返回False</returns> public bool UpdateInfo(string billNo, string advise, out string error) { error = null; IBillMessagePromulgatorServer serverBill = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>(); ISystemFileBasicInfo m_serverFileBasicInfo = Service_Quality_File.ServerModuleFactory.GetServerModule <ISystemFileBasicInfo>(); FileServiceSocket m_serverFTP = new FileServiceSocket(GlobalObject.GlobalParameter.FTPServerIP, GlobalObject.GlobalParameter.FTPServerAdvancedUser, GlobalObject.GlobalParameter.FTPServerAdvancedPassword); DepotManagementDataContext ctx = CommentParameter.DepotDataContext; try { var varData = from a in ctx.FM_InstitutionProcess where a.BillNo == billNo select a; FM_InstitutionProcess lnqProcess = varData.Single(); serverBill.BillType = serverBill.GetBillTypeEnum(lnqProcess.TypeCode).ToString(); CE_BillTypeEnum billType = GlobalObject.GeneralFunction.StringConvertToEnum <CE_BillTypeEnum>(serverBill.BillType); InstitutionBillStatus billStatus = GlobalObject.GeneralFunction.StringConvertToEnum <InstitutionBillStatus>(lnqProcess.BillStatus); var varList = from a in ctx.FM_InstitutionProcessPointDept where a.BillNo == billNo select a; FM_InstitutionProcessPointDept lnqPoint = new FM_InstitutionProcessPointDept(); List <FM_InstitutionProcessPointDept> list = varList.ToList(); List <string> listTemp = new List <string>(); switch (billStatus) { case InstitutionBillStatus.新建流程: break; case InstitutionBillStatus.等待科长审查: lnqProcess.BillStatus = InstitutionBillStatus.等待负责人审查.ToString(); lnqProcess.Chief = BasicInfo.LoginName; lnqProcess.ChiefAdvise = advise; lnqProcess.ChiefTime = ServerTime.Time; serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptPrincipalRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList()); break; case InstitutionBillStatus.等待负责人审查: lnqProcess.BillStatus = InstitutionBillStatus.等待相关负责人审查.ToString(); lnqProcess.DepartmentHead = BasicInfo.LoginName; lnqProcess.DepartmentHeadAdvise = advise; lnqProcess.DepartmentHeadTime = ServerTime.Time; if (billType == CE_BillTypeEnum.制度销毁申请流程) { lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList()); } else { listTemp = (from a in list where a.PersonnelType == RoleStyle.负责人.ToString() select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } break; case InstitutionBillStatus.等待相关负责人审查: lnqPoint = (from a in list where a.Personnel == BasicInfo.LoginID && a.PersonnelType == RoleStyle.负责人.ToString() select a).Single(); lnqPoint.PersonnelTime = ServerTime.Time; lnqPoint.Advise = advise; var varHead = from a in list where a.PersonnelType == RoleStyle.负责人.ToString() && a.PersonnelTime == null select a; if (varHead.Count() == 0) { if (IsThreeTripFile(lnqProcess.SortID)) { lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList()); } else { lnqProcess.BillStatus = InstitutionBillStatus.等待相关分管领导审查.ToString(); listTemp = (from a in list where a.PersonnelType == RoleStyle.分管领导.ToString() select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } } else { listTemp = (from a in varHead select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } break; case InstitutionBillStatus.等待相关分管领导审查: lnqPoint = (from a in list where a.Personnel == BasicInfo.LoginID && a.PersonnelType == RoleStyle.分管领导.ToString() select a).Single(); lnqPoint.PersonnelTime = ServerTime.Time; lnqPoint.Advise = advise; var varLead = from a in list where a.PersonnelType == RoleStyle.分管领导.ToString() && a.PersonnelTime == null select a; if (varLead.Count() == 0) { lnqProcess.BillStatus = InstitutionBillStatus.等待总经理审查.ToString(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.总经理.ToString()); } else { listTemp = (from a in varLead select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } break; case InstitutionBillStatus.等待分管领导审查: case InstitutionBillStatus.等待总经理审查: lnqProcess.BillStatus = InstitutionBillStatus.流程已结束.ToString(); lnqProcess.GeneralManager = BasicInfo.LoginName; lnqProcess.GeneralManagerAdvise = advise; lnqProcess.GeneralManagerTime = ServerTime.Time; FM_FileList fileInfo = new FM_FileList(); if (lnqProcess.FileID != null) { var varFileInfo = from a in ctx.FM_FileList where a.FileID == lnqProcess.FileID select a; if (varFileInfo.Count() == 1) { fileInfo = varFileInfo.Single(); } } if (billType == CE_BillTypeEnum.制度发布流程) { string strVersion = "1.0"; if (lnqProcess.ReplaceFileID == null) { DataTable dtTemp = m_serverFileBasicInfo.GetFilesInfo(lnqProcess.FileNo, null); } else { m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, Convert.ToInt32(lnqProcess.ReplaceFileID), 29); strVersion = (Convert.ToDouble(m_serverFileBasicInfo.GetFile(Convert.ToInt32(lnqProcess.ReplaceFileID)).Version) + 0.1).ToString(); } FM_FileList lnqFile = new FM_FileList(); lnqFile.Department = lnqProcess.Department; lnqFile.FileName = lnqProcess.FileName; lnqFile.FileNo = lnqProcess.FileNo; lnqFile.FileUnique = lnqProcess.FileUnique; lnqFile.SortID = lnqProcess.SortID; lnqFile.Version = strVersion; ctx.FM_FileList.InsertOnSubmit(lnqFile); if (m_serverFTP.Errormessage.Length != 0) { throw new Exception(m_serverFTP.Errormessage); } } else if (billType == CE_BillTypeEnum.制度修订废弃申请流程 && lnqProcess.OperationMode == "废弃") { if (fileInfo != null) { fileInfo.SortID = 29; } } else if (billType == CE_BillTypeEnum.制度销毁申请流程) { ctx.FM_FileList.DeleteOnSubmit(fileInfo); } serverBill.EndFlowMessage(lnqProcess.BillNo, string.Format("{0}号文件审查流程已结束", lnqProcess.BillNo), null, (from a in varList select a.Personnel).ToList()); break; case InstitutionBillStatus.流程已结束: break; default: break; } ctx.SubmitChanges(); return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
/// <summary> /// 添加信息 /// </summary> /// <param name="institution">LINQ信息</param> /// <param name="deptList">部门信息</param> /// <param name="billEnum">单据类型</param> /// <param name="error">错误信息</param> /// <returns>成功返回True</returns> public bool AddInfo(FM_InstitutionProcess institution, List <string> deptList, out string error) { error = null; DepotManagementDataContext ctx = CommentParameter.DepotDataContext; IBillMessagePromulgatorServer serverBill = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>(); serverBill.BillType = serverBill.GetBillTypeEnum(institution.TypeCode).ToString(); try { institution.Propoer = BasicInfo.LoginName; institution.PropoerTime = ServerTime.Time; institution.BillStatus = InstitutionBillStatus.等待科长审查.ToString(); ctx.FM_InstitutionProcess.InsertOnSubmit(institution); List <FM_InstitutionProcessPointDept> listPoint = new List <FM_InstitutionProcessPointDept>(); FM_InstitutionProcessPointDept tempLnq = new FM_InstitutionProcessPointDept(); if (deptList != null) { foreach (string item in deptList) { List <string> list = serverBill.GetUserCodes(serverBill.GetDeptPrincipalRoleName(item).ToList(), null); foreach (string workID in list) { tempLnq = new FM_InstitutionProcessPointDept(); tempLnq.BillNo = institution.BillNo; tempLnq.PersonnelType = RoleStyle.负责人.ToString(); tempLnq.Personnel = workID; listPoint.Add(tempLnq); } if (!IsThreeTripFile(institution.SortID)) { list = serverBill.GetUserCodes(serverBill.GetDeptLeaderRoleName(item).ToList(), null); foreach (string workID in list) { tempLnq = new FM_InstitutionProcessPointDept(); tempLnq.BillNo = institution.BillNo; tempLnq.PersonnelType = RoleStyle.分管领导.ToString(); tempLnq.Personnel = workID; listPoint.Add(tempLnq); } } } var varData = (from a in listPoint select new { a.BillNo, a.Personnel, a.PersonnelType }).Distinct(); listPoint = new List <FM_InstitutionProcessPointDept>(); foreach (var item in varData) { tempLnq = new FM_InstitutionProcessPointDept(); tempLnq.PersonnelType = item.PersonnelType; tempLnq.Personnel = item.Personnel; tempLnq.BillNo = item.BillNo; listPoint.Add(tempLnq); } ctx.FM_InstitutionProcessPointDept.InsertAllOnSubmit(listPoint); } ctx.SubmitChanges(); serverBill.DestroyMessage(institution.BillNo); serverBill.SendNewFlowMessage(institution.BillNo, string.Format("{0}号文件审查流程已提交,请等待上级审核", institution.BillNo), BillFlowMessage_ReceivedUserType.角色, serverBill.GetSuperior(CE_RoleStyleType.级领导, BasicInfo.LoginID)); return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
private void 提交单据ToolStripMenuItem_Click(object sender, EventArgs e) { if (lblStatus.Text.Trim() == OverTimeBillStatus.新建单据.ToString()) { if (!CheckControl()) { return; } List <HR_OvertimePersonnel> lstPersonnel = new List <HR_OvertimePersonnel>(dataGridView2.Rows.Count); for (int i = 0; i < dataGridView2.Rows.Count; i++) { HR_OvertimePersonnel personnel = new HR_OvertimePersonnel(); DataGridViewCellCollection cells = dataGridView2.Rows[i].Cells; personnel.WorkID = dataGridView2.Rows[i].Cells["员工编号"].Value.ToString(); lstPersonnel.Add(personnel); } HR_OvertimeBill overTimeBill = new HR_OvertimeBill(); overTimeBill.Applicant = txtApplicant.Tag.ToString(); overTimeBill.Authorize = false; overTimeBill.BeginTime = dtpBeginTime.Value; overTimeBill.CompensateMode = cmbCompensateMode.Text; overTimeBill.Date = ServerTime.Time; overTimeBill.Errand = txtErrand.Text; overTimeBill.Hours = numHours.Value; overTimeBill.RealHours = Convert.ToDouble(numHours.Value); overTimeBill.NumberOfPersonnel = Convert.ToInt32(txtNumOfPersonnel.Text); overTimeBill.VerifyFinish = false; overTimeBill.EndTime = dtpEndTime.Value; overTimeBill.OvertimeAddress = cmbOvertimeAddress.Text; IQueryable <View_HR_PersonnelArchive> directorGroup1 = m_personnerServer.GetDeptDirector( m_personnerServer.GetPersonnelInfo(txtApplicant.Tag.ToString()).Dept, "1"); bool flagPri = false; //判断申请人是不是负责人 bool isDeptDirector = false; //申请部门有没有主管 if (directorGroup1 != null && directorGroup1.Count() > 0) { foreach (var item in directorGroup1) { if (BasicInfo.LoginID == item.员工编号) { flagPri = true; break; } } } IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector( m_personnerServer.GetPersonnelInfo(txtApplicant.Tag.ToString()).Dept, "0"); bool flag = false;//判断申请人是不是主管 if (directorGroup != null && directorGroup.Count() > 0) { isDeptDirector = true; foreach (var item in directorGroup) { if (BasicInfo.LoginID == item.员工编号) { flag = true; break; } } } if (!flag && !flagPri) { if (isDeptDirector) { overTimeBill.BillStatus = OverTimeBillStatus.等待主管审核.ToString(); } else { overTimeBill.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString(); } } else if (flag && !flagPri) { overTimeBill.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString(); } else { overTimeBill.BillStatus = OverTimeBillStatus.等待分管领导审批.ToString(); } m_billNo = m_overTimeServer.AddOverTimeBill(overTimeBill, lstPersonnel, out error).ToString(); if (Convert.ToInt32(m_billNo) < 0) { MessageDialog.ShowPromptMessage(error); return; } else { MessageDialog.ShowPromptMessage("新增成功!"); m_billMessageServer.DestroyMessage(m_billNo); if (overTimeBill.BillStatus.Equals(OverTimeBillStatus.等待主管审核.ToString())) { m_billMessageServer.SendNewFlowMessage(m_billNo, string.Format("{0}号加班申请单,请主管审核", m_billNo), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptDirectorRoleName(m_personnerServer.GetPersonnelViewInfo( txtApplicant.Tag.ToString()).部门编号).ToList()); } else if (overTimeBill.BillStatus == OverTimeBillStatus.等待部门负责人审核.ToString()) { m_billMessageServer.SendNewFlowMessage(m_billNo, string.Format("{0}号加班申请单,请部门负责人审核", m_billNo), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptPrincipalRoleName( m_personnerServer.GetPersonnelViewInfo(txtApplicant.Tag.ToString()).部门编号).ToList()); } else { m_billMessageServer.SendNewFlowMessage(m_billNo, string.Format("{0}号加班申请单,请分管领导审核", m_billNo), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptLeaderRoleName( m_personnerServer.GetPersonnelViewInfo(txtApplicant.Tag.ToString()).部门编号).ToList()); } } } else { MessageDialog.ShowPromptMessage("请确认单据状态!"); return; } this.Close(); }