|
@@ -81,8 +81,8 @@ func ObjToFloat(data []interface{}) []interface{} {
|
|
|
//金额转换
|
|
|
func ObjToMoney(data []interface{}) []interface{} {
|
|
|
isfindUnit := true
|
|
|
- tmpstr :=(data)[0]
|
|
|
- if utf8.RuneCountInString(util.ObjToString(tmpstr)) > 30 {
|
|
|
+ tmpstr := (data)[0]
|
|
|
+ if utf8.RuneCountInString(util.ObjToString(tmpstr)) > 20 {
|
|
|
(data)[0] = 0
|
|
|
data = append(data, false)
|
|
|
return data
|
|
@@ -114,12 +114,21 @@ func ObjToMoney(data []interface{}) []interface{} {
|
|
|
data = append(data, true)
|
|
|
return data
|
|
|
}
|
|
|
+
|
|
|
//["中标金额","成交金额","合同金额","中标价","成交价","成交价格","中标(成交)金额","投标报价","中标标价","成交结果"]
|
|
|
//["0元","零元","0.0万元","¥0元"]
|
|
|
var moneyUnitRegBool = regexp.MustCompile(`(中标金额|成交金额|合同金额|中标价|成交价|成交价格|中标\(成交\)金额|投标报价|中标标价|成交结果)?[::\s]?(0|零|0.0|¥0)+(0|\.)*[\s]?(万|元|){0,2}[\s]?((人民币))?$`)
|
|
|
+
|
|
|
//数字金额转换
|
|
|
func numMoney(data []interface{}) ([]interface{}, bool) {
|
|
|
- tmp := fmt.Sprintf("%f",data[0])
|
|
|
+ tmp := fmt.Sprint(data[0])
|
|
|
+ //费率转换% ‰
|
|
|
+ flv := float64(1)
|
|
|
+ if strings.HasSuffix(tmp, "%") {
|
|
|
+ flv = 0.01
|
|
|
+ } else if strings.HasSuffix(tmp, "‰") {
|
|
|
+ flv = 0.001
|
|
|
+ }
|
|
|
repUnit := float64(1)
|
|
|
if regQianw.MatchString(tmp) {
|
|
|
tmp = strings.Replace(tmp, "千万", "万", -1)
|
|
@@ -197,9 +206,9 @@ func numMoney(data []interface{}) ([]interface{}, bool) {
|
|
|
}
|
|
|
fnum = fnum * repUnit
|
|
|
if unit == float64(0) {
|
|
|
- data[0] = fnum
|
|
|
+ data[0] = fnum * flv
|
|
|
} else {
|
|
|
- data[0] = fnum * unit
|
|
|
+ data[0] = fnum * unit * flv
|
|
|
}
|
|
|
if unit == 10000 {
|
|
|
return data, false
|