/// <summary>
        /// 创建表单和当事人
        /// </summary>
        /// <param name="TaskSurvey"></param>
        /// <param name="law_Parties"></param>
        /// <returns></returns>
        private void CreateInfo(law_punishmentInfo lawpunishmentInfo, List <law_party> law_Parties, List <attachment> attachments)
        {
            var lawpunishment_Info = base.Create(lawpunishmentInfo) as string;//保存原始信息

            lawpunishmentInfo.ID = lawpunishment_Info;
            if (law_Parties != null && law_Parties.Count > 0)//创建当事人
            {
                foreach (var l in law_Parties)
                {
                    l.Associatedobjecttype = "law_punishmentInfo";
                    l.AssociationobjectID  = lawpunishment_Info;
                    l.ID           = Guid.NewGuid().ToString();
                    l.CreateDate   = DateTime.Now;
                    l.CreateUserID = SysContext.WanJiangUserID;
                    QueryDb.Insert(l);
                }
            }
            if (attachments != null && attachments.Count > 0)
            {
                foreach (var a in attachments)
                {
                    a.Associatedobjecttype = "law_punishmentInfo";
                    a.AssociationobjectID  = lawpunishment_Info;
                    a.ID           = Guid.NewGuid().ToString();
                    a.CreateDate   = DateTime.Now;
                    a.CreateUserID = SysContext.WanJiangUserID;
                    QueryDb.Insert(a);
                }
            }
            //更新案件信息
            if (string.IsNullOrEmpty(lawpunishmentInfo.TaskId))
            {
                if (!string.IsNullOrEmpty(lawpunishmentInfo.CaseId))
                {
                    var caseinfo = QueryDb.FirstOrDefault <case_Info>("where Id=@0", lawpunishmentInfo.CaseId);
                    if (caseinfo != null)
                    {
                        caseinfo.CaseStatus = "做出处罚决定";
                        QueryDb.Update(caseinfo);
                    }
                }
            }
            else
            {
                var tasknow = ServiceHelper.GetService("work_task").GetDetailData(lawpunishmentInfo.TaskId, null);
                if (tasknow != null)
                {
                    var caseid = (string)tasknow["CaseID"];
                    if (!string.IsNullOrEmpty(caseid))
                    {
                        var caseinfo = QueryDb.FirstOrDefault <case_Info>("where Id=@0", caseid);
                        if (caseinfo != null)
                        {
                            caseinfo.CaseStatus = "做出处罚决定";
                            QueryDb.Update(caseinfo);
                        }
                    }
                }
            }
        }
 /// <summary>
 /// 传入instance_id来更改业务表上的数据上的审批状态
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="instance_id"></param>
 /// <param name="FormState"></param>
 private void UpdateFormState <T>(string instance_id, string FormState)
 {
     QueryDb.BeginTransaction();
     try
     {
         if (!QueryDb.Exists <T>("where processInstanceId = @0", instance_id))
         {
             throw new Exception("该instanceID不存在");
         }
         QueryDb.Update <T>("set FormState = @0 where processInstanceId = @1", FormState, instance_id);
     }
     catch (Exception e)
     {
         QueryDb.AbortTransaction();
         throw e;
     }
     QueryDb.OnEndTransaction();
 }
        /// <summary>
        /// 创建表单
        /// </summary>
        /// <param name="TaskSurvey"></param>
        /// <param name="law_Parties"></param>
        /// <returns></returns>
        private void CreateInfo(case_cover casecover)
        {
            var CaseInfoSource = base.Create(casecover) as string;
            ///更新案件信息

            var tasknow = ServiceHelper.GetService("work_task").GetDetailData(casecover.TaskId, null);

            if (tasknow != null)
            {
                var caseid = (string)tasknow["CaseID"];
                if (string.IsNullOrEmpty(caseid))
                {
                    var caseinfo = QueryDb.FirstOrDefault <case_Info>("where CaseId=@0", caseid);
                    if (caseinfo != null)
                    {
                        caseinfo.CaseStatus = "已归档";
                        QueryDb.Update(caseinfo);
                    }
                }
            }
        }
        /*
         *
         *      /// <summary>
         *      /// 简易流程
         *      /// </summary>
         *      /// <returns></returns>
         *      private object EasyProcess(case_Info caseInfo,List<law_party> law_Parties)
         *      {
         *          QueryDb.BeginTransaction();
         *          try
         *          {
         *              CreateInfo(caseInfo, law_Parties);
         *              //结束当前任务
         *              _sHBaseService.UpdateWorkTaskState(caseInfo.TaskId,WorkTaskStatus.Close);
         *              //TODO 创建简易流程任务处罚决定书
         *              _sHBaseService.CreateSaveWorkTask(caseInfo.TaskId, TaskType.law_punishmentInfo);
         *              ////修改事件状态
         *              //if(!string.IsNullOrEmpty(caseInfo.EventInfoId))
         *              //_sHBaseService.UpdateEventState(caseInfo.EventInfoId,EventStatus.);
         *          }
         *          catch (Exception)
         *          {
         *              QueryDb.AbortTransaction();
         *              return false;
         *          }
         *          QueryDb.CompleteTransaction();
         *          return true;
         *      }
         *
         *      //一般程序
         *      private object NormalProcess(case_Info caseInfo)
         *      {
         *          return null;
         *      }
         *
         */


        /// <summary>
        /// 创建表单和当事人
        /// </summary>
        /// <param name="TaskSurvey"></param>
        /// <param name="law_Parties"></param>
        /// <returns></returns>
        private string CreateInfo(case_Info caseInfo, List <law_party> law_Parties)
        {
            caseInfo.CaseStatus = "已建档";
            var CaseInfoSource = base.Create(caseInfo) as string;//保存原始信息
            var CaseInfoTemp   = caseInfo;

            CaseInfoTemp.PreviousformID = CaseInfoSource;
            var CaseInfoNew = base.Create(CaseInfoTemp) as string; //可变更的信息

            if (law_Parties != null && law_Parties.Count > 0)      //创建当事人
            {
                foreach (var l in law_Parties)                     //原始的当事人
                {
                    l.Associatedobjecttype = "case_Info";
                    l.AssociationobjectID  = CaseInfoSource;
                    l.ID           = Guid.NewGuid().ToString();
                    l.CreateDate   = DateTime.Now;
                    l.CreateUserID = SysContext.WanJiangUserID;
                    QueryDb.Insert(l);
                }
                foreach (var l in law_Parties)//创建新建的
                {
                    l.Associatedobjecttype = "case_Info";
                    l.AssociationobjectID  = CaseInfoNew;
                    l.ID           = Guid.NewGuid().ToString();
                    l.CreateDate   = DateTime.Now;
                    l.CreateUserID = SysContext.WanJiangUserID;
                    QueryDb.Insert(l);
                }
            }
            //将Caseid更新到本次任务上
            var tasknow = QueryDb.FirstOrDefault <work_task>("where Id=@0", caseInfo.TaskId);

            if (tasknow != null)
            {
                tasknow.CaseID = CaseInfoNew;
                QueryDb.Update(tasknow);
            }
            return(CaseInfoNew);
        }
