예제 #1
0
 /// <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;
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
 /// <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);
         }
     }
 }
예제 #6
0
 /// <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 + "&#10;作业时间:" + high.WorkStartTime.Value.ToString("yyyy年MM月dd日 HH时mm分") + " 到 " + high.WorkEndTime.Value.ToString("yyyy年MM月dd日 HH时mm分") + "&#10;作业地点:" + 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);
    }
예제 #8
0
        /// <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);
        }