Browse Source

etl分包

pull/118/head
yehongyang 3 years ago
parent
commit
17063f1dd5
7 changed files with 187 additions and 17 deletions
  1. +17
    -0
      task/imporeBom/main.go
  2. +18
    -0
      task/importArticle/main.go
  3. +17
    -0
      task/importCustomer/main.go
  4. +17
    -0
      task/importCustomerMaterialSearch/main.go
  5. +17
    -0
      task/importProjectSearch/main.go
  6. +17
    -0
      task/importSaleOrder/main.go
  7. +84
    -17
      task/k3cloud.go

+ 17
- 0
task/imporeBom/main.go View File

@ -0,0 +1,17 @@
package main
import (
"fmt"
"leit.com/LAPP_CHEERSSON_BACKEND/task"
)
func main() {
err := task.EtlTaskInit()
if err != nil {
fmt.Println(err)
return
}
task.ImportBomList()
fmt.Println("OK")
return
}

+ 18
- 0
task/importArticle/main.go View File

@ -0,0 +1,18 @@
package main
import (
"fmt"
"leit.com/LAPP_CHEERSSON_BACKEND/task"
)
func main() {
err := task.EtlTaskInit()
if err != nil {
fmt.Println(err)
return
}
task.ImportMaterialGroupSearch()
task.ImportArticle()
fmt.Println("OK")
return
}

+ 17
- 0
task/importCustomer/main.go View File

@ -0,0 +1,17 @@
package main
import (
"fmt"
"leit.com/LAPP_CHEERSSON_BACKEND/task"
)
func main() {
err := task.EtlTaskInit()
if err != nil {
fmt.Println(err)
return
}
task.ImportCustomer()
fmt.Println("OK")
return
}

+ 17
- 0
task/importCustomerMaterialSearch/main.go View File

@ -0,0 +1,17 @@
package main
import (
"fmt"
"leit.com/LAPP_CHEERSSON_BACKEND/task"
)
func main() {
err := task.EtlTaskInit()
if err != nil {
fmt.Println(err)
return
}
task.ImportCustomerMaterialSearch()
fmt.Println("OK")
return
}

+ 17
- 0
task/importProjectSearch/main.go View File

@ -0,0 +1,17 @@
package main
import (
"fmt"
"leit.com/LAPP_CHEERSSON_BACKEND/task"
)
func main() {
err := task.EtlTaskInit()
if err != nil {
fmt.Println(err)
return
}
task.ImportProjectSearch()
fmt.Println("OK")
return
}

+ 17
- 0
task/importSaleOrder/main.go View File

@ -0,0 +1,17 @@
package main
import (
"fmt"
"leit.com/LAPP_CHEERSSON_BACKEND/task"
)
func main() {
err := task.EtlTaskInit()
if err != nil {
fmt.Println(err)
return
}
task.ImportSaleOrder()
fmt.Println("OK")
return
}

+ 84
- 17
task/k3cloud.go View File

