正在显示
6 个修改的文件
包含
157 行增加
和
35 行删除
1 | package service | 1 | package service |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | + "fmt" | ||
5 | + | ||
4 | "github.com/linmadan/egglib-go/core/application" | 6 | "github.com/linmadan/egglib-go/core/application" |
5 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" | 7 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" |
8 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/adapter" | ||
6 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/query" | 9 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/query" |
10 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
7 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/dao" | 11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/dao" |
8 | ) | 12 | ) |
9 | 13 | ||
@@ -67,8 +71,8 @@ func (srv StaffAssessServeice) ListAllAssessCycleDay(param *query.ListAssessCycl | @@ -67,8 +71,8 @@ func (srv StaffAssessServeice) ListAllAssessCycleDay(param *query.ListAssessCycl | ||
67 | } | 71 | } |
68 | 72 | ||
69 | //根据周期id和日期获取 员工填写评估内容 | 73 | //根据周期id和日期获取 员工填写评估内容 |
70 | -// 有过滤查看权限 | ||
71 | -func (srv StaffAssessServeice) ListAllAssessContentCycleDay(param *query.ListAssessContentCycleDay) (map[string]interface{}, error) { | 74 | +//有过滤查看权限 |
75 | +func (srv StaffAssessServeice) ListUserAssessContentCycleDay(param *query.ListAssessContentCycleDay) (*adapter.ListUserAssessContent, error) { | ||
72 | transactionContext, err := factory.CreateTransactionContext(nil) | 76 | transactionContext, err := factory.CreateTransactionContext(nil) |
73 | if err != nil { | 77 | if err != nil { |
74 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 78 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
@@ -79,11 +83,110 @@ func (srv StaffAssessServeice) ListAllAssessContentCycleDay(param *query.ListAss | @@ -79,11 +83,110 @@ func (srv StaffAssessServeice) ListAllAssessContentCycleDay(param *query.ListAss | ||
79 | defer func() { | 83 | defer func() { |
80 | _ = transactionContext.RollbackTransaction() | 84 | _ = transactionContext.RollbackTransaction() |
81 | }() | 85 | }() |
82 | - // assessDao := dao.NewStaffAssessDao(map[string]interface{}{ | ||
83 | - // "transactionContext": transactionContext, | ||
84 | - // }) | 86 | + |
87 | + roleRepo := factory.CreateRoleRepository(map[string]interface{}{ | ||
88 | + "transactionContext": transactionContext, | ||
89 | + }) | ||
90 | + roleUserRepo := factory.CreateRoleUserRepository(map[string]interface{}{ | ||
91 | + "transactionContext": transactionContext, | ||
92 | + }) | ||
93 | + _, roleList, err := roleRepo.Find(map[string]interface{}{ | ||
94 | + "type": domain.RoleTypeSystem, | ||
95 | + "companyId": param.CompanyId, | ||
96 | + }) | ||
97 | + if err != nil { | ||
98 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取角色信息列表"+err.Error()) | ||
99 | + } | ||
100 | + _, userRoleList, err := roleUserRepo.Find(map[string]interface{}{ | ||
101 | + "companyId": param.CompanyId, | ||
102 | + "userId": param.OperaterId, | ||
103 | + }) | ||
104 | + if err != nil { | ||
105 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error()) | ||
106 | + } | ||
107 | + hrbp := -1 | ||
108 | + for _, v := range userRoleList { | ||
109 | + for _, v2 := range roleList { | ||
110 | + if v.RoleId == v2.Id { | ||
111 | + hrbp = 1 | ||
112 | + break | ||
113 | + } | ||
114 | + } | ||
115 | + if hrbp == 1 { | ||
116 | + break | ||
117 | + } | ||
118 | + } | ||
119 | + assessDao := dao.NewStaffAssessDao(map[string]interface{}{ | ||
120 | + "transactionContext": transactionContext, | ||
121 | + }) | ||
122 | + | ||
123 | + limit := param.PageSize | ||
124 | + offset := (param.PageNumber - 1) * limit | ||
125 | + cnt, err := assessDao.CountUserAssess(dao.SearchConditin1{ | ||
126 | + CompanyId: param.CompanyId, | ||
127 | + CycleId: param.CycleId, | ||
128 | + BeginDay: param.BeginDay, | ||
129 | + TargetUserName: param.TargetUserName, | ||
130 | + Limit: 5000, | ||
131 | + Offset: 0, | ||
132 | + OperaterId: param.OperaterId, | ||
133 | + Hrbp: hrbp, | ||
134 | + }) | ||
135 | + if err != nil { | ||
136 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "统计总数"+err.Error()) | ||
137 | + } | ||
138 | + contentList, err := assessDao.SearchUserAssessContent(dao.SearchConditin1{ | ||
139 | + CompanyId: param.CompanyId, | ||
140 | + CycleId: param.CycleId, | ||
141 | + BeginDay: param.BeginDay, | ||
142 | + TargetUserName: param.TargetUserName, | ||
143 | + Limit: limit, | ||
144 | + Offset: offset, | ||
145 | + OperaterId: param.OperaterId, | ||
146 | + Hrbp: hrbp, | ||
147 | + }) | ||
148 | + if err != nil { | ||
149 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取数据列表"+err.Error()) | ||
150 | + } | ||
85 | if err := transactionContext.CommitTransaction(); err != nil { | 151 | if err := transactionContext.CommitTransaction(); err != nil { |
86 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 152 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
87 | } | 153 | } |
88 | - return nil, nil | 154 | + |
155 | + //可变的表格列 | ||
156 | + changeableHeader := []adapter.ListTableHeader{ | ||
157 | + {Key: "targetUserName", Name: "姓名"}, //固定列 | ||
158 | + } | ||
159 | + //过滤重复的列 | ||
160 | + headerMap := map[string]string{} | ||
161 | + // 获取已经填报的内容 | ||
162 | + changeableRows := map[string]map[string]string{} | ||
163 | + tableSort := []string{} //确定列表数据的顺序 | ||
164 | + for i, v := range contentList { | ||
165 | + name := fmt.Sprintf("%s-%s", v.Category, v.ContentName) | ||
166 | + key := fmt.Sprintf("k%d", i) | ||
167 | + if _, ok := headerMap[name]; !ok { | ||
168 | + changeableHeader = append(changeableHeader, adapter.ListTableHeader{ | ||
169 | + Key: key, Name: name, | ||
170 | + }) | ||
171 | + headerMap[name] = key | ||
172 | + } | ||
173 | + if _, ok := changeableRows[v.TargetUserId]; !ok { | ||
174 | + changeableRows[v.TargetUserId] = map[string]string{} | ||
175 | + tableSort = append(tableSort, v.TargetUserId) | ||
176 | + } | ||
177 | + key = headerMap[name] | ||
178 | + changeableRows[v.TargetUserId][key] = v.Value | ||
179 | + changeableRows[v.TargetUserId]["targetUserName"] = v.TargetUserName | ||
180 | + changeableRows[v.TargetUserId]["targetUserId"] = v.TargetUserId | ||
181 | + } | ||
182 | + list := []map[string]string{} | ||
183 | + for _, v := range tableSort { | ||
184 | + list = append(list, changeableRows[v]) | ||
185 | + } | ||
186 | + result := adapter.ListUserAssessContent{ | ||
187 | + TableHeader: changeableHeader, | ||
188 | + Total: cnt, | ||
189 | + List: list, | ||
190 | + } | ||
191 | + return &result, nil | ||
89 | } | 192 | } |
@@ -186,6 +186,12 @@ type SearchConditin1 struct { | @@ -186,6 +186,12 @@ type SearchConditin1 struct { | ||
186 | //limit int, 分页条数 | 186 | //limit int, 分页条数 |
187 | //offset int 分页偏移 | 187 | //offset int 分页偏移 |
188 | func (d *StaffAssessDao) SearchUserAssessContent(param SearchConditin1) ([]UserAssessContent, error) { | 188 | func (d *StaffAssessDao) SearchUserAssessContent(param SearchConditin1) ([]UserAssessContent, error) { |
189 | + if param.Offset < 0 { | ||
190 | + param.Offset = 0 | ||
191 | + } | ||
192 | + if param.Limit < 0 { | ||
193 | + param.Limit = 20 | ||
194 | + } | ||
189 | sqlStr := ` select | 195 | sqlStr := ` select |
190 | t_staff_assess_1.target_user_id,t_staff_assess_1.target_user_name,t_staff_assess_1.begin_day, | 196 | t_staff_assess_1.target_user_id,t_staff_assess_1.target_user_name,t_staff_assess_1.begin_day, |
191 | staff_assess_content.value ,staff_assess_content.sort_by , | 197 | staff_assess_content.value ,staff_assess_content.sort_by , |
@@ -206,7 +212,7 @@ func (d *StaffAssessDao) SearchUserAssessContent(param SearchConditin1) ([]UserA | @@ -206,7 +212,7 @@ func (d *StaffAssessDao) SearchUserAssessContent(param SearchConditin1) ([]UserA | ||
206 | sqlStr = sqlStr0 + sqlStr | 212 | sqlStr = sqlStr0 + sqlStr |
207 | tx := d.transactionContext.PgTx | 213 | tx := d.transactionContext.PgTx |
208 | var result []UserAssessContent | 214 | var result []UserAssessContent |
209 | - _, err := tx.QueryOne(&result, sqlStr, condition...) | 215 | + _, err := tx.Query(&result, sqlStr, condition...) |
210 | return result, err | 216 | return result, err |
211 | } | 217 | } |
212 | 218 | ||
@@ -218,28 +224,19 @@ func (d *StaffAssessDao) SearchUserAssessContent(param SearchConditin1) ([]UserA | @@ -218,28 +224,19 @@ func (d *StaffAssessDao) SearchUserAssessContent(param SearchConditin1) ([]UserA | ||
218 | //hrbp 是否搜索HRBP角色的用户可以查看,1:是;-1:否 | 224 | //hrbp 是否搜索HRBP角色的用户可以查看,1:是;-1:否 |
219 | //limit int, 分页条数 | 225 | //limit int, 分页条数 |
220 | //offset int 分页偏移 | 226 | //offset int 分页偏移 |
221 | -func (d *StaffAssessDao) CountUserAssess(param SearchConditin1) ([]UserAssessContent, error) { | ||
222 | - sqlStr := ` select | ||
223 | - t_staff_assess_1.target_user_id,t_staff_assess_1.target_user_name,t_staff_assess_1.begin_day, | ||
224 | - staff_assess_content.value ,staff_assess_content.sort_by , | ||
225 | - staff_assess_content.category ,staff_assess_content."name" as content_name , | ||
226 | - staff_assess_content.weight | ||
227 | - from t_staff_assess_1 | ||
228 | - left join staff_assess_content on t_staff_assess_1.assess_id = staff_assess_content.staff_assess_id | ||
229 | - ` | 227 | +func (d *StaffAssessDao) CountUserAssess(param SearchConditin1) (int, error) { |
228 | + sqlStr := ` select count(*) from t_staff_assess_1 ` | ||
230 | condition := []interface{}{} | 229 | condition := []interface{}{} |
231 | if len(param.TargetUserName) > 0 { | 230 | if len(param.TargetUserName) > 0 { |
232 | sqlStr += ` where t_staff_assess_1.target_user_name like ? ` | 231 | sqlStr += ` where t_staff_assess_1.target_user_name like ? ` |
233 | condition = append(condition, param.TargetUserName) | 232 | condition = append(condition, param.TargetUserName) |
234 | } | 233 | } |
235 | - //加入排序 | ||
236 | - sqlStr += ` order by convert_to(t_staff_assess_1.target_user_name,'GBK'),staff_assess_content.sort_by ` | ||
237 | //获取前置sql语句 | 234 | //获取前置sql语句 |
238 | - sqlStr0 := d.useTStaffAssess(param.CompanyId, param.CycleId, param.OperaterId, param.BeginDay, param.Hrbp, param.Limit, param.Offset) | 235 | + sqlStr0 := d.useTStaffAssess(param.CompanyId, param.CycleId, param.OperaterId, param.BeginDay, param.Hrbp, 5000, 0) |
239 | sqlStr = sqlStr0 + sqlStr | 236 | sqlStr = sqlStr0 + sqlStr |
240 | tx := d.transactionContext.PgTx | 237 | tx := d.transactionContext.PgTx |
241 | - var result []UserAssessContent | ||
242 | - _, err := tx.QueryOne(&result, sqlStr, condition...) | 238 | + var result int |
239 | + _, err := tx.QueryOne(pg.Scan(&result), sqlStr, condition...) | ||
243 | return result, err | 240 | return result, err |
244 | } | 241 | } |
245 | 242 |
@@ -3,13 +3,14 @@ package repository | @@ -3,13 +3,14 @@ package repository | ||
3 | import ( | 3 | import ( |
4 | "errors" | 4 | "errors" |
5 | "fmt" | 5 | "fmt" |
6 | + "time" | ||
7 | + | ||
6 | "github.com/go-pg/pg/v10" | 8 | "github.com/go-pg/pg/v10" |
7 | "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" | 9 | "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" |
8 | pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | 10 | pgTransaction "github.com/linmadan/egglib-go/transaction/pg" |
9 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | 11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
10 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg/models" | 12 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg/models" |
11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/utils" | 13 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/utils" |
12 | - "time" | ||
13 | ) | 14 | ) |
14 | 15 | ||
15 | type RoleRepository struct { | 16 | type RoleRepository struct { |
@@ -117,6 +118,10 @@ func (repo *RoleRepository) Find(queryOptions map[string]interface{}) (int64, [] | @@ -117,6 +118,10 @@ func (repo *RoleRepository) Find(queryOptions map[string]interface{}) (int64, [] | ||
117 | query.Where("name = ?", v) | 118 | query.Where("name = ?", v) |
118 | } | 119 | } |
119 | 120 | ||
121 | + if v, ok := queryOptions["type"]; ok { | ||
122 | + query.Where("type=?", v) | ||
123 | + } | ||
124 | + | ||
120 | if companyId, ok := queryOptions["companyId"]; ok { | 125 | if companyId, ok := queryOptions["companyId"]; ok { |
121 | query.Where("company_id = ?", companyId) | 126 | query.Where("company_id = ?", companyId) |
122 | } | 127 | } |
@@ -283,15 +283,7 @@ func (c *StaffAssessController) ListTargetUserMeSupperAssess() { | @@ -283,15 +283,7 @@ func (c *StaffAssessController) ListTargetUserMeSupperAssess() { | ||
283 | //获取周期列表 | 283 | //获取周期列表 |
284 | func (c *StaffAssessController) ListAssessCycle() { | 284 | func (c *StaffAssessController) ListAssessCycle() { |
285 | srv := service.NewStaffAssessServeice() | 285 | srv := service.NewStaffAssessServeice() |
286 | - // paramReq := &query.ListTargetUserAssessQuery{} | ||
287 | - // err := c.BindJSON(paramReq) | ||
288 | - // if err != nil { | ||
289 | - // e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | ||
290 | - // c.Response(nil, e) | ||
291 | - // return | ||
292 | - // } | ||
293 | userReq := middlewares.GetUser(c.Ctx) | 286 | userReq := middlewares.GetUser(c.Ctx) |
294 | - | ||
295 | data, err := srv.ListAllAssessCycle(int(userReq.CompanyId)) | 287 | data, err := srv.ListAllAssessCycle(int(userReq.CompanyId)) |
296 | c.Response(data, err) | 288 | c.Response(data, err) |
297 | } | 289 | } |
@@ -311,3 +303,20 @@ func (c *StaffAssessController) ListAssessCycleDay() { | @@ -311,3 +303,20 @@ func (c *StaffAssessController) ListAssessCycleDay() { | ||
311 | data, err := srv.ListAllAssessCycleDay(paramReq) | 303 | data, err := srv.ListAllAssessCycleDay(paramReq) |
312 | c.Response(data, err) | 304 | c.Response(data, err) |
313 | } | 305 | } |
306 | + | ||
307 | +//根据周期里的考核日期,获取员工填写评估内容列表 | ||
308 | +func (c *StaffAssessController) ListAssessContentCycleDay() { | ||
309 | + srv := service.NewStaffAssessServeice() | ||
310 | + paramReq := &query.ListAssessContentCycleDay{} | ||
311 | + err := c.BindJSON(paramReq) | ||
312 | + if err != nil { | ||
313 | + e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | ||
314 | + c.Response(nil, e) | ||
315 | + return | ||
316 | + } | ||
317 | + userReq := middlewares.GetUser(c.Ctx) | ||
318 | + paramReq.CompanyId = int(userReq.CompanyId) | ||
319 | + paramReq.OperaterId = int(userReq.UserId) | ||
320 | + data, err := srv.ListUserAssessContentCycleDay(paramReq) | ||
321 | + c.Response(data, err) | ||
322 | +} |
@@ -10,11 +10,12 @@ import ( | @@ -10,11 +10,12 @@ import ( | ||
10 | func init() { | 10 | func init() { |
11 | assessTaskNS := web.NewNamespace("/v1/staff-assess-task", | 11 | assessTaskNS := web.NewNamespace("/v1/staff-assess-task", |
12 | web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()), | 12 | web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()), |
13 | - web.NSCtrlPost("/search/me", (*controllers.StaffAssessController).SearchAssessTaskMe), //获取我参与过的评估项目列表 | ||
14 | - web.NSCtrlPost("/desc/me", (*controllers.StaffAssessController).AssessTaskMeDesc), //获取我的项目评估进度描述 | ||
15 | - web.NSCtrlPost("/", (*controllers.StaffAssessController).CreateStaffAssessTask), //创建员工的评估任务 | ||
16 | - web.NSCtrlGet("/cycle", (*controllers.StaffAssessController).ListAssessCycle), //获取周期列表 | ||
17 | - web.NSCtrlPost("/cycle/day", (*controllers.StaffAssessController).ListAssessCycleDay), //获取周期中的考核日期 | 13 | + web.NSCtrlPost("/search/me", (*controllers.StaffAssessController).SearchAssessTaskMe), //获取我参与过的评估项目列表 |
14 | + web.NSCtrlPost("/desc/me", (*controllers.StaffAssessController).AssessTaskMeDesc), //获取我的项目评估进度描述 | ||
15 | + web.NSCtrlPost("/", (*controllers.StaffAssessController).CreateStaffAssessTask), //创建员工的评估任务 | ||
16 | + web.NSCtrlGet("/cycle", (*controllers.StaffAssessController).ListAssessCycle), //获取周期列表 | ||
17 | + web.NSCtrlPost("/cycle/day", (*controllers.StaffAssessController).ListAssessCycleDay), //获取周期中的考核日期 | ||
18 | + web.NSCtrlPost("/cycle/day/content", (*controllers.StaffAssessController).ListAssessContentCycleDay), //根据周期里的考核日期,获取员工填写评估内容列表 | ||
18 | ) | 19 | ) |
19 | // /v1/staff-assess/self/me/list | 20 | // /v1/staff-assess/self/me/list |
20 | assessNS := web.NewNamespace("/v1/staff-assess", | 21 | assessNS := web.NewNamespace("/v1/staff-assess", |
-
请 注册 或 登录 后发表评论