Kaynağa Gözat

物资类,先上传资质,后选择准入项

yuedefeng 5 yıl önce
ebeveyn
işleme
6f74443136

+ 1 - 28
src/dashoo.cn/backend/api/business/oilsupplier/supplierfile/supplierfileService.go

@@ -111,31 +111,4 @@ func (s *SupplierfileService) CheckIsManuf(id string) (IsManufacturer string) {
 	IsManufacturer = strconv.Itoa(entity.IsManufacturer)
 
 	return IsManufacturer
-}
-
-/** func (s *SupplierfileService) GetAllowCertItemList(supplierId, supplierTypeCode string) (goodsClassList []goodsaptitudeclass.OilGoodsAptitudeClass) {
-	// 查询出已有哪些资质
-	var tableheaderList []tableheader.BaseTableheader
-	fileSql := "SELECT b.* from OilSupplierFile a LEFT JOIN Base_TableHeader b on a.NeedFileType=b.Name AND a.SupplierTypeCode=b.CategoryCode WHERE a.SupplierId='"+ supplierId +"' AND (a.SupplierTypeCode='" + supplierTypeCode + "' or a.SupplierTypeCode='000')"
-	s.DBE.SQL(fileSql).Find(&tableheaderList)
-	var needHeaders string
-	for _, tableheader := range tableheaderList {
-		needHeaders += tableheader.Code + ","
-	}
-	// 获取符合资质的列表树
-	sql := "SELECT a.* FROM OilGoodsAptitudeClass a LEFT JOIN OilGoodsAptitude b ON a.Id=b.ClassId WHERE 1=1"
-	var i int
-	for i=1; i<=46; i++ {
-		fileNo := fmt.Sprintf("%02d", i)
-		fileNo = "F" + fileNo
-		ret := strings.ContainsAny(needHeaders, fileNo + ",")
-		if !ret {
-			sql += " AND (" + fileNo + " = '' or " + fileNo + " is null)"
-		} else {
-			sql += " AND " + fileNo + " = '1' or " + fileNo + " is null)"
-		}
-	}
-	s.DBE.SQL(sql).Find(&goodsClassList)
-
-	return goodsClassList
-} */
+}

+ 0 - 43
src/dashoo.cn/backend/api/controllers/oilsupplier/goodsaptitude.go

@@ -1013,49 +1013,6 @@ func (this *OilGoodsAptitudeController) GoodsChildLisByParentId() {
 	this.ServeJSON()
 }
 
-// @Title get 获取子类
-// @Description get SampleType by token
-// @Success 200 {object} sampletype.SampleType
-// @router /goodsclassfilterbypid/:parentid [get]
-func (this *OilGoodsAptitudeController) GoodsClassFilterByParentId() {
-	// 查询出已有哪些资质
-	supplierId := this.GetString("SupplierId")
-	supplierTypeCode := this.GetString("SupplierTypeCode")
-	var tableheaderList []tableheader.BaseTableheader
-	fileSql := "SELECT b.* from OilSupplierFile a LEFT JOIN Base_TableHeader b on a.NeedFileType=b.Name AND a.SupplierTypeCode=b.CategoryCode WHERE a.SupplierId='"+ supplierId +"' AND (a.SupplierTypeCode='" + supplierTypeCode + "' or a.SupplierTypeCode='000')"
-	svcHeader := tableheader.GetTableHeaderService(utils.DBE)
-	svcHeader.DBE.SQL(fileSql).Find(&tableheaderList)
-	var needHeaders string
-	for _, tableheader := range tableheaderList {
-		needHeaders += tableheader.Code + ","
-	}
-	ParentId := this.Ctx.Input.Param(":parentid")
-	GoodsLevel := this.GetString("GoodsLevel")
-	sqlStr := "SELECT o.Id, o.`Code`, o.`Name`, concat(o.Code, '  ', o.Name) as CodeName, o.ParentId, g.GoodsLevel," +
-		" (CASE WHEN length(Code)>=8 THEN '1' ELSE '0' END) as Leaf FROM OilGoodsAptitudeClass o " +
-		" LEFT JOIN `OilGoodsAptitude` g ON (g.ClassId = o.Id)" +
-		" WHERE IF ((LENGTH(CODE)=8 and '" + GoodsLevel + "' = 2 ) , g.GoodsLevel = '2', 1=1 ) and o.ParentId = " + ParentId
-	var i int
-	for i=1; i<=46; i++ {
-		fileNo := fmt.Sprintf("%02d", i)
-		fileNo = "F" + fileNo
-		ret := strings.ContainsAny(needHeaders, fileNo + ",")
-		if !ret {
-			sqlStr += " AND (" + fileNo + " = '' or " + fileNo + " is null)"
-		} else {
-			sqlStr += " AND " + fileNo + " = '1' or " + fileNo + " is null)"
-		}
-	}
-	sqlStr += " AND o.Edition='1' AND o.DeletionStateCode = 0 order by o.Code"
-
-	svc := goodsaptitude.GetOilGoodsAptitudeService(utils.DBE)
-	list, _ := svc.DBE.QueryString(sqlStr)
-	var datainfo DataInfo
-	datainfo.Items = list
-	this.Data["json"] = &datainfo
-	this.ServeJSON()
-}
-
 // @Title get 导出ex
 // @Description get SampleType by token
 // @Success 200 {object} sampletype.SampleType

