正在显示
11 个修改的文件
包含
343 行增加
和
32 行删除
@@ -18,18 +18,24 @@ func NewCrontabService(options map[string]interface{}) *CrontabService { | @@ -18,18 +18,24 @@ func NewCrontabService(options map[string]interface{}) *CrontabService { | ||
18 | } | 18 | } |
19 | 19 | ||
20 | func (crontabService *CrontabService) initTask() { | 20 | func (crontabService *CrontabService) initTask() { |
21 | - //PullDataK3Cloud 晚上0时10分执行 | 21 | + //拉取物料数据 晚上0时10分执行 |
22 | pullMaterialK3cloud := task.NewTask("pullMaterialK3cloud", "0 10 0 * * *", func(ctx context.Context) error { | 22 | pullMaterialK3cloud := task.NewTask("pullMaterialK3cloud", "0 10 0 * * *", func(ctx context.Context) error { |
23 | srv := syncdata.PullDataK3CloudService{} | 23 | srv := syncdata.PullDataK3CloudService{} |
24 | return srv.PullMaterialNewest() | 24 | return srv.PullMaterialNewest() |
25 | }) | 25 | }) |
26 | task.AddTask("pullMaterialK3cloud", pullMaterialK3cloud) | 26 | task.AddTask("pullMaterialK3cloud", pullMaterialK3cloud) |
27 | - //PullDataK3Cloud 晚上0时10分执行 | 27 | + //拉取物料分组数据 晚上0时10分执行 |
28 | pullMaterialGroupK3cloud := task.NewTask("pullMaterialGroupK3cloud", "0 10 0 * * *", func(ctx context.Context) error { | 28 | pullMaterialGroupK3cloud := task.NewTask("pullMaterialGroupK3cloud", "0 10 0 * * *", func(ctx context.Context) error { |
29 | srv := syncdata.PullDataK3CloudService{} | 29 | srv := syncdata.PullDataK3CloudService{} |
30 | return srv.PullMaterialGroup() | 30 | return srv.PullMaterialGroup() |
31 | }) | 31 | }) |
32 | task.AddTask("pullMaterialGroupK3cloud", pullMaterialGroupK3cloud) | 32 | task.AddTask("pullMaterialGroupK3cloud", pullMaterialGroupK3cloud) |
33 | + //拉取订生产订单数据 晚上0时10分执行 | ||
34 | + PullPrdMoK3cloud := task.NewTask("PullPrdMoK3cloud", "0 10 0 * * *", func(ctx context.Context) error { | ||
35 | + srv := syncdata.PullDataK3CloudService{} | ||
36 | + return srv.PullPrdMoNewest() | ||
37 | + }) | ||
38 | + task.AddTask("PullPrdMoK3cloud", PullPrdMoK3cloud) | ||
33 | } | 39 | } |
34 | 40 | ||
35 | func (crontabService *CrontabService) StartCrontabTask() { | 41 | func (crontabService *CrontabService) StartCrontabTask() { |
@@ -276,3 +276,156 @@ func (srv *PullDataK3CloudService) PullMaterialGroup() error { | @@ -276,3 +276,156 @@ func (srv *PullDataK3CloudService) PullMaterialGroup() error { | ||
276 | } | 276 | } |
277 | return nil | 277 | return nil |
278 | } | 278 | } |
279 | + | ||
280 | +//PullPrdMoNewest 拉取生产订单数据 | ||
281 | +func (srv *PullDataK3CloudService) PullPrdMoNewest() error { | ||
282 | + var ( | ||
283 | + err error | ||
284 | + prdMoDao *dao.PrdMoK3cloudDao | ||
285 | + ) | ||
286 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
287 | + if err != nil { | ||
288 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
289 | + } | ||
290 | + if err := transactionContext.StartTransaction(); err != nil { | ||
291 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
292 | + } | ||
293 | + defer func() { | ||
294 | + transactionContext.RollbackTransaction() | ||
295 | + }() | ||
296 | + prdMoDao, err = dao.NewPrdMoK3cloudDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
297 | + if err != nil { | ||
298 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
299 | + } | ||
300 | + version, err := prdMoDao.GetLastVersion() | ||
301 | + if err != nil { | ||
302 | + return application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
303 | + } | ||
304 | + if err = transactionContext.CommitTransaction(); err != nil { | ||
305 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
306 | + } | ||
307 | + var timeFilter time.Time | ||
308 | + if version > 0 { | ||
309 | + timeFilter = time.Unix(version, 0) | ||
310 | + } | ||
311 | + err = srv.PullPrdMo(timeFilter) | ||
312 | + if err != nil { | ||
313 | + return err | ||
314 | + } | ||
315 | + return err | ||
316 | +} | ||
317 | + | ||
318 | +//PullPrdMo 拉取生产订单数据 | ||
319 | +func (srv *PullDataK3CloudService) PullPrdMo(timeFilter time.Time) error { | ||
320 | + //拉取数据 | ||
321 | + var filterString []string | ||
322 | + if !timeFilter.IsZero() { | ||
323 | + str := timeFilter.Format("2006-01-02T15:04:05") | ||
324 | + filterString = append(filterString, "FModifyDate>='"+str+"'") | ||
325 | + } | ||
326 | + client, err := newK3cloudClient() | ||
327 | + if err != nil { | ||
328 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
329 | + } | ||
330 | + fieldKeys := []string{ | ||
331 | + "FID", "FBillNo", "FWorkShopID", "FWorkShopID.FName", "FMaterialId", "FMaterialId.FName", | ||
332 | + "FMaterialId.FNumber", "FPlanStartDate", "FPlanFinishDate", "FDate", "FQty", | ||
333 | + "FCreateDate", "FModifyDate", "FPrdOrgId", "FPrdOrgId.FName", | ||
334 | + } | ||
335 | + var ( | ||
336 | + startRow int | ||
337 | + allResult []map[string]string | ||
338 | + queryErr error | ||
339 | + ) | ||
340 | + for { | ||
341 | + result, err := client.ExecuteBillQuery(k3cloud.RequestExecuteBillQuery{ | ||
342 | + FormId: "PRD_MO", | ||
343 | + Data: k3cloud.ExecuteBillQueryData{ | ||
344 | + FormId: "PRD_MO", | ||
345 | + FieldKeys: strings.Join(fieldKeys, ","), //查询的字段 | ||
346 | + StartRow: startRow, | ||
347 | + Limit: 1000, | ||
348 | + FilterString: strings.Join(filterString, " and "), | ||
349 | + }, | ||
350 | + }) | ||
351 | + if err != nil { | ||
352 | + queryErr = err | ||
353 | + break | ||
354 | + } | ||
355 | + mp := result.ToMapString() | ||
356 | + if len(mp) == 0 { | ||
357 | + break | ||
358 | + } | ||
359 | + allResult = append(allResult, mp...) | ||
360 | + startRow += 1000 | ||
361 | + } | ||
362 | + if queryErr != nil { | ||
363 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
364 | + } | ||
365 | + var ( | ||
366 | + prdMoModels []models.PrdMoK3cloud | ||
367 | + prdMoTemp models.PrdMoK3cloud | ||
368 | + ) | ||
369 | + nowTime := time.Now() | ||
370 | + for _, item := range allResult { | ||
371 | + id, err := strconv.Atoi(item["FID"]) | ||
372 | + if err != nil { | ||
373 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
374 | + } | ||
375 | + workShopID, _ := strconv.Atoi(item["WorkShopID"]) | ||
376 | + materialId, _ := strconv.Atoi(item["MaterialId"]) | ||
377 | + qty, _ := strconv.ParseFloat(item["Qty"], 64) | ||
378 | + fPrdOrgId, _ := strconv.Atoi(item["FPrdOrgId"]) | ||
379 | + planStartDate, _ := time.Parse("2006-01-02T15:04:05", item["FPlanStartDate"]) | ||
380 | + planFinishDate, _ := time.Parse("2006-01-02T15:04:05", item["FPlanFinishDate"]) | ||
381 | + fDate, _ := time.Parse("2006-01-02T15:04:05", item["FDate"]) | ||
382 | + fCreateDate, _ := time.Parse("2006-01-02T15:04:05.999", item["FCreateDate"]) | ||
383 | + fModifyDate, _ := time.Parse("2006-01-02T15:04:05.999", item["FModifyDate"]) | ||
384 | + prdMoTemp = models.PrdMoK3cloud{ | ||
385 | + Id: id, | ||
386 | + WorkShopID: workShopID, | ||
387 | + MaterialId: materialId, | ||
388 | + Qty: qty, | ||
389 | + PlanStartDate: planStartDate, | ||
390 | + PlanFinishDate: planFinishDate, | ||
391 | + FDate: fDate, | ||
392 | + CreateDate: fCreateDate, | ||
393 | + ModifyDate: fModifyDate, | ||
394 | + BillNo: item["FBillNo"], | ||
395 | + WorkShopName: item["FWorkShopID.FName"], | ||
396 | + MaterialName: item["FMaterialId.FName"], | ||
397 | + MaterialNumber: item["FMaterialId.FNumber"], | ||
398 | + DataVersion: nowTime.Unix(), | ||
399 | + PrdOrgId: fPrdOrgId, | ||
400 | + PrdOrgName: item["FPrdOrgId.FName"], | ||
401 | + } | ||
402 | + prdMoModels = append(prdMoModels, prdMoTemp) | ||
403 | + } | ||
404 | + var ( | ||
405 | + prdMoDao *dao.PrdMoK3cloudDao | ||
406 | + ) | ||
407 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
408 | + if err != nil { | ||
409 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
410 | + } | ||
411 | + if err := transactionContext.StartTransaction(); err != nil { | ||
412 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
413 | + } | ||
414 | + defer func() { | ||
415 | + transactionContext.RollbackTransaction() | ||
416 | + }() | ||
417 | + prdMoDao, err = dao.NewPrdMoK3cloudDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
418 | + if err != nil { | ||
419 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
420 | + } | ||
421 | + //同步PrdMoK3cloud表数据 | ||
422 | + err = prdMoDao.SyncDataPrdMoK3cloud(prdMoModels) | ||
423 | + if err != nil { | ||
424 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
425 | + } | ||
426 | + | ||
427 | + if err = transactionContext.CommitTransaction(); err != nil { | ||
428 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
429 | + } | ||
430 | + return nil | ||
431 | +} |
@@ -25,30 +25,6 @@ func NewMaterialK3cloudDao(transactionContext *pgTransaction.TransactionContext) | @@ -25,30 +25,6 @@ func NewMaterialK3cloudDao(transactionContext *pgTransaction.TransactionContext) | ||
25 | 25 | ||
26 | //SyncDataMaterialK3cloud 同步MaterialK3cloud表数据 | 26 | //SyncDataMaterialK3cloud 同步MaterialK3cloud表数据 |
27 | func (d *MaterialK3cloudDao) SyncDataMaterialK3cloud(data []models.MaterialK3cloud) error { | 27 | func (d *MaterialK3cloudDao) SyncDataMaterialK3cloud(data []models.MaterialK3cloud) error { |
28 | - // -- 插入或者更新 | ||
29 | - // INSERT INTO "manufacture"."material_k3cloud" ( | ||
30 | - // "material_id","name","number","specification","forbid_status", | ||
31 | - // "erp_cls_id","base_unit_id","base_unit_name","create_date", | ||
32 | - // "modify_date","forbid_date","approve_date","material_group", | ||
33 | - // "material_group_number","material_group_name","ref_status ", | ||
34 | - // "join_product_id","data_version" ) | ||
35 | - // VALUES | ||
36 | - // ( | ||
37 | - // '1',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, | ||
38 | - // NULL,NULL,NULL,NULL,nextval( 'manufacture.manufacture_seq_id_seq' ),NULL | ||
39 | - // ) ON conflict ( material_id ) DO | ||
40 | - // UPDATE | ||
41 | - // SET ( | ||
42 | - // "name","number","specification","forbid_status","erp_cls_id", | ||
43 | - // "base_unit_id","base_unit_name","create_date","modify_date", | ||
44 | - // "forbid_date","approve_date","material_group","material_group_number", | ||
45 | - // "material_group_name","ref_status ","data_version" ) = ( | ||
46 | - // EXCLUDED."name",EXCLUDED."number",EXCLUDED."specification", | ||
47 | - // EXCLUDED."forbid_status",EXCLUDED."erp_cls_id",EXCLUDED."base_unit_id", | ||
48 | - // EXCLUDED."base_unit_name",EXCLUDED."create_date",EXCLUDED."modify_date", | ||
49 | - // EXCLUDED."forbid_date",EXCLUDED."approve_date",EXCLUDED."material_group", | ||
50 | - // EXCLUDED."material_group_number",EXCLUDED."material_group_name", | ||
51 | - // EXCLUDED."ref_status ",EXCLUDED."data_version" ) | ||
52 | sqlValues := []string{} | 28 | sqlValues := []string{} |
53 | var strTemp []string | 29 | var strTemp []string |
54 | for i := range data { | 30 | for i := range data { |
pkg/infrastructure/dao/prd_mo_k3cloud.go
0 → 100644
1 | +package dao | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + "strconv" | ||
6 | + "strings" | ||
7 | + | ||
8 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/pg/models" | ||
10 | +) | ||
11 | + | ||
12 | +// | ||
13 | +type PrdMoK3cloudDao struct { | ||
14 | + transactionContext *pgTransaction.TransactionContext | ||
15 | +} | ||
16 | + | ||
17 | +func NewPrdMoK3cloudDao(transactionContext *pgTransaction.TransactionContext) (*PrdMoK3cloudDao, error) { | ||
18 | + if transactionContext == nil { | ||
19 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
20 | + } else { | ||
21 | + return &PrdMoK3cloudDao{ | ||
22 | + transactionContext: transactionContext, | ||
23 | + }, nil | ||
24 | + } | ||
25 | +} | ||
26 | + | ||
27 | +//SyncDataPrdMoK3cloud 同步PrdMoK3cloud表数据 | ||
28 | +func (d *PrdMoK3cloudDao) SyncDataPrdMoK3cloud(data []models.PrdMoK3cloud) error { | ||
29 | + //插入或者更新 | ||
30 | + sqlValues := []string{} | ||
31 | + var strTemp []string | ||
32 | + for i := range data { | ||
33 | + strTemp = make([]string, 0, 5) | ||
34 | + strTemp = append(strTemp, strconv.Itoa(data[i].Id)) | ||
35 | + strTemp = append(strTemp, `'`+data[i].BillNo+`'`) | ||
36 | + strTemp = append(strTemp, strconv.Itoa(data[i].WorkShopID)) | ||
37 | + strTemp = append(strTemp, `'`+data[i].WorkShopName+`'`) | ||
38 | + strTemp = append(strTemp, strconv.Itoa(data[i].MaterialId)) | ||
39 | + strTemp = append(strTemp, `'`+data[i].MaterialName+`'`) | ||
40 | + strTemp = append(strTemp, `'`+data[i].MaterialNumber+`'`) | ||
41 | + strTemp = append(strTemp, `'`+data[i].PlanStartDate.Format("2006-01-02 15:04:05.999")+`'`) | ||
42 | + strTemp = append(strTemp, `'`+data[i].PlanFinishDate.Format("2006-01-02 15:04:05.999")+`'`) | ||
43 | + strTemp = append(strTemp, `'`+data[i].FDate.Format("2006-01-02 15:04:05.999")+`'`) | ||
44 | + strTemp = append(strTemp, fmt.Sprintf("%.10f", data[i].Qty)) //15.5000000000 | ||
45 | + strTemp = append(strTemp, `'`+data[i].CreateDate.Format("2006-01-02 15:04:05.999")+`'`) | ||
46 | + strTemp = append(strTemp, `'`+data[i].ModifyDate.Format("2006-01-02 15:04:05.999")+`'`) | ||
47 | + strTemp = append(strTemp, strconv.Itoa(int(data[i].DataVersion))) | ||
48 | + sqlValues = append(sqlValues, "("+strings.Join(strTemp, ",")+")") | ||
49 | + } | ||
50 | + var valueTemp []string | ||
51 | + for i := 0; i < len(sqlValues); i += 100 { | ||
52 | + if i <= len(sqlValues)-100 { | ||
53 | + valueTemp = sqlValues[i : i+100] | ||
54 | + } else { | ||
55 | + valueTemp = sqlValues[i:] | ||
56 | + } | ||
57 | + sql := `INSERT INTO "manufacture"."prd_mo_k3cloud" ( | ||
58 | + "id","bill_no","work_shop_id","work_shop_name", | ||
59 | + "material_id","material_name","material_number", | ||
60 | + "plan_start_date","plan_finish_date","f_date", | ||
61 | + "qty","create_date","modify_date","data_version" ) | ||
62 | + VALUES ` + | ||
63 | + strings.Join(valueTemp, ",") + | ||
64 | + ` ON conflict ( "id" ) DO | ||
65 | + UPDATE | ||
66 | + SET ( | ||
67 | + "bill_no","work_shop_id","work_shop_name", | ||
68 | + "material_id","material_name","material_number", | ||
69 | + "plan_start_date","plan_finish_date","f_date", | ||
70 | + "qty","create_date","modify_date","data_version") = ( | ||
71 | + EXCLUDED."bill_no",EXCLUDED."work_shop_id", | ||
72 | + EXCLUDED."work_shop_name",EXCLUDED."material_id", | ||
73 | + EXCLUDED."material_name",EXCLUDED."material_number", | ||
74 | + EXCLUDED."plan_start_date",EXCLUDED."plan_finish_date", | ||
75 | + EXCLUDED."f_date",EXCLUDED."qty",EXCLUDED."create_date", | ||
76 | + EXCLUDED."modify_date",EXCLUDED."data_version" | ||
77 | + )` | ||
78 | + _, err := d.transactionContext.PgTx.Exec(sql) | ||
79 | + if err != nil { | ||
80 | + return err | ||
81 | + } | ||
82 | + } | ||
83 | + | ||
84 | + return nil | ||
85 | +} | ||
86 | + | ||
87 | +func (d *PrdMoK3cloudDao) GetLastVersion() (int64, error) { | ||
88 | + var prdMoData []models.PrdMoK3cloud | ||
89 | + err := d.transactionContext.PgTx.Model(&prdMoData). | ||
90 | + Order("data_version DESC"). | ||
91 | + Limit(1). | ||
92 | + Select() | ||
93 | + if err != nil { | ||
94 | + return 0, err | ||
95 | + } | ||
96 | + if len(prdMoData) == 0 { | ||
97 | + return 0, nil | ||
98 | + } | ||
99 | + return prdMoData[0].DataVersion, nil | ||
100 | +} |
@@ -38,6 +38,7 @@ func init() { | @@ -38,6 +38,7 @@ func init() { | ||
38 | (*models.Workshop)(nil), | 38 | (*models.Workshop)(nil), |
39 | (*models.MaterialK3cloud)(nil), | 39 | (*models.MaterialK3cloud)(nil), |
40 | (*models.MaterialGroupK3cloud)(nil), | 40 | (*models.MaterialGroupK3cloud)(nil), |
41 | + (*models.PrdMoK3cloud)(nil), | ||
41 | } { | 42 | } { |
42 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ | 43 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ |
43 | Temp: false, | 44 | Temp: false, |
@@ -13,10 +13,10 @@ type MaterialK3cloud struct { | @@ -13,10 +13,10 @@ type MaterialK3cloud struct { | ||
13 | ErpClsId int `comment:"物料属性" pg:"erp_cls_id"` | 13 | ErpClsId int `comment:"物料属性" pg:"erp_cls_id"` |
14 | BaseUnitId int `comment:"基本单位" pg:"base_unit_id"` | 14 | BaseUnitId int `comment:"基本单位" pg:"base_unit_id"` |
15 | BaseUnitName string `comment:"基本单位名称" pg:"base_unit_name"` | 15 | BaseUnitName string `comment:"基本单位名称" pg:"base_unit_name"` |
16 | - CreateDate time.Time `comment:"创建时间" pg:"create_date,type:timestamp"` | ||
17 | - ModifyDate time.Time `comment:"修改时间" pg:"modify_date,type:timestamp"` | ||
18 | - ForbidDate time.Time `comment:"禁用时间" pg:"forbid_date,type:timestamp"` | ||
19 | - ApproveDate time.Time `comment:"审核时间" pg:"approve_date,type:timestamp"` | 16 | + CreateDate time.Time `comment:"创建时间" pg:"create_date"` |
17 | + ModifyDate time.Time `comment:"修改时间" pg:"modify_date"` | ||
18 | + ForbidDate time.Time `comment:"禁用时间" pg:"forbid_date"` | ||
19 | + ApproveDate time.Time `comment:"审核时间" pg:"approve_date"` | ||
20 | MaterialGroup int `comment:"物料分组" pg:"material_group"` | 20 | MaterialGroup int `comment:"物料分组" pg:"material_group"` |
21 | MaterialGroupNumber string `comment:"物料分组编码" pg:"material_group_number"` | 21 | MaterialGroupNumber string `comment:"物料分组编码" pg:"material_group_number"` |
22 | MaterialGroupName string `comment:"物料分组名称" pg:"material_group_name"` | 22 | MaterialGroupName string `comment:"物料分组名称" pg:"material_group_name"` |
1 | +package models | ||
2 | + | ||
3 | +import "time" | ||
4 | + | ||
5 | +//计划订单 | ||
6 | +//PrdMoK3cloud .. | ||
7 | +type PrdMoK3cloud struct { | ||
8 | + tableName string `comment:"采集自金蝶k3cloud计划订单" pg:"manufacture.prd_mo_k3cloud,alias:prd_mo_k3cloud"` | ||
9 | + Id int `pg:",pk"` | ||
10 | + BillNo string `comment:"订单编号" pg:"bill_no"` | ||
11 | + WorkShopID int `comment:"生产车间" pg:"work_shop_id"` | ||
12 | + WorkShopName string `comment:"生产车间名称" pg:"work_shop_name"` | ||
13 | + MaterialId int `comment:"物料" pg:"material_id"` | ||
14 | + MaterialName string `comment:"物料名称" pg:"material_name"` | ||
15 | + MaterialNumber string `comment:"物料名称" pg:"material_number"` | ||
16 | + PlanStartDate time.Time `comment:"计划开工时间" pg:"plan_start_date"` | ||
17 | + PlanFinishDate time.Time `comment:"计划完工时间" pg:"plan_finish_date"` | ||
18 | + FDate time.Time `comment:"单据日期" pg:"f_date"` | ||
19 | + Qty float64 `comment:"数量" pg:"qty"` | ||
20 | + CreateDate time.Time `comment:"创建时间" pg:"create_date"` | ||
21 | + ModifyDate time.Time `comment:"修改时间" pg:"modify_date"` | ||
22 | + DataVersion int64 `comment:"数据版本" pg:"data_version"` | ||
23 | + PrdOrgId int `comment:"生产组织" pg:"data_version"` | ||
24 | + PrdOrgName string `comment:"生产组织名称" pg:"data_version"` | ||
25 | +} |
@@ -56,5 +56,31 @@ func TestExecuteBillQuery(t *testing.T) { | @@ -56,5 +56,31 @@ func TestExecuteBillQuery(t *testing.T) { | ||
56 | t.Error(err) | 56 | t.Error(err) |
57 | return | 57 | return |
58 | } | 58 | } |
59 | - // t.Logf("tomap===>%v \n", result.ToMapString()) | 59 | +} |
60 | + | ||
61 | +func TestExecuteBillQuery2(t *testing.T) { | ||
62 | + client, err := NewClient(hostUrl, acctID, username, password) | ||
63 | + if err != nil { | ||
64 | + t.Error(err) | ||
65 | + return | ||
66 | + } | ||
67 | + fieldKeys := []string{ | ||
68 | + "FID", "FBillNo", "FWorkShopID", "FWorkShopID.FName", "FMaterialId", "FMaterialId.FName", | ||
69 | + "FMaterialId.FNumber", "FPlanStartDate", "FPlanFinishDate", "FDate", "FQty", | ||
70 | + "FCreateDate", "FModifyDate", "FPrdOrgId", "FPrdOrgId.FName", | ||
71 | + } | ||
72 | + result, err := client.ExecuteBillQuery(RequestExecuteBillQuery{ | ||
73 | + FormId: "PRD_MO", | ||
74 | + Data: ExecuteBillQueryData{ | ||
75 | + FormId: "PRD_MO", | ||
76 | + FieldKeys: strings.Join(fieldKeys, ","), //查询的字段 | ||
77 | + TopRowCount: 2, | ||
78 | + FilterString: "", | ||
79 | + }, | ||
80 | + }) | ||
81 | + t.Logf("result buf===> %s \n", string(result.Buf)) | ||
82 | + if err != nil { | ||
83 | + t.Error(err) | ||
84 | + return | ||
85 | + } | ||
60 | } | 86 | } |
@@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||
14 | | :---------------- | --------------------------- | ---- | | 14 | | :---------------- | --------------------------- | ---- | |
15 | | BD_MATERIAL | 基础管理-基础资料-物料 | | | 15 | | BD_MATERIAL | 基础管理-基础资料-物料 | | |
16 | | SAL_MATERIALGROUP | 基础管理-基础资料-物料-分组 | | | 16 | | SAL_MATERIALGROUP | 基础管理-基础资料-物料-分组 | | |
17 | +| PRD_MO | 生产制造-生产订单 | | | ||
17 | | | | | | 18 | | | | | |
18 | 19 | ||
19 | ## 物料字段描述(部分) | 20 | ## 物料字段描述(部分) |
@@ -46,4 +47,20 @@ | @@ -46,4 +47,20 @@ | ||
46 | | FNumber | 分组编码 | 字符串 | | 47 | | FNumber | 分组编码 | 字符串 | |
47 | | FName | 分组名称 | 字符串 | | 48 | | FName | 分组名称 | 字符串 | |
48 | | FParentId | 上级分组 | 字符串 | | 49 | | FParentId | 上级分组 | 字符串 | |
49 | -| | | | | 50 | + |
51 | +### 生产订单字段描述(部分) | ||
52 | + | ||
53 | +| 字段名 | 备注 | 类型 | | ||
54 | +| ------------------- | ------------------------------------- | ------ | | ||
55 | +| FBillNo | 订单编号 | 字符串 | | ||
56 | +| FWorkShopID | 生产车间 | 数字 | | ||
57 | +| FWorkShopID.FName | 生产车间 | 字符串 | | ||
58 | +| FMaterialId | 物料 | 数字 | | ||
59 | +| FPlanStartDate | 计划开工时间,如"2021-12-20T00:00:00" | 字符串 | | ||
60 | +| FPlanFinishDate | 计划完工时间,如"2021-12-20T00:00:00" | 字符串 | | ||
61 | +| FMaterialId.FName | 物料名称 | 字符串 | | ||
62 | +| FMaterialId.FNumber | 物料编码 | 字符串 | | ||
63 | +| FDate | 单据日期,如"2021-12-20T00:00:00" | 字符串 | | ||
64 | +| FQty | 数量,如 15.5000000000 | 小数 | | ||
65 | +| FID | id | 数字 | | ||
66 | +| FPrdOrgId | 生产组织 | 数字 | |
@@ -20,3 +20,9 @@ func (c *TestController) InvokPullMaterialGroup() { | @@ -20,3 +20,9 @@ func (c *TestController) InvokPullMaterialGroup() { | ||
20 | err := srv.PullMaterialGroup() | 20 | err := srv.PullMaterialGroup() |
21 | c.Response(nil, err) | 21 | c.Response(nil, err) |
22 | } | 22 | } |
23 | + | ||
24 | +func (c *TestController) InvokPullPrdMoNewest() { | ||
25 | + srv := syncdata.PullDataK3CloudService{} | ||
26 | + err := srv.PullPrdMoNewest() | ||
27 | + c.Response(nil, err) | ||
28 | +} |
@@ -8,4 +8,5 @@ import ( | @@ -8,4 +8,5 @@ import ( | ||
8 | func init() { | 8 | func init() { |
9 | web.Router("/TestController/PullMaterialNewest", &controllers.TestController{}, "Get:InvokPullMaterialNewest") | 9 | web.Router("/TestController/PullMaterialNewest", &controllers.TestController{}, "Get:InvokPullMaterialNewest") |
10 | web.Router("/TestController/PullMaterialGroup", &controllers.TestController{}, "Get:InvokPullMaterialGroup") | 10 | web.Router("/TestController/PullMaterialGroup", &controllers.TestController{}, "Get:InvokPullMaterialGroup") |
11 | + web.Router("/TestController/InvokPullPrdMoNewest", &controllers.TestController{}, "Get:InvokPullPrdMoNewest") | ||
11 | } | 12 | } |
-
请 注册 或 登录 后发表评论