|
@@ -296,7 +296,7 @@ func (table *Table) KVFilter() {
|
|
|
onePkg, _ := table.BlockPackage.Map[onePkgKey].(*u.BlockPackage)
|
|
|
if onePkg != nil && onePkg.WinnerOrder != nil && len(onePkg.WinnerOrder) == 0 {
|
|
|
onePkg.WinnerOrder = table.WinnerOrder
|
|
|
- table.BlockPackage.Map[onePkgKey] = onePkg
|
|
|
+ table.BlockPackage.AddKey(onePkgKey, onePkg)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -511,11 +511,11 @@ func (table *Table) MergerToTableresult() {
|
|
|
//对多包表格的多包值的合并处理
|
|
|
if table.BPackage {
|
|
|
table.TableResult.IsMultiPackage = true
|
|
|
- for k, v := range table.BlockPackage.Map {
|
|
|
- package1 := table.TableResult.PackageMap.Map[k]
|
|
|
+ for _, v2 := range table.BlockPackage.Keys {
|
|
|
+ package1 := table.TableResult.PackageMap.Map[v2]
|
|
|
if package1 == nil {
|
|
|
- table.TableResult.PackageMap.AddKey(k, v)
|
|
|
- if vvv, ok := v.(*u.BlockPackage); ok {
|
|
|
+ table.TableResult.PackageMap.AddKey(v2, table.BlockPackage.Map[v2])
|
|
|
+ if vvv, ok := table.BlockPackage.Map[v2].(*u.BlockPackage); ok {
|
|
|
if vvv.TableKV != nil && len(vvv.TableKV.KvTags) > 0 {
|
|
|
MergeKvTags(table.TableResult.KvTags, vvv.TableKV.KvTags)
|
|
|
}
|
|
@@ -525,7 +525,7 @@ func (table *Table) MergerToTableresult() {
|
|
|
if bp.TableKV == nil {
|
|
|
bp.TableKV = u.NewJobKv()
|
|
|
}
|
|
|
- v1 := v.(*u.BlockPackage)
|
|
|
+ v1 := table.BlockPackage.Map[v2].(*u.BlockPackage)
|
|
|
if v1.TableKV != nil && len(v1.TableKV.KvTags) > 0 {
|
|
|
for k2, v2 := range v1.TableKV.KvTags {
|
|
|
if k2 == "" {
|
|
@@ -533,7 +533,7 @@ func (table *Table) MergerToTableresult() {
|
|
|
}
|
|
|
isExists := false
|
|
|
for _, v2v := range v2 {
|
|
|
- if v2v.Value == ""{
|
|
|
+ if v2v.Value == "" {
|
|
|
continue
|
|
|
}
|
|
|
for _, v2vv := range bp.TableKV.KvTags[k2] {
|
|
@@ -549,7 +549,7 @@ func (table *Table) MergerToTableresult() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if len(v1.WinnerOrder)>0 && len(bp.WinnerOrder) == 0{
|
|
|
+ if len(v1.WinnerOrder) > 0 && len(bp.WinnerOrder) == 0 {
|
|
|
bp.WinnerOrder = v1.WinnerOrder
|
|
|
}
|
|
|
//table.TableResult.PackageMap.AddKey(k, v)
|
|
@@ -585,20 +585,23 @@ func (table *Table) MergerToTableresult() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if table.BlockPackage.Map != nil{
|
|
|
- for _,v := range table.BlockPackage.Map{
|
|
|
- if vvv, ok := v.(*u.BlockPackage); ok {
|
|
|
- if len(vvv.TableKV.KvTags) > 0{
|
|
|
- for kk,vv := range vvv.TableKV.KvTags{
|
|
|
- if kk == ""{
|
|
|
- continue
|
|
|
- }
|
|
|
- if len(table.TableResult.KvTags[kk]) == 0 {
|
|
|
- table.TableResult.KvTags[kk] = vv
|
|
|
+ if table.BlockPackage != nil && len(table.BlockPackage.Keys) > 0 {
|
|
|
+ for _, v := range table.BlockPackage.Keys {
|
|
|
+ if table.BlockPackage.Map[v] != nil {
|
|
|
+ if vvv, ok := table.BlockPackage.Map[v].((*u.BlockPackage)); ok {
|
|
|
+ if vvv.TableKV != nil && len(vvv.TableKV.KvTags) > 0 {
|
|
|
+ for kk, vv := range vvv.TableKV.KvTags {
|
|
|
+ if kk == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if len(table.TableResult.KvTags[kk]) == 0 {
|
|
|
+ table.TableResult.KvTags[kk] = vv
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1353,9 +1356,9 @@ func (table *Table) ComputeRowColIsKeyRation() {
|
|
|
sv.AddKey(k, v)
|
|
|
}
|
|
|
if len(sv.Keys) > 0 {
|
|
|
- for k1, v1 := range sv.Map {
|
|
|
- if tr.TDs[0].SortKV.Map[k1] == nil {
|
|
|
- table.SortKV.AddKey(k1, v1)
|
|
|
+ for _, v1 := range sv.Keys {
|
|
|
+ if tr.TDs[0].SortKV.Map[v1] == nil {
|
|
|
+ table.SortKV.AddKey(v1, sv.Map[v1])
|
|
|
}
|
|
|
}
|
|
|
} else if table.Tag == "" && k == 0 && len(tr.TDs[0].Val) > 11 {
|
|
@@ -1435,11 +1438,11 @@ func (table *Table) FindKV() {
|
|
|
bodirect = bo
|
|
|
}
|
|
|
if len(td.SortKV.Map) > 0 {
|
|
|
- for tdk, tdv := range td.SortKV.Map {
|
|
|
- if tdv == nil || tdv == "" { //value为空或者null不再添加到table.SortKV
|
|
|
+ for _, tdv := range td.SortKV.Keys {
|
|
|
+ if tdv == "" || td.SortKV.Map[tdv] == ""{ //value为空或者null不再添加到table.SortKV
|
|
|
continue
|
|
|
}
|
|
|
- table.SortKV.AddKey(tdk, tdv)
|
|
|
+ table.SortKV.AddKey(tdv, td.SortKV.Map[tdv])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1598,7 +1601,7 @@ func GetBidOrder(td *TD, direct, n int) (d int, res bool) {
|
|
|
"sort": GetBidSort(td.Val, n),
|
|
|
})
|
|
|
res = true
|
|
|
- td.TR.Table.SortKV.Map[NullTxtBid] = a1
|
|
|
+ td.TR.Table.SortKV.AddKey(NullTxtBid, a1)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1625,7 +1628,7 @@ func GetBidOrder(td *TD, direct, n int) (d int, res bool) {
|
|
|
"sort": GetBidSort(td.Val, n),
|
|
|
})
|
|
|
res = true
|
|
|
- td.TR.Table.SortKV.Map[NullTxtBid] = a1
|
|
|
+ td.TR.Table.SortKV.AddKey(NullTxtBid, a1)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1647,7 +1650,7 @@ func GetBidOrder(td *TD, direct, n int) (d int, res bool) {
|
|
|
"sort": GetBidSort(td.Val, n),
|
|
|
})
|
|
|
res = true
|
|
|
- td.TR.Table.SortKV.Map[NullTxtBid] = a1
|
|
|
+ td.TR.Table.SortKV.AddKey(NullTxtBid, a1)
|
|
|
//} else if ((btd != nil && !btd.BH && btd.Valtype == "BO") || direct == 2) && rtd != nil && filter_zbdw_v.MatchString(rtd.Val) {
|
|
|
} else if ((btd != nil && !btd.BH) || direct == 2) && rtd != nil && filter_zbdw_v2.MatchString(rtd.Val) {
|
|
|
d = 2
|
|
@@ -1663,7 +1666,7 @@ func GetBidOrder(td *TD, direct, n int) (d int, res bool) {
|
|
|
"sort": GetBidSort(td.Val, n),
|
|
|
})
|
|
|
res = true
|
|
|
- td.TR.Table.SortKV.Map[NullTxtBid] = a1
|
|
|
+ td.TR.Table.SortKV.AddKey(NullTxtBid, a1)
|
|
|
}
|
|
|
}
|
|
|
return
|
|
@@ -1970,9 +1973,9 @@ func (tn *Table) CheckMultiPackageByTable() (b bool, index []string) {
|
|
|
tn.isGoonNext()
|
|
|
}
|
|
|
//查找分包中的中标人排序
|
|
|
- if tn.BlockPackage != nil && tn.BlockPackage.Map != nil && len(tn.BlockPackage.Map) > 0 {
|
|
|
- for _, v := range tn.BlockPackage.Map {
|
|
|
- vv := v.(*u.BlockPackage)
|
|
|
+ if tn.BlockPackage != nil && tn.BlockPackage.Keys != nil && len(tn.BlockPackage.Keys) > 0 {
|
|
|
+ for _, v := range tn.BlockPackage.Keys {
|
|
|
+ vv := tn.BlockPackage.Map[v].(*u.BlockPackage)
|
|
|
if vv.WinnerOrder == nil || len(vv.WinnerOrder) == 0 {
|
|
|
vv.WinnerOrder = winnerOrderEntity.Find(vv.Text, true, 2)
|
|
|
}
|
|
@@ -1986,8 +1989,8 @@ func (tn *Table) manyPackageProcessByIndex(index []string, standIndex_pos []int)
|
|
|
if len(index) == 1 { //是一个的情况
|
|
|
if len(tn.SortKV.Keys) < 10 && tn.ColNum < 10 && tn.RowNum < 4 { //table带排序的KV值小于10并且小于10列和小于4行
|
|
|
beq := true
|
|
|
- for _, v2 := range tn.SortKV.Map {
|
|
|
- if _, ok := v2.(string); !ok {
|
|
|
+ for _, v2 := range tn.SortKV.Keys {
|
|
|
+ if _, ok := tn.SortKV.Map[v2].(string); !ok {
|
|
|
beq = false
|
|
|
break
|
|
|
}
|
|
@@ -1995,8 +1998,8 @@ func (tn *Table) manyPackageProcessByIndex(index []string, standIndex_pos []int)
|
|
|
if beq { //统一处理为数组
|
|
|
td := tn.GetTdByRCNo(tn.RowNum-1, 0)
|
|
|
if !td.BH && FindVal2_1.MatchString(td.Val) {
|
|
|
- for k2, v2 := range tn.SortKV.Map {
|
|
|
- tn.SortKV.Map[k2] = []string{v2.(string)}
|
|
|
+ for _, v2 := range tn.SortKV.Keys {
|
|
|
+ tn.SortKV.AddKey(v2,[]string{tn.SortKV.Map[v2].(string)})
|
|
|
}
|
|
|
} else {
|
|
|
//没有处理成数组的情况下,继续调用正文查找分包的方法
|
|
@@ -2319,7 +2322,7 @@ func (tn *Table) assemblePackage(k1, v1, key string) {
|
|
|
if !excludeKey.MatchString(k1) {
|
|
|
bp.Text += fmt.Sprintf("%v:%v\n", k1, v1)
|
|
|
}
|
|
|
- tn.BlockPackage.Map[key] = bp
|
|
|
+ tn.BlockPackage.AddKey(key, bp)
|
|
|
}
|
|
|
|
|
|
/**
|