package test import ( "context" "encoding/json" "fmt" "testing" _ "github.com/gogf/gf/contrib/drivers/mysql/v2" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" "github.com/tiger1103/gfast/v3/internal/app/system/dao" "github.com/tiger1103/gfast/v3/internal/app/system/model/entity" "github.com/tiger1103/gfast/v3/third/create" ) // 构建 gantt json 数据 func Test_createGanttJson(t *testing.T) { a, err := create.FetchGanttData(context.Background(), 2) if err != nil { t.Fatal(err) } data, _ := json.Marshal(a) println(string(data)) } // 测试创建模板数据 func Test_createTemplateData(t *testing.T) { _, err := create.FetchTemplateData(context.Background(), 2) if err != nil { t.Fatal(err) } } // 测试element 数据拼接 func Test_createElement(t *testing.T) { group, err := create.FetchElementData(context.Background(), 2) if err != nil { t.Fatal(err) } data, _ := json.Marshal(group) println(string(data)) } // 测试箱变导入 // func Test_importXiangbian(t *testing.T) { // filePath := "" // err1, s2 := shp.ReadShp(filePath) // if err1 != nil { // liberr.ErrIsNil(ctx, err1) // } // } // FetchTemplateData 获取模板数据后绑定到指定的 ProJectID func Test_FetchTemplateData(t *testing.T) { ctx := context.Background() result, err := create.FetchTemplateData(ctx, 183) if err != nil { t.Fatal(err) } _, err = dao.WorkStatus.Ctx(ctx).Data(result).Batch(50).Insert() if err != nil { t.Fatal(err) } } // 测试导入方阵后绑定到指定的 ProJectID 后修改计划表中数据 func Test_FetchElementData(t *testing.T) { // 根据项目ID获取方阵数据 ctx := context.Background() projectID := 2 // 获取指定 ProJectID 下的所有方阵 group := []entity.QianqiFangzhen{} if err := dao.QianqiFangzhen.Ctx(ctx).Where(dao.QianqiFangzhen.Columns().ProjectId, projectID).Scan(&group); err != nil { t.Fatal(err) } // 获取指定 ProJectID 下的所有箱变数量 // count, err := dao.QianqiXiangbian.Ctx(ctx).Where(dao.QianqiXiangbian.Columns().ProjectId, projectID).Count() // if err != nil { // t.Fatal(err) // } // 遍历方阵 for _, p := range group { // 根据 p 的主键ID // 在 Work_Status 表中关联找到其数据 // 更新子数据 _, err := dao.WorkStatus.Ctx(ctx).Where(dao.WorkStatus.Columns().FangzhenId, p.Id). // Where(dao.WorkStatus.Columns().Type, consts.). // Where(dao.WorkStatus.Columns()., 1). WhereNotNull(dao.WorkStatus.Columns().Parent).Data( g.Map{ dao.WorkStatus.Columns().Total: gdb.Raw(fmt.Sprintf("total+%d", 1)), }, ).Update() if err != nil { t.Fatal(err) } // count, err := result.RowsAffected() // if err != nil { // t.Fatal(err) // } // 获取所有子集数据总和 // all, err := dao.WorkStatus.Ctx(ctx).Where(dao.WorkStatus.Columns().FangzhenId, p.Id). // Where(dao.WorkStatus.Columns().Type, consts.BoxChange). // WhereNotNull(dao.WorkStatus.Columns().Parent).Count() // if err != nil { // t.Fatal(err) // } // 更新父数据 // if _, err := dao.WorkStatus.Ctx(ctx).Where(dao.WorkStatus.Columns().Id, projectID). // Where(dao.WorkStatus.Columns().Type, consts.BoxChange). // WhereNull(dao.WorkStatus.Columns().Parent).Data( // g.Map{ // dao.WorkStatus.Columns().Total: gdb.Raw(fmt.Sprintf("total+%d", count)), // }, // ).Update(); err != nil { // t.Fatal(err) // } } } // 拼接 model.WorkStatusChild // func Test_createWorkStatusChild(t *testing.T) { // list := []model.WorkStatusChild{} // ctx := context.Background() // // 获取指定 ProJectID 下的所有方阵 // group := []entity.QianqiFangzhen{} // if err := dao.QianqiFangzhen.Ctx(ctx).Where(dao.QianqiFangzhen.Columns().ProjectId, 2).Scan(&group); err != nil { // t.Fatal(err) // } // for _, p := range group { // // 获取指定 ProJectID 下的所有箱变 // xiangbianGroup := []entity.QianqiXiangbian{} // if err := dao.QianqiXiangbian.Ctx(ctx).Where(dao.QianqiXiangbian.Columns().ProjectId, p.Id).Scan(&xiangbianGroup); err != nil { // t.Fatal(err) // } // fangzhenList := []model.FangzhenList{} // for _, x := range xiangbianGroup { // fangzhenList = append(fangzhenList, model.FangzhenList{ // FangzhenID: x.Id, // FangzhenName: x.Name, // }) // } // list = append(list, model.WorkStatusChild{ // ProJectID: p.ProjectId, // FangzhenList: fangzhenList, // }) // } // data, _ := json.Marshal(list) // println(string(data)) // } // 批量执行 SQL func Test_batchUpdate(t *testing.T) { }