Browse Source

前后:保存资质检查优化

dubch 4 năm trước cách đây
mục cha
commit
d8c15f4419

+ 32 - 0
src/dashoo.cn/backend/api/business/oilsupplier/suppliercertsub/oilsuppliercertsubService.go

@@ -100,4 +100,36 @@ func (s *OilSupplierCertSubService) GetListByAppendId (appendId string, supplier
 func (s *OilSupplierCertSubService) GetIds (certId string, typeCode string, entitiesPtr interface{}) {
 	sql := "SELECT GROUP_CONCAT(SubClassId) as Id FROM OilSupplierCertSub WHERE SupplierCertId = " + certId + " AND SupplierTypeCode = '" + typeCode + "'"
 	s.DBE.SQL(sql).Get(entitiesPtr)
+}
+
+func (s *OilSupplierCertSubService) GetCountIsManufacturer (certId string) (total int64) {
+	var resultsSlice []map[string][]byte
+	sql := "SELECT COUNT(Id) FROM OilSupplierCertSub WHERE IsManufacturer = 1 and SupplierCertId = " + certId
+	resultsSlice, _ = s.DBE.Query(sql)
+
+	if len(resultsSlice) > 0 {
+		results := resultsSlice[0]
+		for _, value := range results {
+			total, _ = strconv.ParseInt(string(value), 10, 64)
+			break
+		}
+	}
+
+	return total
+}
+
+func (s *OilSupplierCertSubService) GetCountGrade (certId string) (total int64) {
+	var resultsSlice []map[string][]byte
+	sql := "SELECT COUNT(Id) FROM OilSupplierCertSub WHERE Grade = '1' and SupplierCertId = " + certId
+	resultsSlice, _ = s.DBE.Query(sql)
+
+	if len(resultsSlice) > 0 {
+		results := resultsSlice[0]
+		for _, value := range results {
+			total, _ = strconv.ParseInt(string(value), 10, 64)
+			break
+		}
+	}
+
+	return total
 }

+ 7 - 0
src/dashoo.cn/backend/api/business/oilsupplier/supplierfile/supplierfile.go

@@ -59,4 +59,11 @@ type Del_OilSupplierFile struct {
 type File struct {
 	Type              int       "1制造商;2非制造商"
 	SupplierId        int
+}
+
+type CheckFile struct {
+	Type              int       "1制造商;2非制造商"
+	CertId            string
+	SupplierId        int
+	Grade        	  string
 }

+ 104 - 115
src/dashoo.cn/backend/api/controllers/oilsupplier/supplier.go

@@ -1716,21 +1716,6 @@ func (this *OilSupplierController) UpdateEntity() {
 	svc1.GetEntityByWhere(OilSupplierCertName, "SupplierId = "+id+" and SupplierTypeCode='"+typeCode+"'", &cert)
 	//对资质的检查
 	//svc1.IsSupplierCertCanSubmit(strconv.Itoa(model.Id), strconv.Itoa(cert.Id))
-	type1 := 0
-	if  model.OperType == "制造商" {
-		type1 = 1
-	}
-	if  model.OperType == "代理商" || model.OperType == "贸易商" {
-		type1 = 2
-	}
-	result := this.CheckSupplierFileNew(model.Id, type1, instyle, "3", "")
-	if result != "" {
-		errinfo.Message = "修改失败!" + result
-		errinfo.Code = -1
-		this.Data["json"] = &errinfo
-		this.ServeJSON()
-		return
-	}
 
 	//判断基本信息是否可修改
 	updateCols := svc.GetUpdateCols(OilSupplierCertName, typeCode, model.Id)
@@ -1825,21 +1810,6 @@ func (this *OilSupplierController) UpdateEntity1() {
 	svc1.GetEntityByWhere(OilSupplierCertName, "SupplierId = "+id+" and SupplierTypeCode='"+typeCode+"'", &cert)
 	//对资质的检查
 	//svc1.IsSupplierCertCanSubmit(strconv.Itoa(model.Id), strconv.Itoa(cert.Id))
-	type1 := 0
-	if  model.OperType == "制造商" {
-		type1 = 1
-	}
-	if  model.OperType == "代理商" || model.OperType == "贸易商" {
-		type1 = 2
-	}
-	result := this.CheckSupplierFileNew(model.Id, type1, instyle, "3", "")
-	if result != "" {
-		errinfo.Message = "修改失败!" + result
-		errinfo.Code = -1
-		this.Data["json"] = &errinfo
-		this.ServeJSON()
-		return
-	}
 
 	//判断基本信息是否可修改
 	updateCols := svc.GetUpdateCols(OilSupplierCertName, typeCode, model.Id)
@@ -2722,102 +2692,121 @@ func (this *OilSupplierController) CheckSupplierFile() {
 	this.ServeJSON()
 }
 
-// 准入/增项/年审/信息变更保存检查资质方法
-func (this *OilSupplierController) CheckSupplierFileNew(supplierId int,type1 int,inStyle string, grade string, table string) string{
+// @Title 准入/增项/年审/已入库保存检查资质方法
+// @Description
+// @Success	200	{object} controllers.Request
+// @router /checkSupplierFileNew [post]
+func (this *OilSupplierController) CheckSupplierFileNew(){
+	var file supplierfile.CheckFile
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &file)
 	//获取主表信息
 	var supplierEntity supplier.OilSupplier
+	var errinfo ErrorDataInfo
 	supplierService := supplier.GetOilSupplierService(utils.DBE)
-	supplierService.GetEntityById(supplierId, &supplierEntity)
+	supplierService.GetEntityById(file.SupplierId, &supplierEntity)
 	//获取准入信息表
-	var supplierCertEntity []suppliercert.OilSupplierCert
-	supplierService.GetEntitysByWhere("OilSupplierCert", "SupplierId = " + strconv.Itoa(supplierId), &supplierCertEntity)
-	for _,cert := range supplierCertEntity {
-		//对准入范围的判断
-		var certSubList []suppliercertsub.OilSupplierCertSub
-		certsubService := suppliercertsub.GetOilSupplierCertSubService(utils.DBE)
-		certsubService.GetListByCertId(strconv.Itoa(cert.Id), &certSubList)
+	var cert suppliercert.OilSupplierCert
+	supplierService.GetEntityByWhere("OilSupplierCert", "Id = "+file.CertId, &cert)
 
-		// 查询出已有哪些资质
-		var tableheaderList []qualchange.OilQualChangeDetail1
-		fileSql := "SELECT * from OilSupplierFile WHERE SupplierId = " + strconv.Itoa(supplierId)
-		svcHeader := tableheader.GetTableHeaderService(utils.DBE)
-		svcHeader.DBE.SQL(fileSql).Find(&tableheaderList)
-		var companyHasHeaders string
-		for _, tableheader := range tableheaderList {
-			companyHasHeaders += tableheader.NeedFileType + ","
+	// 查询出已有哪些资质
+	var tableheaderList []qualchange.OilQualChangeDetail1
+	fileSql := "SELECT * from OilSupplierFile WHERE SupplierId = " + strconv.Itoa(file.SupplierId)
+	svcHeader := tableheader.GetTableHeaderService(utils.DBE)
+	svcHeader.DBE.SQL(fileSql).Find(&tableheaderList)
+	var companyHasHeaders string
+	for _, tableheader := range tableheaderList {
+		companyHasHeaders += tableheader.NeedFileType + ","
+	}
+	paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
+	filesvc := supplierfile.GetSupplierfileService(utils.DBE)
+	mergerCertSkipField := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "MergerCertSkipFieldName")
+
+	var ids suppliercertsub.Ids
+	certsubService := suppliercertsub.GetOilSupplierCertSubService(utils.DBE)
+	certsubService.GetIds(strconv.Itoa(cert.Id), cert.SupplierTypeCode, &ids)
+	var needList []supplierfile.FileList
+
+	if cert.SupplierTypeCode == "01" {
+		//需要的资质
+		needList = filesvc.GetGoodsNeedFileListNew(ids.Id, strconv.Itoa(file.Type))
+		total := certsubService.GetCountIsManufacturer(strconv.Itoa(cert.Id))
+		if file.Type == 2 && total > 0 {
+			errinfo.Message = "非制造商准入范围不能为制造商,请手动修改!"
+			errinfo.Code = 0
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+			return
 		}
-		paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
-		filesvc := supplierfile.GetSupplierfileService(utils.DBE)
-		mergerCertSkipField := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "MergerCertSkipFieldName")
-		for index, certSubItem := range certSubList {
-			if certSubItem.GoodsLevel == supplier.GOODS_LEVEL_1 && grade == supplier.GOODS_LEVEL_2{
-				return "二级供应商不能准入一级物资!"
-			}
-			var needList []supplierfile.FileList
-			//需要的资质
-			if cert.SupplierTypeCode == "01" {
-				if certSubItem.IsManufacturer == 1 && type1 == 2{
-					return "非制造商准入范围不能为制造商,请手动修改!"
-				}
-				needList = filesvc.GetGoodsNeedFileList(strconv.Itoa(certSubItem.SubClassId), strconv.Itoa(type1))
-			} else if cert.SupplierTypeCode  == "02" {
-				needList = filesvc.GetBasicNeedFileList(strconv.Itoa(certSubItem.SubClassId))
-			} else if cert.SupplierTypeCode  == "03" {
-				needList = filesvc.GetTechNeedFileList(strconv.Itoa(certSubItem.SubClassId))
-			}
 
-			if type1 == 1 { //制造商
-				var needFile supplierfile.FileList
-				// 质量管理体系认证证书
-				CNPCrenkezhengshu := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CNPCrenkezhengshu")
-				needFile.FileName = CNPCrenkezhengshu
-				needList = append(needList, needFile)
-			}
+		gradeTotal := certsubService.GetCountGrade(strconv.Itoa(cert.Id))
+		if file.Grade == "2" && gradeTotal > 0 {
+			errinfo.Message = "二级供应商不能准入一级物资!"
+			errinfo.Code = 0
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+			return
+		}
+		if file.Type == 1 { //制造商
+			var needFile supplierfile.FileList
+			// 质量管理体系认证证书
+			CNPCrenkezhengshu := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CNPCrenkezhengshu")
+			needFile.FileName = CNPCrenkezhengshu
+			needList = append(needList, needFile)
+		}
+	} else if cert.SupplierTypeCode == "02" {
+		needList = filesvc.GetBasicNeedFileListNew(ids.Id)
+	} else if cert.SupplierTypeCode == "03"{
+		needList = filesvc.GetTechNeedFileListNew(ids.Id)
+	}
 
-			if inStyle == "4" {
-				var needFile supplierfile.FileList
-				//战略合作协议扫描件
-				needFile.FileName = paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CooperationFile")
-				needList = append(needList, needFile)
-			}
+	if cert.InStyle == "4" {
+		var needFile supplierfile.FileList
+		//战略合作协议扫描件
+		needFile.FileName = paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CooperationFile")
+		needList = append(needList, needFile)
+	}
 
-			if inStyle == "6" {
-				var needFile supplierfile.FileList
-				//招标准入需提供招标中标结果
-				needFile.FileName = paramSvc.GetBaseparameterMessage("GFGL", "paramset", "TheTender")
-				needList = append(needList, needFile)
-			}
+	if cert.InStyle == "6" {
+		var needFile supplierfile.FileList
+		//招标准入需提供招标中标结果
+		needFile.FileName = paramSvc.GetBaseparameterMessage("GFGL", "paramset", "TheTender")
+		needList = append(needList, needFile)
+	}
 
-			for _, needHeader := range needList {
-				if ( supplierEntity.CredentialFlag == "1" ||  supplierEntity.CredentialFlag == "2") &&
-					strings.Contains(mergerCertSkipField, needHeader.FileName+",") {
-					//三证合一或五证合一的证件,不需要验证了
-					continue
-				}
-				if (index < len(certSubList) - 1) && (needHeader.FileName == "国家企业信用信息公示系统截屏" || needHeader.FileName == "诚信合规承诺书" || needHeader.FileName == "营业执照" || needHeader.FileName == "银行开户许可证或基本存款账户信息") && index != 0 {
-					//通用的4个只验证两次
-					continue
-				}
-				var fileist1 supplierfile.OilSupplierFile
-				where1 := " SupplierId = '" + strconv.Itoa(supplierId) + "' and NeedFileType = '" + needHeader.FileName + "'"
-				filesvc.GetEntityByWhere("OilSupplierFile", where1, &fileist1)
-
-				if !strings.Contains(companyHasHeaders, needHeader.FileName+",") {
-					return "请上传" + needHeader.FileName
-				} else {
-					if table != "" {
-						var filelist2 suppliercertappendsub.OilAppendChangeDetail
-						where2 := " SupplierId = '" + strconv.Itoa(supplierId) + "' and NeedFileType = '" +needHeader.FileName + "'"
-						svc2 := suppliercertappendsub.GetOilSupplierCertAppendSubService (utils.DBE)
-						svc2.GetEntityByWhere(table, where2, &filelist2)
-						if filelist2.FileName == "" && fileist1.FileName == "" {
-							//缺少的资质
-							return "请上传" + needHeader.FileName
-						}
-					}
-				}
+	for _, needHeader := range needList {
+		if (supplierEntity.CredentialFlag == "1" || supplierEntity.CredentialFlag == "2") &&
+			strings.Contains(mergerCertSkipField, needHeader.FileName+",") {
+			//三证合一或五证合一的证件,不需要验证了
+			continue
+		}
+		var fileist1 supplierfile.OilSupplierFile
+		where1 := " SupplierId = '" + strconv.Itoa(file.SupplierId) + "' and NeedFileType = '" + needHeader.FileName + "'"
+		filesvc.GetEntityByWhere("OilSupplierFile", where1, &fileist1)
+
+		var filelist2 suppliercertappendsub.OilAppendChangeDetail
+		where2 := " SupplierId = '" + strconv.Itoa(file.SupplierId) + "' and NeedFileType = '" + needHeader.FileName + "'"
+		svc2 := suppliercertappendsub.GetOilSupplierCertAppendSubService(utils.DBE)
+		svc2.GetEntityByWhere("OilQualChangeDetail", where2, &filelist2)
+
+		if !strings.Contains(companyHasHeaders, needHeader.FileName+",") {
+			errinfo.Message = "请上传!" + needHeader.FileName + "!"
+			errinfo.Code = 0
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+			return
+		} else {
+			if filelist2.FileName == "" && fileist1.FileName == "" {
+				//缺少的资质
+				errinfo.Message = "请上传!" + needHeader.FileName + "!"
+				errinfo.Code = 0
+				this.Data["json"] = &errinfo
+				this.ServeJSON()
+				return
 			}
 		}
 	}
-	return ""
+	errinfo.Code = 1
+	this.Data["json"] = &errinfo
+	this.ServeJSON()
 }

+ 7 - 6
src/dashoo.cn/frontend_web/src/api/oilsupplier/supplier.js

@@ -213,17 +213,18 @@ export default {
       method: 'GET'
     })
   },
-  /**
-   * 供应商类型变更后,检查对应资质是否缺少
-   * @param fileType
-   * @param myAxios
-   * @returns {*}
-   */
   checkCertFileForSupTypeChange (fileType, myAxios) {
     return myAxios({
       url: '/supplier/checkSupplierFile',
       method: 'post',
       data: fileType
     })
+  },
+  checkSupplierFileNew (fileType, myAxios) {
+    return myAxios({
+      url: '/supplier/checkSupplierFileNew',
+      method: 'post',
+      data: fileType
+    })
   }
 }

+ 19 - 1
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierstore/_opera/goodsedit.vue

@@ -829,7 +829,25 @@
         if (!this.formData.Id || !this.certId) {
           this.addEntity()
         } else {
-          this.updateEntity()
+          let fileType = {
+            Type: this.formData.OperType === '制造商' ? 1 : 2,
+            SupplierId: this.formData.Id,
+            CertId: this.certId,
+            Grade: this.formData.Grade
+          }
+          api.checkSupplierFileNew(fileType, this.$axios).then(res => {
+            if (res.data.code === 1) {
+              this.updateEntity()
+            } else {
+              this.$message({
+                type: 'warning',
+                message: res.data.message
+              })
+              this.saveLoading = false
+            }
+          }).catch(err => {
+            console.error(err)
+          })
         }
       },