@ -1,6 +1,9 @@
package task
import (
"fmt"
"github.com/go-xorm/xorm"
"leit.com/LAPP_CHEERSSON_BACKEND/db"
svrAp "leit.com/LAPP_CHEERSSON_BACKEND/services/ap"
svr "leit.com/LAPP_CHEERSSON_BACKEND/services/base"
"leit.com/LAPP_CHEERSSON_BACKEND/services/erp"
@ -8,6 +11,7 @@ import (
"leit.com/LAPP_CHEERSSON_BACKEND/utils"
utilService "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/service"
"math"
"os"
"time"
)
@ -26,10 +30,11 @@ var serviceOfProject = svrMe.NewProjectService()
func TaskInit() {
utils.K3configInit()
erp.PublishPlan(100, "admin")
for true {
oneTask(time.Time{})
//time.Sleep(time.Hour * 1)
time.Sleep(time.Minute * 5)
time.Sleep(time.Hour * 5)
}
}
@ -38,45 +43,35 @@ func oneTask(_date time.Time) {
//if DaysBetweenDates(lastTime.OneTime, _date) >= 1 {
//go func() {
erp.PublishPlan(100, "admin")
importMaterialGroupSearch()
importArticle()
importBomList()
importCustomer()
importSaleOrder()
importCustomerMaterialSearch()
ImportProjectSearch()
//}()
lastTime.OneTime = _date
//}
}
func importArticle() {
func ImportArticle() {
response := utilService.BdMAterialServiceInit().MaterialSearch("", "")
//将数据发送到servvice
serviceOfArticle.ImportArticle(response)
}
//导入bom
func importBomList() {
func ImportBomList() {
response := utilService.EngBomServiceInit().EngBomSearch("", "")
serviceOfBomList.ImportBomList(response)
}
//导入客户
func importCustomer() {
func ImportCustomer() {
response := utilService.CustomerInit().CustomerSearch("", "")
serviceOfCustomer.ImportCustomer(response)
}
func importSaleOrder() {
func ImportSaleOrder() {
response := utilService.SaleOrderInit().SaleOrderSearch("", "")
serviceOfSaleOrder.ImportSalesOrder(response)
}
func importMaterialGroupSearch() {
func ImportMaterialGroupSearch() {
response := utilService.MaterialGroupInit().MaterialGroupSearch("", "")
//将数据放入到map中
utils.ClearMaterialgroupMap()
@ -121,7 +116,7 @@ func importMaterialGroupSearch() {
}
//客户物料对应表
func importCustomerMaterialSearch() {
func ImportCustomerMaterialSearch() {
svrCust := utilService.CustomerMaterialInit()
response := svrCust.CustomerMaterialSearch("", "")
serviceOfCustArtlst.ImportCustArtlst(svrCust.FieldKeys, response)
@ -138,3 +133,75 @@ func ImportProjectSearch() {
func DaysBetweenDates(startDate, endDate time.Time) int {
return int(math.Floor(math.Abs(endDate.Sub(startDate).Hours()/24))) + 1
}
type TaskParam struct {
TaskId int `xorm:"int 'TaskId'"`
ShellName string `xorm:"nvarchar(255) 'ShellName'"`
ParamName string `xorm:"nvarchar(255) 'ParamName'"`
ParamValue string `xorm:"nvarchar(255) 'ParamValue'"`
ValueType string `xorm:"int 'ValueType'"`
}
func EtlTaskInit() error {
var err error
utils.TimezoneLocation, err = time.LoadLocation("Asia/Shanghai")
if err != nil {
return fmt.Errorf("init time zone failed:" + err.Error())
}
//获取参数
if len(os.Args) < 6 {
return fmt.Errorf("参数长度错误")
}
//目标链接
var targetDsn = os.Args[2]
var taskDsn = os.Args[3]
var taskID = os.Args[5]
//需要查询任务 配置
//实例化任务数据库
task, err := xorm.NewEngine("mssql", taskDsn)
if err != nil {
return fmt.Errorf("初始化任务数据库引擎错误:" + err.Error())
}
var taskList []TaskParam
//查询任务参数
err = task.Table("ShellParam").Where("TaskId=?", taskID).Find(&taskList)
if err != nil {
return fmt.Errorf("任务参数查询错误:" + err.Error())
}
valMap := make(map[string]string)
for _, v := range taskList {
valMap[v.ParamName] = v.ParamValue
}
//实例化金蝶云
utils.K3configTestInit()
if _info, ok := valMap["FUseOrgId"]; ok {
utils.K3Obj.FUseOrgId = _info
} else {
return fmt.Errorf("缺少参数配置FUseOrgId")
}
if _info, ok := valMap["FUseOrgNo"]; ok {
utils.K3Obj.FUseOrgNo = _info
} else {
return fmt.Errorf("缺少参数配置FUseOrgNo")
}
//实例化目标数据库
var slaves []*xorm.Engine
var master *xorm.Engine
master, err = xorm.NewEngine("mssql", targetDsn)
if err != nil {
return fmt.Errorf("链接目标库失败:" + err.Error())
}
if err = master.Ping(); err != nil {
return fmt.Errorf("链接目标库失败:" + err.Error())
}
master.SetTZLocation(utils.TimezoneLocation)
master.SetTZDatabase(utils.TimezoneLocation)
db.Eloquent, err = xorm.NewEngineGroup(master, slaves)
if err != nil {
return fmt.Errorf("目标库使用错误:" + err.Error())
}
return nil
}

Loading…
Cancel
Save