Răsfoiți Sursa

后:资质暂停

dubch 5 ani în urmă
părinte
comite
a169af0f64

+ 23 - 25
src/dashoo.cn/backend/api/business/oilsupplier/basisbuild/oilbasisbuildService.go

@@ -184,32 +184,32 @@ func (s *OilBasisBuildService) GetPagingTmpCheckedEntities(entitiesPtr interface
 		   if((max(goods.F02)='1' AND LOCATE('F02',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F02) is null) or (max(goods.F02) = ''), '', '企业信用信息截屏,') ,
 		   if((max(goods.F03)='1' AND LOCATE('F03',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F03) is null) or (max(goods.F03) = ''), '', '诚信合规承诺书,') ,
 		   if((max(goods.F04)='1' AND LOCATE('F04',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F04) is null) or (max(goods.F04) = ''), '', '银行开户许可证或基本存款账户信息,') ,
-		   if((max(goods.F05)='1' AND LOCATE('F05',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F05) is null) or (max(goods.F05) = ''), '', '质量管理体系认证证书,') ,
-		   if((max(goods.F06)='1' AND LOCATE('F06',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F06) is null) or (max(goods.F06) = ''), '', '环境管理体系认证证书,') ,
-		   if((max(goods.F07)='1' AND LOCATE('F07',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F07) is null) or (max(goods.F07) = ''), '', '职业健康安全管理体系认证证书,') ,
-		   if((max(goods.F08)='1' AND LOCATE('F08',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F08) is null) or (max(goods.F08) = ''), '', '排污许可证,') ,
-		   if((max(goods.F09)='1' AND LOCATE('F09',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F09) is null) or (max(goods.F09) = ''), '', '安全生产许可证,') ,
-		   if((max(goods.F10)='1' AND LOCATE('F10',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F10) is null) or (max(goods.F10) = ''), '', '危险废弃物经营许可证(危险废弃物处置),') ,
-		   if((max(goods.F11)='1' AND LOCATE('F11',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F11) is null) or (max(goods.F11) = ''), '', '海洋石油作业安全生产许可证,') ,
-		   if((max(goods.F12)='1' AND LOCATE('F12',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F12) is null) or (max(goods.F12) = ''), '', '辐射安全许可证,') ,
-		   if((max(goods.F13)='1' AND LOCATE('F13',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F13) is null) or (max(goods.F13) = ''), '', '石油工程技术服务企业资质证书,') ,
-		   if((max(goods.F14)='1' AND LOCATE('F14',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F14) is null) or (max(goods.F14) = ''), '', '检验检测机构资质认定证书(气体检测),') ,
-		   if((max(goods.F15)='1' AND LOCATE('F15',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F15) is null) or (max(goods.F15) = ''), '', '工业清洗企业资质证书,') ,
-		   if((max(goods.F16)='1' AND LOCATE('F16',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F16) is null) or (max(goods.F16) = ''), '', '建设项目环境影响评价资格证书,') ,
-		   if((max(goods.F17)='1' AND LOCATE('F17',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F17) is null) or (max(goods.F17) = ''), '', '消防设施维护保养资质证书,') ,
-		   if((max(goods.F18)='1' AND LOCATE('F18',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F18) is null) or (max(goods.F18) = ''), '', '安全评价机构资质证书,') ,
-		   if((max(goods.F19)='1' AND LOCATE('F19',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F19) is null) or (max(goods.F19) = ''), '', '工程造价咨询企业甲级资质证书,') ,
-		   if((max(goods.F20)='1' AND LOCATE('F20',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F20) is null) or (max(goods.F20) = ''), '', '工程监督资质证书,') ,
-		   if((max(goods.F21)='1' AND LOCATE('F21',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F21) is null) or (max(goods.F21) = ''), '', '计量标准考核证书,') ,
-		   if((max(goods.F22)='1' AND LOCATE('F22',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F22) is null) or (max(goods.F22) = ''), '', '房屋预售资格证,') ,
-		   if((max(goods.F23)='1' AND LOCATE('F23',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F23) is null) or (max(goods.F23) = ''), '', '保安服务许可证,') ,
-		   if((max(goods.F24)='1' AND LOCATE('F24',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F24) is null) or (max(goods.F24) = ''), '', '道路运输经营许可证,') ,
-		   if((max(goods.F25)='1' AND LOCATE('F25',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F25) is null) or (max(goods.F25) = ''), '', '机动车维修经营许可证,') 
+		   if((max(goods.F05)='1' AND LOCATE('F05',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F05) is null) or (max(goods.F05) = ''), '', '建筑业企业资质证书,') ,
+		   if((max(goods.F06)='1' AND LOCATE('F06',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F06) is null) or (max(goods.F06) = ''), '', '安全生产许可证,') ,
+		   if((max(goods.F07)='1' AND LOCATE('F07',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F07) is null) or (max(goods.F07) = ''), '', '质量管理体系认证证书,') ,
+		   if((max(goods.F08)='1' AND LOCATE('F08',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F08) is null) or (max(goods.F08) = ''), '', '环境管理体系认证证书,') ,
+		   if((max(goods.F09)='1' AND LOCATE('F09',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F09) is null) or (max(goods.F09) = ''), '', '职业健康安全管理体系认证证书,') ,
+		   if((max(goods.F10)='1' AND LOCATE('F10',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F10) is null) or (max(goods.F10) = ''), '', '监理资质证书,') ,
+		   if((max(goods.F11)='1' AND LOCATE('F11',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F11) is null) or (max(goods.F11) = ''), '', '设计勘察资质证书,') ,
+		   if((max(goods.F12)='1' AND LOCATE('F12',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F12) is null) or (max(goods.F12) = ''), '', '外地建筑业企业进津备案通知书,') ,
+		   if((max(goods.F13)='1' AND LOCATE('F13',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F13) is null) or (max(goods.F13) = ''), '', '承装(修、试)电力设备许可证,') ,
+		   if((max(goods.F14)='1' AND LOCATE('F14',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F14) is null) or (max(goods.F14) = ''), '', '组织机构代码证,') ,
+		   if((max(goods.F15)='1' AND LOCATE('F15',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F15) is null) or (max(goods.F15) = ''), '', '税务登记证,') ,
+		   if((max(goods.F16)='1' AND LOCATE('F16',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F16) is null) or (max(goods.F16) = ''), '', '安全资质审查,') ,
+		   if((max(goods.F17)='1' AND LOCATE('F17',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F17) is null) or (max(goods.F17) = ''), '', '培训考核,') ,
+		   if((max(goods.F18)='1' AND LOCATE('F18',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F18) is null) or (max(goods.F18) = ''), '', ',') ,
+		   if((max(goods.F19)='1' AND LOCATE('F19',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F19) is null) or (max(goods.F19) = ''), '', ',') ,
+		   if((max(goods.F20)='1' AND LOCATE('F20',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F20) is null) or (max(goods.F20) = ''), '', ',') ,
+		   if((max(goods.F21)='1' AND LOCATE('F21',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F21) is null) or (max(goods.F21) = ''), '', ',') ,
+		   if((max(goods.F22)='1' AND LOCATE('F22',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F22) is null) or (max(goods.F22) = ''), '', ',') ,
+		   if((max(goods.F23)='1' AND LOCATE('F23',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F23) is null) or (max(goods.F23) = ''), '', ',') ,
+		   if((max(goods.F24)='1' AND LOCATE('F24',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F24) is null) or (max(goods.F24) = ''), '', ',') ,
+		   if((max(goods.F25)='1' AND LOCATE('F25',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F25) is null) or (max(goods.F25) = ''), '', ',') 
 		   ) AS ZzName,
 			(
 			((if((max(goods.F01)='1' AND LOCATE('F01', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F01) is null) or (max(goods.F01) = ''), TRUE, FALSE)) or 
-			(if((max(goods.F41)='1' AND LOCATE('F41',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F41) is null) or (max(goods.F41) = ''), TRUE, FALSE)) or
-			(if((max(goods.F42)='1' AND LOCATE('F42',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F42) is null) or (max(goods.F42) = ''), TRUE, FALSE))) AND 
+			(if((max(goods.F14)='1' AND LOCATE('F14',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F14) is null) or (max(goods.F14) = ''), TRUE, FALSE)) or
+			(if((max(goods.F15)='1' AND LOCATE('F15',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F15) is null) or (max(goods.F15) = ''), TRUE, FALSE))) AND 
 			if((max(goods.F02)='1' AND LOCATE('F02',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F02) is null) or (max(goods.F02) = ''), TRUE, FALSE) AND
 			if((max(goods.F03)='1' AND LOCATE('F03',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F03) is null) or (max(goods.F03) = ''), TRUE, FALSE) AND
 			if((max(goods.F04)='1' AND LOCATE('F04',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F04) is null) or (max(goods.F04) = ''), TRUE, FALSE) AND
