178 lines
4.5 KiB
Go
178 lines
4.5 KiB
Go
|
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) {
|
||
|
|
||
|
}
|