作者 tangxvhui

日常保存

@@ -34,3 +34,33 @@ type TaskAnomalyItem2 struct { @@ -34,3 +34,33 @@ type TaskAnomalyItem2 struct {
34 Leader map[string]string `json:"leader"` 34 Leader map[string]string `json:"leader"`
35 TaskAnomaly []TaskAnomalyItem `json:"taskAnomaly"` 35 TaskAnomaly []TaskAnomalyItem `json:"taskAnomaly"`
36 } 36 }
  37 +
  38 +// 任务异常记录详情
  39 +type TaskAnomalyInfo struct {
  40 + Id int `json:"id,string"`
  41 + TaskId int `json:"taskId,string"` // 任务id
  42 + TaskRecordId int `json:"taskRecordId,string"` // 任务反馈记录id
  43 + Category int `json:"category"` // 异常分类
  44 + Leader string `json:"leader"` // 任务负责人
  45 + LeaderId string `json:"leaderId"` // 任务负责人
  46 + CurrentStage TaskStage `json:"currentStage"` // 计划进度的里程碑
  47 + LastStage TaskStage `json:"lastStage"` // 实际进度完成的里程碑
  48 + TaskStageCheck TaskStage `json:"taskStageCheck"` // 实际进度完成的里程碑
  49 + ListStage []TaskStage `json:"listStage"` // 实际进度完成的里程碑
  50 + AssessFlag int `json:"assessFlag"` // 异常反馈的次数
  51 + WarnFlag int `json:"warnFlag"` // 里程碑异常次数
  52 + AssistFlag int `json:"assistFlag"` // 辅导异常次数
  53 + TaskLevel string `json:"taskLevel"` // 任务类型
  54 + TaskName string `json:"taskName"` // 任务名称
  55 + TaskAlias string `json:"taskAlias"` // 任务别名
  56 + TaskEndTime int64 `json:"taskEndTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
  57 + TaskSortBy int `json:"taskSortBy"` // 优先级排序;值越小优先级越高
  58 + RecordBegin int64 `json:"recordBegin"` //
  59 + CreatedAt string `json:"createdAt"` //
  60 + MarkA string `json:"markA"` // 去更新
  61 + MarkB string `json:"markB"` // 去反馈
  62 + MarkC string `json:"markC"` // 去求助
  63 + MarkD string `json:"markD"` // 去辅导
  64 + AnomalyDesc string `json:"anomalyDesc"` // 异常状况描述
  65 + AnomalyDesc2 map[string]string `json:"anomalyDesc2"`
  66 +}
@@ -643,10 +643,10 @@ func (srv TaskService) MarkTaskAnomaly(param *command.MarkTaskAnomalyCommand) (m @@ -643,10 +643,10 @@ func (srv TaskService) MarkTaskAnomaly(param *command.MarkTaskAnomalyCommand) (m
643 return map[string]string{}, nil 643 return map[string]string{}, nil
644 } 644 }
645 645
646 -// 我的下级负责任务,异常列表 646 +// 我的下级负责任务,异常列表 数据结构变体
647 // 按任务负责人归类,列表整理成树形结构 647 // 按任务负责人归类,列表整理成树形结构
648 func (srv TaskService) ListTreeTaskAnomaly2(param *command.ListTaskAnomalyCommand) (map[string]interface{}, error) { 648 func (srv TaskService) ListTreeTaskAnomaly2(param *command.ListTaskAnomalyCommand) (map[string]interface{}, error) {
649 - _, taskAnomalyList, err := srv.listTaskAnomaly2(param) 649 + total, taskAnomalyList, err := srv.listTaskAnomaly2(param)
650 if err != nil { 650 if err != nil {
651 return map[string]interface{}{ 651 return map[string]interface{}{
652 "list": []adapter.TaskAnomalyItem2{}, 652 "list": []adapter.TaskAnomalyItem2{},
@@ -682,14 +682,15 @@ func (srv TaskService) ListTreeTaskAnomaly2(param *command.ListTaskAnomalyComman @@ -682,14 +682,15 @@ func (srv TaskService) ListTreeTaskAnomaly2(param *command.ListTaskAnomalyComman
682 result := map[string]interface{}{ 682 result := map[string]interface{}{
683 "list": treeList, 683 "list": treeList,
684 "leader": leaderList, 684 "leader": leaderList,
  685 + "total": total,
685 } 686 }
686 return result, nil 687 return result, nil
687 } 688 }
688 689
689 -// 我相关的任务,异常列表 690 +// 我相关的任务,异常列表 数据结构变体
690 // 按任务负责人归类,列表整理成树形结构 691 // 按任务负责人归类,列表整理成树形结构
691 func (srv TaskService) ListTreeTaskAnomaly3(param *command.ListTaskAnomalyCommand) (map[string]interface{}, error) { 692 func (srv TaskService) ListTreeTaskAnomaly3(param *command.ListTaskAnomalyCommand) (map[string]interface{}, error) {
692 - _, taskAnomalyList, err := srv.listTaskAnomaly3(param) 693 + total, taskAnomalyList, err := srv.listTaskAnomaly3(param)
693 if err != nil { 694 if err != nil {
694 return map[string]interface{}{ 695 return map[string]interface{}{
695 "list": []adapter.TaskAnomalyItem2{}, 696 "list": []adapter.TaskAnomalyItem2{},
@@ -725,6 +726,111 @@ func (srv TaskService) ListTreeTaskAnomaly3(param *command.ListTaskAnomalyComman @@ -725,6 +726,111 @@ func (srv TaskService) ListTreeTaskAnomaly3(param *command.ListTaskAnomalyComman
725 result := map[string]interface{}{ 726 result := map[string]interface{}{
726 "list": treeList, 727 "list": treeList,
727 "leader": leaderList, 728 "leader": leaderList,
  729 + "total": total,
  730 + }
  731 + return result, nil
  732 +}
  733 +
  734 +// 异常任务记录的详情
  735 +func (srv TaskService) TaskAnomalyInfo(param command.GetTaskAnomalyCommand) (*adapter.TaskAnomalyInfo, error) {
  736 + transactionContext, err := factory.CreateTransactionContext(nil)
  737 + if err != nil {
  738 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  739 + }
  740 + if err := transactionContext.StartTransaction(); err != nil {
  741 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  742 + }
  743 + defer func() {
  744 + _ = transactionContext.RollbackTransaction()
  745 + }()
  746 + taskAnomalyRepo := factory.CreateTaskAnomalyRepository(map[string]interface{}{
  747 + "transactionContext": transactionContext,
  748 + })
  749 + taskRepo := factory.CreateTaskRepository(map[string]interface{}{
  750 + "transactionContext": transactionContext,
  751 + })
  752 + taskStatgeRepo := factory.CreateTaskStageRepository(map[string]interface{}{
  753 + "transactionContext": transactionContext,
  754 + })
  755 +
  756 + _, anomalyList, err := taskAnomalyRepo.Find(map[string]interface{}{"id": param.Id, "companyId": param.CompanyId, "limit": 1})
  757 + if err != nil {
  758 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  759 + }
  760 + if len(anomalyList) == 0 {
  761 + return &adapter.TaskAnomalyInfo{}, nil
  762 + }
  763 + anomalyData := anomalyList[0]
  764 + _, taskList, err := taskRepo.Find(map[string]interface{}{"id": anomalyData.TaskId, "companyId": anomalyData.CompanyId, "limit": 1})
  765 + if err != nil {
  766 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  767 + }
  768 + if len(taskList) == 0 {
  769 + return &adapter.TaskAnomalyInfo{}, nil
  770 + }
  771 + taskData := taskList[0]
  772 +
  773 + _, stageList, err := taskStatgeRepo.Find(map[string]interface{}{"taskId": taskData.Id})
  774 + if err != nil {
  775 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  776 + }
  777 + if err := transactionContext.CommitTransaction(); err != nil {
  778 + return nil, nil
  779 + }
  780 + if len(anomalyData.Marks) == 0 {
  781 + anomalyData.Marks = map[string]string{}
  782 + }
  783 +
  784 + result := &adapter.TaskAnomalyInfo{
  785 + Id: anomalyData.Id,
  786 + TaskId: anomalyData.TaskId,
  787 + TaskRecordId: anomalyData.TaskRecordId,
  788 + Category: anomalyData.Category,
  789 + Leader: taskData.Leader.Name,
  790 + LeaderId: strconv.FormatInt(taskData.Leader.Id, 10),
  791 + CurrentStage: adapter.TaskStage{
  792 + Id: anomalyData.CurrentStage.Id,
  793 + Name: anomalyData.CurrentStage.Name,
  794 + StatusDescription: anomalyData.CurrentStage.StatusDescription(),
  795 + SortBy: anomalyData.CurrentStage.SortBy,
  796 + PlanCompletedAt: time.Unix(anomalyData.CurrentStage.PlanCompletedAt, 0).Format("2006-01-02"),
  797 + RealCompletedAt: "",
  798 + },
  799 + LastStage: adapter.TaskStage{
  800 + Id: anomalyData.LastStage.Id,
  801 + Name: anomalyData.LastStage.Name,
  802 + StatusDescription: anomalyData.LastStage.StatusDescription(),
  803 + SortBy: anomalyData.LastStage.SortBy,
  804 + PlanCompletedAt: time.Unix(anomalyData.LastStage.PlanCompletedAt, 0).Format("2006-01-02"),
  805 + RealCompletedAt: "",
  806 + },
  807 + TaskStageCheck: adapter.TaskStage{
  808 + Id: anomalyData.TaskStageCheck.Id,
  809 + Name: anomalyData.TaskStageCheck.Name,
  810 + StatusDescription: anomalyData.TaskStageCheck.StatusDescription(),
  811 + SortBy: anomalyData.TaskStageCheck.SortBy,
  812 + PlanCompletedAt: time.Unix(anomalyData.TaskStageCheck.PlanCompletedAt, 0).Format("2006-01-02"),
  813 + RealCompletedAt: "",
  814 + },
  815 + ListStage: []adapter.TaskStage{},
  816 + AssessFlag: anomalyData.AssessFlag,
  817 + WarnFlag: anomalyData.WarnFlag,
  818 + AssistFlag: anomalyData.AssistFlag,
  819 + TaskLevel: taskData.LevelName,
  820 + TaskName: taskData.Name,
  821 + TaskAlias: taskData.Alias,
  822 + TaskEndTime: taskData.EndTime,
  823 + TaskSortBy: int(taskData.SortBy),
  824 + RecordBegin: anomalyData.RecordBegin,
  825 + CreatedAt: anomalyData.CreatedAt.Local().Format("066-017"),
  826 + MarkA: "",
  827 + MarkB: "",
  828 + MarkC: "",
  829 + MarkD: "",
  830 + AnomalyDesc: "",
  831 + AnomalyDesc2: map[string]string{
  832 + "": "",
  833 + },
728 } 834 }
729 return result, nil 835 return result, nil
730 } 836 }