|
|
@ -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 |
|
|
|
} |