|
@@ -129,43 +129,62 @@ func PreThisInfo(tmp map[string]interface{} /*新信息*/) *Info {
|
|
|
}
|
|
|
|
|
|
//流程处理
|
|
|
-func (com *CompareInfo) ProcessInfo(info *Info) {
|
|
|
+func (com *CompareInfo) ProcessInfo(new_pn string, tmp map[string]interface{}, pici int64, info *Info) {
|
|
|
pcbv := PCBValue(info)
|
|
|
if info.SubType == "变更" {
|
|
|
if pcbv.Val > 1 {
|
|
|
- com.Process(info, pcbv)
|
|
|
+ com.Process(new_pn, tmp, pici, info, pcbv)
|
|
|
} else {
|
|
|
//信息无效
|
|
|
+ MQFW.UpdateById(extractColl, info.Id,
|
|
|
+ map[string]interface{}{
|
|
|
+ "$set": map[string]interface{}{
|
|
|
+ "ext_mess": info.SubType + ",不满足三选二",
|
|
|
+ },
|
|
|
+ })
|
|
|
}
|
|
|
} else { //非变更
|
|
|
- com.Process(info, pcbv)
|
|
|
+ com.Process(new_pn, tmp, pici, info, pcbv)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//流程
|
|
|
-func (com *CompareInfo) Process(info *Info, pcbv PCBV) {
|
|
|
+func (com *CompareInfo) Process(new_pn string, tmp map[string]interface{}, pici int64, info *Info, pcbv PCBV) {
|
|
|
if pcbv.Bname { //有采购单位
|
|
|
if pcbv.Pname || pcbv.Cname {
|
|
|
//三选二打分
|
|
|
- scores := com.ComputeTwo(info, com.IdArr, true)
|
|
|
+ scores := com.ComputeTow(info, com.IdArr, true)
|
|
|
for _, v := range scores {
|
|
|
skey := fmt.Sprintf("%s%s%s", v.BuyerType, v.ProjectNameType, v.ProjectCodeType)
|
|
|
if ThreeToTow[skey] { //判断是否进入打分合并逻辑
|
|
|
+ v.Cresult = skey
|
|
|
com.Scores = append(com.Scores, v)
|
|
|
+ } else {
|
|
|
+ //新建项目,(Compare方法中创建)不在此创建,其他同理
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
//生成项目,不参与后续对比
|
|
|
+ InsertProject(new_pn, tmp,
|
|
|
+ map[string]interface{}{
|
|
|
+ "ext_mess": map[string]interface{}{
|
|
|
+ "type": "无采购单位,不满足三选二",
|
|
|
+ "mess": "省市不存在",
|
|
|
+ },
|
|
|
+ }, pici, info)
|
|
|
}
|
|
|
} else { //无采购单位
|
|
|
if pcbv.Pname {
|
|
|
if pcbv.Cname {
|
|
|
//三选二打分
|
|
|
- scores := com.ComputeTwo(info, com.IdArr, false)
|
|
|
+ scores := com.ComputeTow(info, com.IdArr, false)
|
|
|
for _, v := range scores {
|
|
|
skey := fmt.Sprintf("%s%s%s", v.BuyerType, v.ProjectNameType, v.ProjectCodeType)
|
|
|
if ThreeToTow[skey] { //判断是否进入打分合并逻辑
|
|
|
+ v.Cresult = skey
|
|
|
com.Scores = append(com.Scores, v)
|
|
|
+ } else {
|
|
|
+ //新建项目
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -176,14 +195,31 @@ func (com *CompareInfo) Process(info *Info, pcbv PCBV) {
|
|
|
for _, v := range scores { // v.ProjectNameType, v.ProjectCodeType二者有其一
|
|
|
skey := fmt.Sprintf("%s%s%s%s", v.ProjectNameType, v.ProjectCodeType, v.AreaType, v.AgencyType)
|
|
|
if ThreeToOne[skey] { //判断是否进入打分合并逻辑
|
|
|
+ v.Cresult = skey
|
|
|
com.Scores = append(com.Scores, v)
|
|
|
+ } else {
|
|
|
+ //新建项目
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
//生成项目,不参与后续对比
|
|
|
+ InsertProject(new_pn, tmp,
|
|
|
+ map[string]interface{}{
|
|
|
+ "ext_mess": map[string]interface{}{
|
|
|
+ "type": "无采购单位,不满足三选一",
|
|
|
+ "mess": "省市不存在",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ pici, info)
|
|
|
}
|
|
|
} else {
|
|
|
//生成项目,不参与后续对比
|
|
|
+ InsertProject(new_pn, tmp,
|
|
|
+ map[string]interface{}{"ext_mess": map[string]interface{}{
|
|
|
+ "type": "无采购单位,不满足三选一",
|
|
|
+ "mess": "项目名小于等于5",
|
|
|
+ },
|
|
|
+ }, pici, info)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -195,17 +231,40 @@ func (com *CompareInfo) Process(info *Info, pcbv PCBV) {
|
|
|
for _, v := range scores { // v.ProjectNameType, v.ProjectCodeType二者有其一
|
|
|
skey := fmt.Sprintf("%s%s%s%s", v.ProjectNameType, v.ProjectCodeType, v.AreaType, v.AgencyType)
|
|
|
if ThreeToOne[skey] { //判断是否进入打分合并逻辑
|
|
|
+ v.Cresult = skey
|
|
|
com.Scores = append(com.Scores, v)
|
|
|
+ } else {
|
|
|
+ //新建项目
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
//生成项目,不参与后续对比
|
|
|
+ InsertProject(new_pn, tmp,
|
|
|
+ map[string]interface{}{
|
|
|
+ "ext_mess": map[string]interface{}{
|
|
|
+ "type": "无采购单位,不满足三选一",
|
|
|
+ "mess": "省市不存在",
|
|
|
+ },
|
|
|
+ }, pici, info)
|
|
|
}
|
|
|
} else {
|
|
|
//生成项目,不参与后续对比
|
|
|
+ InsertProject(new_pn, tmp,
|
|
|
+ map[string]interface{}{
|
|
|
+ "ext_mess": map[string]interface{}{
|
|
|
+ "type": "无采购单位,不满足三选一",
|
|
|
+ "mess": "项目编号长度小于等于8",
|
|
|
+ },
|
|
|
+ }, pici, info)
|
|
|
}
|
|
|
} else {
|
|
|
//信息无效
|
|
|
+ MQFW.UpdateById(extractColl, info.Id,
|
|
|
+ map[string]interface{}{
|
|
|
+ "$set": map[string]interface{}{
|
|
|
+ "ext_mess": info.SubType + ",不满足三选一",
|
|
|
+ },
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|