/// <summary> /// 离场审批 /// </summary> /// <param name="keyValue"></param> /// <param name="aentity"></param> public void LeaveApprove(string keyValue, LeaveApproveEntity entity, AptitudeinvestigateauditEntity aentity) { try { PushMessageData pushdata = service.LeaveApprove(keyValue, entity, aentity); UserEntity userEntity = userservice.GetEntity(entity.CreateUserId); JPushApi.PushMessage(userEntity.Account, userEntity.RealName, pushdata.SendCode, "", "", pushdata.EntityId); } catch (Exception ex) { throw; } }
public PushMessage PreparePushMessage(NotificationQueueRequest queueRequest, RecipientAddress pushId) { int timeToLive = ConfigurationHelper.GetConfiguration <int>(Constants.PushFireBaseTimeToLive, Constants.PushFireBaseTimeToLiveDefault); PushMessage pushRequest = new PushMessage { to = pushId?.Adress //"eRArK-0TwkM:APA91bH7APab_SVh2NeOqvlC0IQu9jcutjEIzCHwu8HATlLI_5mSdLIC6eDkH3WUlcklG-g9nlwtiIn2DGr5XJt1j4cx-Yl7fVXeNsh__LH6iJ8FcsQRcxveMwp7HOYejH5RJq6nq73rM-w_v3dwqmZpgvCBGaiDEg"; //for a topic to": "/topics/foo-bar" }; PushMessageData notification = new PushMessageData(); string subject = queueRequest.Subject; string content = queueRequest.Content; try { content = CommonOperation.EncodeJavaUnicodes(queueRequest.Content); subject = CommonOperation.EncodeJavaUnicodes(queueRequest.Subject); } catch (Exception ex) { log.WarnFormat("PreparePushMessage-EncodeJavaUnicodes Error :{0} ; Content:{1}, Subject:{2}, TransactionId:{3}, Customer : {4}", ex, queueRequest.Content, queueRequest.Subject, queueRequest.TransactionId, queueRequest.CustomerNumber); } notification.title = subject; notification.body = content; notification.sound = "default"; notification.badge = queueRequest.PushBadge; pushRequest.notification = notification; pushRequest.mutable_content = true; PushExtraData data = new PushExtraData { tranCode = queueRequest.TransactionCode, pushResponseId = queueRequest.ResponseID }; var credentials = PushSenderHelper.GetRsaCredentials(); data.pushRegisterId = PushSenderHelper.EncryptPushRegisterId(queueRequest.PushRegisterId.ToString(), credentials.Password); data.tranData = JsonConvert.DeserializeObject(queueRequest.TranData); pushRequest.time_to_live = timeToLive; pushRequest.data = data; return(pushRequest); }
/// <summary> /// 转交短消息 /// </summary> /// <param name="keyValue"></param> public void TransformSendMessage(TransferrecordEntity entity) { //1、判断当前是措施确认还是审批阶段 Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); HighRiskCommonApplyEntity commonEntity = service.GetEntity(entity.RecId); string moduleName = GetModuleName(commonEntity); PushMessageData pushdata = new PushMessageData(); if (commonEntity.FlowName == "确认中") { //措施确认转交 pushdata.SendCode = "ZY001"; } else { //审核转交 pushdata.SendCode = "ZY002"; } //极光推送 pushdata.EntityId = commonEntity.Id; pushdata.UserAccount = entity.InTransferUserAccount; PushMessageForCommon(pushdata); }
public string SupervisionTask() { string fileName = DateTime.Now.ToString("yyyyMMdd") + ".log"; List <PushMessageData> listmessage = new List <PushMessageData>(); try { string json = HttpContext.Current.Request.Params["json"]; dynamic dy = JsonConvert.DeserializeObject <ExpandoObject>(json); StaffInfoEntity entity = new StaffInfoBLL().GetEntity(dy.JobId); if (entity != null) { string userid = ""; //班组中班前会选择人员和时间 if (dy.state == "0") { entity.PStartTime = dy.StartTime; entity.PEndTime = dy.EndTime; entity.TaskUserId = dy.TaskUserId; entity.TaskUserName = dy.TaskUserName; entity.DataIsSubmit = "1"; new StaffInfoBLL().SaveForm(entity.Id, entity);//修改旁站监督人员 PushMessageData messagedata = new PushMessageData(); //推送消息到待监管旁站监督 messagedata.SendCode = "ZY015"; messagedata.EntityId = entity.Id; listmessage.Add(messagedata); string[] arrid = dy.TaskUserId.Split(','); string[] arrname = dy.TaskUserName.Split(','); for (int i = 0; i < arrid.Length; i++) { if (!userid.Contains(arrid[i])) { userid += userid + ","; } StaffInfoEntity staff = new StaffInfoEntity(); staff.PTeamName = entity.PTeamName; staff.PTeamCode = entity.PTeamCode; staff.PTeamId = entity.PTeamId; staff.TaskUserId = arrid[i]; staff.TaskUserName = arrname[i]; staff.PStartTime = entity.PStartTime; staff.PEndTime = entity.PEndTime; staff.WorkInfoId = entity.WorkInfoId; staff.WorkInfoName = entity.WorkInfoName; staff.SumTimeStr = 0; staff.DataIsSubmit = "0"; staff.SuperviseState = "0";//监督状态 staff.TaskShareId = entity.TaskShareId; staff.TaskLevel = "2"; staff.StaffId = entity.Id; staff.CreateUserId = entity.CreateUserId; staff.CreateUserName = entity.CreateUserName; staff.CreateUserDeptCode = entity.CreateUserDeptCode; staff.CreateUserOrgCode = entity.CreateUserOrgCode; staff.Create(); new StaffInfoBLL().SaveForm("", staff); } PushMessageData message = new PushMessageData(); //推送消息到待执行旁站监督 message.UserId = string.IsNullOrEmpty(userid) ? "" : userid.TrimEnd(','); message.SendCode = "ZY016"; message.EntityId = entity.Id; listmessage.Add(message); //推送 new TaskShareBLL().PushSideMessage(listmessage); } //班后会 else if (dy.state == "1") { var newdata = new { taskshareid = entity.TaskShareId, staffid = entity.Id }; //SuperviseState 2:未完成 3:已完成 var strstate = "0"; if (dy.SuperviseState == "3") { strstate = "1"; } new StaffInfoBLL().GetList(Newtonsoft.Json.JsonConvert.SerializeObject(newdata)).ToList().ForEach(t => { t.DataIsSubmit = "1"; t.SuperviseState = strstate; new StaffInfoBLL().SaveForm(t.Id, t);//修改下级任务 }); entity.SuperviseState = strstate; new StaffInfoBLL().SaveForm(entity.Id, entity); } System.IO.File.AppendAllText(HttpContext.Current.Server.MapPath("~/logs/" + fileName), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ,修改成功,参数为:" + json + "\r\n"); } else { System.IO.File.AppendAllText(HttpContext.Current.Server.MapPath("~/logs/" + fileName), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ,实体为空,参数为:" + json + "\r\n"); } return("success"); } catch (Exception ex) { System.IO.File.AppendAllText(HttpContext.Current.Server.MapPath("~/logs/" + fileName), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ,修改失败,异常信息:" + ex.Message + "\r\n"); return(ex.Message); } }
/// <summary> /// 极光推送 /// </summary> /// <param name="processName"></param> /// <param name="nextActivityName"></param> /// <param name="control"></param> /// <param name="result"></param> /// <returns></returns> public void PushMessageForCommon(PushMessageData pushdata) { if (!string.IsNullOrEmpty(pushdata.UserAccount)) { DataTable dtuser = userservice.GetUserTable(pushdata.UserAccount.Split(',')); string[] usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray(); if (pushdata.SendCode == "ZY001") { pushdata.Content = "您有一条" + pushdata.Content + "申请待安全措施确认,请及时处理。"; } else if (pushdata.SendCode == "ZY002") { pushdata.Content = "您有一条" + pushdata.Content + "申请待审批,请及时处理。"; } else { pushdata.Content = ""; } JPushApi.PushMessage(pushdata.UserAccount, string.Join(",", usernames), pushdata.SendCode, "", pushdata.Content, pushdata.EntityId); } else { string flowdeptids = "'" + pushdata.UserDept.Replace(",", "','") + "'"; string flowroleids = "'" + pushdata.UserRole.Replace(",", "','") + "'"; IList <UserEntity> users = new UserService().GetUserListByDeptId(flowdeptids, flowroleids, true, string.Empty); if (users != null && users.Count > 0) { string names = ""; string accounts = ""; if (!string.IsNullOrEmpty(pushdata.SpecialtyType) && !string.IsNullOrEmpty(pushdata.IsSpecial) && pushdata.IsSpecial == "1") { foreach (var item in users) { if (item.RoleName.Contains("专工")) { if (!string.IsNullOrEmpty(item.SpecialtyType) && item.SpecialtyType != "null") { string[] str = item.SpecialtyType.Split(','); for (int i = 0; i < str.Length; i++) { if (str[i] == pushdata.SpecialtyType) { names += item.RealName + ","; accounts += item.Account + ","; } } } } else { names += item.RealName + ","; accounts += item.Account + ","; } } if (!string.IsNullOrEmpty(names)) { names = names.TrimEnd(','); } if (!string.IsNullOrEmpty(accounts)) { accounts = accounts.TrimEnd(','); } } else { names = string.Join(",", users.Select(x => x.RealName).ToArray()); accounts = string.Join(",", users.Select(x => x.Account).ToArray()); } if (pushdata.SendCode == "ZY001") { pushdata.Content = "您有一条" + pushdata.Content + "申请待安全措施确认,请及时处理。"; } else if (pushdata.SendCode == "ZY002") { pushdata.Content = "您有一条" + pushdata.Content + "申请待审批,请及时处理。"; } else { pushdata.Content = ""; } JPushApi.PushMessage(accounts, names, pushdata.SendCode, "", pushdata.Content, pushdata.EntityId); } } }
/// <summary> /// 确认,审核 /// </summary> /// <param name="keyValue"></param> /// <param name="state"></param> /// <param name="recordData"></param> /// <param name="entity"></param> /// <param name="aentity"></param> public void SubmitCheckForm(string keyValue, string state, string recordData, HighRiskCommonApplyEntity entity, ScaffoldauditrecordEntity aentity) { try { PushMessageData pushdata = service.SubmitCheckForm(keyValue, state, recordData, entity, aentity); if (pushdata != null) { if (pushdata.Success == 1 && !string.IsNullOrEmpty(pushdata.SendCode)) { pushdata.Content = getName(entity.WorkType, "CommonType"); if (pushdata.SendCode == "ZY003") { pushdata.Content = "您提交的" + pushdata.Content + "申请未通过,请及时处理。"; var high = GetEntity(entity.Id); if (high != null) { UserEntity userEntity = userservice.GetEntity(high.CreateUserId); if (userEntity != null) { JPushApi.PushMessage(userEntity.Account, userEntity.RealName, pushdata.SendCode, "", pushdata.Content, pushdata.EntityId); } } } else if (pushdata.SendCode == "ZY018") { var high = GetEntity(entity.Id); if (high != null) { String CommonType = pushdata.Content; pushdata.Content = "作业内容:" + high.WorkContent + " 作业时间:" + high.WorkStartTime.Value.ToString("yyyy年MM月dd日 HH时mm分") + " 到 " + high.WorkEndTime.Value.ToString("yyyy年MM月dd日 HH时mm分") + " 作业地点:" + high.WorkPlace; UserEntity userEntity = userservice.GetEntity(high.CreateUserId); UserEntity tutelageuserEntity = userservice.GetEntity(high.WorkTutelageUserId); string[] workuserlist = (high.WorkDutyUserId + "," + high.WorkUserIds).Split(','); //List<string> b = workuserlist.ToList(); //b.Add(high.WorkDutyUserId); //workuserlist = b.ToArray(); DataTable dutyuserDt = new DataTable(); dutyuserDt = userservice.GetUserTable(workuserlist); //推送给作业申请人 if (userEntity != null) { JPushApi.PushMessage(userEntity.Account, userEntity.RealName, pushdata.SendCode, "高风险作业(" + CommonType + ")申请已通过,请及时处理。", pushdata.Content, pushdata.EntityId); } //推送给作业负责人/作业人 if (dutyuserDt.Rows.Count > 0) { string Account = ""; string RealName = ""; foreach (DataRow item in dutyuserDt.Rows) { Account += item["account"].ToString() + ","; RealName += item["realname"].ToString() + ","; } if (!string.IsNullOrEmpty(Account)) { Account = Account.Substring(0, Account.Length - 1); RealName = RealName.Substring(0, RealName.Length - 1); } JPushApi.PushMessage(Account, RealName, pushdata.SendCode, "您有一条新的高风险作业(" + CommonType + ")任务,请及时处理。", pushdata.Content, pushdata.EntityId); } //推送给作业监护人 if (tutelageuserEntity != null) { JPushApi.PushMessage(tutelageuserEntity.Account, tutelageuserEntity.RealName, pushdata.SendCode, "您有一条新的高风险作业(" + CommonType + ")监护任务,请及时处理。", pushdata.Content, pushdata.EntityId); } } } else { //极光推送 PushMessageForCommon(pushdata); } } } } catch (Exception) { throw; } }
/// <summary> /// Publishes to pub sub TSK delegate. /// </summary> private static void PublishToPubSubTskDelegate(int numOfMsgToPublish, int numOfUsersIdPerMessage) { int totalSize = 0; int publishedMsgCount = 0; PublisherClient publisher = PublisherClient.Create(); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var listMessages = new List <PubsubMessage>(); int count = 0; long customerId = 0; while (publishedMsgCount < numOfMsgToPublish) { int tenantId = 1; customerId++; PushMessageData currPushMsg = null; lock (_processLock){ _publishedMsgCount = Interlocked.Increment(ref _publishedMsgCount); currPushMsg = new PushMessageData(tenantId, numOfUsersIdPerMessage, "Title Text The quick brown fox jumps over the lazy dog ", "Content text The quick brown fox jumps over the lazy dog", PushMessageDataPayloadTypeEnum.BigText, _publishedMsgCount); } String json = currPushMsg.GetFCMMessageJson(); // Publish a message to the topic. PubsubMessage message = new PubsubMessage { // The data is any arbitrary ByteString. Here, we're using text. Data = ByteString.CopyFromUtf8(json), // The attributes provide metadata in a string-to-string dictionary. Attributes = { { "description", "Simple text message" } } }; totalSize += message.CalculateSize(); listMessages.Add(message); //messages.SetValue(message, count); count++; publishedMsgCount++; } stopWatch.Start(); var response = publisher.Publish(CurrentTopicName, listMessages); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. // String result = String.Format("Publish " + numOfMsgToPublish + " Length in Bytes = " + totalSize + " Messages Time {0:00}:{1:00}:{2:00}.{3:00}", // ts.Hours, ts.Minutes, ts.Seconds, // ts.Milliseconds/10); // Console.WriteLine(result); Console.WriteLine("Publish Messages TimeMiliseconds = " + stopWatch.ElapsedMilliseconds); // Console.WriteLine("Publish Messages Time Tics = " + stopWatch.ElapsedTicks); }
/// <summary> /// 离场审批 /// </summary> /// <param name="keyValue"></param> /// <param name="aentity"></param> public PushMessageData LeaveApprove(string keyValue, LeaveApproveEntity entity, AptitudeinvestigateauditEntity aentity) { PushMessageData pushdata = new PushMessageData(); var res = DbFactory.Base().BeginTrans(); try { string sendCode = string.Empty; Operator curUser = ERCHTMS.Code.OperatorProvider.Provider.Current(); ManyPowerCheckEntity mpcEntity = manypowercheckservice.CheckAuditForNext(curUser, "外包人员离厂", entity.FlowId); aentity.FlowId = entity.FlowId; aentity.AUDITDEPTID = curUser.DeptId; aentity.AUDITPEOPLEID = curUser.UserId; aentity.APTITUDEID = keyValue; if (null != mpcEntity) { entity.FlowDept = mpcEntity.CHECKDEPTID; entity.FlowDeptName = mpcEntity.CHECKDEPTNAME; entity.FlowRole = mpcEntity.CHECKROLEID; entity.FlowRoleName = mpcEntity.CHECKROLENAME; entity.FlowId = mpcEntity.ID; } else { entity.FlowDept = ""; entity.FlowDeptName = ""; entity.FlowRole = ""; entity.FlowRoleName = ""; entity.FlowId = ""; } if (aentity.AUDITRESULT == "0") { entity.FlowName = "通过"; entity.ApproveState = 1; pushdata.SendCode = "WB001";//推送给消息申请人 } else if (aentity.AUDITRESULT == "1") { entity.FlowName = "不通过"; entity.ApproveState = 2; pushdata.SendCode = "WB002";//推送给消息申请人 } //审批结束回写状态 res.ExecuteBySql(string.Format("update base_user set IsLeaving=0 where userid in('{0}')", entity.LeaveUserIds.Replace(",", "','"))); aentity.Create(); res.Insert <AptitudeinvestigateauditEntity>(aentity); //更改申请单 res.Update <LeaveApproveEntity>(entity); res.Commit(); //短消息 pushdata.Success = 1; pushdata.EntityId = entity.Id; } catch (Exception ex) { pushdata.Success = 0; res.Rollback(); } return(pushdata); }