正在显示
13 个修改的文件
包含
493 行增加
和
4 行删除
1 | +package query | ||
2 | + | ||
3 | +import "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain" | ||
4 | + | ||
5 | +type ManufactureEmployeeProductiveQuery struct { | ||
6 | + // 页码 | ||
7 | + PageNumber int `cname:"页码" json:"pageNumber,omitempty"` | ||
8 | + // 页数 | ||
9 | + PageSize int `cname:"页数" json:"pageSize,omitempty"` | ||
10 | + // 车间名称 | ||
11 | + WorkshopName string `cname:"车间名称" json:"workshopName,omitempty"` | ||
12 | + // 生产线名称 | ||
13 | + LineName string `cname:"生产线名称" json:"lineName,omitempty"` | ||
14 | + // 工段名称 | ||
15 | + SectionName string `cname:"工段名称" json:"sectionName,omitempty"` | ||
16 | + // 姓名 | ||
17 | + UserName string `cname:"姓名" json:"userName"` | ||
18 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
19 | + EmployeeType string `cname:"员工类型 1:固定 2:派遣 3.临时" json:"employeeType"` | ||
20 | + // 开始时间 | ||
21 | + BeginTime string `cname:"开始时间" json:"beginTime"` | ||
22 | + // 结束时间 | ||
23 | + EndTime string `cname:"结束时间" json:"endTime"` | ||
24 | + //操作人 | ||
25 | + Operator domain.Operator `json:"-"` | ||
26 | + SelectedField []string `json:"selectedField"` | ||
27 | +} |
1 | +package query | ||
2 | + | ||
3 | +import "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain" | ||
4 | + | ||
5 | +type ManufactureWorkshopProductiveQuery struct { | ||
6 | + // 工段名称 | ||
7 | + SectionName string `cname:"工段名称" json:"sectionName,omitempty"` | ||
8 | + // 品名 | ||
9 | + PlanProductName string `cname:"品名" json:"planProductName,omitempty"` | ||
10 | + // 开始时间 | ||
11 | + BeginTime string `cname:"开始时间" json:"beginTime"` | ||
12 | + // 结束时间 | ||
13 | + EndTime string `cname:"结束时间" json:"endTime"` | ||
14 | + //操作人 | ||
15 | + Operator domain.Operator `json:"-"` | ||
16 | + SelectedField []string `json:"selectedField"` | ||
17 | +} |
@@ -65,3 +65,34 @@ func (srv ExcelDataService) ExportProducts(cmd *query.SearchProductQuery) (Expor | @@ -65,3 +65,34 @@ func (srv ExcelDataService) ExportProducts(cmd *query.SearchProductQuery) (Expor | ||
65 | } | 65 | } |
66 | return ExportProductsData{SourceData: result.Grid.List, SelectedField: cmd.SelectedField}, nil | 66 | return ExportProductsData{SourceData: result.Grid.List, SelectedField: cmd.SelectedField}, nil |
67 | } | 67 | } |
68 | + | ||
69 | +func (srv ExcelDataService) ExportEmployeeProductive(cmd *query.ManufactureEmployeeProductiveQuery) (ExportEmployeeProductiveData, error) { | ||
70 | + creationUserGateway := allied_creation_manufacture.NewHttpLibAlliedCreationManufacture(cmd.Operator) | ||
71 | + result, err := creationUserGateway.SearchEmployeeProductive(allied_creation_manufacture.SearchEmployeeProductiveRequest{ | ||
72 | + WorkshopName: cmd.WorkshopName, | ||
73 | + LineName: cmd.LineName, | ||
74 | + SectionName: cmd.SectionName, | ||
75 | + UserName: cmd.UserName, | ||
76 | + EmployeeType: cmd.EmployeeType, | ||
77 | + BeginTime: cmd.BeginTime, | ||
78 | + EndTime: cmd.EndTime, | ||
79 | + }) | ||
80 | + if err != nil { | ||
81 | + return ExportEmployeeProductiveData{}, fmt.Errorf("获取员工产能数据失败:%w", err) | ||
82 | + } | ||
83 | + return ExportEmployeeProductiveData{SourceData: result.Grid.List, SelectedField: cmd.SelectedField}, nil | ||
84 | +} | ||
85 | + | ||
86 | +func (srv ExcelDataService) ExportWorkshopProductive(cmd *query.ManufactureWorkshopProductiveQuery) (ExportWorkshopProductiveData, error) { | ||
87 | + creationUserGateway := allied_creation_manufacture.NewHttpLibAlliedCreationManufacture(cmd.Operator) | ||
88 | + result, err := creationUserGateway.SearchWorkshopProductive(allied_creation_manufacture.SearchWorkshopProductiveRequest{ | ||
89 | + SectionName: cmd.SectionName, | ||
90 | + PlanProductName: cmd.PlanProductName, | ||
91 | + BeginTime: cmd.BeginTime, | ||
92 | + EndTime: cmd.EndTime, | ||
93 | + }) | ||
94 | + if err != nil { | ||
95 | + return ExportWorkshopProductiveData{}, fmt.Errorf("获取员工产能数据失败:%w", err) | ||
96 | + } | ||
97 | + return ExportWorkshopProductiveData{SourceData: result.Grid.List, SelectedField: cmd.SelectedField}, nil | ||
98 | +} |
@@ -284,7 +284,7 @@ func (srv ExcelDataService) FileImportTemplate(importDataCommand *command.Import | @@ -284,7 +284,7 @@ func (srv ExcelDataService) FileImportTemplate(importDataCommand *command.Import | ||
284 | domain.ImportCooperationUser: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20210926/object/1632635345_SbfzmkXjQHhCwPw4MB7zb5EBBtdp2MSE.xlsx", | 284 | domain.ImportCooperationUser: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20210926/object/1632635345_SbfzmkXjQHhCwPw4MB7zb5EBBtdp2MSE.xlsx", |
285 | domain.ImportDividendsReturnOrders: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20210927/object/1632743214_rNHm6ZBXZaC5xKTrsE7M4h45MY6n6Ff3.xlsx", | 285 | domain.ImportDividendsReturnOrders: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20210927/object/1632743214_rNHm6ZBXZaC5xKTrsE7M4h45MY6n6Ff3.xlsx", |
286 | domain.ImportProducts: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20220120/object/1642670543_cbraNKjNPHcbN6RNBYQBrwhC7BXGbDWp.xlsx", | 286 | domain.ImportProducts: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20220120/object/1642670543_cbraNKjNPHcbN6RNBYQBrwhC7BXGbDWp.xlsx", |
287 | - domain.ImportDevices: "", | 287 | + domain.ImportDevices: "https://timeless-world.oss-cn-shenzhen.aliyuncs.com/open-api/dev_online/20220126/object/1643184320_hT6sY5BKHmBa4TynfSGSCGyZ2KTTtzkj.xlsx", |
288 | } | 288 | } |
289 | var url string | 289 | var url string |
290 | var ok bool | 290 | var ok bool |
@@ -3,6 +3,7 @@ package service | @@ -3,6 +3,7 @@ package service | ||
3 | import ( | 3 | import ( |
4 | "fmt" | 4 | "fmt" |
5 | "github.com/linmadan/egglib-go/utils/excel" | 5 | "github.com/linmadan/egglib-go/utils/excel" |
6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain" | ||
6 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_manufacture" | 7 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_manufacture" |
7 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_user" | 8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_user" |
8 | ) | 9 | ) |
@@ -239,3 +240,171 @@ func (data ExportProductsData) DataListLen() int { | @@ -239,3 +240,171 @@ func (data ExportProductsData) DataListLen() int { | ||
239 | func (data ExportProductsData) TableTitle() []string { | 240 | func (data ExportProductsData) TableTitle() []string { |
240 | return nil | 241 | return nil |
241 | } | 242 | } |
243 | + | ||
244 | +//ExportEmployeeProductiveData 导出员工产能数据 | ||
245 | +type ExportEmployeeProductiveData struct { | ||
246 | + SourceData []allied_creation_manufacture.EmployeeProductiveItem | ||
247 | + SelectedField []string | ||
248 | +} | ||
249 | + | ||
250 | +var _ excel.ExcelMaker = (*ExportEmployeeProductiveData)(nil) | ||
251 | + | ||
252 | +func (data ExportEmployeeProductiveData) AllFields() []DataFieldOptions { | ||
253 | + return []DataFieldOptions{ | ||
254 | + {EnName: "createdAt", CnName: "日期"}, | ||
255 | + {EnName: "workshopName", CnName: "车间名称"}, | ||
256 | + {EnName: "lineName", CnName: "线别"}, | ||
257 | + {EnName: "sectionName", CnName: "工段"}, | ||
258 | + {EnName: "workOn", CnName: "班别"}, | ||
259 | + {EnName: "userName", CnName: "姓名"}, | ||
260 | + {EnName: "employeeType", CnName: "员工类型"}, | ||
261 | + {EnName: "participateType", CnName: "类别"}, | ||
262 | + {EnName: "planProductName", CnName: "品名"}, | ||
263 | + {EnName: "productWeigh", CnName: "产能"}, | ||
264 | + {EnName: "secondLevelWeigh", CnName: "二级品"}, | ||
265 | + {EnName: "qualificationRate", CnName: "合格率"}, | ||
266 | + {EnName: "orgName", CnName: "组织机构"}, | ||
267 | + } | ||
268 | +} | ||
269 | + | ||
270 | +func (data ExportEmployeeProductiveData) DataFieldList() []excel.DataField { | ||
271 | + fields := []excel.DataField{} | ||
272 | + allFields := data.AllFields() | ||
273 | + for _, value2 := range allFields { | ||
274 | + if len(data.SelectedField) == 0 || value2.IsDefault { | ||
275 | + fields = append(fields, excel.DataField{EnName: value2.EnName, CnName: value2.CnName}) | ||
276 | + continue | ||
277 | + } | ||
278 | + for _, value3 := range data.SelectedField { | ||
279 | + if value2.EnName == value3 { | ||
280 | + fields = append(fields, excel.DataField{EnName: value2.EnName, CnName: value2.CnName}) | ||
281 | + } | ||
282 | + } | ||
283 | + } | ||
284 | + return fields | ||
285 | +} | ||
286 | + | ||
287 | +func (data ExportEmployeeProductiveData) CellValue(index int, enName string) (value interface{}) { | ||
288 | + if index > data.DataListLen() { | ||
289 | + return "" | ||
290 | + } | ||
291 | + switch enName { | ||
292 | + case "createdAt": | ||
293 | + return data.SourceData[index].CreatedAt | ||
294 | + case "workshopName": | ||
295 | + return data.SourceData[index].WorkshopName | ||
296 | + case "lineName": | ||
297 | + return data.SourceData[index].LineName | ||
298 | + case "sectionName": | ||
299 | + return data.SourceData[index].SectionName | ||
300 | + case "workOn": | ||
301 | + return data.SourceData[index].WorkOn | ||
302 | + case "userName": | ||
303 | + return data.SourceData[index].ProductWorker.UserName | ||
304 | + case "employeeType": | ||
305 | + return domain.EmployeeTypeDescription(data.SourceData[index].ProductWorker.EmployeeType) | ||
306 | + case "participateType": | ||
307 | + return domain.ParticipateTypeDescription(data.SourceData[index].ParticipateType) | ||
308 | + case "planProductName": | ||
309 | + return data.SourceData[index].PlanProductName | ||
310 | + case "productWeigh": | ||
311 | + return fmt.Sprintf("%vKg", data.SourceData[index].ProductWeigh) | ||
312 | + case "secondLevelWeigh": | ||
313 | + return fmt.Sprintf("%vKg", data.SourceData[index].SecondLevelWeigh) | ||
314 | + case "qualificationRate": | ||
315 | + return fmt.Sprintf("%v%%", data.SourceData[index].QualificationRate) | ||
316 | + case "orgName": | ||
317 | + return data.SourceData[index].OrgName | ||
318 | + } | ||
319 | + return nil | ||
320 | +} | ||
321 | + | ||
322 | +func (data ExportEmployeeProductiveData) DataListLen() int { | ||
323 | + return len(data.SourceData) | ||
324 | +} | ||
325 | + | ||
326 | +func (data ExportEmployeeProductiveData) TableTitle() []string { | ||
327 | + return nil | ||
328 | +} | ||
329 | + | ||
330 | +//ExportWorkshopProductiveData 导出员工产能数据 | ||
331 | +type ExportWorkshopProductiveData struct { | ||
332 | + SourceData []allied_creation_manufacture.WorkshopProductiveItem | ||
333 | + SelectedField []string | ||
334 | +} | ||
335 | + | ||
336 | +var _ excel.ExcelMaker = (*ExportWorkshopProductiveData)(nil) | ||
337 | + | ||
338 | +func (data ExportWorkshopProductiveData) AllFields() []DataFieldOptions { | ||
339 | + return []DataFieldOptions{ | ||
340 | + {EnName: "createdAt", CnName: "日期"}, | ||
341 | + {EnName: "batchNumber", CnName: "批次号"}, | ||
342 | + {EnName: "workshopName", CnName: "车间名称"}, | ||
343 | + {EnName: "lineName", CnName: "线别"}, | ||
344 | + {EnName: "sectionName", CnName: "工段"}, | ||
345 | + {EnName: "planProductName", CnName: "品名"}, | ||
346 | + {EnName: "devotedProductWeigh", CnName: "投入量"}, | ||
347 | + {EnName: "productWeigh", CnName: "产出量"}, | ||
348 | + {EnName: "secondLevelWeigh", CnName: "二级品"}, | ||
349 | + {EnName: "qualificationRate", CnName: "出品率"}, | ||
350 | + {EnName: "orgName", CnName: "组织机构"}, | ||
351 | + } | ||
352 | +} | ||
353 | + | ||
354 | +func (data ExportWorkshopProductiveData) DataFieldList() []excel.DataField { | ||
355 | + fields := []excel.DataField{} | ||
356 | + allFields := data.AllFields() | ||
357 | + for _, value2 := range allFields { | ||
358 | + if len(data.SelectedField) == 0 || value2.IsDefault { | ||
359 | + fields = append(fields, excel.DataField{EnName: value2.EnName, CnName: value2.CnName}) | ||
360 | + continue | ||
361 | + } | ||
362 | + for _, value3 := range data.SelectedField { | ||
363 | + if value2.EnName == value3 { | ||
364 | + fields = append(fields, excel.DataField{EnName: value2.EnName, CnName: value2.CnName}) | ||
365 | + } | ||
366 | + } | ||
367 | + } | ||
368 | + return fields | ||
369 | +} | ||
370 | + | ||
371 | +func (data ExportWorkshopProductiveData) CellValue(index int, enName string) (value interface{}) { | ||
372 | + if index > data.DataListLen() { | ||
373 | + return "" | ||
374 | + } | ||
375 | + switch enName { | ||
376 | + case "createdAt": | ||
377 | + return data.SourceData[index].CreatedAt | ||
378 | + case "batchNumber": | ||
379 | + return data.SourceData[index].BatchNumber | ||
380 | + case "workshopName": | ||
381 | + return data.SourceData[index].WorkshopName | ||
382 | + case "lineName": | ||
383 | + return data.SourceData[index].LineName | ||
384 | + case "sectionName": | ||
385 | + return data.SourceData[index].SectionName | ||
386 | + case "userName": | ||
387 | + return data.SourceData[index].ProductWorker.UserName | ||
388 | + case "planProductName": | ||
389 | + return data.SourceData[index].PlanProductName | ||
390 | + case "devotedProductWeigh": | ||
391 | + return fmt.Sprintf("%vKg", data.SourceData[index].DevotedProductWeigh) | ||
392 | + case "productWeigh": | ||
393 | + return fmt.Sprintf("%vKg", data.SourceData[index].ProductWeigh) | ||
394 | + case "secondLevelWeigh": | ||
395 | + return fmt.Sprintf("%vKg", data.SourceData[index].SecondLevelWeigh) | ||
396 | + case "qualificationRate": | ||
397 | + return fmt.Sprintf("%v%%", data.SourceData[index].QualificationRate) | ||
398 | + case "orgName": | ||
399 | + return data.SourceData[index].OrgName | ||
400 | + } | ||
401 | + return nil | ||
402 | +} | ||
403 | + | ||
404 | +func (data ExportWorkshopProductiveData) DataListLen() int { | ||
405 | + return len(data.SourceData) | ||
406 | +} | ||
407 | + | ||
408 | +func (data ExportWorkshopProductiveData) TableTitle() []string { | ||
409 | + return nil | ||
410 | +} |
pkg/constant/manufacture.go
0 → 100644
1 | +package constant | ||
2 | + | ||
3 | +import ( | ||
4 | + "os" | ||
5 | + "strconv" | ||
6 | +) | ||
7 | + | ||
8 | +var ( | ||
9 | + // 生产制造 - 称重系统 - 默认公司 | ||
10 | + MANUFACTURE_WEIGH_DEFAULT_COMPANYID = 1 | ||
11 | + // 生产制造 - 称重系统 - 默认组织 | ||
12 | + MANUFACTURE_WEIGH_DEFAULT_ORGID = 1 | ||
13 | +) | ||
14 | + | ||
15 | +func init() { | ||
16 | + if os.Getenv("MANUFACTURE_WEIGH_DEFAULT_COMPANY_ID") != "" { | ||
17 | + MANUFACTURE_WEIGH_DEFAULT_COMPANYID, _ = strconv.Atoi(os.Getenv("MANUFACTURE_WEIGH_DEFAULT_COMPANYID")) | ||
18 | + } | ||
19 | + if os.Getenv("MANUFACTURE_WEIGH_DEFAULT_ORGID") != "" { | ||
20 | + MANUFACTURE_WEIGH_DEFAULT_ORGID, _ = strconv.Atoi(os.Getenv("MANUFACTURE_WEIGH_DEFAULT_ORGID")) | ||
21 | + } | ||
22 | +} |
@@ -65,9 +65,9 @@ const ( | @@ -65,9 +65,9 @@ const ( | ||
65 | ImportDividendsReturnOrders = "BUSINESS_ALLIED-CREATION_BONUS_RETURN" | 65 | ImportDividendsReturnOrders = "BUSINESS_ALLIED-CREATION_BONUS_RETURN" |
66 | 66 | ||
67 | // 导入产品 | 67 | // 导入产品 |
68 | - ImportProducts = "ImportProducts" | 68 | + ImportProducts = "BUSINESS_ALLIED-MANUFACTURING_BASIC_PRODUCT" |
69 | // 导入设备 | 69 | // 导入设备 |
70 | - ImportDevices = "ImportDevices" | 70 | + ImportDevices = "BUSINESS_ALLIED-MANUFACTURING_BASIC_DEVICE" |
71 | ) | 71 | ) |
72 | 72 | ||
73 | const ( | 73 | const ( |
@@ -78,6 +78,10 @@ const ( | @@ -78,6 +78,10 @@ const ( | ||
78 | 78 | ||
79 | // 导入产品 | 79 | // 导入产品 |
80 | ExportProducts = "ExportProducts" | 80 | ExportProducts = "ExportProducts" |
81 | + // 导出员工产能统计 | ||
82 | + ExportManufactureEmployeeProductive = "ExportManufactureEmployeeProductive" | ||
83 | + // 导出车间产能统计 | ||
84 | + ExportManufactureWorkshopProductive = "ExportManufactureWorkshopProductive" | ||
81 | ) | 85 | ) |
82 | 86 | ||
83 | const ( | 87 | const ( |
@@ -93,3 +97,26 @@ const ( | @@ -93,3 +97,26 @@ const ( | ||
93 | const ( | 97 | const ( |
94 | DefaultPassword = "4a693460c4cf078ea5b6b5a9e2cf382064a6f810" // TL123456! | 98 | DefaultPassword = "4a693460c4cf078ea5b6b5a9e2cf382064a6f810" // TL123456! |
95 | ) | 99 | ) |
100 | + | ||
101 | +func EmployeeTypeDescription(employeeType int) string { | ||
102 | + if employeeType == 1 { | ||
103 | + return "固定" | ||
104 | + } | ||
105 | + if employeeType == 2 { | ||
106 | + return "派遣" | ||
107 | + } | ||
108 | + if employeeType == 3 { | ||
109 | + return "临时" | ||
110 | + } | ||
111 | + return "固定" | ||
112 | +} | ||
113 | + | ||
114 | +func ParticipateTypeDescription(participateType int) string { | ||
115 | + if participateType == 1 { | ||
116 | + return "正常" | ||
117 | + } | ||
118 | + if participateType == 2 { | ||
119 | + return "支援" | ||
120 | + } | ||
121 | + return "正常" | ||
122 | +} |
@@ -48,7 +48,7 @@ type BatchAddProductRequest struct { | @@ -48,7 +48,7 @@ type BatchAddProductRequest struct { | ||
48 | } | 48 | } |
49 | type BatchAddProductResponse []interface{} | 49 | type BatchAddProductResponse []interface{} |
50 | 50 | ||
51 | -//BatchAddProduct 批量添加产品 | 51 | +//SearchProduct 搜索产品 |
52 | func (gateway HttpLibAlliedCreationManufacture) SearchProduct(param SearchProductRequest) (*SearchProductResponse, error) { | 52 | func (gateway HttpLibAlliedCreationManufacture) SearchProduct(param SearchProductRequest) (*SearchProductResponse, error) { |
53 | url := fmt.Sprintf("%s%s", gateway.BaseUrl(), "/products/search") | 53 | url := fmt.Sprintf("%s%s", gateway.BaseUrl(), "/products/search") |
54 | method := "post" | 54 | method := "post" |
@@ -99,3 +99,128 @@ type BatchAddDeviceRequest struct { | @@ -99,3 +99,128 @@ type BatchAddDeviceRequest struct { | ||
99 | List []*domain.ImportDeviceItem `json:"list"` | 99 | List []*domain.ImportDeviceItem `json:"list"` |
100 | } | 100 | } |
101 | type BatchAddDeviceResponse []interface{} | 101 | type BatchAddDeviceResponse []interface{} |
102 | + | ||
103 | +/**生产记录**/ | ||
104 | +//SearchProduct 搜索员工产能统计 | ||
105 | +func (gateway HttpLibAlliedCreationManufacture) SearchEmployeeProductive(param SearchEmployeeProductiveRequest) (*SearchEmployeeProductiveResponse, error) { | ||
106 | + url := fmt.Sprintf("%s%s", gateway.BaseUrl(), "/product-records/employee-productive/search") | ||
107 | + method := "post" | ||
108 | + var data SearchEmployeeProductiveResponse | ||
109 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
110 | + return &data, err | ||
111 | +} | ||
112 | + | ||
113 | +type ( | ||
114 | + SearchEmployeeProductiveRequest struct { | ||
115 | + // 页码 | ||
116 | + //PageNumber int `cname:"页码" json:"pageNumber,omitempty"` | ||
117 | + // 页数 | ||
118 | + //PageSize int `cname:"页数" json:"pageSize,omitempty"` | ||
119 | + // 车间名称 | ||
120 | + WorkshopName string `cname:"车间名称" json:"workshopName,omitempty"` | ||
121 | + // 生产线名称 | ||
122 | + LineName string `cname:"生产线名称" json:"lineName,omitempty"` | ||
123 | + // 工段名称 | ||
124 | + SectionName string `cname:"工段名称" json:"sectionName,omitempty"` | ||
125 | + // 姓名 | ||
126 | + UserName string `cname:"姓名" json:"userName"` | ||
127 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
128 | + EmployeeType string `cname:"员工类型 1:固定 2:派遣 3.临时" json:"employeeType"` | ||
129 | + // 开始时间 | ||
130 | + BeginTime string `cname:"开始时间" json:"beginTime"` | ||
131 | + // 结束时间 | ||
132 | + EndTime string `cname:"结束时间" json:"endTime"` | ||
133 | + } | ||
134 | + SearchEmployeeProductiveResponse struct { | ||
135 | + Grid struct { | ||
136 | + List []EmployeeProductiveItem `json:"list"` | ||
137 | + Total int `json:"total"` | ||
138 | + } `json:"grid"` | ||
139 | + } | ||
140 | + EmployeeProductiveItem struct { | ||
141 | + EmployeeProductRecordID int `json:"employeeProductRecordId"` | ||
142 | + ProductWorker struct { | ||
143 | + UserID int `json:"userId"` | ||
144 | + UserName string `json:"userName"` | ||
145 | + Avatar string `json:"avatar"` | ||
146 | + Phone string `json:"phone"` | ||
147 | + EmployeeType int `json:"employeeType"` | ||
148 | + } `json:"productWorker"` | ||
149 | + WorkStationID string `json:"workStationId"` | ||
150 | + WorkshopID int `json:"workshopId"` | ||
151 | + WorkshopName string `json:"workshopName"` | ||
152 | + LineID int `json:"lineId"` | ||
153 | + LineName string `json:"lineName"` | ||
154 | + SectionID int `json:"sectionId"` | ||
155 | + SectionName string `json:"sectionName"` | ||
156 | + WorkOn string `json:"workOn"` | ||
157 | + PlanProductName string `json:"planProductName"` | ||
158 | + BatchNumber string `json:"batchNumber"` | ||
159 | + ParticipateType int `json:"participateType"` | ||
160 | + ProductWeigh float64 `json:"productWeigh"` | ||
161 | + SecondLevelWeigh float64 `json:"secondLevelWeigh"` | ||
162 | + CreatedAt string `json:"createdAt"` | ||
163 | + OrgName string `json:"orgName"` | ||
164 | + AuthFlag bool `json:"authFlag"` | ||
165 | + QualificationRate int `json:"qualificationRate"` | ||
166 | + } | ||
167 | +) | ||
168 | + | ||
169 | +//SearchProduct 搜索员工产能统计 | ||
170 | +func (gateway HttpLibAlliedCreationManufacture) SearchWorkshopProductive(param SearchWorkshopProductiveRequest) (*SearchWorkshopProductiveResponse, error) { | ||
171 | + url := fmt.Sprintf("%s%s", gateway.BaseUrl(), "/product-records/workshop-productive/search") | ||
172 | + method := "post" | ||
173 | + var data SearchWorkshopProductiveResponse | ||
174 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
175 | + return &data, err | ||
176 | +} | ||
177 | + | ||
178 | +type ( | ||
179 | + SearchWorkshopProductiveRequest struct { | ||
180 | + // 品名 | ||
181 | + PlanProductName string `cname:"品名" json:"planProductName,omitempty"` | ||
182 | + // 工段名称 | ||
183 | + SectionName string `cname:"工段名称" json:"sectionName,omitempty"` | ||
184 | + // 开始时间 | ||
185 | + BeginTime string `cname:"开始时间" json:"beginTime"` | ||
186 | + // 结束时间 | ||
187 | + EndTime string `cname:"结束时间" json:"endTime"` | ||
188 | + } | ||
189 | + SearchWorkshopProductiveResponse struct { | ||
190 | + Grid struct { | ||
191 | + List []WorkshopProductiveItem `json:"list"` | ||
192 | + Total int `json:"total"` | ||
193 | + } `json:"grid"` | ||
194 | + } | ||
195 | + WorkshopProductiveItem struct { | ||
196 | + EmployeeProductRecordID int `json:"employeeProductRecordId"` | ||
197 | + ProductWorker struct { | ||
198 | + UserID int `json:"userId"` | ||
199 | + UserName string `json:"userName"` | ||
200 | + Avatar string `json:"avatar"` | ||
201 | + Phone string `json:"phone"` | ||
202 | + EmployeeType int `json:"employeeType"` | ||
203 | + } `json:"productWorker"` | ||
204 | + WorkStationID string `json:"workStationId"` | ||
205 | + WorkshopID int `json:"workshopId"` | ||
206 | + WorkshopName string `json:"workshopName"` | ||
207 | + LineID int `json:"lineId"` | ||
208 | + LineName string `json:"lineName"` | ||
209 | + SectionID int `json:"sectionId"` | ||
210 | + SectionName string `json:"sectionName"` | ||
211 | + WorkOn string `json:"workOn"` | ||
212 | + PlanProductName string `json:"planProductName"` | ||
213 | + BatchNumber string `json:"batchNumber"` | ||
214 | + //ParticipateType int `json:"participateType"` | ||
215 | + // 投入量 | ||
216 | + DevotedProductWeigh float64 `json:"devotedProductWeigh"` | ||
217 | + // 产能 | ||
218 | + ProductWeigh float64 `json:"productWeigh"` | ||
219 | + // 二级品产能 | ||
220 | + SecondLevelWeigh float64 `json:"secondLevelWeigh"` | ||
221 | + CreatedAt string `json:"createdAt"` | ||
222 | + OrgName string `json:"orgName"` | ||
223 | + AuthFlag bool `json:"authFlag"` | ||
224 | + QualificationRate int `json:"qualificationRate"` | ||
225 | + } | ||
226 | +) |
@@ -271,6 +271,18 @@ func fileExport(controller *ExcelDataController, code string) { | @@ -271,6 +271,18 @@ func fileExport(controller *ExcelDataController, code string) { | ||
271 | companyUserListQuery.Operator = exportDataCommand.Operator | 271 | companyUserListQuery.Operator = exportDataCommand.Operator |
272 | data, err = excelService.ExportProducts(companyUserListQuery) | 272 | data, err = excelService.ExportProducts(companyUserListQuery) |
273 | filename = "导出商品" | 273 | filename = "导出商品" |
274 | + case domain.ExportManufactureEmployeeProductive: | ||
275 | + companyUserListQuery := &query.ManufactureEmployeeProductiveQuery{} | ||
276 | + exportDataCommand.UnmarshalQuery(companyUserListQuery) | ||
277 | + companyUserListQuery.Operator = exportDataCommand.Operator | ||
278 | + data, err = excelService.ExportEmployeeProductive(companyUserListQuery) | ||
279 | + filename = "导出员工产能统计" | ||
280 | + case domain.ExportManufactureWorkshopProductive: | ||
281 | + companyUserListQuery := &query.ManufactureWorkshopProductiveQuery{} | ||
282 | + exportDataCommand.UnmarshalQuery(companyUserListQuery) | ||
283 | + companyUserListQuery.Operator = exportDataCommand.Operator | ||
284 | + data, err = excelService.ExportWorkshopProductive(companyUserListQuery) | ||
285 | + filename = "导出车间产能汇总" | ||
274 | default: | 286 | default: |
275 | err = fmt.Errorf("export type :%v not exists", exportDataCommand.Code) | 287 | err = fmt.Errorf("export type :%v not exists", exportDataCommand.Code) |
276 | } | 288 | } |
@@ -301,6 +313,21 @@ func (controller *ExcelDataController) ExportCooperationUser() { | @@ -301,6 +313,21 @@ func (controller *ExcelDataController) ExportCooperationUser() { | ||
301 | fileExport(controller, domain.ExportCooperationUser) | 313 | fileExport(controller, domain.ExportCooperationUser) |
302 | } | 314 | } |
303 | 315 | ||
316 | +// ExportProducts 导出生产制造产品 | ||
317 | +func (controller *ExcelDataController) ExportProducts() { | ||
318 | + fileExport(controller, domain.ExportProducts) | ||
319 | +} | ||
320 | + | ||
321 | +// ExportManufactureEmployeeProductive 导出生产制造-员工产能统计 | ||
322 | +func (controller *ExcelDataController) ExportManufactureEmployeeProductive() { | ||
323 | + fileExport(controller, domain.ExportManufactureEmployeeProductive) | ||
324 | +} | ||
325 | + | ||
326 | +// ExportManufactureEmployeeProductive 导出生产制造-车间产能统计 | ||
327 | +func (controller *ExcelDataController) ExportManufactureWorkshopProductive() { | ||
328 | + fileExport(controller, domain.ExportManufactureWorkshopProductive) | ||
329 | +} | ||
330 | + | ||
304 | //GetExcelDataFields 获取导出excel数据的可选字段 | 331 | //GetExcelDataFields 获取导出excel数据的可选字段 |
305 | func (controller *ExcelDataController) GetExcelDataFields() { | 332 | func (controller *ExcelDataController) GetExcelDataFields() { |
306 | 333 |
1 | +package middleware | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/beego/beego/v2/server/web" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/constant" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_manufacture" | ||
8 | +) | ||
9 | + | ||
10 | +func RedirectManufactureWeigh() web.FilterFunc { | ||
11 | + return RedirectInternalService("/v1/manufacture-weigh", allied_creation_manufacture.NewHttpLibAlliedCreationManufacture(domain.Operator{ | ||
12 | + CompanyId: int64(constant.MANUFACTURE_WEIGH_DEFAULT_COMPANYID), | ||
13 | + OrgId: int64(constant.MANUFACTURE_WEIGH_DEFAULT_ORGID), | ||
14 | + })) | ||
15 | +} |
@@ -8,6 +8,9 @@ import ( | @@ -8,6 +8,9 @@ import ( | ||
8 | func init() { | 8 | func init() { |
9 | web.Router("/v1/web/excel/export/company-user", &web_client.ExcelDataController{}, "Post:ExportCompanyUser") | 9 | web.Router("/v1/web/excel/export/company-user", &web_client.ExcelDataController{}, "Post:ExportCompanyUser") |
10 | web.Router("/v1/web/excel/export/cooperation-user", &web_client.ExcelDataController{}, "Post:ExportCooperationUser") | 10 | web.Router("/v1/web/excel/export/cooperation-user", &web_client.ExcelDataController{}, "Post:ExportCooperationUser") |
11 | + web.Router("/v1/web/excel/export/manufacture-products", &web_client.ExcelDataController{}, "Post:ExportProducts") | ||
12 | + web.Router("/v1/web/excel/export/manufacture-employee-productive", &web_client.ExcelDataController{}, "Post:ExportManufactureEmployeeProductive") | ||
13 | + web.Router("/v1/web/excel/export/manufacture-workshop-productive", &web_client.ExcelDataController{}, "Post:ExportManufactureWorkshopProductive") | ||
11 | 14 | ||
12 | web.Router("/v1/web/excel/import/dividends-orders", &web_client.ExcelDataController{}, "Post:ImportDividendsOrder") | 15 | web.Router("/v1/web/excel/import/dividends-orders", &web_client.ExcelDataController{}, "Post:ImportDividendsOrder") |
13 | web.Router("/v1/web/excel/import/dividends-returned-orders", &web_client.ExcelDataController{}, "Post:ImportDividendsReturnedOrder") | 16 | web.Router("/v1/web/excel/import/dividends-returned-orders", &web_client.ExcelDataController{}, "Post:ImportDividendsReturnedOrder") |
1 | +package routers | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/beego/beego/v2/server/web" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/port/beego/middleware" | ||
6 | +) | ||
7 | + | ||
8 | +func init() { | ||
9 | + // 车间列表 | ||
10 | + web.Post("/v1/manufacture-weigh/workshops/selector", middleware.RedirectManufactureWeigh()) | ||
11 | + // 车间员工 | ||
12 | + web.Post("/v1/manufacture-weigh/product-groups/employees", middleware.RedirectManufactureWeigh()) | ||
13 | + // 生产批次列表 | ||
14 | + web.Post("/v1/manufacture-weigh/product-plans/search", middleware.RedirectManufactureWeigh()) | ||
15 | + // 物料列表 | ||
16 | + web.Post("/v1/manufacture-weigh/unit-conversions/materials", middleware.RedirectManufactureWeigh()) | ||
17 | + // 领料 | ||
18 | + web.Post("/v1/manufacture-weigh/product-plans/receive-material", middleware.RedirectManufactureWeigh()) | ||
19 | + // 退料 | ||
20 | + web.Post("/v1/manufacture-weigh/product-plans/return-material", middleware.RedirectManufactureWeigh()) | ||
21 | + // 提交二级品 | ||
22 | + web.Post("/v1/manufacture-weigh/product-plans/submit-product-record", middleware.RedirectManufactureWeigh()) | ||
23 | +} |
-
请 注册 或 登录 后发表评论