作者 Your Name

更新产能管理

  1 +package command
  2 +
  3 +type SaveEmployeeProductRecordCmd struct {
  4 + EmployeeProductRecordId int `json:"id"`
  5 + // 车间ID
  6 + WorkshopId int `cname:"车间ID" json:"workshopId" valid:"Required"`
  7 + // 生产线ID
  8 + LineId int `cname:"生产线ID" json:"lineId" valid:"Required"`
  9 + // 工段ID
  10 + SectionId int `cname:"工段ID" json:"sectionId" valid:"Required"`
  11 + //员工
  12 + WorkerId int `cname:"工人ID" json:"workerId" valid:"Required"`
  13 + //产量重量
  14 + Weigh float64 `cname:"重量" json:"weigh" valid:"Required" `
  15 + //产品编码
  16 + ProductCode string `json:"productCode"`
  17 + // 参与类型 1:正常 2:支援
  18 + ParticipateType int `json:"participateType"`
  19 + //日期
  20 + RecordDate string `json:"recordDate"`
  21 + //上班班次 1:全天 2:白班 4:中班 8:夜班
  22 + WorkOn int `json:"workOn"`
  23 +}
  1 +package dto
  2 +
  3 +//产能管理-列表
  4 +type ProductCapacitiesList struct {
  5 + EmployeeProductRecordId int `json:"employeeProductRecordId"`
  6 + WorkshopName string `json:"workshopName"` //车间名称
  7 + LineName string `json:"lineName"` //线别名称
  8 + SectionName string `json:"sectionName"` //工段
  9 + WorkerName string `json:"workerName"` // 用户姓名
  10 + EmployeeType int `json:"employeeType"` // 员工类型 1:固定 2:派遣 3.临时
  11 + ProductName string `json:"productName"` //品名
  12 + ParticipateType int `json:"participateType"` // 参与类型 1:正常 2:支援
  13 + ProductWeigh float64 `json:"productWeigh"` // 产能
  14 + CreatedAt string `json:"createdAt"` // 创建时间
  15 + ApproveStatus int `json:"approveStatus"` //0:未审核 1:已审核 2.自动审核
  16 +}
  17 +
  18 +//产能管理-列表-详情
  19 +type ProductCapacitiesInfo struct {
  20 + EmployeeProductRecordId int `json:"id"`
  21 + WorkshopId int ` json:"workshopId" ` // 车间ID
  22 + WorkshopName string `json:"workshopName"` //
  23 + LineId int `json:"lineId"` // 生产线ID
  24 + LineName string `json:"lineName"` //
  25 + SectionId int `json:"sectionId" ` // 工段ID
  26 + SectionName string `json:"sectionName"` //
  27 + WorkerId int `json:"workerId" ` //员工
  28 + WorkerName string `json:"workerName"` //
  29 + Weigh float64 `json:"weigh"` //产量重量
  30 + ProductCode string `json:"productCode"` //产品编码
  31 + ProductName string `json:"productName"` //产品名称
  32 + ParticipateType int `json:"participateType"` //参与类型 1:正常 2:支援
  33 + RecordDate string `json:"recordDate"` //日期
  34 + WorkOn int `json:"workOn"` //上班班次 1:全天 2:白班 4:中班 8:夜班
  35 +}
  1 +package query
  2 +
  3 +type GetProductCapacitiesQuery struct {
  4 + EmployeeProductRecordId int `json:"id"`
  5 +}
  1 +package query
  2 +
  3 +type ListProductCapacitiesQuery struct {
  4 + PageNumber int `json:"pageNumber"`
  5 + PageSize int `json:"pageSize"`
  6 + CompanyId int `json:"companyId"`
  7 + OrgId int `json:"orgId"`
  8 + WorkshopName string `json:"workshopName"`
  9 + LineName string `json:"lineName"`
  10 + SectionName string `json:"sectionName"`
  11 + ProductBeginTime string `json:"productBeginTime"`
  12 + ProductEndTime string `json:"productEndTime"`
  13 + WorkerName string `json:"workerName"`
  14 +}
  1 +package service
  2 +
  3 +import (
  4 + "time"
  5 +
  6 + "github.com/linmadan/egglib-go/core/application"
  7 + pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
  8 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory"
  9 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productRecord/command"
  10 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productRecord/dto"
  11 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productRecord/query"
  12 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain"
  13 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/dao"
  14 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/domainService"
  15 +)
  16 +
  17 +//产能管理
  18 +
  19 +// 产能管理 页面上手动创建员工生产记录
  20 +func (productRecordService *ProductRecordService) CreateProductCapacities(operateInfo *domain.OperateInfo, param *command.SaveEmployeeProductRecordCmd) (map[string]interface{}, error) {
  21 + transactionContext, err := factory.CreateTransactionContext(nil)
  22 + if err != nil {
  23 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  24 + }
  25 + if err := transactionContext.StartTransaction(); err != nil {
  26 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  27 + }
  28 + defer func() {
  29 + transactionContext.RollbackTransaction()
  30 + }()
  31 +
  32 + //日期
  33 + recordDate, err := time.ParseInLocation("2006-01-02", param.RecordDate, time.Local)
  34 + if err != nil {
  35 + return nil, application.ThrowError(application.ARG_ERROR, "日期格式错误")
  36 + }
  37 + //员工数据
  38 + var worker *domain.User
  39 + userService := domainService.NewUserService()
  40 + worker, err = userService.User(param.WorkerId)
  41 + if err != nil {
  42 + return nil, application.ThrowError(application.ARG_ERROR, "获取员工错误,"+err.Error())
  43 + }
  44 + //操作人数据
  45 + var user *domain.User
  46 + user, err = userService.User(operateInfo.UserId)
  47 + if err != nil {
  48 + return nil, application.ThrowError(application.ARG_ERROR, "获取操作人错误,"+err.Error())
  49 + }
  50 + //组织数据
  51 + var org *domain.Org
  52 + org, err = userService.Organization(operateInfo.OrgId)
  53 + if err != nil {
  54 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  55 + }
  56 + //车间数据
  57 + workshopRepo, _ := factory.CreateWorkshopRepository(map[string]interface{}{
  58 + "transactionContext": transactionContext,
  59 + })
  60 + workshop, err := workshopRepo.FindOne(map[string]interface{}{"workshopId": param.WorkshopId})
  61 + if err != nil {
  62 + return nil, application.ThrowError(application.ARG_ERROR, "获取车间数据失败"+err.Error())
  63 + }
  64 + workstation, err := workshop.FindWorkStation(param.WorkshopId, param.LineId, param.SectionId)
  65 + if err != nil {
  66 + return nil, application.ThrowError(application.ARG_ERROR, "获取车间工段数据失败"+err.Error())
  67 + }
  68 +
  69 + //产品数据
  70 + productRepo, _ := factory.CreateProductRepository(map[string]interface{}{
  71 + "transactionContext": transactionContext,
  72 + })
  73 +
  74 + //获取产品
  75 + productData, err := productRepo.FindOne(map[string]interface{}{
  76 + "companyId": operateInfo.CompanyId,
  77 + "orgId": operateInfo.OrgId,
  78 + "productCode": param.ProductCode,
  79 + })
  80 + if err != nil {
  81 + return nil, application.ThrowError(application.ARG_ERROR, "获取产品数据失败"+err.Error())
  82 + }
  83 + nowTime := time.Now()
  84 +
  85 + //员工生产记录
  86 + eProductRecordRepo, _ := factory.CreateEmployeeProductRecordRepository(map[string]interface{}{
  87 + "transactionContext": transactionContext,
  88 + })
  89 +
  90 + var epRecord *domain.EmployeeProductRecord
  91 + if param.EmployeeProductRecordId != 0 {
  92 + epRecord, err = eProductRecordRepo.FindOne(map[string]interface{}{
  93 + "employeeProductRecordId": param.EmployeeProductRecordId,
  94 + })
  95 + if err != nil {
  96 + return nil, application.ThrowError(application.ARG_ERROR, "获取员工生产记录数据失败"+err.Error())
  97 + }
  98 + } else {
  99 + epRecord = &domain.EmployeeProductRecord{
  100 + CreatedAt: nowTime,
  101 + OrgId: operateInfo.OrgId,
  102 + CompanyId: operateInfo.CompanyId,
  103 + }
  104 + }
  105 + epRecord.UpdatedAt = time.Now()
  106 + epRecord.ParticipateType = param.ParticipateType //参与类型
  107 + epRecord.WorkStation = workstation //车间工段
  108 + epRecord.ProductWorker = worker //员工
  109 + epRecord.WorkOn = param.WorkOn //上班班次
  110 + epRecord.CreatedAt = recordDate //日期
  111 + epRecord.Ext = &domain.Ext{
  112 + Operator: user,
  113 + OrgName: org.OrgName,
  114 + }
  115 + epRecord.ProductWeigh = param.Weigh //重量
  116 + if epRecord.ProductRecordInfo == nil {
  117 + epRecord.ProductRecordInfo = &domain.ProductRecordStaticInfo{}
  118 + }
  119 + epRecord.ProductRecordInfo.OutputWeight = param.Weigh //重量
  120 + epRecord.ProductRecordInfo.PlanProductName = productData.ProductName //产品名称
  121 + epRecord.ProductRecordInfo.PlanProductCode = productData.ProductCode //产品编码
  122 + epRecord.ProductRecordInfo.OutputWeight = param.Weigh //重量
  123 + _, err = eProductRecordRepo.Save(epRecord)
  124 + if err != nil {
  125 + return nil, application.ThrowError(application.ARG_ERROR, "保存员工生产记录失败"+err.Error())
  126 + }
  127 + if err := transactionContext.CommitTransaction(); err != nil {
  128 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  129 + }
  130 + return map[string]interface{}{
  131 + "employeeProductRecordId": epRecord.EmployeeProductRecordId,
  132 + }, nil
  133 +}
  134 +
  135 +// 产能管理 列表
  136 +func (productRecordService *ProductRecordService) ListProductCapacities(operateInfo *domain.OperateInfo, param *query.ListProductCapacitiesQuery) (int64, []dto.ProductCapacitiesList, error) {
  137 + transactionContext, err := factory.CreateTransactionContext(nil)
  138 + if err != nil {
  139 + return 0, nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  140 + }
  141 + if err := transactionContext.StartTransaction(); err != nil {
  142 + return 0, nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  143 + }
  144 + defer func() {
  145 + transactionContext.RollbackTransaction()
  146 + }()
  147 + productRecordRepository, _ := dao.NewEmployeeProductRecordDao(transactionContext.(*pgTransaction.TransactionContext))
  148 + productBeginTime, _ := time.ParseInLocation("2006-01-02", param.ProductBeginTime, time.Local)
  149 + productEndTime, _ := time.ParseInLocation("2006-01-02", param.ProductEndTime, time.Local)
  150 + condition := map[string]interface{}{
  151 + "companyId": param.CompanyId,
  152 + "orgId": param.OrgId,
  153 + "workerName": param.WorkerName,
  154 + "workshopName": param.WorkshopName,
  155 + "lineName": param.LineName,
  156 + "sectionName": param.SectionName,
  157 + "productBeginTime": productBeginTime,
  158 + "productEndTime": productEndTime,
  159 + }
  160 +
  161 + limit := param.PageSize
  162 + offset := param.PageSize * (param.PageNumber - 1)
  163 + if limit >= 0 {
  164 + condition["limit"] = limit
  165 + }
  166 + if offset >= 0 {
  167 + condition["offset"] = limit
  168 + }
  169 + count, productRecords, err := productRecordRepository.SearchEmployeeProductRecord(condition)
  170 + if err != nil {
  171 + return 0, nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  172 + }
  173 + if err := transactionContext.CommitTransaction(); err != nil {
  174 + return 0, nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  175 + }
  176 +
  177 + var result = make([]dto.ProductCapacitiesList, 0)
  178 + for _, v := range productRecords {
  179 + item := dto.ProductCapacitiesList{
  180 + EmployeeProductRecordId: v.EmployeeProductRecordId,
  181 + WorkshopName: v.WorkStation.WorkshopName,
  182 + LineName: v.WorkStation.LineName,
  183 + SectionName: v.WorkStation.SectionName,
  184 + WorkerName: v.ProductWorker.UserName,
  185 + EmployeeType: v.ProductWorker.EmployeeType,
  186 + ProductName: v.ProductRecordInfo.PlanProductName,
  187 + ParticipateType: v.ParticipateType,
  188 + ProductWeigh: v.ProductRecordInfo.OutputWeight,
  189 + CreatedAt: v.CreatedAt.Format("2006-01-02"),
  190 + ApproveStatus: v.ApproveStatus,
  191 + }
  192 + result = append(result, item)
  193 + }
  194 + return count, result, nil
  195 +}
  196 +
  197 +// 产能管理 列表-详情
  198 +func (productRecordService *ProductRecordService) GetProductCapacities(operateInfo *domain.OperateInfo, id int) (*dto.ProductCapacitiesInfo, error) {
  199 + transactionContext, err := factory.CreateTransactionContext(nil)
  200 + if err != nil {
  201 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  202 + }
  203 + if err := transactionContext.StartTransaction(); err != nil {
  204 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  205 + }
  206 + defer func() {
  207 + transactionContext.RollbackTransaction()
  208 + }()
  209 +
  210 + eProductRecordRepo, _ := factory.CreateEmployeeProductRecordRepository(map[string]interface{}{
  211 + "transactionContext": transactionContext,
  212 + })
  213 +
  214 + recordData, err := eProductRecordRepo.FindOne(map[string]interface{}{
  215 + "employeeProductRecordId": id,
  216 + })
  217 + if err != nil {
  218 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  219 + }
  220 +
  221 + if err := transactionContext.CommitTransaction(); err != nil {
  222 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  223 + }
  224 +
  225 + var result = dto.ProductCapacitiesInfo{
  226 + EmployeeProductRecordId: recordData.EmployeeProductRecordId,
  227 + WorkshopId: recordData.WorkStation.WorkshopId,
  228 + WorkshopName: recordData.WorkStation.WorkshopName,
  229 + LineId: recordData.WorkStation.LineId,
  230 + LineName: recordData.WorkStation.LineName,
  231 + SectionId: recordData.WorkStation.SectionId,
  232 + SectionName: recordData.WorkStation.SectionName,
  233 + WorkerId: recordData.ProductWorker.UserId,
  234 + WorkerName: recordData.ProductWorker.UserName,
  235 + Weigh: recordData.ProductRecordInfo.OutputWeight,
  236 + ProductCode: recordData.ProductRecordInfo.PlanProductCode,
  237 + ProductName: recordData.ProductRecordInfo.PlanProductName,
  238 + ParticipateType: recordData.ParticipateType,
  239 + RecordDate: recordData.CreatedAt.Format("2006-01-02"),
  240 + WorkOn: recordData.WorkOn,
  241 + }
  242 +
  243 + return &result, nil
  244 +}
  245 +
  246 +// 产能管理 列表-删除
  247 +func (productRecordService *ProductRecordService) DeleteProductCapacities(operateInfo *domain.OperateInfo, id int) (map[string]interface{}, error) {
  248 + transactionContext, err := factory.CreateTransactionContext(nil)
  249 + if err != nil {
  250 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  251 + }
  252 + if err := transactionContext.StartTransaction(); err != nil {
  253 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  254 + }
  255 + defer func() {
  256 + transactionContext.RollbackTransaction()
  257 + }()
  258 +
  259 + eProductRecordRepo, _ := factory.CreateEmployeeProductRecordRepository(map[string]interface{}{
  260 + "transactionContext": transactionContext,
  261 + })
  262 +
  263 + recordData, err := eProductRecordRepo.FindOne(map[string]interface{}{
  264 + "employeeProductRecordId": id,
  265 + })
  266 + if err != nil {
  267 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  268 + }
  269 + _, err = eProductRecordRepo.Remove(recordData)
  270 + if err != nil {
  271 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  272 + }
  273 + if err := transactionContext.CommitTransaction(); err != nil {
  274 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  275 + }
  276 +
  277 + return map[string]interface{}{
  278 + "employeeProductRecordId": recordData.EmployeeProductRecordId,
  279 + }, nil
  280 +}
  281 +
  282 +// 产能管理 列表-审核
  283 +func (productRecordService *ProductRecordService) ApproveProductCapacities(operateInfo *domain.OperateInfo, id int) (map[string]interface{}, error) {
  284 + transactionContext, err := factory.CreateTransactionContext(nil)
  285 + if err != nil {
  286 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  287 + }
  288 + if err := transactionContext.StartTransaction(); err != nil {
  289 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  290 + }
  291 + defer func() {
  292 + transactionContext.RollbackTransaction()
  293 + }()
  294 +
  295 + eProductRecordRepo, _ := factory.CreateEmployeeProductRecordRepository(map[string]interface{}{
  296 + "transactionContext": transactionContext,
  297 + })
  298 +
  299 + recordData, err := eProductRecordRepo.FindOne(map[string]interface{}{
  300 + "employeeProductRecordId": id,
  301 + })
  302 + if err != nil {
  303 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  304 + }
  305 +
  306 + userService := domainService.NewUserService()
  307 + //操作人数据
  308 + var user *domain.User
  309 + user, err = userService.User(operateInfo.UserId)
  310 + if err != nil {
  311 + return nil, application.ThrowError(application.ARG_ERROR, "获取操作人错误,"+err.Error())
  312 + }
  313 +
  314 + nowTime := time.Now()
  315 + recordData.ApproveAt = &nowTime
  316 + recordData.ApproveStatus = 1
  317 + recordData.ApproveUser = user
  318 + _, err = eProductRecordRepo.Save(recordData)
  319 + if err != nil {
  320 + return nil, application.ThrowError(application.ARG_ERROR, "保存数据错误,"+err.Error())
  321 + }
  322 + if err := transactionContext.CommitTransaction(); err != nil {
  323 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  324 + }
  325 + return map[string]interface{}{
  326 + "employeeProductRecordId": recordData.EmployeeProductRecordId,
  327 + }, nil
  328 +}