+ 128 - 8
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercertsub.go

@@ -5,6 +5,7 @@ import (
 	"dashoo.cn/backend/api/business/oilsupplier/supplier"
 	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
 	"dashoo.cn/backend/api/business/oilsupplier/supplierpausereason"
+	"dashoo.cn/backend/api/business/oilsupplier/tableheader"
 	"dashoo.cn/backend/api/business/organize"
 	"dashoo.cn/business2/parameter"
 	"encoding/json"
@@ -363,7 +364,6 @@ func (this *OilSupplierCertSubController) AddGoodsBus() {
 	svcSupplier := supplier.GetOilSupplierService(utils.DBE)
 	svcSupplier.GetEntityById(datamain.SupplierId, &supplierModel)
 
-LABEL1:
 	for n := 0; n < len(dataother.CheckList); n++ {
 		where_sub := "SupplierTypeCode = 01 and SupplierId = '" + strconv.Itoa(dataother.SupplierId) + "'"
 		where_sub += " and SupplierCertId = '" + strconv.Itoa(dataother.SupplierCertId) + "'"
@@ -396,22 +396,21 @@ LABEL1:
 			needList := filesvc.GetGoodsNeedFileList(dataother.CheckList[n].Id, strconv.Itoa(datamain.IsManufacturer)) // 需要的资质
 			paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
 
-			//isContinue := false
+			isContinue := false
 			if datamain.IsManufacturer == 2 {
 				needList1 := filesvc.GetGoodsNeedFileList(dataother.CheckList[n].Id, "1") // 需要的资质--制造类
 				// 中油集团公司产品质量认可证书
 				CNPCrenkezhengshu := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CNPCrenkezhengshu")
 				for _, item := range needList1 {
 					if item.FileName == CNPCrenkezhengshu {
-						continue LABEL1
-						//isContinue = true
-						//break
+						isContinue = true
+						break
 					}
 				}
 			}
-			//if isContinue {
-			//	break
-			//}
+			if isContinue {
+				break
+			}
 			svc.InsertEntityBytbl(OilSupplierCertSubName, &datamain)
 
 			if supplierCertModel.InStyle == "4" {
@@ -486,6 +485,127 @@ LABEL1:
 	this.ServeJSON()
 }
 
+// @Title 批量添加准入范围--物资类
+// @Description 批量添加准入范围
+// @Success 200 {object} business.device.DeviceChannels
+// @router /add-goods-certsub-filter [post]
+func (this *OilSupplierCertSubController) AddGoodsByFilter() {
+	var jsonblob = this.Ctx.Input.RequestBody
+	var datamain suppliercertsub.OilSupplierCertSub
+	var dataother suppliercertsub.SupplierCertSubModel
+
+	json.Unmarshal(jsonblob, &datamain)
+	json.Unmarshal(jsonblob, &dataother)
+
+	var supplierCertModel suppliercert.OilSupplierCert
+	svcCert := suppliercert.GetOilSupplierCertService(utils.DBE)
+	svcCert.GetEntityById(datamain.SupplierCertId, &supplierCertModel)
+
+	// 查询出已有哪些资质
+	supplierId := dataother.SupplierId
+	supplierTypeCode := dataother.SupplierTypeCode
+	var tableheaderList []tableheader.BaseTableheader
+
+	fileSql := "SELECT b.* from OilSupplierFile a LEFT JOIN Base_TableHeader b on a.NeedFileType=b.Name AND "
+	fileSql += " a.SupplierTypeCode=b.CategoryCode WHERE a.SupplierId='" + strconv.Itoa(supplierId) + "'"
+	fileSql += " AND (a.SupplierTypeCode='" + supplierTypeCode + "' or a.SupplierTypeCode='000')"
+
+	svcHeader := tableheader.GetTableHeaderService(utils.DBE)
+	svcHeader.DBE.SQL(fileSql).Find(&tableheaderList)
+	var companyHasHeaders string
+	for _, tableheader := range tableheaderList {
+		companyHasHeaders += tableheader.Name + ","
+	}
+	var supplierModel supplier.OilSupplier
+	svcSupplier := supplier.GetOilSupplierService(utils.DBE)
+	svcSupplier.GetEntityById(datamain.SupplierId, &supplierModel)
+
+	// 记录缺少的证件
+	invalidCertMsg := ""
+	// 记录保存条数
+	vaildCnt := 0
+	//逐条检查需要的资质,符合才会保存
+	for n := 0; n < len(dataother.CheckList); n++ {
+		where_sub := "SupplierTypeCode = 01 and SupplierId = '" + strconv.Itoa(dataother.SupplierId) + "'"
+		where_sub += " and SupplierCertId = '" + strconv.Itoa(dataother.SupplierCertId) + "'"
+		where_sub += " and SubClassId = '" + dataother.CheckList[n].Id + "'"
+		var model suppliercertsub.OilSupplierCertSub
+		svc := suppliercertsub.GetOilSupplierCertSubService(utils.DBE)
+		has := svc.GetEntityByWhere(OilSupplierCertSubName, where_sub, &model)
+		if !has {
+			if supplierModel.OperType == "制造商" {
+				datamain.IsManufacturer = 1
+			} else {
+				datamain.IsManufacturer = 2
+			}
+			//检查是否资质全面
+			paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
+			filesvc := supplierfile.GetSupplierfileService(utils.DBE)
+			needList := filesvc.GetGoodsNeedFileList(dataother.CheckList[n].Id, strconv.Itoa(datamain.IsManufacturer)) // 需要的资质
+			//三证合一或五证合一不需要的字段
+			mergerCertSkipField := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "MergerCertSkipFieldName")
+			if supplierCertModel.InStyle == "4" {
+				var needFile supplierfile.FileList
+				//战略合作协议扫描件
+				needFile.FileName = paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CooperationFile")
+				needList = append(needList, needFile)
+			}
+			if datamain.IsManufacturer == 2 { //非制造商
+				var needFile supplierfile.FileList
+				// 中油集团公司产品质量认可证书
+				CNPCrenkezhengshu := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CNPCrenkezhengshu")
+				needFile.FileName = CNPCrenkezhengshu
+				needList = append(needList, needFile)
+			}
+
+			certsValid := true
+			for _, needHeader := range needList {
+				if (supplierModel.CredentialFlag == "1" || supplierModel.CredentialFlag == "2") &&
+					strings.Contains(mergerCertSkipField, needHeader.FileName+",") {
+					//三证合一或五证合一的证件,不需要验证了
+					continue
+				}
+				if !strings.Contains(companyHasHeaders, needHeader.FileName + ",") {
+					//缺少资质,不会保存
+					invalidCertMsg += dataother.CheckList[n].Code + " " + dataother.CheckList[n].Name + "(缺少:" + needHeader.FileName + ") ,"
+					certsValid = false
+					break
+				}
+			}
+			if !certsValid {
+				//缺少资质,不会保存
+				continue
+			}
+			datamain.SubClassId, _ = utils.StrTo(dataother.CheckList[n].Id).Int()
+			datamain.Code = dataother.CheckList[n].Code
+			datamain.Name = dataother.CheckList[n].Name
+			datamain.GoodsLevel = dataother.CheckList[n].GoodsLevel
+			datamain.Remark = dataother.Remark
+			datamain.IsDelete = 0
+			datamain.CreateBy = this.User.Realname
+			datamain.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+			unitsvc := organize.GetOrganizeService(utils.DBE)
+			unitid := unitsvc.GetMyUnitDepartmentId(this.User.DepartmentId)
+			if unitid == "100000095" { // 100000095 企管法规处(内控与风险管理处)
+				datamain.CertSubStatus = "1"
+			}
+			svc.InsertEntityBytbl(OilSupplierCertSubName, &datamain)
+			vaildCnt++
+		}
+	}
+	var errinfo ErrorDataInfo
+	if invalidCertMsg == "" {
+		errinfo.Message = "操作成功!"
+	} else if vaildCnt > 0 {
+		errinfo.Message = "部分成功!" + invalidCertMsg
+	} else {
+		errinfo.Message = invalidCertMsg
+	}
+	errinfo.Code = 0
+	this.Data["json"] = &errinfo
+	this.ServeJSON()
+}
+
 // @Title 批量添加准入范围--技术服务类
 // @Description 批量添加准入范围
 // @Success 200 {object} business.device.DeviceChannels

+ 8 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/supplierfile.go

@@ -172,6 +172,14 @@ func (this *SupplierfileController) AddSubfile() {
 	model.CreateBy = this.User.Realname
 	model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
 
+	paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
+	//"营业执照,组织代码,组织机构代码证,税务登记证,税务登记,开户许可,银行开户许可证,承诺书,诚信合规承诺书,企业信息系统截图,战略合作协议扫描件,"
+	mustField := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "MustFieldName")
+	if strings.Contains(mustField, model.FileName + ",") {
+		model.SupplierTypeCode = "000"
+		model.IsManuf = "0"
+	}
+
 	var list []supplierfile.OilSupplierFile
 	where := "SupplierId = '" + strconv.Itoa(model.SupplierId) + "'"
 	svc.GetEntitysByWhere(OilSupplierFileName, where, &list)

+ 4 - 4
src/dashoo.cn/frontend_web/src/components/oilsupplier/goodslist2.vue

@@ -405,12 +405,12 @@
         let val1 = this.$refs.orgmanagetree.getCheckedNodes()
         let val2 = this.$refs.secmanagetree.getCheckedNodes()
         this.checkList = []
-        for (var i = 0; i < val1.length; i++) {
+        for (let i = 0; i < val1.length; i++) {
           if (val1[i].Code.length == 8) {
             this.checkList.push(val1[i])
           }
         }
-        for (var i = 0; i < val2.length; i++) {
+        for (let i = 0; i < val2.length; i++) {
           if (val2[i].Code.length == 8) {
             this.checkList.push(val2[i])
           }
@@ -488,7 +488,7 @@
           return
         }
         _this.loading = true
-        _this.$axios.post('/suppliercertsub/addgoodsbus', params)
+        _this.$axios.post('/suppliercertsub/add-goods-certsub-filter', params)
           .then(res => {
             if (res.data.code === 0) {
               _this.$message({
@@ -604,7 +604,7 @@
           SupplierTypeCode: '01',
           GoodsLevel: this.Grade
         }
-        this.$axios.get('goodsaptitude/goodsclassfilterbypid/' + Id, {params})
+        this.$axios.get('goodsaptitude/goodschildlistbypid/' + Id, {params})
           .then(res => {
             if (!res.data.items || res.data.items.length <= 0) {
               val.isLeaf = true

+ 1 - 0
src/dashoo.cn/frontend_web/src/components/oilsupplier/subfilelist2.vue

@@ -479,6 +479,7 @@
         })
       },
       showDialog () {
+        this.fileList = []
         // this.doclist = []
         this.IsMust = false
         this.Title = '新增文件'