|
@@ -1091,6 +1091,79 @@ func (srv *SummaryEvaluationService) GetEvaluationSuper(param *command.QueryEval |
|
@@ -1091,6 +1091,79 @@ func (srv *SummaryEvaluationService) GetEvaluationSuper(param *command.QueryEval |
1091
|
return &result, nil
|
1091
|
return &result, nil
|
1092
|
}
|
1092
|
}
|
1093
|
|
1093
|
|
|
|
1094
|
+// GetEvaluationSuperForAdmin 根据执行人获取上级评估详情(超级管理员特殊处理)
|
|
|
1095
|
+func (srv *SummaryEvaluationService) GetEvaluationSuperForAdmin(param *command.QueryEvaluationSuper) (*adapter.EvaluationInfoSuperAdapter, error) {
|
|
|
1096
|
+ transactionContext, err := factory.StartTransaction()
|
|
|
1097
|
+ if err != nil {
|
|
|
1098
|
+ return nil, err
|
|
|
1099
|
+ }
|
|
|
1100
|
+ defer func() {
|
|
|
1101
|
+ _ = transactionContext.RollbackTransaction()
|
|
|
1102
|
+ }()
|
|
|
1103
|
+
|
|
|
1104
|
+ // 只有超级管理员可以使用的功能
|
|
|
1105
|
+ superAdmin, err := roleService.GetSuperAdmin(transactionContext, param.CompanyId, param.UserId)
|
|
|
1106
|
+ if err != nil {
|
|
|
1107
|
+ return nil, err
|
|
|
1108
|
+ }
|
|
|
1109
|
+ if superAdmin != domain.RoleTypeSuperAdmin {
|
|
|
1110
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "没有操作权限")
|
|
|
1111
|
+ }
|
|
|
1112
|
+
|
|
|
1113
|
+ evaluationRepo := factory.CreateSummaryEvaluationRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
1114
|
+ evaluationItemRepo := factory.CreateEvaluationItemUsedRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
1115
|
+ itemValueRepo := factory.CreateSummaryEvaluationValueRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
1116
|
+ evaluationData, err := evaluationRepo.FindOne(map[string]interface{}{"id": param.SummaryEvaluationId})
|
|
|
1117
|
+ if err != nil {
|
|
|
1118
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1119
|
+ }
|
|
|
1120
|
+ if evaluationData.CompanyId != param.CompanyId {
|
|
|
1121
|
+ return nil, application.ThrowError(application.BUSINESS_ERROR, "没有操作权限")
|
|
|
1122
|
+ }
|
|
|
1123
|
+ _, itemList, err := evaluationItemRepo.Find(map[string]interface{}{"evaluationProjectId": evaluationData.EvaluationProjectId, "nodeType": domain.LinkNodeSelfAssessment})
|
|
|
1124
|
+ if err != nil {
|
|
|
1125
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1126
|
+ }
|
|
|
1127
|
+ // 获取已填写的评估内容
|
|
|
1128
|
+ _, itemValues, err := itemValueRepo.Find(map[string]interface{}{"summaryEvaluationId": evaluationData.Id})
|
|
|
1129
|
+ if err != nil {
|
|
|
1130
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1131
|
+ }
|
|
|
1132
|
+ if len(itemValues) == 0 {
|
|
|
1133
|
+ // 上级还未填写评估,获取 360 ,人资评估
|
|
|
1134
|
+ _, evaluationListOther, err := evaluationRepo.Find(map[string]interface{}{
|
|
|
1135
|
+ "typesList": []int{int(domain.Evaluation360), int(domain.EvaluationHrbp)},
|
|
|
1136
|
+ "targetUserId": evaluationData.TargetUser.UserId,
|
|
|
1137
|
+ "cycleId": evaluationData.CycleId,
|
|
|
1138
|
+ })
|
|
|
1139
|
+ if err != nil {
|
|
|
1140
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1141
|
+ }
|
|
|
1142
|
+ var evaluationIds []int
|
|
|
1143
|
+ for _, v := range evaluationListOther {
|
|
|
1144
|
+ evaluationIds = append(evaluationIds, v.Id)
|
|
|
1145
|
+ }
|
|
|
1146
|
+ if len(evaluationIds) > 0 {
|
|
|
1147
|
+ _, itemValues, err = itemValueRepo.Find(map[string]interface{}{"summaryEvaluationIdList": evaluationIds})
|
|
|
1148
|
+ if err != nil {
|
|
|
1149
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1150
|
+ }
|
|
|
1151
|
+ }
|
|
|
1152
|
+ }
|
|
|
1153
|
+ evaluationBase := srv.getSummaryEvaluation(transactionContext, evaluationData)
|
|
|
1154
|
+ if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
1155
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1156
|
+ }
|
|
|
1157
|
+ //组合 评估填写的值和评估项
|
|
|
1158
|
+ itemValuesAdapter := srv.buildSummaryItemValue(itemList, itemValues)
|
|
|
1159
|
+
|
|
|
1160
|
+ result := adapter.EvaluationInfoSuperAdapter{
|
|
|
1161
|
+ EvaluationBaseAdapter: evaluationBase,
|
|
|
1162
|
+ EvaluationItems: itemValuesAdapter,
|
|
|
1163
|
+ }
|
|
|
1164
|
+ return &result, nil
|
|
|
1165
|
+}
|
|
|
1166
|
+
|
1094
|
// EditEvaluationSuper 更新上级评估内容
|
1167
|
// EditEvaluationSuper 更新上级评估内容
|
1095
|
func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEvaluationValue) (interface{}, error) {
|
1168
|
func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEvaluationValue) (interface{}, error) {
|
1096
|
lock := xredis.NewLockSummaryEvaluationId(param.SummaryEvaluationId)
|
1169
|
lock := xredis.NewLockSummaryEvaluationId(param.SummaryEvaluationId)
|
|
@@ -1196,6 +1269,82 @@ func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEval |
|
@@ -1196,6 +1269,82 @@ func (srv *SummaryEvaluationService) EditEvaluationSuper(param *command.EditEval |
1196
|
}, nil
|
1269
|
}, nil
|
1197
|
}
|
1270
|
}
|
1198
|
|
1271
|
|
|
|
1272
|
+// EditEvaluationSuperForAdmin 更新上级评估内容(超级管理员)
|
|
|
1273
|
+func (srv *SummaryEvaluationService) EditEvaluationSuperForAdmin(param *command.EditEvaluationValue) (interface{}, error) {
|
|
|
1274
|
+ lock := xredis.NewLockSummaryEvaluationId(param.SummaryEvaluationId)
|
|
|
1275
|
+ err := lock.Lock()
|
|
|
1276
|
+ if err != nil {
|
|
|
1277
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "未能完全提交评估内容")
|
|
|
1278
|
+ }
|
|
|
1279
|
+ defer func() {
|
|
|
1280
|
+ lock.UnLock()
|
|
|
1281
|
+ }()
|
|
|
1282
|
+
|
|
|
1283
|
+ transactionContext, err := factory.StartTransaction()
|
|
|
1284
|
+ if err != nil {
|
|
|
1285
|
+ return nil, err
|
|
|
1286
|
+ }
|
|
|
1287
|
+ defer func() {
|
|
|
1288
|
+ _ = transactionContext.RollbackTransaction()
|
|
|
1289
|
+ }()
|
|
|
1290
|
+
|
|
|
1291
|
+ // 只有超级管理员可以使用的功能
|
|
|
1292
|
+ superAdmin, err := roleService.GetSuperAdmin(transactionContext, param.CompanyId, param.ExecutorId)
|
|
|
1293
|
+ if err != nil {
|
|
|
1294
|
+ return nil, err
|
|
|
1295
|
+ }
|
|
|
1296
|
+ if superAdmin != domain.RoleTypeSuperAdmin {
|
|
|
1297
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "没有操作权限")
|
|
|
1298
|
+ }
|
|
|
1299
|
+
|
|
|
1300
|
+ evaluationRepo := factory.CreateSummaryEvaluationRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
1301
|
+ itemUsedRepo := factory.CreateEvaluationItemUsedRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
1302
|
+ itemValueRepo := factory.CreateSummaryEvaluationValueRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
1303
|
+ evaluationData, err := evaluationRepo.FindOne(map[string]interface{}{"id": param.SummaryEvaluationId})
|
|
|
1304
|
+ if err != nil {
|
|
|
1305
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1306
|
+ }
|
|
|
1307
|
+ if evaluationData.CompanyId != param.CompanyId {
|
|
|
1308
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "没有操作权限")
|
|
|
1309
|
+ }
|
|
|
1310
|
+ _, itemList, err := itemUsedRepo.Find(map[string]interface{}{"evaluationProjectId": evaluationData.EvaluationProjectId, "nodeType": domain.LinkNodeSelfAssessment})
|
|
|
1311
|
+ if err != nil {
|
|
|
1312
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1313
|
+ }
|
|
|
1314
|
+ // 获取已填写的评估内容
|
|
|
1315
|
+ _, itemValueList, err := itemValueRepo.Find(map[string]interface{}{"summaryEvaluationId": evaluationData.Id})
|
|
|
1316
|
+ if err != nil {
|
|
|
1317
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1318
|
+ }
|
|
|
1319
|
+ // 超级管理员编辑不限制截止时间
|
|
|
1320
|
+ err = srv.editEvaluationValueUnlimited(evaluationData, &itemValueList, itemList, param.EvaluationItems, nil, false)
|
|
|
1321
|
+ if err != nil {
|
|
|
1322
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1323
|
+ }
|
|
|
1324
|
+ for _, v := range itemValueList {
|
|
|
1325
|
+ err = itemValueRepo.Save(v) // 保存填写值
|
|
|
1326
|
+ if err != nil {
|
|
|
1327
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1328
|
+ }
|
|
|
1329
|
+ }
|
|
|
1330
|
+ evaluationData.Status = domain.EvaluationCompleted
|
|
|
1331
|
+ err = evaluationRepo.Save(evaluationData)
|
|
|
1332
|
+ if err != nil {
|
|
|
1333
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1334
|
+ }
|
|
|
1335
|
+ if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
1336
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
1337
|
+ }
|
|
|
1338
|
+
|
|
|
1339
|
+ err = srv.AfterCompletedEvaluationSuper(evaluationData)
|
|
|
1340
|
+ if err != nil {
|
|
|
1341
|
+ return nil, err
|
|
|
1342
|
+ }
|
|
|
1343
|
+
|
|
|
1344
|
+ itemValueAdapter := srv.buildSummaryItemValue(itemList, itemValueList)
|
|
|
1345
|
+ return map[string][]adapter.EvaluationItemAdapter{"EvaluationItems": itemValueAdapter}, nil
|
|
|
1346
|
+}
|
|
|
1347
|
+
|
1199
|
// getEvaluationSuperDefaultValue
|
1348
|
// getEvaluationSuperDefaultValue
|
1200
|
// 按照权限设置,是否获取上级评估内容的默认值
|
1349
|
// 按照权限设置,是否获取上级评估内容的默认值
|
1201
|
func (srv *SummaryEvaluationService) getEvaluationSuperDefaultValue(transactionContext application.TransactionContext, evaluationData *domain.SummaryEvaluation) (
|
1350
|
func (srv *SummaryEvaluationService) getEvaluationSuperDefaultValue(transactionContext application.TransactionContext, evaluationData *domain.SummaryEvaluation) (
|
|
@@ -1873,12 +2022,7 @@ func (srv *SummaryEvaluationService) ListAllEvaluationFinish(param *command.Quer |
|
@@ -1873,12 +2022,7 @@ func (srv *SummaryEvaluationService) ListAllEvaluationFinish(param *command.Quer |
1873
|
}
|
2022
|
}
|
1874
|
|
2023
|
|
1875
|
// editEvaluationValue 编辑评估的填写值
|
2024
|
// editEvaluationValue 编辑评估的填写值
|
1876
|
-// evaluationData 对应的评估任务
|
|
|
1877
|
-// evaluationItems 对应的评估项
|
|
|
1878
|
-// oldItemValue 旧的评估项填写的值
|
|
|
1879
|
-// updatedValue 新填的评估值
|
|
|
1880
|
-// defaultItemvalue 评估项保持的默认值
|
|
|
1881
|
-func (srv *SummaryEvaluationService) editEvaluationValue(
|
2025
|
+func (srv *SummaryEvaluationService) editEvaluationValueUnlimited(
|
1882
|
evaluationData *domain.SummaryEvaluation,
|
2026
|
evaluationData *domain.SummaryEvaluation,
|
1883
|
itemValueList *[]*domain.SummaryEvaluationValue,
|
2027
|
itemValueList *[]*domain.SummaryEvaluationValue,
|
1884
|
evaluationItems []*domain.EvaluationItemUsed,
|
2028
|
evaluationItems []*domain.EvaluationItemUsed,
|
|
@@ -1886,14 +2030,9 @@ func (srv *SummaryEvaluationService) editEvaluationValue( |
|
@@ -1886,14 +2030,9 @@ func (srv *SummaryEvaluationService) editEvaluationValue( |
1886
|
defaultItemValue []*domain.SummaryEvaluationValue,
|
2030
|
defaultItemValue []*domain.SummaryEvaluationValue,
|
1887
|
isTemporary bool,
|
2031
|
isTemporary bool,
|
1888
|
) error {
|
2032
|
) error {
|
1889
|
-
|
|
|
1890
|
- ok := evaluationData.EndTime.Before(time.Now())
|
|
|
1891
|
- if ok {
|
|
|
1892
|
- return errors.New("评估时间已截止")
|
|
|
1893
|
- }
|
|
|
1894
|
evaluationItemMap := map[int]*domain.EvaluationItemUsed{}
|
2033
|
evaluationItemMap := map[int]*domain.EvaluationItemUsed{}
|
1895
|
evaluationValueMap := map[int]*domain.SummaryEvaluationValue{}
|
2034
|
evaluationValueMap := map[int]*domain.SummaryEvaluationValue{}
|
1896
|
- evaluationValueSlice := []*domain.SummaryEvaluationValue{}
|
2035
|
+ var evaluationValueSlice []*domain.SummaryEvaluationValue
|
1897
|
evaluationData.TotalRating = nil //清空评级数量统计
|
2036
|
evaluationData.TotalRating = nil //清空评级数量统计
|
1898
|
for _, v := range evaluationItems {
|
2037
|
for _, v := range evaluationItems {
|
1899
|
newValue := &domain.SummaryEvaluationValue{}
|
2038
|
newValue := &domain.SummaryEvaluationValue{}
|
|
@@ -1976,6 +2115,34 @@ func (srv *SummaryEvaluationService) editEvaluationValue( |
|
@@ -1976,6 +2115,34 @@ func (srv *SummaryEvaluationService) editEvaluationValue( |
1976
|
return nil
|
2115
|
return nil
|
1977
|
}
|
2116
|
}
|
1978
|
|
2117
|
|
|
|
2118
|
+// editEvaluationValue 编辑评估的填写值(超过截止时间不能编辑)
|
|
|
2119
|
+// evaluationData 对应的评估任务
|
|
|
2120
|
+// evaluationItems 对应的评估项
|
|
|
2121
|
+// oldItemValue 旧的评估项填写的值
|
|
|
2122
|
+// updatedValue 新填的评估值
|
|
|
2123
|
+// defaultItemValue 评估项保持的默认值
|
|
|
2124
|
+func (srv *SummaryEvaluationService) editEvaluationValue(
|
|
|
2125
|
+ evaluationData *domain.SummaryEvaluation,
|
|
|
2126
|
+ itemValueList *[]*domain.SummaryEvaluationValue,
|
|
|
2127
|
+ evaluationItems []*domain.EvaluationItemUsed,
|
|
|
2128
|
+ updatedValue []command.UpdatedItemValue,
|
|
|
2129
|
+ defaultItemValue []*domain.SummaryEvaluationValue,
|
|
|
2130
|
+ isTemporary bool,
|
|
|
2131
|
+) error {
|
|
|
2132
|
+ ok := evaluationData.EndTime.Before(time.Now())
|
|
|
2133
|
+ if ok {
|
|
|
2134
|
+ return errors.New("评估时间已截止")
|
|
|
2135
|
+ }
|
|
|
2136
|
+ return srv.editEvaluationValueUnlimited(
|
|
|
2137
|
+ evaluationData,
|
|
|
2138
|
+ itemValueList,
|
|
|
2139
|
+ evaluationItems,
|
|
|
2140
|
+ updatedValue,
|
|
|
2141
|
+ defaultItemValue,
|
|
|
2142
|
+ isTemporary,
|
|
|
2143
|
+ )
|
|
|
2144
|
+}
|
|
|
2145
|
+
|
1979
|
// 获取现在待执行的综合自评
|
2146
|
// 获取现在待执行的综合自评
|
1980
|
func (srv *SummaryEvaluationService) ListExecutorNowEvaluationSelf(param *command.QueryExecutorEvaluationList) (map[string]interface{}, error) {
|
2147
|
func (srv *SummaryEvaluationService) ListExecutorNowEvaluationSelf(param *command.QueryExecutorEvaluationList) (map[string]interface{}, error) {
|
1981
|
transactionContext, err := factory.CreateTransactionContext(nil)
|
2148
|
transactionContext, err := factory.CreateTransactionContext(nil)
|