Beispiel #5
0
        /// <summary>
        /// 拒绝
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private object Reject(APIContext context)
        {
            var data = JsonHelper.DeserializeJsonToObject <TaskRejectReq>(context.Data);

            QueryDb.BeginTransaction();
            try
            {
                var taskInfo = GetWorkTask(data.SourceTaskId);
                taskInfo.TaskStatus   = (int)WorkTaskStatus.HandOver;
                taskInfo.RejectReason = data.Reason;
                QueryDb.Update(taskInfo);

                UpdateEventState(data.EventInfoId, EventStatus.untreated);
                QueryDb.CompleteTransaction();
            }
            catch (Exception e)
            {
                QueryDb.AbortTransaction();
                return(false);
            }
            return(true);
        }
Beispiel #6
0
        /// <summary>
        /// 任务状态更新
        /// </summary>
        /// <param name="taskid"></param>
        /// <param name="workTaskStatus"></param>
        public void UpdateWorkTaskState(string taskid, WorkTaskStatus workTaskStatus)
        {
            if (taskid == null)
            {
                return;
            }
            var taskInfo = GetWorkTask(taskid);

            if (taskInfo == null)
            {
                return;
            }
            taskInfo.TaskStatus   = (int)workTaskStatus;
            taskInfo.CompleteTime = DateTime.Now;

            if (workTaskStatus == WorkTaskStatus.Normal)
            {
                WorkrecordUpdate(taskInfo.AssignUsers, taskInfo.TodotaskID);
            }

            QueryDb.Update(taskInfo);
        }
        public object Handle(APIContext context)
        {
            var data = JsonHelper.DeserializeJsonToObject <case_reportFinishReq>(context.Data);

            if (data.CaseReport == null)
            {
                throw new Exception("没有主体数据");
            }
            data.CaseReport.TaskId      = data.SourceTaskId;
            data.CaseReport.EventInfoId = data.EventInfoId;
            QueryDb.BeginTransaction();
            try
            {
                #region 发起钉钉的审批 并将其返回的ID写入Task内
                if (data.oapiProcessinstanceCreateRequest != null)
                {
                    //填值
                    var UsrService      = SysContext.GetService <IUserServices>();
                    var loginClientInfo = SysContext.GetService <WanJiang.Framework.Infrastructure.Logging.ClientInfo>();

                    //ServiceConfig userServiceConfig = ServiceHelper.GetServiceConfig("user");
                    //var OTDB = SysContext.GetOtherDB(userServiceConfig.model.dbName);
                    //var deptId = OTDB.FirstOrDefault<long>(@"SELECT org.id FROM organization org
                    //                        inner join organizationuser ou on ou.OrganizationId = org.Id
                    //                        inner join user usr on usr.Id = ou.UserId
                    //                        where usr.AccountId = @0", loginClientInfo.AccountId);
                    ////
                    //if (deptId == null)
                    //    throw new Exception("无组织部门");

                    var usrDetail = UsrService.GetUserDetails(loginClientInfo.UserId);
                    var ddService = SysContext.GetService <IDingDingServices>();
                    if (usrDetail.Result.Organizations == null || usrDetail.Result.Organizations.Count <= 0)
                    {
                        throw new Exception("无组织部门");
                    }
                    var deptId = usrDetail.Result.Organizations[0].Id;

                    data.oapiProcessinstanceCreateRequest.DeptId           = deptId;
                    data.oapiProcessinstanceCreateRequest.OriginatorUserId = loginClientInfo.AccountId;

                    var result = ddService.ProcessInstaceCreateAsync(data.oapiProcessinstanceCreateRequest);
                    var test   = result.Result;
                    if (result.Result.Errcode != 0)
                    {
                        throw new Exception("发起审核流失败" + result.Result.ErrMsg);
                    }
                    data.CaseReport.ProcessInstanceId = result.Result.ProcessInstanceId;
                    data.CaseReport.FormState         = "待审核";
                    //更新该Report上的信息
                    //var targetId = result.Result.ProcessInstanceId;
                    //if (data.CaseReport.TaskId == null || data.CaseReport.TaskId == "")
                    //    throw new Exception("Task为空");
                    //var taskObj = QueryDb.FirstOrDefault<work_task>("where TaskID =@0", data.CaseReport.TaskId);
                    //if (taskObj == null)
                    //    throw new Exception("该Task不存在");
                    ////更新值
                    //taskObj.processInstanceId = result.Result.ProcessInstanceId;
                    //data.CaseReport.FormState = "待审批";
                    ////data.CaseReport.
                    //QueryDb.Update(taskObj);
                    //ServiceHelper.GetService("work_task").Update(taskObj);
                }
                #endregion
                CreateInfo(data.CaseReport);
                if (!string.IsNullOrEmpty(data.CaseReport.CaseId))
                {
                    var caseinfo = QueryDb.FirstOrDefault <case_Info>("select * from case_Info where Id=@0", data.CaseReport.CaseId);
                    if (caseinfo == null)
                    {
                        throw new Exception("没有案件信息");
                    }
                    caseinfo.CaseStatus = "完成处罚";
                    QueryDb.Update(caseinfo);
                }
                else
                {
                    throw new Exception("没有案件信息");
                }
                _sHBaseService.CreatTasksAndCreatWorkrecor(data.NextTasks, data.SourceTaskId);
                _sHBaseService.UpdateWorkTaskState(data.SourceTaskId, WorkTaskStatus.Close);//关闭任务

                //打印预生成
                var PDFSerivce = ServiceHelper.GetService("form_printPDFService") as form_printPDFService;
                PDFSerivce.AsposeToPdf(new APIContext()
                {
                    Data = @"{""formId"":""" + data.CaseReport.ID + @""",""formType"":""case_report""}"
                });
            }
            catch (Exception e)
            {
                QueryDb.AbortTransaction();
                throw e;
            }
            QueryDb.CompleteTransaction();
            return(true);
        }