2
3
Преглед на файлове

前后:物资准入保存检查资质;目录导入

dubch преди 5 години
родител
ревизия
444d5a896a

+ 15 - 6
src/dashoo.cn/backend/api/business/tmpzcgf/tmpzcgfSession.go

@@ -659,8 +659,8 @@ func (s *TmpzcgtSession) UpdateSupplierFileSId() error {
 func (s *TmpzcgtSession) InsertOilCatalog() error {
 	s.DBE.Query("SET unique_checks=0;")
 	// s.DBE.Query("SET autocommit=0;")
-	sql := "insert into `OilCatalog` (`CompanyName`, `CatalogType`, `RecordScope`,`Business`, `ValidityFrom`, `ValidityTo`, `Dept`, `DutyDept`) select `名称`, "+
-		"CASE `类别` WHEN '多经企业' THEN 2 WHEN '战略合作' THEN 4 WHEN '特别业务' THEN 5 WHEN '外部市场' THEN 6 ELSE 0 END as `类别`, `合作范围`, `合作范围`, IF(`有效期`,'2021-01-01 00:00:00',NULL), `有效期`, `申请单位`, `责任部门` "+
+	sql := "insert into `OilCatalog` (`CompanyName`, `CatalogType`, `Business`, `ValidityTo`, `Dept`, `DutyDept`) select `名称`, "+
+		"CASE `类别` WHEN '多经企业' THEN 2 WHEN '战略合作' THEN 4 WHEN '特别业务' THEN 5 WHEN '外部市场' THEN 6 ELSE 0 END as `类别`, `合作范围`, `有效期`, `申请单位`, `责任部门` "+
 		"from `T_可不招标供方名录` b order by b.ID"
 	_, err := s.DBE.Query(sql)
 
@@ -670,14 +670,23 @@ func (s *TmpzcgtSession) InsertOilCatalog() error {
 	return err
 }
 
-func (s *TmpzcgtSession) UpdateOilCatalog() error {
-	sql := "UPDATE `OilCatalog` set `ValidityTo`='2025-12-31 00:00:00', `ValidityFrom`='2021-01-01 00:00:00' where `CatalogType`=2"
+
+func (s *TmpzcgtSession) InsertOilCatalog2() error {
+	s.DBE.Query("SET unique_checks=0;")
+	// s.DBE.Query("SET autocommit=0;")
+	sql := "insert into `OilCatalog` (`CompanyName`, `CatalogType`,`LegalPerson`,`Address`, `USCCode`,`Business`, `RecordScope`, `IDCode`,`Remark`, `RecDept`, `Status`, `CreateOn`, `CreateBy`) select `企业名称`, "+
+		"CASE `类别` WHEN '多经企业' THEN 2 WHEN '战略合作' THEN 4  WHEN '特别业务' THEN 5  WHEN '外部市场' THEN 6 WHEN '收入性合同' THEN 7 WHEN '内部多经可不招标' THEN 2 WHEN '战略供方' THEN 4 ELSE  0 END as `类别`,  `法人姓名`,`企业注册地址`,`全国统一信用代码`,`申请备案范围`, `申请备案范围`, `法人身份证`, `申请理由`, `推荐单位名称`, 2 as `状态`, `SQRQ`, `SQR` "+
+		"from `T_其他申请` b  where `状态`='办理完毕' AND `类别` <> '外部市场' AND `类别` <> '保留合格供方资格' order by b.ID"
 	_, err := s.DBE.Query(sql)
+
+	// s.DBE.Query("commit;")
+	s.DBE.Query("SET unique_checks=1;")
+	// s.DBE.Query("SET autocommit=1;")
 	return err
 }
 
-func (s *TmpzcgtSession) UpdateOilCatalog2() error {
-	sql := "UPDATE `OilCatalog` a,( SELECT  b.`LegalPerson`,  b.`Address`,  b.`CommercialNo`,  b.`RegCapital`,  a.`CompanyName` FROM OilCatalog a  LEFT JOIN `OilSupplier` b ON b.`SupplierName` = a.`CompanyName` ) c SET a.`LegalPerson` = c.`LegalPerson`, a.`Address` = c.`Address`, a.`USCCode` = c.`CommercialNo`, a.`RegCapital` = c.`RegCapital` where c.CompanyName=a.CompanyName"
+func (s *TmpzcgtSession) UpdateOilCatalog() error {
+	sql := "UPDATE `OilCatalog` set `ValidityTo` = '2025-12-31 00:00:00' where `CatalogType` = 2"
 	_, err := s.DBE.Query(sql)
 	return err
 }

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

@@ -1202,7 +1202,7 @@ func (this *OilGoodsAptitudeController) GoodsParentList() {
 		svc := goodsaptitude.GetOilGoodsAptitudeService(utils.DBE)
 		where1 := " (goods.GoodsLevel is null or goods.GoodsLevel = " + Level + ") AND (Name LIKE '%" + Name + "%' OR Code LIKE '" + Name + "%') "
 
-		sqlStr := "SELECT class.Id, Code, Name, concat(Code, '  ', Name) as CodeName, ParentId FROM OilGoodsAptitudeClass class left join OilGoodsAptitude goods on goods.ClassId = class.Id " +
+		sqlStr := "SELECT class.Id, Code, Name, concat(Code, '  ', Name) as CodeName, ParentId,goods.GoodsLevel FROM OilGoodsAptitudeClass class left join OilGoodsAptitude goods on goods.ClassId = class.Id " +
 			"WHERE " + where1 + " AND class.Edition='1' AND class.DeletionStateCode = 0 ORDER BY Code"
 		list, _ := svc.DBE.QueryString(sqlStr)
 		/*

+ 4 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/supplier.go

@@ -1702,6 +1702,10 @@ func (this *OilSupplierController) UpdateEntity() {
 
 	if err == nil {
 		svc.DBE.Exec("update OilSupplierCert set InStyle='" + instyle +  "' where SupplierId=" + id + " and SupplierTypeCode='" + typeCode + "'") // "', IsPay= " + isPay +
+		//一级变二级删除一级准入范围
+		if model.Grade == "2" {
+			svc.DeleteEntityBytbl(OilSupplierCertSubName, "SupplierTypeCode = '01' and GoodsLevel = '1' and SupplierId = " + id)
+		}
 		errinfo.Message = "修改成功!"
 		errinfo.Code = 0
 		this.Data["json"] = &errinfo

+ 114 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercertsub.go

@@ -1319,3 +1319,117 @@ func (this *OilSupplierCertSubController) UpdateStatusWithLog() {
 		this.ServeJSON()
 	}
 }
+
+// @Title 物资类准入提交审核检查资质
+// @Description 物资类准入提交审核检查资质
+// @Success 200 {object} business.device.DeviceChannels
+// @router /checkSubFile [post]
+func (this *OilSupplierCertSubController) CheckSubFile () {
+	var jsonblob = this.Ctx.Input.RequestBody
+	var datamain suppliercertsub.OilSupplierCertSub
+	var dataother []suppliercertsub.OilSupplierCertSub
+
+	json.Unmarshal(jsonblob, &datamain)
+
+	var supplierCertModel suppliercert.OilSupplierCert
+	svcCert := suppliercert.GetOilSupplierCertService(utils.DBE)
+	svcCert.GetEntityById(datamain.SupplierCertId, &supplierCertModel)
+
+	var lostCertList []LostCertFiles
+	// 查询出已有哪些资质
+	supplierId := datamain.SupplierId
+	supplierTypeCode := datamain.SupplierTypeCode
+	var tableheaderList []supplierfile.OilSupplierFile
+
+	fileSql := "SELECT * from OilSupplierFile WHERE SupplierId='" + strconv.Itoa(supplierId) + "'"
+	fileSql += " AND (SupplierTypeCode='" + supplierTypeCode + "' or SupplierTypeCode='000')"
+
+	svcHeader := tableheader.GetTableHeaderService(utils.DBE)
+	svcHeader.DBE.SQL(fileSql).Find(&tableheaderList)
+	var companyHasHeaders string
+	for _, tableheader := range tableheaderList {
+		companyHasHeaders += tableheader.NeedFileType + ","
+	}
+	var supplierModel supplier.OilSupplier
+	svcSupplier := supplier.GetOilSupplierService(utils.DBE)
+	svcSupplier.GetEntityById(supplierId, &supplierModel)
+	where := "SupplierId = " + strconv.Itoa(supplierId) + " and SupplierCertId = "+ strconv.Itoa(datamain.SupplierCertId) + " and SupplierTypeCode = "+ supplierTypeCode
+	svcSupplier.GetEntitysByWhere(OilSupplierCertSubName, where, &dataother)
+
+	//逐条检查需要的资质
+	for _,sub := range dataother {
+		if supplierModel.OperType == "制造商" {
+			datamain.IsManufacturer = 1
+		} else {
+			datamain.IsManufacturer = 2
+		}
+		//检查是否资质全面
+		paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
+		filesvc := supplierfile.GetSupplierfileService(utils.DBE)
+		needList := filesvc.GetGoodsNeedFileList(strconv.Itoa(sub.SubClassId), 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 supplierCertModel.InStyle == "6" {
+			var needFile supplierfile.FileList
+			//招标中标结果
+			needFile.FileName = paramSvc.GetBaseparameterMessage("GFGL", "paramset", "TheTender")
+			needList = append(needList, needFile)
+		}
+		if datamain.IsManufacturer == 1 { //制造商
+			var needFile supplierfile.FileList
+			// 质量管理体系认证证书
+			CNPCrenkezhengshu := paramSvc.GetBaseparameterMessage("GFGL", "paramset", "CNPCrenkezhengshu")
+			needFile.FileName = CNPCrenkezhengshu
+			needList = append(needList, needFile)
+		}
+		for _, needHeader := range needList {
+			if (supplierModel.CredentialFlag == "1" || supplierModel.CredentialFlag == "2") &&
+				strings.Contains(mergerCertSkipField, needHeader.FileName+",") {
+				//三证合一或五证合一的证件,不需要验证了
+				continue
+			}
+			var fileist1 supplierfile.OilSupplierFile
+			where1 := " SupplierId = '" + strconv.Itoa(supplierId) + "' and NeedFileType = '" + needHeader.FileName + "'"
+			filesvc.GetEntityByWhere(OilSupplierFileName, where1, &fileist1)
+
+			var filelist2 suppliercertappendsub.OilAppendChangeDetail
+			where2 := " SupplierId = '" + strconv.Itoa(supplierId) + "' and NeedFileType = '" +needHeader.FileName + "'"
+			svc2 := suppliercertappendsub.GetOilSupplierCertAppendSubService (utils.DBE)
+			svc2.GetEntityByWhere(OilAppendChangeDetailName, where2, &filelist2)
+
+			if !strings.Contains(companyHasHeaders, needHeader.FileName+",") {
+				var tmpLostCert LostCertFiles
+				tmpLostCert.Code = sub.Code
+				tmpLostCert.Name = sub.Name
+				tmpLostCert.CertFileName = needHeader.FileName
+				lostCertList = append(lostCertList, tmpLostCert)
+			} else {
+				if filelist2.FileName == "" && fileist1.FileName == "" {
+					//缺少的资质
+					var tmpLostCert LostCertFiles
+					tmpLostCert.Code = sub.Code
+					tmpLostCert.Name = sub.Name
+					tmpLostCert.CertFileName = needHeader.FileName
+					lostCertList = append(lostCertList, tmpLostCert)
+				}
+			}
+		}
+	}
+	var errinfo ErrorDataInfo
+	if len(lostCertList) <= 0 {
+		errinfo.Code = 0
+		errinfo.Message = "验证通过!"
+		this.Data["json"] = nil
+	} else {
+		errinfo.Code = -1
+		errinfo.Message = "缺少资质!"
+		this.Data["json"] = &lostCertList
+	}
+	this.ServeJSON()
+}

+ 2 - 2
src/dashoo.cn/backend/api/controllers/tmpzcgf/tmpzcgf.go

@@ -768,13 +768,13 @@ func (this *TmpzcgfController) InsertUpdateOilCatalog() {
 		fmt.Println(err)
 	}
 
-	err = svc.UpdateOilCatalog()
+	err = svc.InsertOilCatalog2()
 	if err != nil {
 		// session.Rollback()
 		fmt.Println(err)
 	}
 
-	err = svc.UpdateOilCatalog2()
+	err = svc.UpdateOilCatalog()
 	if err != nil {
 		// session.Rollback()
 		fmt.Println(err)

+ 8 - 1
src/dashoo.cn/frontend_web/src/api/oilsupplier/suppliercertsub.js

@@ -37,5 +37,12 @@ export default {
       url: '/suppliercertsub/delete/' + entityId,
       method: 'delete'
     })
-  }
+  },
+  checkSubFile (formData, myAxios) {
+    return myAxios({
+      url: '/suppliercertsub/checkSubFile',
+      method: 'post',
+      data: formData
+    })
+  },
 }

+ 22 - 6
src/dashoo.cn/frontend_web/src/components/oilsupplier/goodsinfo.vue

@@ -1548,14 +1548,30 @@ export default {
     },
 
     GradeChange (val) {
-      if (val === '1') {
-        this.formData.MgrUnit = '中油集团公司'
-        // this.formData.InStyle = '2'
+      if (this.certId) {
+        if (val === '2') {
+          this.$confirm('级别变为二级,将删除一级的准入项!', '变更确认', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }).then(() => {
+            this.formData.Grade = '2'
+            this.formData.MgrUnit = ''
+            this.formData.PACNumber = ''
+          })
+          this.formData.Grade = '1'
+        } else {
+          this.formData.MgrUnit = '中油集团公司'
+        }
       } else {
-        this.formData.MgrUnit = ''
-        this.formData.PACNumber = ''
-        // this.formData.InStyle = '1'
+        if (val === '2') {
+          this.formData.MgrUnit = ''
+          this.formData.PACNumber = ''
+        } else {
+          this.formData.MgrUnit = '中油集团公司'
+        }
       }
+
     },
     InStyleChange (val) {
       if (val === '2') {

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

@@ -553,6 +553,7 @@
       getChecklist () {
         let val1 = this.$refs.orgmanagetree.getCheckedNodes()
         let val2 = this.$refs.secmanagetree.getCheckedNodes()
+        console.log(val1, val2, 'val1212')
         this.checkList = []
         for (let i = 0; i < val1.length; i++) {
           if (val1[i].Code.length == 8) {
@@ -578,6 +579,7 @@
           CertSubStatus: '-1',
           Remark: _this.Remark
         }
+        console.log(_this.checkList, '第三方第三方的')
         if (_this.checkList.length > 0) {
           params = Object.assign(params, {
             CheckList: _this.checkList
@@ -685,6 +687,7 @@
           level : _this.Grade
         }
         api.goodsParentlist(params, name, this.$axios).then(res => {
+          console.log(res.data.items, 'res.data.items')
           _this.sectreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'ParentId', 'Id,Code,Name,CodeName,GoodsLevel')
         }).catch(err => {
           console.error(err)
@@ -697,8 +700,6 @@
           this.resolve_had = resolve
           this.isFirstOpen = false
         }
-        console.log(val,resolve, 'val')
-
         let Id = 0
         if (val.level === 0) {
           Id = 0

+ 50 - 26
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplier/_opera/goodsedit.vue

@@ -531,6 +531,7 @@ import {
   mapGetters
 } from 'vuex'
 import api from '@/api/oilsupplier/supplier'
+import subApi from '@/api/oilsupplier/suppliercertsub'
 import apiCert from '@/api/oilsupplier/suppliercert'
 import annapi from '@/api/oilsupplier/annualaudit'
 import SupplierFileTable from '@/pages/oilsupplier/supplierfile/table.vue'
@@ -1334,7 +1335,8 @@ export default {
             this.$refs['goodsList'].getvalue(
               this.formData.Id,
               this.formData.SupplierTypeCode,
-              this.certId
+              this.certId,
+              this.goodsList
             )
             this.$refs['subfileList'].getvalue(
               this.formData.Id,
@@ -1561,6 +1563,7 @@ export default {
 
     // 保存信息
     saveEntity (val) {
+      console.log('2221111')
       let valid1 = false
       let valid2 = false
       this.$refs['GoodsInfo'].$refs['EntityForm'].validate((valid) => {
@@ -1878,16 +1881,7 @@ export default {
           return false
         }
       }
-      if (this.formData.OperType === '制造商') {
-        // if (!this.formData.MaunLicense && !this.formData.SafetyLicense) {
-        //   valid1 = false
-        //   this.$message({
-        //     type: 'warning',
-        //     message: '【生产制造许可证获证情况及编号】或【安全生产许可证】 为必填项'
-        //   })
-        //   return
-        // }
-      } else if (this.formData.OperType === '代理商') {
+      if (this.formData.OperType === '代理商') {
         let countM = this.getCurrentManufactureCount1()
         if (!countM && this.certId) {
           // valid1 = false
@@ -1899,22 +1893,52 @@ export default {
           return false
         }
       }
-      this.saveEntity(1)
-      this.updateNumberEntityNoInfo()
-      apiCert.checkSupplierCertCanSubmit(this.formData.CertId, this.$axios)
-        .then(res => {
-          if (res.data.code === 0) {
-            this.selectAuditOrg()
-          } else {
-            this.$message({
-              type: 'warning',
-              message: res.data.message
+      // 检查是否缺资质
+      this.checkSubFile()
+    },
+    checkSubFile () {
+      let _this = this
+      let params = {
+        SupplierId: parseInt(_this.formData.Id),
+        SupplierCertId: parseInt(_this.certId),
+        SupplierTypeCode: '01',
+        Type: '1',
+        IsManufacturer: 2,
+        CertSubStatus: '-1',
+      }
+      params = Object.assign(params, {
+        CheckList: _this.goodsList
+      })
+      subApi.checkSubFile(params, this.$axios).then(res => {
+        console.log(res.data, 888)
+        if (res.data) {
+          this.$notify({
+            title: '提示',
+            message: '请上传'+ res.data[0].CertFileName +'!',
+            type: 'warning'
+          })
+          this.dialogVisible = false
+        } else {
+          this.saveEntity(1)
+          this.updateNumberEntityNoInfo()
+          apiCert.checkSupplierCertCanSubmit(this.formData.CertId, this.$axios)
+            .then(res => {
+              if (res.data.code === 0) {
+                this.selectAuditOrg()
+              } else {
+                this.$message({
+                  type: 'warning',
+                  message: res.data.message
+                })
+              }
             })
-          }
-        })
-        .catch(err => {
-          console.error(err)
-        })
+            .catch(err => {
+              console.error(err)
+            })
+        }
+      }).catch(err => {
+        console.error(err)
+      })
     },
 
     setAuditer (val, name) {