From 8ae89b441b362a56f19257f4ef62f1e42164a750 Mon Sep 17 00:00:00 2001 From: "DESKTOP-IO8B2ND\\ZhangXin" Date: Wed, 12 Oct 2022 14:09:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RepairAcuraLoseData.go | 109 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/RepairAcuraLoseData.go b/RepairAcuraLoseData.go index 06ab7d0..500c089 100644 --- a/RepairAcuraLoseData.go +++ b/RepairAcuraLoseData.go @@ -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 + } + } +}