refactor: 功能优化
* 禁用的用户不在车间面板上展示 * 二级品自动审核修改
正在显示
8 个修改的文件
包含
47 行增加
和
21 行删除
| @@ -41,7 +41,7 @@ func AutoApproveProductRecord(ctx context.Context) error { | @@ -41,7 +41,7 @@ func AutoApproveProductRecord(ctx context.Context) error { | ||
| 41 | 41 | ||
| 42 | approveAttendanceRecordsService, _ := domainService.NewPGProductRecordService(transactionContext.(*pgTransaction.TransactionContext)) | 42 | approveAttendanceRecordsService, _ := domainService.NewPGProductRecordService(transactionContext.(*pgTransaction.TransactionContext)) |
| 43 | 43 | ||
| 44 | - if _, err = approveAttendanceRecordsService.BatchApprove(records, 0, 0, domain.AttendanceAutoApproved); err != nil { | 44 | + if _, err = approveAttendanceRecordsService.BatchApprove(records, 0, 0, domain.ProductRecordAutoApproved); err != nil { |
| 45 | log.Logger.Error(err.Error(), map[string]interface{}{"task": "定时审核生产记录"}) | 45 | log.Logger.Error(err.Error(), map[string]interface{}{"task": "定时审核生产记录"}) |
| 46 | return err | 46 | return err |
| 47 | } | 47 | } |
| @@ -73,7 +73,7 @@ func (d *ProductGroupEmployeesDtos) LoadDto(groups ...*domain.ProductGroup) { | @@ -73,7 +73,7 @@ func (d *ProductGroupEmployeesDtos) LoadDto(groups ...*domain.ProductGroup) { | ||
| 73 | } | 73 | } |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | -func (d *ProductGroupEmployeesDtos) LoadDtoV2(list []*domain.ProductAttendanceRecord, mapGroupUser map[string]*domain.User, keyFunc func(int) string) { | 76 | +func (d *ProductGroupEmployeesDtos) LoadDtoV2(list []*domain.ProductAttendanceRecord, mapGroupUser map[string]*domain.User, keyFunc func(int) string, checkUserEnableFunc func(int) bool) { |
| 77 | var mapUser = make(map[int]int) | 77 | var mapUser = make(map[int]int) |
| 78 | // 打卡的用户 | 78 | // 打卡的用户 |
| 79 | for _, v := range list { | 79 | for _, v := range list { |
| @@ -83,6 +83,9 @@ func (d *ProductGroupEmployeesDtos) LoadDtoV2(list []*domain.ProductAttendanceRe | @@ -83,6 +83,9 @@ func (d *ProductGroupEmployeesDtos) LoadDtoV2(list []*domain.ProductAttendanceRe | ||
| 83 | item.ProductGroupId = 0 | 83 | item.ProductGroupId = 0 |
| 84 | item.GroupName = "" | 84 | item.GroupName = "" |
| 85 | item.Online = true | 85 | item.Online = true |
| 86 | + if enable := checkUserEnableFunc(item.UserId); !enable { | ||
| 87 | + continue | ||
| 88 | + } | ||
| 86 | if v, ok := mapGroupUser[keyFunc(item.UserId)]; ok { | 89 | if v, ok := mapGroupUser[keyFunc(item.UserId)]; ok { |
| 87 | item.GroupName = v.GroupName | 90 | item.GroupName = v.GroupName |
| 88 | item.ProductGroupId = v.GroupId | 91 | item.ProductGroupId = v.GroupId |
| @@ -107,6 +110,9 @@ func (d *ProductGroupEmployeesDtos) LoadDtoV2(list []*domain.ProductAttendanceRe | @@ -107,6 +110,9 @@ func (d *ProductGroupEmployeesDtos) LoadDtoV2(list []*domain.ProductAttendanceRe | ||
| 107 | item.UserName = v.UserName | 110 | item.UserName = v.UserName |
| 108 | item.ProductGroupId = v.GroupId | 111 | item.ProductGroupId = v.GroupId |
| 109 | item.GroupName = v.GroupName | 112 | item.GroupName = v.GroupName |
| 113 | + if enable := checkUserEnableFunc(item.UserId); !enable { | ||
| 114 | + continue | ||
| 115 | + } | ||
| 110 | mapUser[item.UserId] = item.UserId | 116 | mapUser[item.UserId] = item.UserId |
| 111 | d.Append(item) | 117 | d.Append(item) |
| 112 | } | 118 | } |
| @@ -11,6 +11,7 @@ import ( | @@ -11,6 +11,7 @@ import ( | ||
| 11 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | 11 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" |
| 12 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/domainService" | 12 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/domainService" |
| 13 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/utils" | 13 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/utils" |
| 14 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/log" | ||
| 14 | "sort" | 15 | "sort" |
| 15 | "strings" | 16 | "strings" |
| 16 | "time" | 17 | "time" |
| @@ -491,7 +492,20 @@ func (productGroupService *ProductGroupService) SearchProductGroupEmployeesV2(op | @@ -491,7 +492,20 @@ func (productGroupService *ProductGroupService) SearchProductGroupEmployeesV2(op | ||
| 491 | productGroupRepository, _, _ := factory.FastPgProductGroup(transactionContext, 0) | 492 | productGroupRepository, _, _ := factory.FastPgProductGroup(transactionContext, 0) |
| 492 | mapUser, keyFunc := domainService.FindGroupMembers(productGroupRepository, cmd.CompanyId, cmd.OrgId, domain.WorkstationKey(cmd.WorkshopId, cmd.LineId, cmd.SectionId)) | 493 | mapUser, keyFunc := domainService.FindGroupMembers(productGroupRepository, cmd.CompanyId, cmd.OrgId, domain.WorkstationKey(cmd.WorkshopId, cmd.LineId, cmd.SectionId)) |
| 493 | var results = dto.NewProductGroupEmployeesDtos() | 494 | var results = dto.NewProductGroupEmployeesDtos() |
| 494 | - results.LoadDtoV2(productGroups, mapUser, keyFunc) | 495 | + |
| 496 | + userService := domainService.NewUserService() | ||
| 497 | + checkUserEnableFunc := func(userId int) bool { | ||
| 498 | + user, err := userService.User(userId) | ||
| 499 | + if err != nil { | ||
| 500 | + return false | ||
| 501 | + } | ||
| 502 | + if user.EnableStatus == int(domain.UserStatusEnable) { | ||
| 503 | + return true | ||
| 504 | + } | ||
| 505 | + log.Logger.Debug(fmt.Sprintf("ID:%d 用户:%s 状态:%d 已被禁用,过滤", user.UserId, user.UserName, user.EnableStatus)) | ||
| 506 | + return false | ||
| 507 | + } | ||
| 508 | + results.LoadDtoV2(productGroups, mapUser, keyFunc, checkUserEnableFunc) | ||
| 495 | sort.Stable(results) | 509 | sort.Stable(results) |
| 496 | if err := transactionContext.CommitTransaction(); err != nil { | 510 | if err := transactionContext.CommitTransaction(); err != nil { |
| 497 | return 0, nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 511 | return 0, nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -15,10 +15,11 @@ const ( | @@ -15,10 +15,11 @@ const ( | ||
| 15 | ) | 15 | ) |
| 16 | 16 | ||
| 17 | const ( | 17 | const ( |
| 18 | - ProductRecordNotApprove = 1 // 未审核 | ||
| 19 | - ProductRecordApproved = 2 // 已审核 | ||
| 20 | - ProductRecordWithdraw = 3 // 已撤回 | ||
| 21 | - ProductRecordLogged = 4 // 已记录 | 18 | + ProductRecordNotApprove = 1 // 未审核 |
| 19 | + ProductRecordApproved = 2 // 已审核 | ||
| 20 | + ProductRecordWithdraw = 3 // 已撤回 | ||
| 21 | + ProductRecordLogged = 4 // 已记录 | ||
| 22 | + ProductRecordAutoApproved = 5 // 自动审核 | ||
| 22 | ) | 23 | ) |
| 23 | 24 | ||
| 24 | // 生产记录 | 25 | // 生产记录 |
| @@ -12,7 +12,7 @@ type ProductRecordInfo struct { | @@ -12,7 +12,7 @@ type ProductRecordInfo struct { | ||
| 12 | WeighBefore float64 `json:"weighBefore"` | 12 | WeighBefore float64 `json:"weighBefore"` |
| 13 | // 产能-审核后 | 13 | // 产能-审核后 |
| 14 | WeighAfter float64 `json:"weighAfter"` | 14 | WeighAfter float64 `json:"weighAfter"` |
| 15 | - // 审核状态 1:未审核 2:已审核 | 15 | + // 审核状态 1:未审核 2:已审核 3.已撤回 4.已记录 5.自动审核 |
| 16 | ApproveStatus int `json:"approveStatus"` | 16 | ApproveStatus int `json:"approveStatus"` |
| 17 | // 审核时间 | 17 | // 审核时间 |
| 18 | ApproveAt int64 `json:"approveAt"` | 18 | ApproveAt int64 `json:"approveAt"` |
| @@ -6,6 +6,15 @@ const ( | @@ -6,6 +6,15 @@ const ( | ||
| 6 | EmployeePartTime = 3 // 临时 | 6 | EmployeePartTime = 3 // 临时 |
| 7 | ) | 7 | ) |
| 8 | 8 | ||
| 9 | +// 用户状态 | ||
| 10 | +const ( | ||
| 11 | + UserStatusEnable UserStatus = 1 | ||
| 12 | + UserStatusDisable UserStatus = 2 | ||
| 13 | + UserStatusDestroy UserStatus = 3 | ||
| 14 | +) | ||
| 15 | + | ||
| 16 | +type UserStatus int | ||
| 17 | + | ||
| 9 | // 用户对象 | 18 | // 用户对象 |
| 10 | type User struct { | 19 | type User struct { |
| 11 | // 用户Id 用户唯一标识 | 20 | // 用户Id 用户唯一标识 |
| @@ -21,6 +30,8 @@ type User struct { | @@ -21,6 +30,8 @@ type User struct { | ||
| 21 | // 手机号码 | 30 | // 手机号码 |
| 22 | Phone string `json:"phone,omitempty"` | 31 | Phone string `json:"phone,omitempty"` |
| 23 | 32 | ||
| 33 | + // 启用状态 | ||
| 34 | + EnableStatus int `json:"-"` | ||
| 24 | // 额外扩展的参数 | 35 | // 额外扩展的参数 |
| 25 | GroupId int `json:"-"` | 36 | GroupId int `json:"-"` |
| 26 | GroupName string `json:"-"` | 37 | GroupName string `json:"-"` |
| @@ -63,6 +63,7 @@ func (svr *UserService) ToUser(from *models.User) *domain.User { | @@ -63,6 +63,7 @@ func (svr *UserService) ToUser(from *models.User) *domain.User { | ||
| 63 | IcCardNumber: from.IcCardNumber, | 63 | IcCardNumber: from.IcCardNumber, |
| 64 | Avatar: from.UserInfo.Avatar, | 64 | Avatar: from.UserInfo.Avatar, |
| 65 | Phone: from.UserInfo.Phone, | 65 | Phone: from.UserInfo.Phone, |
| 66 | + EnableStatus: from.EnableStatus, | ||
| 66 | } | 67 | } |
| 67 | if user.EmployeeType == 0 { | 68 | if user.EmployeeType == 0 { |
| 68 | user.EmployeeType = 1 //默认正式员工 | 69 | user.EmployeeType = 1 //默认正式员工 |
| @@ -204,7 +204,7 @@ func (ptr *PGProductRecordService) Cancel(productRecordId int) (interface{}, err | @@ -204,7 +204,7 @@ func (ptr *PGProductRecordService) Cancel(productRecordId int) (interface{}, err | ||
| 204 | return struct{}{}, nil | 204 | return struct{}{}, nil |
| 205 | } | 205 | } |
| 206 | 206 | ||
| 207 | -func (ptr *PGProductRecordService) BatchApprove(list []*domain.ProductRecord, approveUserId int, weight float64, status int) (interface{}, error) { | 207 | +func (ptr *PGProductRecordService) BatchApprove(list []*domain.ProductRecord, approveUserId int, weightAfter float64, status int) (interface{}, error) { |
| 208 | var productRecordRepository, _ = repository.NewProductRecordRepository(ptr.transactionContext) | 208 | var productRecordRepository, _ = repository.NewProductRecordRepository(ptr.transactionContext) |
| 209 | var record *domain.ProductRecord | 209 | var record *domain.ProductRecord |
| 210 | var err error | 210 | var err error |
| @@ -220,26 +220,19 @@ func (ptr *PGProductRecordService) BatchApprove(list []*domain.ProductRecord, ap | @@ -220,26 +220,19 @@ func (ptr *PGProductRecordService) BatchApprove(list []*domain.ProductRecord, ap | ||
| 220 | 220 | ||
| 221 | for i := range list { | 221 | for i := range list { |
| 222 | record = list[i] | 222 | record = list[i] |
| 223 | - t := record.ProductRecordInfo.WeighBefore | ||
| 224 | - if weight > 0 { | ||
| 225 | - t = weight | 223 | + weighBefore := record.ProductRecordInfo.WeighBefore |
| 224 | + if weightAfter > 0 { | ||
| 225 | + weighBefore = weightAfter | ||
| 226 | } | 226 | } |
| 227 | - if t <= 0 && status == domain.AttendanceAutoApproved { | 227 | + if weighBefore <= 0 || record.ProductRecordInfo.ApproveStatus != domain.ProductRecordNotApprove { |
| 228 | continue | 228 | continue |
| 229 | } | 229 | } |
| 230 | - if err = record.Approve(user, t, time.Now(), status); err != nil { | 230 | + if err = record.Approve(user, weighBefore, time.Now(), status); err != nil { |
| 231 | return nil, err | 231 | return nil, err |
| 232 | } | 232 | } |
| 233 | if _, err := productRecordRepository.Save(record); err != nil { | 233 | if _, err := productRecordRepository.Save(record); err != nil { |
| 234 | return nil, err | 234 | return nil, err |
| 235 | } | 235 | } |
| 236 | - } | ||
| 237 | - | ||
| 238 | - for i := range list { | ||
| 239 | - record = list[i] | ||
| 240 | - if record.ProductRecordInfo.WeighBefore <= 0 && status == domain.AttendanceAutoApproved { | ||
| 241 | - continue | ||
| 242 | - } | ||
| 243 | if e := SendProductRecordStaticsJob(record); e != nil { | 236 | if e := SendProductRecordStaticsJob(record); e != nil { |
| 244 | log.Logger.Error("【发送产量统计任务失败】" + e.Error()) | 237 | log.Logger.Error("【发送产量统计任务失败】" + e.Error()) |
| 245 | } | 238 | } |
-
请 注册 或 登录 后发表评论