/// <summary> /// 退回当前流程 /// </summary> /// <param name="context"></param> /// <param name="msg"></param> /// <param name="P1"></param> /// <param name="P2"></param> /// <param name="UserInfo"></param> public void REBACKWF(JObject context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { try { int PID = int.Parse(P1); Yan_WF_PIB PIB = new Yan_WF_PIB(); if (PIB.isCanSP(UserInfo.User.UserName, PID) == "Y") //先判断用户能不能处理此流程 { new Yan_WF_PIB().REBACKLC(UserInfo.User.UserName, PID, P2); //结束任务 string ModeCode = context.Request("formcode") ?? "LCSP"; if (!string.IsNullOrEmpty(ModeCode)) { Yan_WF_PI PI = new Yan_WF_PIB().GetEntity(d => d.ID == PID); //消息提醒 SZHL_TXSX TX = new SZHL_TXSX(); TX.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); TX.APIName = "FORMBI"; TX.ComId = UserInfo.User.ComId; TX.FunName = "LCSPCHECK"; TX.intProcessStanceid = PID; TX.CRUserRealName = UserInfo.User.UserRealName; TX.MsgID = PID.ToString(); TX.TXContent = UserInfo.User.UserRealName + "退回了" + new Yan_WF_PDB().GetEntity(d => d.ID == PI.PDID.Value).ProcessName + ",请您查阅"; TX.TXUser = PI.CRUser; TX.TXMode = ModeCode; TX.CRUser = UserInfo.User.UserName; TXSXAPI.AddALERT(TX); //时间为发送时间 } } else { msg.ErrorMsg = "该流程已被处理,您已无法处理此流程"; } } catch (Exception ex) { msg.ErrorMsg = ex.Message; } }
/// <summary> /// 添加短信内容并发送短信 /// </summary> /// <param name="context"></param> /// <param name="msg"></param> /// <param name="P1"></param> /// <param name="P2"></param> /// <param name="UserInfo"></param> public void ADDDXGL(JObject context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { try { SZHL_DXGL dxgl = JsonConvert.DeserializeObject <SZHL_DXGL>(P1); if (dxgl.dxContent.Trim() != "") { dxgl.CRUser = UserInfo.User.UserName; dxgl.CRDate = DateTime.Now; dxgl.SendTime = dxgl.SendTime == null ? DateTime.Now : dxgl.SendTime; dxgl.ComId = UserInfo.User.ComId.Value; //发送短信 new SZHL_DXGLB().Insert(dxgl); //消息提醒 SZHL_TXSX TX = new SZHL_TXSX(); TX.Date = dxgl.SendTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); TX.APIName = "DXGL"; TX.ComId = UserInfo.User.ComId; TX.FunName = "DXGLCHECK"; TX.MsgID = dxgl.ID.ToString(); TX.TXContent = dxgl.dxContent; TX.TXUser = dxgl.dxnums; TX.TXMode = "DXGL"; TX.CRUser = UserInfo.User.UserName; TXSXAPI.AddALERT(TX); //时间为发送时间 } else { msg.ErrorMsg = "请输入短信内容"; } } catch (Exception ex) { msg.ErrorMsg = ex.Message; } }
/// <summary> /// 发放工资条 /// </summary> /// <param name="context"></param> /// <param name="msg"></param> /// <param name="P1"></param> /// <param name="P2"></param> /// <param name="UserInfo"></param> public void FFXZ(JObject context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { if (string.IsNullOrWhiteSpace(P1)) { msg.ErrorMsg = "发送失败"; return; } string taitou = context.Request("taitou") ?? ""; string luokuan = context.Request("luokuan") ?? ""; string ffdx = context.Request("ffdx") ?? ""; string ffwx = context.Request("ffwx") ?? ""; string ym = context.Request("ym") ?? ""; SZHL_XZ_JL xzjj = new SZHL_XZ_JL(); xzjj.YearMonth = ym; xzjj.title = P2; xzjj.rise = taitou; xzjj.Inscribe = luokuan; xzjj.ComId = UserInfo.User.ComId; xzjj.CRDate = DateTime.Now; xzjj.CRUser = UserInfo.User.UserName; xzjj.salaryData = P1; new SZHL_XZ_JLB().Insert(xzjj); //string shibaiuser = ""; #region 工资单 List <JObject> xxb = JsonConvert.DeserializeObject <List <JObject> >(P1); foreach (var a in xxb) { bool bl = false; string username = a["姓名"] != null ? a["姓名"].ToString().Trim() : ""; string bmname = a["部门"] != null ? a["部门"].ToString().Trim() : ""; string tel = a["用户编码"] != null ? a["用户编码"].ToString().Trim() : ""; SZHL_XZ_GZD gzd = new SZHL_XZ_GZD(); gzd.ComId = UserInfo.User.ComId; gzd.CRUser = UserInfo.User.UserName; gzd.CRDate = DateTime.Now; gzd.YearMonth = ym; gzd.Telephone = tel; gzd.BranchCode = xzjj.ID;//没地方存,只能存这个字段了 gzd.salaryData = a.ToString(); gzd.title = P2; gzd.rise = taitou; gzd.Inscribe = luokuan; gzd.IsRead = 0; gzd.UserRealName = username; gzd.BranchName = bmname; //List<JH_Auth_User> users = new JH_Auth_UserB().GetEntities(d => d.ComId == UserInfo.User.ComId && (d.mobphone == tel || d.UserName == tel || d.JobNum == tel || d.UserRealName == username)).ToList(); List <JH_Auth_User> users = new JH_Auth_UserB().GetEntities(d => d.ComId == UserInfo.User.ComId && d.UserRealName == username).ToList(); if (users.Count > 0) { gzd.UserName = users[0].UserName; bl = true; new SZHL_XZ_GZDB().Delete(d => d.UserName == gzd.UserName && d.YearMonth == ym);//先删除该年月的发薪记录 } new SZHL_XZ_GZDB().Insert(gzd); if (ffwx == "1" && tel != "" && bl) { SZHL_TXSX CSTX = new SZHL_TXSX(); CSTX.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); CSTX.APIName = "XZGL"; CSTX.ComId = UserInfo.User.ComId; CSTX.FunName = "SENDXZMSG"; CSTX.CRUserRealName = UserInfo.User.UserRealName; CSTX.MsgID = gzd.ID.ToString(); CSTX.TXContent = taitou; CSTX.ISCS = "N"; CSTX.TXUser = users[0].UserName; CSTX.TXMode = "XZFF"; CSTX.CRUser = UserInfo.User.UserName; TXSXAPI.AddALERT(CSTX); //时间为发送时间 } if (ffdx == "1" && tel != "") { string hj = a["合计"] != null ? a["合计"].ToString().Trim() : ""; new SZHL_DXGLB().SendSMS(tel, username + "," + taitou + "," + "合计:" + hj + "元.点击" + UserInfo.QYinfo.WXUrl.TrimEnd('/') + "/View_Mobile/UI/UI_GZD_VIEW.html?ID=" + gzd.ID + " 查看详情", UserInfo.QYinfo.ComId); } } #endregion //msg.Result = shibaiuser.TrimEnd(','); }
/// <summary> /// 开始流程 /// </summary> /// <param name="context"></param> /// <param name="msg"></param> /// <param name="P1">启动流程的应用Code</param> /// <param name="P2">审核人信息</param> /// <param name="UserInfo"></param> public void STARTWF(JObject context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { try { string strModelCode = P1; string strCSR = context.Request("csr") ?? ""; string strZSR = context.Request("zsr") ?? ""; string strContent = context.Request("content") ?? ""; int PDID = 0; int.TryParse(context.Request("PDID") ?? "0", out PDID); Yan_WF_PD PD = new Yan_WF_PDB().GetEntity(d => d.ID == PDID && d.ComId == UserInfo.User.ComId); if (PD == null) { //没有流程,直接返回 return; } Yan_WF_PIB PIB = new Yan_WF_PIB(); List <string> ListNextUser = new List <string>();//获取下一任务的处理人 Yan_WF_PI PI = new Yan_WF_PI(); PI.CRUserName = UserInfo.User.UserRealName; PI.BranchName = UserInfo.BranchInfo.DeptName; PI.BranchNO = UserInfo.BranchInfo.DeptCode; PI.Content = strContent; PI.PDID = PD.ID; PI.WFFormNum = new Yan_WF_PIB().CreateWFNum(PI.PDID.ToString()); PI.ComId = PD.ComId; PI.StartTime = DateTime.Now; PI.CRUser = UserInfo.User.UserName; PI.CRDate = DateTime.Now; PI.PITYPE = PD.ProcessType; PI.ChaoSongUser = strCSR; PI.isGD = "N"; new Yan_WF_PIB().Insert(PI); Yan_WF_TI TI = PIB.StartWF(PD, strModelCode, UserInfo.User.UserName, strZSR, strCSR, PI, ref ListNextUser); //返回新增的任务 msg.Result = PI; msg.Result1 = TI; //发送消息给审核人员 string jsr = ListNextUser.ListTOString(','); if (!string.IsNullOrEmpty(jsr)) { SZHL_TXSX TX = new SZHL_TXSX(); TX.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); TX.APIName = "FORMBI"; TX.ComId = UserInfo.User.ComId; TX.FunName = "LCSPCHECK"; TX.intProcessStanceid = TI.PIID; TX.CRUserRealName = UserInfo.User.UserRealName; TX.MsgID = TI.PIID.ToString(); TX.TXContent = UserInfo.User.UserRealName + "发起了一个" + PD.ProcessName + ",请您查阅审核"; TX.TXUser = jsr; TX.TXMode = strModelCode; TX.CRUser = UserInfo.User.UserName; TXSXAPI.AddALERT(TX); //时间为发送时间 } //发送消息 } catch (Exception ex) { msg.ErrorMsg = ex.Message; } }
public void MANAGEWF(JObject context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { try { string strShUser = context.Request("SHUser") ?? ""; string strCSUser = context.Request("csr") ?? ""; string modelcode = context.Request("formcode") ?? ""; string strContent = context.Request("content") ?? ""; int PID = int.Parse(P1); Yan_WF_PIB PIB = new Yan_WF_PIB(); if (PIB.isCanSP(UserInfo.User.UserName, PID) == "Y")//先判断用户能不能处理此流程 { List <string> ListNextUser = new List <string>(); PIB.MANAGEWF(UserInfo.User.UserName, PID, P2, ref ListNextUser, strShUser);//处理任务 Yan_WF_PI PI = PIB.GetEntity(d => d.ID == PID); //更新抄送人 PI.ChaoSongUser = strCSUser; PIB.Update(PI); //更新抄送人 Yan_WF_PD PD = new Yan_WF_PDB().GetEntity(d => d.ID == PI.PDID.Value); string content = PI.CRUserName + "发起了" + PD.ProcessName + "表单,等待您审阅"; string strTXUser = ListNextUser.ListTOString(','); string funName = "LCSPCHECK"; //添加消息提醒 string strIsComplete = ListNextUser.Count() == 0 ? "Y" : "N"; //结束流程,找不到人了 if (strIsComplete == "Y") //找不到下家就结束流程,并且给流程发起人发送消息 { PIB.ENDWF(PID); msg.Result = "Y";//已结束 content = UserInfo.User.UserRealName + "审批完成了您发起的" + PD.ProcessName + "表单"; strTXUser = PI.CRUser; funName = "LCSPCHECK"; //发送消息给抄送人 if (!string.IsNullOrEmpty(PI.ChaoSongUser)) { SZHL_TXSX CSTX = new SZHL_TXSX(); CSTX.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); CSTX.APIName = "FORMBI"; CSTX.ComId = UserInfo.User.ComId; CSTX.FunName = "LCSPCHECK"; CSTX.intProcessStanceid = PID; CSTX.CRUserRealName = UserInfo.User.UserRealName; CSTX.MsgID = PID.ToString(); CSTX.TXContent = new JH_Auth_UserB().GetEntity(p => p.ComId == PI.ComId && p.UserName == PI.CRUser).UserRealName + "抄送一个" + PD.ProcessName + ",请您查阅接收"; CSTX.ISCS = "Y"; CSTX.TXUser = PI.ChaoSongUser; CSTX.TXMode = modelcode; CSTX.CRUser = UserInfo.User.UserName; TXSXAPI.AddALERT(CSTX); //时间为发送时间 } } SZHL_TXSX TX = new SZHL_TXSX(); TX.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); TX.APIName = "FORMBI"; TX.ComId = UserInfo.User.ComId; TX.FunName = funName; TX.intProcessStanceid = PID; TX.CRUser = PI.CRUser; TX.CRUserRealName = UserInfo.User.UserRealName; TX.MsgID = PID.ToString(); TX.TXContent = content; TX.TXUser = strTXUser; TX.TXMode = modelcode; TXSXAPI.AddALERT(TX); //时间为发送时间 } else { msg.ErrorMsg = "该流程已被处理,您已无法处理此流程"; } } catch (Exception ex) { msg.ErrorMsg = ex.Message; } }