Ver Fonte

后:改变供应商类型检查资质

dubch há 5 anos atrás
pai
commit
4b9959f698

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

@@ -54,4 +54,9 @@ type Del_OilSupplierFile struct {
 	ModifiedUserId    int       `xorm:"INT(10)"`
 	ModifiedBy        string    `xorm:"VARCHAR(50)"`
 	DeleteDate        time.Time `xorm:"DATETIME"`
+}
+
+type File struct {
+	Type              int       "1制造商;2非制造商"
+	SupplierId        int
 }

+ 3 - 1
src/dashoo.cn/backend/api/controllers/casbin/role.go

@@ -60,7 +60,9 @@ func (this *RoleController) RoleList() {
 	if permisvc.IsAdmin(this.User.Id) == false {
 		var roleofrole string
 		for i := 0; i < len(rids); i++ {
-			roleofrole += permisvc.GetManRoleForRole(rids[i]) + ","
+			if permisvc.GetManRoleForRole(rids[i]) != "" {
+				roleofrole += permisvc.GetManRoleForRole(rids[i]) + ","
+			}
 		}
 		roleofrole = strings.Trim(roleofrole, ",")
 		where = where + " and Id in (" + roleofrole + ")"

+ 108 - 2
src/dashoo.cn/backend/api/controllers/oilsupplier/supplier.go

@@ -1,7 +1,12 @@
 package oilsupplier
 
 import (
+	"dashoo.cn/backend/api/business/oilsupplier/qualchange"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
+	"dashoo.cn/backend/api/business/oilsupplier/supplierfile"
 	"dashoo.cn/backend/api/business/oilsupplier/supplierscenefile"
+	"dashoo.cn/backend/api/business/oilsupplier/tableheader"
 	"dashoo.cn/backend/api/business/register"
 	"dashoo.cn/business3/parameter"
 	"encoding/json"
@@ -1694,11 +1699,24 @@ func (this *OilSupplierController) UpdateEntity() {
 	if oldModel.SupplierName != model.SupplierName || oldModel.CommercialNo != model.CommercialNo {
 		cols := []string{"CommercialNo", "SupplierName"}
 		var info register.OilCorporateInfo
+		where1 := "CommercialNo = '" + oldModel.CommercialNo + "'"
+		svc.GetEntityByWhere(OilCorporateInfoName, where1, &info)
 		info.CommercialNo = model.CommercialNo
 		info.SupplierName = model.SupplierName
-		svc.UpdateEntityBywheretbl(OilCorporateInfoName, &info, cols, "CommercialNo = '"+oldModel.CommercialNo+"'")
+		err1 := svc.UpdateEntityBywheretbl(OilCorporateInfoName, &info, cols, where1)
+		if err1 == nil {
+			var user userRole.Base_User
+			user.Realname = model.SupplierName
+			svc.UpdateEntityBywheretbl("Base_User", &user, []string{"Realname"}, "Id = " + strconv.Itoa(info.UserId))
+		}
 	}
 
+	svc1 := suppliercert.GetOilSupplierCertService(utils.DBE)
+	var cert suppliercert.OilSupplierCert
+	svc1.GetEntityByWhere(OilSupplierCertName, "SupplierId = " + id + " and SupplierTypeCode='" + typeCode + "'", &cert)
+	//对资质的检查
+	svc1.IsSupplierCertCanSubmit(string(model.Id), string(cert.Id))
+
 	//判断基本信息是否可修改
 	updateCols := svc.GetUpdateCols(OilSupplierCertName, typeCode, model.Id)
 	err := svc.UpdateEntityBytbl(OilSupplierName, id, &model, updateCols)
@@ -1716,7 +1734,6 @@ func (this *OilSupplierController) UpdateEntity() {
 		if model.Grade == "2" {
 			svc.DeleteEntityBytbl(OilSupplierCertSubName, "SupplierTypeCode = '01' and GoodsLevel = '1' and SupplierId = "+id)
 		}
-		//供应商类型改变对资质的检查
 		errinfo.Message = "修改成功!"
 		errinfo.Code = 0
 		this.Data["json"] = &errinfo
@@ -2471,3 +2488,92 @@ func (this *OilSupplierController) GetCommercialNoIsExist() {
 		this.ServeJSON()
 	}
 }
+
+// @Title 信息变更-物资类改变供应商类型检查资质
+// @Description
+// @Success	200	{object} controllers.Request
+// @router /checkSupplierFile [post]
+func (this *OilSupplierController) CheckSupplierFile() {
+	var file supplierfile.File
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &file)
+	//获取主表信息
+	var supplierEntity supplier.OilSupplier
+	var errinfo ErrorDataInfo
+	supplierService := supplier.GetOilSupplierService(utils.DBE)
+	supplierService.GetEntityById(file.SupplierId, &supplierEntity)
+	//获取准入信息表
+	var supplierCertEntity []suppliercert.OilSupplierCert
+	supplierService.GetEntitysByWhere("OilSupplierCert", "SupplierId = " + strconv.Itoa(file.SupplierId), &supplierCertEntity)
+	for _,cert := range supplierCertEntity {
+		if cert.SupplierTypeCode == "01" {
+			//对准入范围的判断
+			var certSubList []suppliercertsub.OilSupplierCertSub
+			certsubService := suppliercertsub.GetOilSupplierCertSubService(utils.DBE)
+			certsubService.GetListByCertId(strconv.Itoa(cert.Id), &certSubList)
+
+			// 查询出已有哪些资质
+			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")
+			for _, certSubItem := range certSubList {
+				var needList []supplierfile.FileList
+				//需要的资质
+				needList = filesvc.GetGoodsNeedFileList(strconv.Itoa(certSubItem.SubClassId), strconv.Itoa(file.Type))
+
+				if file.Type == 1 { //制造商
+					var needFile supplierfile.FileList
+					// 质量管理体系认证证书
+					CNPCrenkezhengshu := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CNPCrenkezhengshu")
+					needFile.FileName = CNPCrenkezhengshu
+					needList = append(needList, needFile)
+				}
+
+				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("OilAppendChangeDetail", 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
+						}
+					}
+				}
+			}
+		}
+	}
+
+	errinfo.Code = 1
+	this.Data["json"] = &errinfo
+	this.ServeJSON()
+}