|
@@ -534,8 +534,8 @@ func (p *ProjectTask) NewProject(tmp map[string]interface{}, thisinfo *Info) (st
|
|
|
set["multipackage"] = 0
|
|
|
}
|
|
|
|
|
|
- p1.InfoFiled = make(map[string]InfoFiled)
|
|
|
- infofiled := InfoFiled{
|
|
|
+ p1.InfoFiled = make(map[string]InfoField)
|
|
|
+ infofiled := InfoField{
|
|
|
Budget: thisinfo.Budget,
|
|
|
Bidamount: thisinfo.Bidamount,
|
|
|
ContractCode: thisinfo.ContractCode,
|
|
@@ -821,7 +821,7 @@ func (p *ProjectTask) UpdateProject(tmp map[string]interface{}, thisinfo *Info,
|
|
|
CountAmount(pInfo, thisinfo)
|
|
|
set["budget"] = pInfo.Budget
|
|
|
set["bidamount"] = pInfo.Bidamount
|
|
|
- infofiled := InfoFiled{
|
|
|
+ infofiled := InfoField{
|
|
|
Budget: thisinfo.Budget,
|
|
|
Bidamount: thisinfo.Bidamount,
|
|
|
ContractCode: thisinfo.ContractCode,
|
|
@@ -829,12 +829,14 @@ func (p *ProjectTask) UpdateProject(tmp map[string]interface{}, thisinfo *Info,
|
|
|
ProjectCode: thisinfo.ProjectCode,
|
|
|
Bidstatus: bs,
|
|
|
}
|
|
|
- pInfo.InfoFiled[thisinfo.Id] = infofiled
|
|
|
+ copyMap := Copy(pInfo.InfoFiled).(map[string]InfoField)
|
|
|
+ copyMap[thisinfo.Id] = infofiled
|
|
|
tmpMap := make(map[string]interface{})
|
|
|
- for k, v := range pInfo.InfoFiled{
|
|
|
+ for k, v := range copyMap{
|
|
|
tmpMap[k] = StructToMap(v)
|
|
|
}
|
|
|
tmpMap[thisinfo.Id] = StructToMap(infofiled)
|
|
|
+ pInfo.InfoFiled = copyMap
|
|
|
set["infofield"] = tmpMap
|
|
|
|
|
|
set["mpn"] = pInfo.MPN
|
|
@@ -960,8 +962,12 @@ func packageEle(map1 map[string]interface{}, id string) map[string]interface{} {
|
|
|
|
|
|
func PackageFormat(info *Info, project *ProjectInfo) map[string]interface{} {
|
|
|
p1 := map[string]interface{}{}
|
|
|
- if project != nil && project.Package != nil && len(project.Package) > 0 {
|
|
|
- p1 = project.Package
|
|
|
+ packageCopy := make(map[string]interface{})
|
|
|
+ if project != nil && project.Package != nil {
|
|
|
+ packageCopy = Copy(project.Package).(map[string]interface{})
|
|
|
+ }
|
|
|
+ if packageCopy != nil && len(packageCopy) > 0 {
|
|
|
+ p1 = packageCopy
|
|
|
for k, v := range info.Package {
|
|
|
if v1, ok := v.(map[string]interface{}); ok {
|
|
|
v2 := map[string]interface{}{}
|
|
@@ -986,7 +992,7 @@ func PackageFormat(info *Info, project *ProjectInfo) map[string]interface{} {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- for k, v := range info.Package {
|
|
|
+ for k, v := range packageCopy {
|
|
|
v1, _ := v.(map[string]interface{})
|
|
|
p2 := map[string]interface{}{}
|
|
|
p2 = packageEle(v1, info.Id)
|
|
@@ -996,6 +1002,7 @@ func PackageFormat(info *Info, project *ProjectInfo) map[string]interface{} {
|
|
|
p1[k] = []map[string]interface{}{p2}
|
|
|
}
|
|
|
}
|
|
|
+ p1 = packageCopy
|
|
|
return p1
|
|
|
}
|
|
|
|
|
@@ -1039,20 +1046,23 @@ func CountAmount(project *ProjectInfo, info *Info) {
|
|
|
}
|
|
|
}else {
|
|
|
//招标不是单包
|
|
|
- flag := false
|
|
|
- if project.InfoFiled != nil && len(project.InfoFiled) > 0 {
|
|
|
- for _, res := range project.InfoFiled {
|
|
|
- if res.ProjectName == info.ProjectName {
|
|
|
- if res.Budget < info.Budget {
|
|
|
- project.Budget = project.Budget - res.Budget + info.Budget
|
|
|
- }
|
|
|
- flag = true
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- if !flag {
|
|
|
- project.Budget = project.Budget + info.Budget
|
|
|
- }
|
|
|
+ //flag := false
|
|
|
+ //if project.InfoFiled != nil && len(project.InfoFiled) > 0 {
|
|
|
+ // for _, res := range project.InfoFiled {
|
|
|
+ // if res.ProjectName == info.ProjectName {
|
|
|
+ // if res.Budget < info.Budget {
|
|
|
+ // project.Budget = project.Budget - res.Budget + info.Budget
|
|
|
+ // }
|
|
|
+ // flag = true
|
|
|
+ // break
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if !flag {
|
|
|
+ // project.Budget = project.Budget + info.Budget
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ if project.Budget < info.Budget {
|
|
|
+ project.Budget = info.Budget
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1095,30 +1105,55 @@ func CountAmount(project *ProjectInfo, info *Info) {
|
|
|
}
|
|
|
}else {
|
|
|
//招标不是单包
|
|
|
- flag := false
|
|
|
- if project.InfoFiled != nil && len(project.InfoFiled) > 0 {
|
|
|
- for _, res := range project.InfoFiled {
|
|
|
- if res.Bidstatus == "合同" && res.ContractCode != "" && info.SubType == "合同" && info.ContractCode != "" {
|
|
|
- if res.ContractCode == info.ContractCode {
|
|
|
- if res.Bidamount < info.Bidamount {
|
|
|
- project.Bidamount = project.Bidamount - res.Bidamount + info.Bidamount
|
|
|
+ //flag := false
|
|
|
+ //if project.InfoFiled != nil && len(project.InfoFiled) > 0 {
|
|
|
+ // for _, res := range project.InfoFiled {
|
|
|
+ // if res.Bidstatus == "合同" && res.ContractCode != "" && info.SubType == "合同" && info.ContractCode != "" {
|
|
|
+ // if res.ContractCode == info.ContractCode {
|
|
|
+ // if res.Bidamount < info.Bidamount {
|
|
|
+ // project.Bidamount = project.Bidamount - res.Bidamount + info.Bidamount
|
|
|
+ // }
|
|
|
+ // flag = true
|
|
|
+ // break
|
|
|
+ // }
|
|
|
+ // }else {
|
|
|
+ // if res.ProjectName == info.ProjectName {
|
|
|
+ // if res.Bidamount < info.Bidamount {
|
|
|
+ // project.Bidamount = project.Bidamount - res.Bidamount + info.Bidamount
|
|
|
+ // }
|
|
|
+ // flag = true
|
|
|
+ // break
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if !flag {
|
|
|
+ // project.Bidamount = project.Bidamount + info.Bidamount
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ if info.SubType == "中标" || info.SubType == "成交" {
|
|
|
+ if project.Bidamount < info.Bidamount {
|
|
|
+ project.Bidamount = info.Bidamount
|
|
|
+ }else {
|
|
|
+ flag := false
|
|
|
+ if project.InfoFiled != nil && len(project.InfoFiled) > 0 {
|
|
|
+ for _, res := range project.InfoFiled {
|
|
|
+ if res.ContractCode != "" && res.ContractCode == info.ContractCode {
|
|
|
+ flag = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if res.Bidamount == project.Bidamount {
|
|
|
+ flag = true
|
|
|
+ break
|
|
|
}
|
|
|
- flag = true
|
|
|
- break
|
|
|
}
|
|
|
- }else {
|
|
|
- if res.ProjectName == info.ProjectName {
|
|
|
- if res.Bidamount < info.Bidamount {
|
|
|
- project.Bidamount = project.Bidamount - res.Bidamount + info.Bidamount
|
|
|
+ if !flag {
|
|
|
+ project.Bidamount = project.Bidamount + info.Bidamount
|
|
|
+ }else {
|
|
|
+ if project.Bidamount < info.Bidamount {
|
|
|
+ project.Bidamount = info.Bidamount
|
|
|
}
|
|
|
- flag = true
|
|
|
- break
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
- if !flag {
|
|
|
- project.Bidamount = project.Bidamount + info.Bidamount
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1127,7 +1162,7 @@ func CountAmount(project *ProjectInfo, info *Info) {
|
|
|
}
|
|
|
|
|
|
//结构体转map
|
|
|
-func StructToMap(filed InfoFiled) map[string]interface{} {
|
|
|
+func StructToMap(filed InfoField) map[string]interface{} {
|
|
|
//先转json
|
|
|
result, err := json.Marshal(filed)
|
|
|
if err != nil {
|