作者 yangfu

列头不能为空

... ... @@ -68,6 +68,26 @@ func (tableEventService *TableEventService) HandlerTableAffectedMarkToConflictSt
}
}
//tableDependencyService, _ := domainService.NewTableDependencyService(transactionContext.(*pgTransaction.TransactionContext))
//tableDependTree := tableDependencyService.TableDependTree(tables, tableId)
//tree := tableDependTree.Tree
//
//querySetRepository, _, _ := factory.FastPgQuerySet(transactionContext, 0)
//if len(tree) > 0 {
// _, querySets, _ := querySetRepository.Find(map[string]interface{}{
// "types": []string{domain.SchemaTable.ToString(), domain.SubProcessTable.ToString(), domain.CalculateTable.ToString()},
// "bindTableIds": tree,
// })
// for _, querySet := range querySets {
// log.Logger.Debug(fmt.Sprintf("【集合状态更新】 id:%v name:%v 标记冲突", querySet.QuerySetId, querySet.Name))
// querySet.QuerySetInfo.WithConflictStatus()
// _, err = querySetRepository.Save(querySet)
// if err != nil {
// return nil, err
// }
// }
//}
if err := transactionContext.CommitTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
... ... @@ -90,6 +110,7 @@ func checkStructChange(cmd *command.TableEventCommand) bool {
switch t {
case domain.SchemaTable.ToString(), domain.SubProcessTable.ToString():
// 第一步表有变更
newSetDepTables := newSet.GetDependencyTables(newSet.QueryComponents)
oldSetDepTables := newSet.GetDependencyTables(oldSet.QueryComponents)
sort.SliceStable(newSetDepTables, func(i, j int) bool {
... ... @@ -103,9 +124,14 @@ func checkStructChange(cmd *command.TableEventCommand) bool {
return true
}
case domain.CalculateTable.ToString():
case domain.CalculateItem.ToString(), domain.CalculateSet.ToString():
return false
}
if newTable == nil || oldTable == nil {
return false
}
// 第二步判断字段是否有变更
newTableFields := tableFields(newTable)
oldTableFields := tableFields(oldTable)
sort.Strings(newTableFields)
... ... @@ -114,9 +140,6 @@ func checkStructChange(cmd *command.TableEventCommand) bool {
log.Logger.Debug(fmt.Sprintf("计算表:%v 结构变更 %v -> %v", t, oldTableFields, newTableFields))
return true
}
case domain.CalculateItem.ToString(), domain.CalculateSet.ToString():
return false
}
return false
}
... ...
... ... @@ -451,48 +451,49 @@ func (d *DataLayoutDataTable) BlockData(cells *domain.LayoutCell) ([]string, int
}
func (d *DataLayoutDataTable) Shrink() error {
x := d.PointEnd.X - d.PointBegin.X
y := d.PointEnd.Y - d.PointBegin.Y
x := d.PointEnd.X - 0 //d.PointBegin.X
y := d.PointEnd.Y - 0 //d.PointBegin.Y
data := make([][]string, x+1)
for i := range data {
data[i] = make([]string, y+1)
}
iData := 0
for i := d.PointBegin.X; i <= d.PointEnd.X; i++ {
for i := 0; i <= d.PointEnd.X; i++ { //d.PointBegin.X
jData := 0
for j := d.PointBegin.Y; j <= d.PointEnd.Y; j++ {
for j := 0; j <= d.PointEnd.Y; j++ { //d.PointBegin.Y
data[iData][jData] = d.DataTable.Data[i][j]
jData++
}
iData++
}
d.DataTable.Data = data
for i := 0; i <= y; i++ {
d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{
Name: fmt.Sprintf("列%d", i),
SQLName: fmt.Sprintf("col%d", i),
SQLType: domain.String.ToString(),
})
}
// 默认计算集第一行作为标题
//if len(data) >= 1 {
// d.DataTable.Data = data[1:]
// columnMap := collection.NewSet()
// for i := 0; i < len(data[0]); i++ {
// if len(data[0][i]) == 0 {
// return fmt.Errorf("计算集标题第%d列不能为空", i+1)
// }
// if columnMap.Contains(data[0][i]) {
// return fmt.Errorf("计算集第%d列重复:%v", i+1, data[0][i])
// }
// columnMap.Add(data[0][i])
//d.DataTable.Data = data
//for i := 0; i <= y; i++ {
// d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{
// Name: data[0][i],
// Name: fmt.Sprintf("列%d", i),
// SQLName: fmt.Sprintf("col%d", i),
// SQLType: domain.String.ToString(),
// })
// }
//}
// 默认计算集第一行作为标题
if len(data) >= 1 {
d.DataTable.Data = data[1:]
columnMap := collection.NewSet()
for i := 0; i < len(data[0]); i++ {
columnValue := strings.TrimSpace(data[0][i])
if len(columnValue) == 0 {
return fmt.Errorf("计算集标题第%d列不能为空", i+1)
}
if columnMap.Contains(columnValue) {
return fmt.Errorf("计算集第%d列重复:%v", i+1, data[0][i])
}
columnMap.Add(columnValue)
d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{
Name: columnValue,
SQLName: fmt.Sprintf("col%d", i),
SQLType: domain.String.ToString(),
})
}
}
return nil
}
... ...