|
@@ -44,6 +44,7 @@ var (
|
|
|
FilterKey_2 = regexp.MustCompile("招标|投标|项目")
|
|
|
//根据表格的key进行分包打分
|
|
|
FindKey_2 = regexp.MustCompile("([分子][包标](号)?|标[号项段包](划分)?|包件?[号段名数])")
|
|
|
+ FindKey_3 = regexp.MustCompile("(标段编号)")
|
|
|
//对值进行分包判断
|
|
|
FindVal_1 = regexp.MustCompile("[第]?([一二三四五六七八九十0-9A-Za-zⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ]+)((子|合同|分|施工|监理)?(标段?|包|合同段|标包))|((子|合同|分|施工|监理)?(标|包)(段|号)?)[ \u3000\u2003\u00a0]*([一二三四五六七八九十0-9A-Za-zⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ]+)")
|
|
|
FindVal2_1 = regexp.MustCompile("([一二三四五六七八九十0-9A-Za-zⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ\\-]+)|^(设计|施工|监理|验收)[分子]?[标包]?[段号]?$")
|
|
@@ -605,6 +606,15 @@ func (table *Table) MergerToTableresult() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if bp.Bidamount <=0 && !bp.IsTrueBidamount{
|
|
|
+ bp.Bidamount = v1.Bidamount
|
|
|
+ bp.IsTrueBidamount = v1.IsTrueBidamount
|
|
|
+ }
|
|
|
+ if bp.Budget <= 0 && !bp.IsTrueBudget{
|
|
|
+ bp.Budget = v1.Budget
|
|
|
+ bp.IsTrueBudget = v1.IsTrueBudget
|
|
|
+ }
|
|
|
+ bp.Text += bp.Text
|
|
|
if len(v1.WinnerOrder) > 0 && len(bp.WinnerOrder) == 0 {
|
|
|
bp.WinnerOrder = v1.WinnerOrder
|
|
|
}
|
|
@@ -2032,10 +2042,9 @@ func (tn *Table) CheckMultiPackageByTable(isSite bool, codeSite string) (b bool,
|
|
|
}
|
|
|
//kv.KvTags = tn.StandKV
|
|
|
bp := &u.BlockPackage{}
|
|
|
- bp.Index = v //序号 (转换后编号,只有数字或字母)
|
|
|
- bp.Origin = oldIndex[nk] //包的原始值
|
|
|
- bp.TableKV = kv //table kv (分出的对应的KV值)
|
|
|
- bp.Text = tn.Html
|
|
|
+ bp.Index = v //序号 (转换后编号,只有数字或字母)
|
|
|
+ bp.Origin = oldIndex[nk] //包的原始值
|
|
|
+ bp.TableKV = kv //table kv (分出的对应的KV值)
|
|
|
tn.BlockPackage.AddKey(v, bp) //table子包数组
|
|
|
}
|
|
|
}
|
|
@@ -2145,7 +2154,7 @@ func (tn *Table) manyPackageProcessByIndex(index []string, standIndex_pos []int,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- } else if vcgdw.Value == "中标金额" && len(val) == len(index){
|
|
|
+ } else if vcgdw.Value == "中标金额" && len(val) == len(index) {
|
|
|
for bi, bv := range index {
|
|
|
if tn.BlockPackage.Map[bv].(*u.BlockPackage).Bidamount == 0 {
|
|
|
moneys := clear.ObjToMoney([]interface{}{val[bi], ""})
|
|
@@ -2371,6 +2380,12 @@ func initCheckMultiPackageByTable(tn *Table, key_index int, index []string, inde
|
|
|
index_pos = append(index_pos, in2)
|
|
|
val += 1
|
|
|
pac++
|
|
|
+ } else if FindKey_3.MatchString(k) {
|
|
|
+ //5db2a101a5cb26b9b73054ac
|
|
|
+ index = append(index, v1)
|
|
|
+ index_pos = append(index_pos, in2)
|
|
|
+ val += 1
|
|
|
+ pac++
|
|
|
} else {
|
|
|
if ok, v1new := isHasOnePkgAndNoKv(v1); ok { //td的值里面有一个包,并且没有冒号kv
|
|
|
haspkgs = append(haspkgs, v1new)
|
|
@@ -2431,6 +2446,32 @@ func (tn *Table) assemblePackage(k1, v1, key string, isSite bool, codeSite strin
|
|
|
for k3, v3 := range kvTags {
|
|
|
if bp.TableKV.KvTags[k3] == nil {
|
|
|
bp.TableKV.KvTags[k3] = append(bp.TableKV.KvTags[k3], v3...)
|
|
|
+ } else if k3 == "预算" {
|
|
|
+ if bp.Budget == 0 {
|
|
|
+ moneys := clear.ObjToMoney([]interface{}{v3[0], ""})
|
|
|
+ if len(moneys) > 0 {
|
|
|
+ if vf, ok := moneys[0].(float64); ok {
|
|
|
+ bp.Budget = vf
|
|
|
+ bp.IsTrueBudget = moneys[len(moneys)-1].(bool)
|
|
|
+ } else if vi, ok := moneys[0].(int); ok {
|
|
|
+ bp.Budget = float64(vi)
|
|
|
+ bp.IsTrueBudget = moneys[len(moneys)-1].(bool)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if k3 == "中标金额" {
|
|
|
+ if bp.Bidamount == 0 {
|
|
|
+ moneys := clear.ObjToMoney([]interface{}{v3[0], ""})
|
|
|
+ if len(moneys) > 0 {
|
|
|
+ if vf, ok := moneys[0].(float64); ok {
|
|
|
+ bp.Bidamount = vf
|
|
|
+ bp.IsTrueBidamount = moneys[len(moneys)-1].(bool)
|
|
|
+ } else if vi, ok := moneys[0].(int); ok {
|
|
|
+ bp.Bidamount = float64(vi)
|
|
|
+ bp.IsTrueBidamount = moneys[len(moneys)-1].(bool)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|