作者 郑周

1. 增加 任务截止时间

@@ -22,9 +22,12 @@ type AssessInfoResp struct { @@ -22,9 +22,12 @@ type AssessInfoResp struct {
22 SupperUser string `json:"superUser"` //目标用户的上级 22 SupperUser string `json:"superUser"` //目标用户的上级
23 DutyTime string `json:"dutyTime"` //入职时间 23 DutyTime string `json:"dutyTime"` //入职时间
24 AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容 24 AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容
25 - //CategoryTaskRecords []*domain.TaskRecord `json:"categoryTaskRecords"` //类别任务反馈记录  
26 - //AssessTaskRecords []*domain.TaskRecord `json:"assessTaskRecords"` //评估任务反馈记录  
27 - TaskRecords []*domain.TaskRecord `json:"taskRecords"` //里程碑内容 25 + TaskRecords []*TaskRecordAdapter `json:"taskRecords"` //里程碑内容
  26 +}
  27 +
  28 +type TaskRecordAdapter struct {
  29 + *domain.TaskRecord
  30 + EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
28 } 31 }
29 32
30 // 周期内的每日自评小结 33 // 周期内的每日自评小结
@@ -909,25 +909,42 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada @@ -909,25 +909,42 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada
909 srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) 909 srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList)
910 } 910 }
911 911
912 - taskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录  
913 - //categoryTaskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录  
914 - //assessTaskRecords := make([]*domain.TaskRecord, 0) // 评估项任务反馈记录 912 + taskRecordAdapter := make([]*adapter.TaskRecordAdapter, 0) // 类别任务反馈记录
915 // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据 913 // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据
916 if assessData.Types == domain.AssessSelf || param.UserId == assessData.TargetUser.UserId { 914 if assessData.Types == domain.AssessSelf || param.UserId == assessData.TargetUser.UserId {
917 taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) 915 taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext})
918 - _, taskRecords, err = taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) 916 + _, taskRecords, err := taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id})
919 if err != nil { 917 if err != nil {
920 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) 918 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error())
921 } 919 }
922 - //// 区分任务来源分类  
923 - //for i := range taskRecords {  
924 - // it := taskRecords[i]  
925 - // if it.TaskCreatedBy == 0 {  
926 - // categoryTaskRecords = append(categoryTaskRecords, it)  
927 - // } else {  
928 - // assessTaskRecords = append(assessTaskRecords, it)  
929 - // }  
930 - //} 920 +
  921 + taskIdMap := map[int]int{}
  922 + taskIdArray := make([]int, 0)
  923 + for _, v := range taskRecords {
  924 + taskIdMap[v.TaskId] = v.TaskId
  925 + }
  926 + for _, v := range taskIdMap {
  927 + taskIdArray = append(taskIdArray, v)
  928 + }
  929 + taskMap := map[int]*domain.Task{}
  930 + taskRepository := factory.CreateTaskRepository(map[string]interface{}{"transactionContext": transactionContext})
  931 + _, tasks, err := taskRepository.Find(map[string]interface{}{"ids": taskIdArray, "limit": len(taskIdArray)})
  932 + if err != nil {
  933 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error())
  934 + }
  935 + for i := range tasks {
  936 + taskMap[tasks[i].Id] = tasks[i]
  937 + }
  938 +
  939 + for i := range taskRecords {
  940 + it := taskRecords[i]
  941 + a := &adapter.TaskRecordAdapter{}
  942 + a.TaskRecord = it
  943 + if v, ok := taskMap[it.TaskId]; ok {
  944 + a.EndTime = v.EndTime
  945 + }
  946 + taskRecordAdapter = append(taskRecordAdapter, a)
  947 + }
