diff --git a/dao/om/implments/SerialOrder.dao.impl.go b/dao/om/implments/SerialOrder.dao.impl.go index 5a98511..a2f390d 100644 --- a/dao/om/implments/SerialOrder.dao.impl.go +++ b/dao/om/implments/SerialOrder.dao.impl.go @@ -766,7 +766,7 @@ func (impl *SerialOrderDAOImplement) SelectSerialOrderByCustOrder(custOrderId st meta.SerialOrder_ArtId.ColumnName, meMeta.Product_ProductId.ColumnName) - where := fmt.Sprintf("%s = ? and %s = ? and %s <= ?", + where := fmt.Sprintf("%s = ? and %s = ? and %s <= ? and %s = ? and %s = ?", meta.SerialOrder_PlantNr.ColumnName, meta.SerialOrder_CustOrderId.ColumnName, meta.SerialOrderStatus_Status.ColumnName, diff --git a/etl_task/BackFlushPackOrder.go b/etl_task/BackFlushPackOrder.go index 60c68ad..7091371 100644 --- a/etl_task/BackFlushPackOrder.go +++ b/etl_task/BackFlushPackOrder.go @@ -8,7 +8,6 @@ import ( "LAPP_ACURA_MOM_BACKEND/grmi" meta "LAPP_ACURA_MOM_BACKEND/meta/base" "LAPP_ACURA_MOM_BACKEND/utils" - "encoding/csv" "fmt" _ "github.com/denisenkom/go-mssqldb" _ "github.com/go-sql-driver/mysql" @@ -23,7 +22,7 @@ import ( "time" ) -//BackFlushPackOrder.exe "server=101.201.121.115;database=LAPP_ACURA_MES2;user id=sa;password=Leit2020;port=1433;encrypt=disable" "LAPP_ACURA_MES2" "server=101.201.121.115;database=LAPP_ETL2;user id=sa;password=Leit2020;port=1433;encrypt=disable" "LAPP_ETL2" "98" +//BackFlushPackOrder.exe "server=101.201.121.115;database=LAPP_ACURA_MES;user id=sa;password=Leit2020;port=1433;encrypt=disable" "LAPP_ACURA_MES" "server=101.201.121.115;database=LAPP_ETL2;user id=sa;password=Leit2020;port=1433;encrypt=disable" "LAPP_ETL2" "98" func main() { var err error @@ -235,7 +234,7 @@ func main() { } } - writeLi := make([][]string, 0) + writeLi := make([]string, 0, len(ArtMap)) for artId, qty := range ArtMap { //article, err := daoArticle.SelectOne(artId) articleLi, err := daoArticle.Select([]grmi.Predicate{meta.Article_ArtId.NewPredicate(grmi.Equal, artId)}, nil) @@ -258,7 +257,7 @@ func main() { index7 := fmt.Sprintf("%02d%02d%d", int(month), day, 3600*hour+60*minute+second) index9 := tempIndex9 + fmt.Sprintf("%d%02d%02d%d", year, int(month), day, 3600*hour+60*minute+second) index11 := now.Format("02/01/06") - str := []string{ + writeStr := fmt.Sprintf(`"%s","%s",%s,"%s","%s",%s,%s,"%s","%s",%s,%s,"%s"`, index1, index2, index3, @@ -271,9 +270,8 @@ func main() { strconv.Itoa(qty), index11, index12, - "\n", - } - writeLi = append(writeLi, str) + ) + writeLi = append(writeLi, writeStr) } if err = acuraSession.Begin(); err != nil { fmt.Println("开启事务失败, error:" + err.Error()) @@ -307,20 +305,40 @@ func main() { fmt.Println("创建csv文件失败, error:" + err.Error()) return } - defer File.Close() - - //创建写入接口 - WriterCsv := csv.NewWriter(File) - for _, writeItem := range writeLi { - //写入一条数据,传入数据为切片(追加模式) - err = WriterCsv.Write(writeItem) + _, err = File.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM + if err != nil { + _ = acuraSession.Rollback() + fmt.Println("写入csv文件失败, error:" + err.Error()) + return + } + for _, item := range writeLi { + _, err = File.WriteString(item) + if err != nil { + _ = acuraSession.Rollback() + fmt.Println("写入csv文件失败, error:" + err.Error()) + return + } + _, err = File.Write([]byte{'\r', '\n'}) if err != nil { _ = acuraSession.Rollback() fmt.Println("写入csv文件失败, error:" + err.Error()) return } } - WriterCsv.Flush() //刷新,不刷新是无法写入的 + File.Close() + //创建写入接口 + //WriterCsv := csv.NewWriter(File) + + //for _, writeItem := range writeLi { + // //写入一条数据,传入数据为切片(追加模式) + // err = WriterCsv.Write(writeItem) + // if err != nil { + // _ = acuraSession.Rollback() + // fmt.Println("写入csv文件失败, error:" + err.Error()) + // return + // } + //} + //WriterCsv.Flush() //刷新,不刷新是无法写入的 err = acuraSession.Commit() if err != nil { fmt.Println("事务提交失败, error:" + err.Error()) diff --git a/etl_task/BackFlushShipOrder.go b/etl_task/BackFlushShipOrder.go index f4c5b30..0228073 100644 --- a/etl_task/BackFlushShipOrder.go +++ b/etl_task/BackFlushShipOrder.go @@ -9,7 +9,6 @@ import ( metaJit "LAPP_ACURA_MOM_BACKEND/meta/jit" modelJit "LAPP_ACURA_MOM_BACKEND/models/jit" "LAPP_ACURA_MOM_BACKEND/utils" - "encoding/csv" "fmt" _ "github.com/denisenkom/go-mssqldb" _ "github.com/go-sql-driver/mysql" @@ -168,7 +167,7 @@ func main() { } shipOrderIdLi := make([]interface{}, len(shipOrderDataLi)) - waitWriteLi := make([][]string, 0) + waitWriteLi := make([]string, 0) for _, shipOrderData := range shipOrderDataLi { artQtyMap := make(map[string]int) @@ -228,7 +227,19 @@ func main() { index1 := artId index2 := strconv.Itoa(qty) index3 := now.Format("01/02/06") - str := []string{index1, index2, index3, index4, index5, index6, index7, index8, shipOrderId, strconv.Itoa(pos), "\n"} //需要写入csv的数据,切片类型 + str := fmt.Sprintf(`"%s",%s,%s,"%s","%s","%s","%s","%s","%s",%s,`, + index1, + index2, + index3, + index4, + index5, + index6, + index7, + index8, + shipOrderId, + strconv.Itoa(pos), + ) + //str := []string{index1, index2, index3, index4, index5, index6, index7, index8, shipOrderId, strconv.Itoa(pos), "\n"} //需要写入csv的数据,切片类型 pos++ waitWriteLi = append(waitWriteLi, str) } @@ -251,17 +262,37 @@ func main() { fmt.Println("创建csv文件失败, error:" + err.Error()) return } - defer File.Close() - WriterCsv := csv.NewWriter(File) - for _, writeItem := range waitWriteLi { - //写入一条数据,传入数据为切片(追加模式) - err = WriterCsv.Write(writeItem) + //WriterCsv := csv.NewWriter(File) + //for _, writeItem := range waitWriteLi { + // //写入一条数据,传入数据为切片(追加模式) + // err = WriterCsv.Write(writeItem) + // if err != nil { + // fmt.Println("写入csv文件失败, error:" + err.Error()) + // return + // } + //} + //WriterCsv.Flush() //刷新,不刷新是无法写入的 + _, err = File.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM + if err != nil { + _ = acuraSession.Rollback() + fmt.Println("写入csv文件失败, error:" + err.Error()) + return + } + for _, item := range waitWriteLi { + _, err = File.WriteString(item) + if err != nil { + _ = acuraSession.Rollback() + fmt.Println("写入csv文件失败, error:" + err.Error()) + return + } + _, err = File.Write([]byte{'\r', '\n'}) if err != nil { + _ = acuraSession.Rollback() fmt.Println("写入csv文件失败, error:" + err.Error()) return } } - WriterCsv.Flush() //刷新,不刷新是无法写入的 + File.Close() err = acuraSession.Commit() if err != nil { fmt.Println("事务提交失败, error:" + err.Error())