1 package domain 1 package domain
2 2
3 import ( 3 import (
4 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/utils"  
5 "time" 4 "time"
  5 +
  6 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/utils"
6 ) 7 )
7 8
8 const ( 9 const (
@@ -49,6 +50,10 @@ type EmployeeProductRecord struct { @@ -49,6 +50,10 @@ type EmployeeProductRecord struct {
49 ProductRecordInfo *ProductRecordStaticInfo `json:"productRecordInfo"` 50 ProductRecordInfo *ProductRecordStaticInfo `json:"productRecordInfo"`
50 // 生产工人 51 // 生产工人
51 ProductWorker *User `comment:"生产工人"` 52 ProductWorker *User `comment:"生产工人"`
  53 +
  54 + ApproveStatus int `json:"approveStatus"` // 审核状态 0:未审核 1:已审核 2.自动审核
  55 + ApproveAt *time.Time `json:"approveAt"` // 审核时间
  56 + ApproveUser *User `json:"approveUser"` // 审核人
52 } 57 }
53 58
54 type EmployeeProductRecordRepository interface { 59 type EmployeeProductRecordRepository interface {
@@ -7,6 +7,8 @@ type ProductRecordStaticInfo struct { @@ -7,6 +7,8 @@ type ProductRecordStaticInfo struct {
7 ProductDate string `json:"productDate"` 7 ProductDate string `json:"productDate"`
8 // 生产计划ID 8 // 生产计划ID
9 ProductPlanId int `json:"productPlanId,omitempty"` 9 ProductPlanId int `json:"productPlanId,omitempty"`
  10 +
  11 + PlanProductCode string `json:"planProductCode"`
10 // 计划的产品名称 12 // 计划的产品名称
11 PlanProductName string `json:"planProductName,omitempty"` 13 PlanProductName string `json:"planProductName,omitempty"`
12 // 批号 14 // 批号
@@ -54,6 +54,7 @@ func init() { @@ -54,6 +54,7 @@ func init() {
54 (*models.RewardStandard)(nil), 54 (*models.RewardStandard)(nil),
55 (*models.RewardRule)(nil), 55 (*models.RewardRule)(nil),
56 (*models.ProductTrouble)(nil), 56 (*models.ProductTrouble)(nil),
  57 + (*models.RewardSummary)(nil),
57 } { 58 } {
58 err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ 59 err := DB.Model(model).CreateTable(&orm.CreateTableOptions{
59 Temp: false, 60 Temp: false,
1 package models 1 package models
2 2
3 import ( 3 import (
4 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain"  
5 "time" 4 "time"
  5 +
  6 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain"
6 ) 7 )
7 8
8 type EmployeeProductRecord struct { 9 type EmployeeProductRecord struct {
@@ -37,4 +38,8 @@ type EmployeeProductRecord struct { @@ -37,4 +38,8 @@ type EmployeeProductRecord struct {
37 ProductRecordInfo *domain.ProductRecordStaticInfo `comment:"生产记录信息"` 38 ProductRecordInfo *domain.ProductRecordStaticInfo `comment:"生产记录信息"`
38 // 生产工人 39 // 生产工人
39 ProductWorker *domain.User `comment:"生产工人"` 40 ProductWorker *domain.User `comment:"生产工人"`
  41 +
  42 + ApproveStatus int `comment:"审核状态 0:未审核 1:已审核 2.自动审核"` // 审核状态 0:未审核 1:已审核 2.自动审核
  43 + ApproveAt *time.Time `comment:"审核时间"` //
  44 + ApproveUser *domain.User `comment:"审核人"` // 审核人
40 } 45 }
@@ -8,23 +8,30 @@ import ( @@ -8,23 +8,30 @@ import (
8 8
9 // RewardSummary 功过奖惩明细 9 // RewardSummary 功过奖惩明细
10 type RewardSummary struct { 10 type RewardSummary struct {
11 - tableName string `pg:"manufacture.reward_summary,alias:reward_summary"`  
12 - Id int `pg:"pk:id"`  
13 - CompanyId int ``  
14 - OrgId int ``  
15 - RecordDate time.Time //日期  
16 - RecordDateStr string //  
17 - WorkStation domain.WorkStation // 工作位置  
18 - Worker domain.User //员工  
19 - UpToStandard float64 //合格率  
20 - Yield float64 //产能  
21 - AccidentNum1 int //质量事故 次数  
22 - AccidentAmount1 float64 //质量事故 损失金额  
23 - AccidentNum2 int //安全事故 次数  
24 - AccidentAmount2 float64 //安全事故 损失金额  
25 - AccidentNum3 int //异物金属事故 次数  
26 - AccidentNum4 int //异物非金属事故 次数  
27 - CreatedAt time.Time //  
28 - UpdatedAt time.Time //  
29 - SummaryResult float64 //奖惩计算结果 11 + tableName string `pg:"manufacture.reward_summary,alias:reward_summary"`
  12 + Id int `pg:"pk:id"`
  13 + CompanyId int ``
  14 + OrgId int ``
  15 + RecordDate time.Time //日期
  16 + RecordDateStr string //
  17 + WorkStation domain.WorkStation // 工作位置
  18 + Worker domain.User //员工
  19 + UpToStandard float64 //合格率
  20 + UpToStandardResult int //合格率 功过评定结果 1`功` -1 `过` 0 `不奖不惩`
  21 + Yield float64 //产能
  22 + YieldResult int //产能 功过评定结果 1`功` -1 `过` 0 `不奖不惩`
  23 + AccidentNum1 int //质量事故 次数
  24 + AccidentAmount1 float64 //质量事故 损失金额
  25 + AccidentResult1 int //质量事故 功过评定结果 1`功` -1 `过` 0 `不奖不惩`
  26 + AccidentNum2 int //安全事故 次数
  27 + AccidentAmount2 float64 //安全事故 损失金额
  28 + AccidentResult2 int //安全事故 功过评定结果 1`功` -1 `过` 0 `不奖不惩`
  29 + AccidentNum3 int //异物金属事故 次数
  30 + AccidentResult3 int //异物金属事故 功过评定结果 1`功` -1 `过` 0 `不奖不惩`
  31 + AccidentNum4 int //异物非金属事故 次数
  32 + AccidentResult4 int //异物非金属事故 功过评定结果 1`功` -1 `过` 0 `不奖不惩`
  33 + SummaryResult float64 //奖惩金额计算结果(元)
  34 + CreatedAt time.Time //
  35 + UpdatedAt time.Time //
  36 +
30 } 37 }
@@ -22,5 +22,8 @@ func TransformToEmployeeProductRecordDomainModelFromPgModels(employeeProductReco @@ -22,5 +22,8 @@ func TransformToEmployeeProductRecordDomainModelFromPgModels(employeeProductReco
22 Version: employeeProductRecordModel.Version, 22 Version: employeeProductRecordModel.Version,
23 ProductRecordInfo: employeeProductRecordModel.ProductRecordInfo, 23 ProductRecordInfo: employeeProductRecordModel.ProductRecordInfo,
24 ProductWorker: employeeProductRecordModel.ProductWorker, 24 ProductWorker: employeeProductRecordModel.ProductWorker,
  25 + ApproveStatus: employeeProductRecordModel.ApproveStatus,
  26 + ApproveAt: employeeProductRecordModel.ApproveAt,
  27 + ApproveUser: employeeProductRecordModel.ApproveUser,
25 }, nil 28 }, nil
26 } 29 }
@@ -2,6 +2,7 @@ package repository @@ -2,6 +2,7 @@ package repository
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
  5 +
5 "github.com/go-pg/pg/v10" 6 "github.com/go-pg/pg/v10"
6 7
7 "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" 8 "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder"
@@ -41,6 +42,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d @@ -41,6 +42,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d
41 "version", 42 "version",
42 "product_record_info", 43 "product_record_info",
43 "product_worker", 44 "product_worker",
  45 + "approve_status",
  46 + "approve_at",
  47 + "approve_user",
44 } 48 }
45 insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlbuilder.RemoveSqlFields(sqlBuildFields, "employee_product_record_id", "deleted_at")) 49 insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlbuilder.RemoveSqlFields(sqlBuildFields, "employee_product_record_id", "deleted_at"))
46 insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlbuilder.RemoveSqlFields(sqlBuildFields, "employee_product_record_id", "deleted_at")) 50 insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlbuilder.RemoveSqlFields(sqlBuildFields, "employee_product_record_id", "deleted_at"))
@@ -66,6 +70,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d @@ -66,6 +70,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d
66 &employeeProductRecord.Version, 70 &employeeProductRecord.Version,
67 &employeeProductRecord.ProductRecordInfo, 71 &employeeProductRecord.ProductRecordInfo,
68 &employeeProductRecord.ProductWorker, 72 &employeeProductRecord.ProductWorker,
  73 + &employeeProductRecord.ApproveStatus,
  74 + &employeeProductRecord.ApproveAt,
  75 + &employeeProductRecord.ApproveUser,
69 ), 76 ),
70 fmt.Sprintf("INSERT INTO manufacture.employee_product_record (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), 77 fmt.Sprintf("INSERT INTO manufacture.employee_product_record (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet),
71 //employeeProductRecord.EmployeeProductRecordId, 78 //employeeProductRecord.EmployeeProductRecordId,
@@ -83,6 +90,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d @@ -83,6 +90,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d
83 employeeProductRecord.Version, 90 employeeProductRecord.Version,
84 employeeProductRecord.ProductRecordInfo, 91 employeeProductRecord.ProductRecordInfo,
85 employeeProductRecord.ProductWorker, 92 employeeProductRecord.ProductWorker,
  93 + employeeProductRecord.ApproveStatus,
  94 + employeeProductRecord.ApproveAt,
  95 + employeeProductRecord.ApproveUser,
86 ); err != nil { 96 ); err != nil {
87 return employeeProductRecord, err 97 return employeeProductRecord, err
88 } 98 }
@@ -104,6 +114,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d @@ -104,6 +114,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d
104 &employeeProductRecord.Version, 114 &employeeProductRecord.Version,
105 &employeeProductRecord.ProductRecordInfo, 115 &employeeProductRecord.ProductRecordInfo,
106 &employeeProductRecord.ProductWorker, 116 &employeeProductRecord.ProductWorker,
  117 + &employeeProductRecord.ApproveStatus,
  118 + &employeeProductRecord.ApproveAt,
  119 + &employeeProductRecord.ApproveUser,
107 ), 120 ),
108 fmt.Sprintf("UPDATE manufacture.employee_product_record SET %s WHERE employee_product_record_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), 121 fmt.Sprintf("UPDATE manufacture.employee_product_record SET %s WHERE employee_product_record_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet),
109 //employeeProductRecord.EmployeeProductRecordId, 122 //employeeProductRecord.EmployeeProductRecordId,
@@ -121,6 +134,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d @@ -121,6 +134,9 @@ func (repository *EmployeeProductRecordRepository) Save(employeeProductRecord *d
121 employeeProductRecord.Version, 134 employeeProductRecord.Version,
122 employeeProductRecord.ProductRecordInfo, 135 employeeProductRecord.ProductRecordInfo,
123 employeeProductRecord.ProductWorker, 136 employeeProductRecord.ProductWorker,
  137 + employeeProductRecord.ApproveStatus,
  138 + employeeProductRecord.ApproveAt,
  139 + employeeProductRecord.ApproveUser,
124 employeeProductRecord.Identify(), 140 employeeProductRecord.Identify(),
125 ); err != nil { 141 ); err != nil {
126 return employeeProductRecord, err 142 return employeeProductRecord, err
@@ -128,3 +128,53 @@ func (controller *ProductRecordController) SearchWorkshopProductRecord() { @@ -128,3 +128,53 @@ func (controller *ProductRecordController) SearchWorkshopProductRecord() {
128 total, data, err := productPlanService.SearchWorkshopProductRecord(ParseOperateInfo(controller.BaseController), cmd) 128 total, data, err := productPlanService.SearchWorkshopProductRecord(ParseOperateInfo(controller.BaseController), cmd)
129 ResponseGrid(controller.BaseController, total, data, err) 129 ResponseGrid(controller.BaseController, total, data, err)
130 } 130 }
  131 +
  132 +// 产能管理 添加产能
  133 +func (controller *ProductRecordController) CreateProductCapacities() {
  134 + productRecordService := service.NewProductRecordService(nil)
  135 + saveCommand := &command.SaveEmployeeProductRecordCmd{}
  136 + controller.Unmarshal(saveCommand)
  137 + operateInfo := ParseOperateInfo(controller.BaseController)
  138 + data, err := productRecordService.CreateProductCapacities(operateInfo, saveCommand)
  139 + controller.Response(data, err)
  140 +}
  141 +
  142 +// 产能管理 产能列表
  143 +func (controller *ProductRecordController) ListProductCapacities() {
  144 + productRecordService := service.NewProductRecordService(nil)
  145 + listQury := &query.ListProductCapacitiesQuery{}
  146 + controller.Unmarshal(listQury)
  147 + operateInfo := ParseOperateInfo(controller.BaseController)
  148 + listQury.CompanyId = operateInfo.CompanyId
  149 + listQury.OrgId = operateInfo.OrgId
  150 + total, data, err := productRecordService.ListProductCapacities(operateInfo, listQury)
  151 + ResponseGrid(controller.BaseController, total, data, err)
  152 +}
  153 +
  154 +// 产能管理 产能详情
  155 +func (controller *ProductRecordController) GetProductCapacities() {
  156 + productRecordService := service.NewProductRecordService(nil)
  157 + productRecordId, _ := controller.GetInt(":productRecordId")
  158 + operateInfo := ParseOperateInfo(controller.BaseController)
  159 + data, err := productRecordService.GetProductCapacities(operateInfo, productRecordId)
  160 + controller.Response(data, err)
  161 +}
  162 +
  163 +// 产能管理 删除产能
  164 +func (controller *ProductRecordController) DeleteProductCapacities() {
  165 + productRecordService := service.NewProductRecordService(nil)
  166 + productRecordId, _ := controller.GetInt(":productRecordId")
  167 + operateInfo := ParseOperateInfo(controller.BaseController)
  168 + data, err := productRecordService.DeleteProductCapacities(operateInfo, productRecordId)
  169 + controller.Response(data, err)
  170 +}
  171 +
  172 +// 产能管理 审核产能
  173 +func (controller *ProductRecordController) ApproveProductCapacities() {
  174 + productRecordService := service.NewProductRecordService(nil)
  175 + queryCommand := &query.GetProductCapacitiesQuery{}
  176 + controller.Unmarshal(queryCommand)
  177 + operateInfo := ParseOperateInfo(controller.BaseController)
  178 + data, err := productRecordService.ApproveProductCapacities(operateInfo, queryCommand.EmployeeProductRecordId)
  179 + controller.Response(data, err)
  180 +}
@@ -18,4 +18,17 @@ func init() { @@ -18,4 +18,17 @@ func init() {
18 web.Router("/product-records/cancel", &controllers.ProductRecordController{}, "Post:CancelProductRecord") 18 web.Router("/product-records/cancel", &controllers.ProductRecordController{}, "Post:CancelProductRecord")
19 web.Router("/product-records/employee-productive/search", &controllers.ProductRecordController{}, "Post:SearchEmployeeProductRecord") 19 web.Router("/product-records/employee-productive/search", &controllers.ProductRecordController{}, "Post:SearchEmployeeProductRecord")
20 web.Router("/product-records/workshop-productive/search", &controllers.ProductRecordController{}, "Post:SearchWorkshopProductRecord") 20 web.Router("/product-records/workshop-productive/search", &controllers.ProductRecordController{}, "Post:SearchWorkshopProductRecord")
  21 +
  22 + //产能管理 列表
  23 + web.Router("/product-records/product-capacities/search", &controllers.ProductRecordController{}, "Post:ListProductCapacities")
  24 + //产能管理 添加产能
  25 + web.Router("/product-records/product-capacities", &controllers.ProductRecordController{}, "Post:CreateProductCapacities")
  26 + //产能管理 列表-产能详情
  27 + web.Router("/product-records/product-capacities/:productRecordId", &controllers.ProductRecordController{}, "Get:GetProductCapacities")
  28 + //产能管理 列表 -删除产能
  29 + web.Router("/product-records/product-capacities/:productRecordId", &controllers.ProductRecordController{}, "Delete:DeleteProductCapacities")
  30 +
  31 + //产能管理 列表 -审核产能
  32 + web.Router("/product-records/product-capacities/approve", &controllers.ProductRecordController{}, "Post:ApproveProductCapacities")
  33 +
21 } 34 }