@@ -222,8 +222,6 @@ func (s *OilBasisBuildService) GetPagingTmpCheckedEntities(entitiesPtr interface
 			if((max(goods.F11)='1' AND LOCATE('F11',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F11) is null) or (max(goods.F11) = ''), TRUE, FALSE) AND
 			if((max(goods.F12)='1' AND LOCATE('F12',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F12) is null) or (max(goods.F12) = ''), TRUE, FALSE) AND
 			if((max(goods.F13)='1' AND LOCATE('F13',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F13) is null) or (max(goods.F13) = ''), TRUE, FALSE) AND
-			if((max(goods.F14)='1' AND LOCATE('F14',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F14) is null) or (max(goods.F14) = ''), TRUE, FALSE) AND
-			if((max(goods.F15)='1' AND LOCATE('F15',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F15) is null) or (max(goods.F15) = ''), TRUE, FALSE) AND
 			if((max(goods.F16)='1' AND LOCATE('F16',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F16) is null) or (max(goods.F16) = ''), TRUE, FALSE) AND
 			if((max(goods.F17)='1' AND LOCATE('F17',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F17) is null) or (max(goods.F17) = ''), TRUE, FALSE) AND
 			if((max(goods.F18)='1' AND LOCATE('F18',  group_concat(DISTINCT header.Code)) > 0) or (max(goods.F18) is null) or (max(goods.F18) = ''), TRUE, FALSE) AND

+ 6 - 0
src/dashoo.cn/backend/api/business/oilsupplier/supplier/oilsupplier.go

@@ -385,6 +385,12 @@ type ExpireFile struct {
 	CreateUserId int
 }
 
+type ManualDelete struct {
+	Code         string
+	Name 		 string
+	Operation    string
+}
+
 type ExpireFileList struct {
 	Id               int
 	SupplierName     string

+ 6 - 0
src/dashoo.cn/backend/api/business/oilsupplier/technologyservice/oiltechnologyserviceService.go

@@ -357,4 +357,10 @@ func (s *OilTechnologyServiceService) GetPagingTmpSubEntities(pageIndex, itemsPe
 	total = totalResult.Total
 
 	return total
+}
+
+func (s *OilTechnologyServiceService) DeleteOilSupplierCertSub(where string) error {
+	sql := "DELETE FROM OilSupplierCertSub where " + where + " and Id NOT IN (SELECT dt.mid FROM (SELECT MIN(Id) AS mid FROM OilSupplierCertSub where " + where + " GROUP BY SupplierCertId) dt)"
+	_, err := s.DBE.Query(sql)
+	return err
 }

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

@@ -215,7 +215,7 @@ func (s *TmpzcgtSession) InsertOilPaymentInfo() error {
 
 func (s *TmpzcgtSession) UpdateOilPaymentInfo() error {
 	// sql := "UPDATE OilPaymentInfo b SET b.SupplierId= (SELECT  DISTINCT(a.SupplierId) FROM `OilSupplierCert` a WHERE  a.GfId = b.ID_GF )"
-	sql := "UPDATE OilPaymentInfo b left join `OilSupplierCert` a ON b.ID_GF=a.GfId SET b.SupplierId=a.SupplierId"
+	sql := "UPDATE OilPaymentInfo b left join `OilSupplierCert` a ON b.ID_GF=a.GfId SET b.SupplierId=a.SupplierId,b.SupplierCertId=a.Id,b.IsInvoice=1"
 	_, err := s.DBE.Query(sql)
 	return err
 }

+ 64 - 8
src/dashoo.cn/backend/api/controllers/oilsupplier/basisbuild.go

@@ -3,6 +3,7 @@ package oilsupplier
 import (
 	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
 	"dashoo.cn/backend/api/business/oilsupplier/supplierdataentry"
+	"dashoo.cn/backend/api/business/oilsupplier/supplierpausereason"
 	"dashoo.cn/backend/api/business/oilsupplier/tableheader"
 	"dashoo.cn/backend/api/business/workflow"
 	"encoding/json"
@@ -1725,24 +1726,79 @@ func (this *OilBasisBuildController) Suspend() {
 	var err error
 	var list []supplier.OilSupplierContrast
 	svc := goodsaptitude.GetOilGoodsAptitudeService(utils.DBE)
-	//svc.GetEntitysByWhere("OilSupplierContrast", "TwoOneCount = 0", &list)
-	svc.GetEntitysByWhere("OilSupplierBasContrast", "1=1", &list)
+
 	go func() {
+		svc.GetEntitysByWhere("OilSupplierBasContrast", "Checked = '0'", &list)
+		paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
+		DueTimeStr := paramSvc.GetBaseparameterMessage("GFZT", "paramset", "Suspend")
 		for _,item := range list{
 			var sub []suppliercertsub.OilSupplierCertSub
 			svc.GetEntitysByWhere("OilSupplierCertSub", "SupplierTypeCode = '02' and SupplierId = " + strconv.Itoa(item.Id), &sub)
 			for _, itemSub := range sub {
-				//sql := "SELECT CONCAT_WS(',',IF(ifnull(F01, '') = '', '', F01),IF(ifnull(F02, '') = '', '', F02),IF(ifnull(F03, '') = '', '', F03),IF(ifnull(F04, '') = '', '', F04),IF(ifnull(F05, '') = '', '', F05),IF(ifnull(F06, '') = '', '', F06),IF(ifnull(F07, '') = '', '', F07),IF(ifnull(F08, '') = '', '', F08),IF(ifnull(F09, '') = '', '', F09),IF(ifnull(F10, '') = '', '', F10),IF(ifnull(F11, '') = '', '', F11),IF(ifnull(F12, '') = '', '', F12),IF(ifnull(F13, '') = '', '', F13),IF(ifnull(F14, '') = '', '', F14),IF(ifnull(F15, '') = '', '', F15),IF(ifnull(F16, '') = '', '', F16),IF(ifnull(F17, '') = '', '', F17),IF(ifnull(F18, '') = '', '', F18),IF(ifnull(F19, '') = '', '', F19),IF(ifnull(F20, '') = '', '', F20),IF(ifnull(F21, '') = '', '', F21),IF(ifnull(F22, '') = '', '', F22),IF(ifnull(F23, '') = '', '', F23),IF(ifnull(F24, '') = '', '', F24),IF(ifnull(F25, '') = '', '', F25)) AS Codes,Code FROM Tmp_OilBasisBuild"
-				sql := "SELECT Code FROM Tmp_OilBasisBuild"
+				sql := "SELECT CONCAT_WS(',',IF(ifnull(F01, '') = '', '', F01),IF(ifnull(F02, '') = '', '', F02),IF(ifnull(F03, '') = '', '', F03),IF(ifnull(F04, '') = '', '', F04),IF(ifnull(F05, '') = '', '', F05),IF(ifnull(F06, '') = '', '', F06),IF(ifnull(F07, '') = '', '', F07),IF(ifnull(F08, '') = '', '', F08),IF(ifnull(F09, '') = '', '', F09),IF(ifnull(F10, '') = '', '', F10),IF(ifnull(F11, '') = '', '', F11),IF(ifnull(F12, '') = '', '', F12),IF(ifnull(F13, '') = '', '', F13),IF(ifnull(F14, '') = '', '', F14),IF(ifnull(F15, '') = '', '', F15),IF(ifnull(F16, '') = '', '', F16),IF(ifnull(F17, '') = '', '', F17),IF(ifnull(F18, '') = '', '', F18),IF(ifnull(F19, '') = '', '', F19),IF(ifnull(F20, '') = '', '', F20),IF(ifnull(F21, '') = '', '', F21),IF(ifnull(F22, '') = '', '', F22),IF(ifnull(F23, '') = '', '', F23),IF(ifnull(F24, '') = '', '', F24),IF(ifnull(F25, '') = '', '', F25)) AS Codes,Code FROM OilBasisBuild"
+				//sql := "SELECT Code FROM Tmp_OilBasisBuild"
 				sql += " where Name = '"+ itemSub.Name + "'"
 				model, _ := svc.DBE.QueryString(sql)
 				var subDelete suppliercertsub.OilSupplierCertSub
 				if model != nil {
-					//code := strings.Split(model[0]["Codes"], ",")
-					cols := []string{"Code"}
-					subDelete.Code = model[0]["Code"]
-					// 修改
+					code := strings.Split(model[0]["Codes"], ",")
+					cols := []string{"DueTime", "CertSubStatus"}
 					err = svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &subDelete, cols, "Id = "+strconv.Itoa(itemSub.Id))
+					subDelete.CertSubStatus = "2"
+					currentTime := time.Now()
+					days,_ := strconv.Atoi(DueTimeStr)
+					subDelete.DueTime = currentTime.AddDate(0, 0, days)
+					i := 1
+					//暂停
+					for _, value := range code {
+						if i == 14 || i == 15 || i == 1 {
+							if (code[0] == "1" && strings.Index(item.HeaderCodes, "F01") < 0) && (code[13] == "1" && strings.Index(item.HeaderCodes, "F14") < 0) && (code[14] == "1" && strings.Index(item.HeaderCodes, "F15") < 0) {
+								err = svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &subDelete, cols, "Id = " + strconv.Itoa(itemSub.Id))
+								var model1 supplierpausereason.OilSupplierPauseReason
+								model1.SupplierId = item.Id
+								model1.CertSubId = itemSub.Id
+								model1.CertSubStatus = "2"
+								model1.SupplierCertId = itemSub.SupplierCertId
+								model1.BackReason = "老数据导入缺资质"
+								model1.CreateOn = time.Now()
+								model1.CreateBy = this.User.Realname
+								model1.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+								svc.InsertEntityBytbl(OilSupplierPauseReasonName, &model1)
+								break
+							}
+						} else if i > 10 {
+							if value == "1" && strings.Index(item.HeaderCodes, "F"+strconv.Itoa(i)) < 0 {
+								err = svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &subDelete, cols, "Id = " + strconv.Itoa(itemSub.Id))
+								var model1 supplierpausereason.OilSupplierPauseReason
+								model1.SupplierId = item.Id
+								model1.CertSubId = itemSub.Id
+								model1.CertSubStatus = "2"
+								model1.SupplierCertId = itemSub.SupplierCertId
+								model1.BackReason = "老数据导入缺资质"
+								model1.CreateOn = time.Now()
+								model1.CreateBy = this.User.Realname
+								model1.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+								svc.InsertEntityBytbl(OilSupplierPauseReasonName, &model1)
+								break
+							}
+						} else {
+							if value == "1" && strings.Index(item.HeaderCodes, "F0"+strconv.Itoa(i)) < 0 {
+								err = svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &subDelete, cols, "Id = " + strconv.Itoa(itemSub.Id))
+								var model1 supplierpausereason.OilSupplierPauseReason
+								model1.SupplierId = item.Id
+								model1.CertSubId = itemSub.Id
+								model1.CertSubStatus = "2"
+								model1.SupplierCertId = itemSub.SupplierCertId
+								model1.BackReason = "老数据导入缺资质"
+								model1.CreateOn = time.Now()
+								model1.CreateBy = this.User.Realname
+								model1.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+								svc.InsertEntityBytbl(OilSupplierPauseReasonName, &model1)
+								break
+							}
+						}
+						i += 1
+					}
 				} else {
 					// 删除
 					err = svc.DeleteEntityById(itemSub.Id, &subDelete)

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

@@ -2172,7 +2172,7 @@ func (this *OilTechnologyServiceController) DeleteSuspend() {
 			var sub []suppliercertsub.OilSupplierCertSub
 			svc.GetEntitysByWhere("OilSupplierCertSub", "SupplierTypeCode = '03' and SupplierId = " + strconv.Itoa(item.Id), &sub)
 			for _, itemSub := range sub {
-				sql := "SELECT CONCAT_WS(',',IF(ifnull(F01, '') = '', '', F01),IF(ifnull(F02, '') = '', '', F02),IF(ifnull(F03, '') = '', '', F03),IF(ifnull(F04, '') = '', '', F04),IF(ifnull(F05, '') = '', '', F05),IF(ifnull(F06, '') = '', '', F06),IF(ifnull(F07, '') = '', '', F07),IF(ifnull(F08, '') = '', '', F08),IF(ifnull(F09, '') = '', '', F09),IF(ifnull(F10, '') = '', '', F10),IF(ifnull(F11, '') = '', '', F11),IF(ifnull(F12, '') = '', '', F12),IF(ifnull(F13, '') = '', '', F13),IF(ifnull(F14, '') = '', '', F14),IF(ifnull(F15, '') = '', '', F15),IF(ifnull(F16, '') = '', '', F16),IF(ifnull(F17, '') = '', '', F17),IF(ifnull(F18, '') = '', '', F18),IF(ifnull(F19, '') = '', '', F19),IF(ifnull(F20, '') = '', '', F20),IF(ifnull(F21, '') = '', '', F21),IF(ifnull(F22, '') = '', '', F22),IF(ifnull(F23, '') = '', '', F23),IF(ifnull(F24, '') = '', '', F24),IF(ifnull(F25, '') = '', '', F25),IF(ifnull(F26, '') = '', '', F26),IF(ifnull(F27, '') = '', '', F27),IF(ifnull(F28, '') = '', '', F28),IF(ifnull(F29, '') = '', '', F29),IF(ifnull(F30, '') = '', '', F30),IF(ifnull(F31, '') = '', '', F31),IF(ifnull(F32, '') = '', '', F32),IF(ifnull(F33, '') = '', '', F33),IF(ifnull(F34, '') = '', '', F34),IF(ifnull(F35, '') = '', '', F35),IF(ifnull(F36, '') = '', '', F36),IF(ifnull(F37, '') = '', '', F37),IF(ifnull(F38, '') = '', '', F38),IF(ifnull(F39, '') = '', '', F39),IF(ifnull(F40, '') = '', '', F40),IF(ifnull(F41, '') = '', '', F41),IF(ifnull(F42, '') = '', '', F42),IF(ifnull(F43, '') = '', '', F43),IF(ifnull(F44, '') = '', '', F44),IF(ifnull(F45, '') = '', '', F45),IF(ifnull(F46, '') = '', '', F46),IF(ifnull(F47, '') = '', '', F47),IF(ifnull(F48, '') = '', '', F48),IF(ifnull(F49, '') = '', '', F49),IF(ifnull(F50, '') = '', '', F50),IF(ifnull(F51, '') = '', '', F51),IF(ifnull(F52, '') = '', '', F52)) AS Codes,Code FROM Tmp_OilTechnologyService a LEFT JOIN Tmp_OilTechnologyServiceClass class ON a.ClassId = class.Id"
+				sql := "SELECT CONCAT_WS(',',IF(ifnull(F01, '') = '', '', F01),IF(ifnull(F02, '') = '', '', F02),IF(ifnull(F03, '') = '', '', F03),IF(ifnull(F04, '') = '', '', F04),IF(ifnull(F05, '') = '', '', F05),IF(ifnull(F06, '') = '', '', F06),IF(ifnull(F07, '') = '', '', F07),IF(ifnull(F08, '') = '', '', F08),IF(ifnull(F09, '') = '', '', F09),IF(ifnull(F10, '') = '', '', F10),IF(ifnull(F11, '') = '', '', F11),IF(ifnull(F12, '') = '', '', F12),IF(ifnull(F13, '') = '', '', F13),IF(ifnull(F14, '') = '', '', F14),IF(ifnull(F15, '') = '', '', F15),IF(ifnull(F16, '') = '', '', F16),IF(ifnull(F17, '') = '', '', F17),IF(ifnull(F18, '') = '', '', F18),IF(ifnull(F19, '') = '', '', F19),IF(ifnull(F20, '') = '', '', F20),IF(ifnull(F21, '') = '', '', F21),IF(ifnull(F22, '') = '', '', F22),IF(ifnull(F23, '') = '', '', F23),IF(ifnull(F24, '') = '', '', F24),IF(ifnull(F25, '') = '', '', F25),IF(ifnull(F26, '') = '', '', F26),IF(ifnull(F27, '') = '', '', F27),IF(ifnull(F28, '') = '', '', F28),IF(ifnull(F29, '') = '', '', F29),IF(ifnull(F30, '') = '', '', F30),IF(ifnull(F31, '') = '', '', F31),IF(ifnull(F32, '') = '', '', F32),IF(ifnull(F33, '') = '', '', F33),IF(ifnull(F34, '') = '', '', F34),IF(ifnull(F35, '') = '', '', F35),IF(ifnull(F36, '') = '', '', F36),IF(ifnull(F37, '') = '', '', F37),IF(ifnull(F38, '') = '', '', F38),IF(ifnull(F39, '') = '', '', F39),IF(ifnull(F40, '') = '', '', F40),IF(ifnull(F41, '') = '', '', F41),IF(ifnull(F42, '') = '', '', F42),IF(ifnull(F43, '') = '', '', F43),IF(ifnull(F44, '') = '', '', F44),IF(ifnull(F45, '') = '', '', F45),IF(ifnull(F46, '') = '', '', F46),IF(ifnull(F47, '') = '', '', F47),IF(ifnull(F48, '') = '', '', F48),IF(ifnull(F49, '') = '', '', F49),IF(ifnull(F50, '') = '', '', F50),IF(ifnull(F51, '') = '', '', F51),IF(ifnull(F52, '') = '', '', F52)) AS Codes FROM OilTechnologyService a LEFT JOIN OilTechnologyServiceClass class ON a.ClassId = class.Id"
 				sql += " where class.Name = '"+ itemSub.Name + "'"
 				model, _ := svc.DBE.QueryString(sql)
 				var subDelete suppliercertsub.OilSupplierCertSub
@@ -2248,4 +2248,59 @@ func (this *OilTechnologyServiceController) DeleteSuspend() {
 	errinfo.Code = 0
 	this.Data["json"] = &errinfo
 	this.ServeJSON()
+}
+
+// @Title 服务类对比excel手动删除 2020-12-31
+// @Description 修改实体
+// @Success	200	{object} controllers.Request
+// @router /manualDelete [post]
+func (this *OilTechnologyServiceController) ManualDelete() {
+	var errinfo ErrorInfo
+	var list []supplier.ManualDelete
+	var sub []suppliercertsub.OilSupplierCertSub
+	var sub1 suppliercertsub.OilSupplierCertSub
+	var class technologyserviceclass.OilTechnologyServiceClass
+	svc := technologyservice.GetOilTechnologyServiceService(utils.DBE)
+	where := "1=1"
+	svc.GetEntitysByWhere("TecDifferent", where, &list)
+	for _, value := range list {
+		if value.Operation == "删除" {
+			svc.DeleteTable(OilSupplierCertSubName, "SupplierTypeCode='03' and Code = '" + value.Code + "' and Name = '" + value.Name + "'")
+		} else if value.Operation == "维持不动" || value.Operation == "" {
+
+		} else if strings.Index(value.Operation, ",") > 0 {
+			//151508,151509
+			svc.GetEntitysByWhere(OilSupplierCertSubName, "SupplierTypeCode='03' and Code = '" + value.Code + "' and Name = '" + value.Name + "'", &sub)
+			code := strings.Split(value.Operation, ",")
+			for _, c := range code {
+				svc.GetEntityByWhere(OilTechnologyServiceClassName, "Code = '" + c +"'", &class)
+				for _, s := range sub {
+					s.Name = class.Name
+					s.Code = class.Code
+					s.SubClassId = class.Id
+					svc.GetEntityByWhere(OilSupplierCertSubName, "SupplierTypeCode='03' and SupplierCertId = " + strconv.Itoa(s.SupplierCertId) + " Name = '" + class.Name + "'", &sub1)
+					if sub1.Id > 0 {
+						continue
+					}
+					svc.InsertEntityBytbl(OilSupplierCertSubName, &s)
+				}
+				svc.DeleteTable(OilSupplierCertSubName, "SupplierTypeCode='03' and Code = '" + value.Code + "' and Name = '" + value.Name + "'")
+			}
+		} else {
+			//151507
+			svc.GetEntityByWhere(OilTechnologyServiceClassName, "Code = '" + value.Operation +"'", &class)
+			where1 := "SupplierTypeCode='03' and Code = '" + value.Code + "' and Name = '"+ value.Name + "'"
+			cols := []string{"Name", "Code", "SubClassId"}
+			sub1.Name = class.Name
+			sub1.Code = class.Code
+			sub1.SubClassId = class.Id
+			svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &sub1, cols, where1)
+			//去重
+			svc.DeleteOilSupplierCertSub("Name = '" + class.Name + "'")
+		}
+	}
+	errinfo.Message = "更新成功!"
+	errinfo.Code = 0
+	this.Data["json"] = &errinfo
+	this.ServeJSON()
 }