931 } 948 }
932 949
933 if err := transactionContext.CommitTransaction(); err != nil { 950 if err := transactionContext.CommitTransaction(); err != nil {
@@ -952,9 +969,7 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada @@ -952,9 +969,7 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada
952 SupperUser: "", 969 SupperUser: "",
953 DutyTime: "", 970 DutyTime: "",
954 AssessContent: assessContentList, 971 AssessContent: assessContentList,
955 - //CategoryTaskRecords: categoryTaskRecords,  
956 - //AssessTaskRecords: assessTaskRecords,  
957 - TaskRecords: taskRecords, 972 + TaskRecords: taskRecordAdapter,
958 } 973 }
959 if len(assessContentList) == 0 { 974 if len(assessContentList) == 0 {
960 result.AssessContent = []*domain.StaffAssessContent{} 975 result.AssessContent = []*domain.StaffAssessContent{}
@@ -763,13 +763,11 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA @@ -763,13 +763,11 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA
763 cache = srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) 763 cache = srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList)
764 } 764 }
765 765
766 - taskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录  
767 - //categoryTaskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录  
768 - //assessTaskRecords := make([]*domain.TaskRecord, 0) // 评估项任务反馈记录 766 + taskRecordAdapter := make([]*adapter.TaskRecordAdapter, 0) // 类别任务反馈记录
769 // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据 767 // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据
770 if param.UserId == param.TargetUserId { 768 if param.UserId == param.TargetUserId {
771 taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) 769 taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext})
772 - _, taskRecords, err = taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) 770 + _, taskRecords, err := taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id})
773 if err != nil { 771 if err != nil {
774 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) 772 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error())
775 } 773 }
@@ -777,15 +775,35 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA @@ -777,15 +775,35 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA
777 if param.AcquireCache != 0 { 775 if param.AcquireCache != 0 {
778 srv.recoverCacheWithTaskRecord(cache, taskRecords) 776 srv.recoverCacheWithTaskRecord(cache, taskRecords)
779 } 777 }
780 - //// 区分任务来源分类  
781 - //for i := range taskRecords {  
782 - // it := taskRecords[i]  
783 - // if it.TaskCreatedBy == 0 {  
784 - // categoryTaskRecords = append(categoryTaskRecords, it)  
785 - // } else {  
786 - // assessTaskRecords = append(assessTaskRecords, it)  
787 - // }  
788 - //} 778 +
  779 + taskIdMap := map[int]int{}
  780 + taskIdArray := make([]int, 0)
  781 + for _, v := range taskRecords {
  782 + taskIdMap[v.TaskId] = v.TaskId
  783 + }
  784 + for _, v := range taskIdMap {
  785 + taskIdArray = append(taskIdArray, v)
  786 + }
  787 +
  788 + taskMap := map[int]*domain.Task{}
  789 + taskRepository := factory.CreateTaskRepository(map[string]interface{}{"transactionContext": transactionContext})
  790 + _, tasks, err := taskRepository.Find(map[string]interface{}{"ids": taskIdArray, "limit": len(taskIdArray)})
  791 + if err != nil {
  792 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error())
  793 + }
  794 + for i := range tasks {
  795 + taskMap[tasks[i].Id] = tasks[i]
  796 + }
  797 +
  798 + for i := range taskRecords {
  799 + it := taskRecords[i]
  800 + a := &adapter.TaskRecordAdapter{}
  801 + a.TaskRecord = it
  802 + if v, ok := taskMap[it.TaskId]; ok {
  803 + a.EndTime = v.EndTime
  804 + }
  805 + taskRecordAdapter = append(taskRecordAdapter, a)
  806 + }
789 } 807 }
790 808
791 if err := transactionContext.CommitTransaction(); err != nil { 809 if err := transactionContext.CommitTransaction(); err != nil {
@@ -810,9 +828,7 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA @@ -810,9 +828,7 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA
810 SupperUser: "", 828 SupperUser: "",
811 DutyTime: "", 829 DutyTime: "",
812 AssessContent: assessContentList, 830 AssessContent: assessContentList,
813 - //CategoryTaskRecords: categoryTaskRecords,  
814 - //AssessTaskRecords: assessTaskRecords,  
815 - TaskRecords: taskRecords, 831 + TaskRecords: taskRecordAdapter,
816 } 832 }
817 if staffDesc != nil { 833 if staffDesc != nil {
818 result.CompanyName = staffDesc.CompanyName 834 result.CompanyName = staffDesc.CompanyName
@@ -145,6 +145,9 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d @@ -145,6 +145,9 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d
145 if val, ok := queryOptions["id"]; ok { 145 if val, ok := queryOptions["id"]; ok {
146 query.Where("task.id=?", val) 146 query.Where("task.id=?", val)
147 } 147 }
  148 + if val, ok := queryOptions["ids"]; ok {
  149 + query.Where("task.id in(?)", pg.In(val))
  150 + }
148 if val, ok := queryOptions["leaderId"]; ok { 151 if val, ok := queryOptions["leaderId"]; ok {
149 query.Where("task.leader->>'id'=?", val) 152 query.Where("task.leader->>'id'=?", val)
150 } 153 }