예제 #1
0
        public object Finish(APIContext context)
        {
            var    data    = JsonHelper.DeserializeJsonToObject <form_inquestrecordFinishReq>(context.Data);
            string formidt = null;

            QueryDb.BeginTransaction();
            try
            {
                if (data.SourceTaskId != null)
                {
                    data.forminquestrecord.TaskId = data.SourceTaskId;
                }
                if (data.EventInfoId != null)
                {
                    data.forminquestrecord.EventInfoId = data.EventInfoId;
                }
                var form = ServiceHelper.GetService("form_inquestrecord").Create(data.forminquestrecord);
                if (string.IsNullOrEmpty((string)form))
                {
                    throw new Exception();
                }
                formidt = form.ToString();
                if (data.lawStaffs != null)
                {
                    foreach (var l in data.lawStaffs)
                    {
                        l.Associatedobjecttype = "form_inquestrecord";
                        l.AssociatedobjectID   = formidt;
                        l.ID           = Guid.NewGuid().ToString();
                        l.CreateDate   = DateTime.Now;
                        l.CreateUserID = SysContext.WanJiangUserID;
                        QueryDb.Insert(l);
                    }
                }
                if (data.lawParties != null)
                {
                    foreach (var l in data.lawParties)
                    {
                        l.Associatedobjecttype = "form_inquestrecord";
                        l.ID = Guid.NewGuid().ToString();
                        l.AssociationobjectID = formidt;
                        l.CreateDate          = DateTime.Now;
                        l.CreateUserID        = SysContext.WanJiangUserID;
                        QueryDb.Insert(l);
                    }
                }
                CreatTasksAndCreatWorkrecor(data.NextTasks, data.SourceTaskId);
                QueryDb.CompleteTransaction();
            }
            catch (Exception e)
            {
                QueryDb.AbortTransaction();
                throw e;
                return(false);
            }

            if (!string.IsNullOrEmpty(formidt))
            {
                //PDF打印预生成
                var PDFSerivce = ServiceHelper.GetService("form_printPDFService") as form_printPDFService;
                PDFSerivce.AsposeToPdf(new APIContext()
                {
                    Data = @"{""formId"":""" + formidt + @""",""formType"":""form_inquestrecord""}"
                });
            }
            return(true);
        }
예제 #2
0
        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);
        }
예제 #3
0
        private object Finish(APIContext context)
        {
            var data = JsonHelper.DeserializeJsonToObject <taskPatrolFinishReq>(context.Data);

            //var data = new taskPatrolFinishReq();

            //var task_patrolData = new task_patrol();
            //task_patrolData.Result = "测试巡查结果";
            //task_patrolData.Needtracking = 0;
            //task_patrolData.Needlawenforcement = 1;
            //data.TaskPatrol = task_patrolData;

            //var taskData = new work_task();
            //taskData.TaskType = "勘察";
            //taskData.TaskContent = "任务内容描述";
            //taskData.EventInfoId = "1";
            //taskData.ExpectedCompletionTime = DateTime.Now.AddDays(1);
            //taskData.MainHandler = "主办人测试";
            //data.SourceTaskId = "2fcb8609-d233-4e77-a12b-a87d61ef9a50";
            //data.NextTasks = new work_task[] { taskData };

            //var a = JsonConvert.SerializeObject(data);

            //保存当前巡查表单
            //开始事务
            QueryDb.BeginTransaction();
            try
            {
                //保存表单信息
                data.TaskPatrol.EventInfoId = data.EventInfoId;
                data.TaskPatrol.TaskId      = data.SourceTaskId;
                var formId      = Create(data.TaskPatrol);
                var attachments = data.Attachments;
                //保存附件
                var _attachment = ServiceHelper.GetService("attachmentService");
                if (attachments != null && attachments.Count > 0)
                {
                    foreach (var a in attachments)
                    {
                        a.Associatedobjecttype = "task_patrol";
                        a.AssociationobjectID  = formId.ToString();
                        a.ID           = Guid.NewGuid().ToString();
                        a.CreateUserID = SysContext.WanJiangUserID;
                        QueryDb.Insert(a);
                        // _attachment.Create(a);
                    }
                }

                //处理事件,任务状态
                if (data.TaskPatrol.Needlawenforcement == 0 && data.TaskPatrol.Needtracking == 0)
                {
                    UpdateWorkTaskState(data.SourceTaskId, WorkTaskStatus.Close);
                    UpdateEventState(data.EventInfoId, EventStatus.finish);
                }
                //创建下一个任务
                CreatTasksAndCreatWorkrecor(data.NextTasks, data.SourceTaskId);
                QueryDb.CompleteTransaction();
            }
            catch (Exception e)
            {
                QueryDb.AbortTransaction();
                throw e;
            }
            return(true);
        }