|
|
@ -1 +1,110 @@ |
|
|
|
package main |
|
|
|
|
|
|
|
import ( |
|
|
|
meta "LAPP_ACURA_MOM_BACKEND/meta/om" |
|
|
|
model "LAPP_ACURA_MOM_BACKEND/models/om" |
|
|
|
"fmt" |
|
|
|
"github.com/go-xorm/xorm" |
|
|
|
"log" |
|
|
|
) |
|
|
|
|
|
|
|
func main() { |
|
|
|
sourceDsn := fmt.Sprintf("server=%s;database=%s;user id=%s;password=%s;port=%d;encrypt=disable", |
|
|
|
"127.0.0.1", "LAPP_ACURA_MES4", "sa", "Start12345", 1433) |
|
|
|
sourceEngine, err := xorm.NewEngine("mssql", sourceDsn) |
|
|
|
if err != nil { |
|
|
|
log.Fatalln("初始化源数据库失败", err) |
|
|
|
} |
|
|
|
targetDsn := fmt.Sprintf("server=%s;database=%s;user id=%s;password=%s;port=%d;encrypt=disable", |
|
|
|
"10.122.64.96", "LAPP_ACURA_MES3", "sa", "Start12345", 1433) |
|
|
|
targetEngine, err := xorm.NewEngine("mssql", targetDsn) |
|
|
|
if err != nil { |
|
|
|
log.Fatalln("初始化目标数据库失败", err) |
|
|
|
} |
|
|
|
sourceSession := sourceEngine.NewSession() |
|
|
|
defer sourceSession.Close() |
|
|
|
targetSession := targetEngine.NewSession() |
|
|
|
defer targetSession.Close() |
|
|
|
//sourceRecvDataDao := dal.NewSerialOrderOPDetailRecvDataLstDAO(sourceSession, 100, "RepairData")
|
|
|
|
//sourceRecvDataDao := dal.NewSerialOrderOPDetailRecvDataLstDAO(targetSession, 100, "RepairData")
|
|
|
|
//sourceOnlyBarcodeDao := dal.NewSerialOrderOnlyBarcodeRecLstDAO(sourceSession, 100, "RepairData")
|
|
|
|
//targetOnlyBarcodeDao := dal.NewSerialOrderOnlyBarcodeRecLstDAO(targetSession, 100, "RepairData")
|
|
|
|
where := fmt.Sprintf("%s > ?", meta.SerialOrderOPDetailRecvDataLst_CreateTime.Name) |
|
|
|
allRecvData := make([]model.SerialOrderOPDetailRecvDataLst, 0) |
|
|
|
err = sourceSession.Table(meta.SerialOrderOPDetailRecvDataLst.TableName).Where(where, "2022-10-01 00:00:00"). |
|
|
|
OrderBy(meta.SerialOrderOPDetailRecvDataLst_SerialOrderId.Name). |
|
|
|
OrderBy(meta.SerialOrderOPDetailRecvDataLst_PO.Name). |
|
|
|
OrderBy(meta.SerialOrderOPDetailRecvDataLst_StepNo.Name). |
|
|
|
OrderBy(meta.SerialOrderOPDetailRecvDataLst_OriginPos.Name).Find(&allRecvData) |
|
|
|
if err != nil { |
|
|
|
log.Fatalln("查询源recvData失败,错误:" + err.Error()) |
|
|
|
} |
|
|
|
fmt.Println("开始处理RecvData") |
|
|
|
var ok bool |
|
|
|
for _, item := range allRecvData { |
|
|
|
where = fmt.Sprintf("%s = ? and %s = ? and %s = ? and %s = ?", |
|
|
|
meta.SerialOrderOPDetailRecvDataLst_SerialOrderId.Name, |
|
|
|
meta.SerialOrderOPDetailRecvDataLst_PO.Name, |
|
|
|
meta.SerialOrderOPDetailRecvDataLst_StepNo.Name, |
|
|
|
meta.SerialOrderOPDetailRecvDataLst_OriginPos.Name, |
|
|
|
) |
|
|
|
var recvData model.SerialOrderOPDetailRecvDataLst |
|
|
|
ok, err = targetSession.Table(meta.SerialOrderOPDetailRecvDataLst.TableName).Where(where, item.SerialOrderId, item.PO, item.StepNo, item.OriginPos).Get(&recvData) |
|
|
|
if err != nil { |
|
|
|
fmt.Println("查询目标数据recvData失败, error:" + err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
if ok { |
|
|
|
fmt.Println("忽略") |
|
|
|
continue |
|
|
|
} |
|
|
|
fmt.Println("插入RecvData", item) |
|
|
|
|
|
|
|
newItem := item |
|
|
|
newItem.Pos = 0 |
|
|
|
_, err = targetSession.Table(meta.SerialOrderOPDetailRecvDataLst.TableName).InsertOne(&newItem) |
|
|
|
if err != nil { |
|
|
|
fmt.Println("写入目标数据recvData失败, error:" + err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
where = fmt.Sprintf("%s > ?", meta.SerialOrderOnlyBarcodeRecLst_CreateTime.Name) |
|
|
|
allBarcodeLi := make([]model.SerialOrderOnlyBarcodeRecLst, 0) |
|
|
|
err = sourceSession.Table(meta.SerialOrderOnlyBarcodeRecLst.TableName).Where(where, "2022-10-01 00:00:00"). |
|
|
|
OrderBy(meta.SerialOrderOnlyBarcodeRecLst_SerialOrderId.Name). |
|
|
|
OrderBy(meta.SerialOrderOnlyBarcodeRecLst_PO.Name). |
|
|
|
OrderBy(meta.SerialOrderOnlyBarcodeRecLst_WorkPlaceNr.Name). |
|
|
|
OrderBy(meta.SerialOrderOnlyBarcodeRecLst_Barcode.Name).Find(&allBarcodeLi) |
|
|
|
if err != nil { |
|
|
|
log.Fatalln("查询源onlyBarcode失败,错误:" + err.Error()) |
|
|
|
} |
|
|
|
fmt.Println("开始处理OnlyBarcode") |
|
|
|
|
|
|
|
for _, item := range allBarcodeLi { |
|
|
|
where = fmt.Sprintf("%s = ? and %s = ? and %s = ? and %s = ?", |
|
|
|
meta.SerialOrderOnlyBarcodeRecLst_SerialOrderId.Name, |
|
|
|
meta.SerialOrderOnlyBarcodeRecLst_PO.Name, |
|
|
|
meta.SerialOrderOnlyBarcodeRecLst_WorkPlaceNr.Name, |
|
|
|
meta.SerialOrderOnlyBarcodeRecLst_Barcode.Name, |
|
|
|
) |
|
|
|
var onlyBarcode model.SerialOrderOnlyBarcodeRecLst |
|
|
|
ok, err = targetSession.Table(meta.SerialOrderOnlyBarcodeRecLst.TableName).Where(where, item.SerialOrderId, item.PO, item.WorkPlaceNr, item.Barcode).Get(&onlyBarcode) |
|
|
|
if err != nil { |
|
|
|
fmt.Println("查询目标数据onlyBarcode失败, error:" + err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
if ok { |
|
|
|
fmt.Println("忽略") |
|
|
|
continue |
|
|
|
} |
|
|
|
fmt.Println("插入onlyBarcode", item) |
|
|
|
newItem := item |
|
|
|
newItem.DetailId = 0 |
|
|
|
_, err = targetSession.Table(meta.SerialOrderOnlyBarcodeRecLst.TableName).InsertOne(&newItem) |
|
|
|
if err != nil { |
|
|
|
fmt.Println("写入目标数据OnlyBarcode失败, error:" + err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
} |