oiltechnologyserviceService.go 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. package technologyservice
  2. import (
  3. "strconv"
  4. . "dashoo.cn/backend/api/mydb"
  5. "dashoo.cn/utils"
  6. . "dashoo.cn/utils/db"
  7. "github.com/go-xorm/xorm"
  8. )
  9. type OilTechnologyServiceService struct {
  10. MyServiceBase
  11. }
  12. type TotalResult struct {
  13. Total int64 `xorm:"INT(11) 'total'"`
  14. }
  15. func GetOilTechnologyServiceService(xormEngine *xorm.Engine) *OilTechnologyServiceService {
  16. s := new(OilTechnologyServiceService)
  17. s.DBE = xormEngine
  18. return s
  19. }
  20. func (s *OilTechnologyServiceService) TruncateTable(tableName string) error {
  21. sql := "TRUNCATE TABLE " + tableName
  22. _,err := s.DBE.Query(sql)
  23. return err
  24. }
  25. func (s *OilTechnologyServiceService) GetTableTotal(where string, entitiesPtr interface{}) (total int64) {
  26. sql := "SELECT * FROM OilSupplierCertSub where (" + where + ")"
  27. sqlCount := "SELECT count(*) as total FROM OilSupplierCertSub where (" + where + ")"
  28. s.DBE.SQL(sql).Find(entitiesPtr)
  29. //s.DBE.SQL(sqlCount).Get(&totalResult)
  30. //total = totalResult.Total
  31. var resultsSlice []map[string][]byte
  32. resultsSlice, _ = s.DBE.Query(sqlCount)
  33. if len(resultsSlice) > 0 {
  34. results := resultsSlice[0]
  35. for _, value := range results {
  36. total, _ = strconv.ParseInt(string(value), 10, 64)
  37. break
  38. }
  39. }
  40. return total
  41. }
  42. func (s *OilTechnologyServiceService) GetNoSubCntTotal(where string) (total int64) {
  43. sqlCount := "select count(a.`Name`) as total from OilSupplierCertSub a left join Tmp_OilTechnologyServiceClass b on b.`Name` = a.`Name` LEFT JOIN Tmp_OilTechnologyService c ON c.ClassId = b.Id where (" + where + ")"
  44. var totalResult TotalResult
  45. s.DBE.SQL(sqlCount).Get(&totalResult)
  46. total = totalResult.Total
  47. return total
  48. }
  49. func (s *OilTechnologyServiceService) GetMyPagingEntitiesWithOrderBytbl(tableName string, pageIndex, itemsPerPage int64, order string, asc bool, entitiesPtr interface{}, where ...string) (total int64) {
  50. var err error
  51. var resultsSlice []map[string][]byte
  52. //获取表名
  53. if len(where) == 0 {
  54. if asc {
  55. err = s.DBE.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr)
  56. } else {
  57. err = s.DBE.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr)
  58. }
  59. //获取总记录数
  60. sql := "SELECT COUNT(*) AS total FROM " + tableName
  61. resultsSlice, err = s.DBE.Query(sql)
  62. } else {
  63. if asc {
  64. err = s.DBE.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr)
  65. } else {
  66. err = s.DBE.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr)
  67. }
  68. sql := "SELECT COUNT(*) AS total FROM " + tableName + " where " + where[0]
  69. resultsSlice, err = s.DBE.Query(sql)
  70. }
  71. //LogError(err)
  72. if len(resultsSlice) > 0 {
  73. results := resultsSlice[0]
  74. for _, value := range results {
  75. total, err = strconv.ParseInt(string(value), 10, 64)
  76. LogError(err)
  77. break
  78. }
  79. }
  80. return total
  81. }
  82. func (s *OilTechnologyServiceService) GetTechList(techclass, where string) []TechnologyBusiness {
  83. if where == "" {
  84. where = " 1=1 "
  85. }
  86. var sql string
  87. sql = `select Id, Code, Name, concat(Code, ' ', Name) as CodeName, ParentId, Remark, DeletionStateCode
  88. from ` + techclass + ` where ` + where + ` order by Code asc `
  89. List := make([]TechnologyBusiness, 0)
  90. utils.DBE.Sql(sql).Find(&List)
  91. return List
  92. }
  93. func (s *OilTechnologyServiceService) GetOilTechnologyF(entity interface{}, where string) error {
  94. sql := "select F01,F02,F03,F04,F05,F06,F07,F08,F09,F10,"
  95. sql += "F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,"
  96. sql += "F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,"
  97. sql += "F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,"
  98. sql += "F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52 from OilTechnologyService "
  99. if where != "" {
  100. sql = sql + " where " + where
  101. }
  102. err := s.DBE.Sql(sql).Find(entity)
  103. return err
  104. }
  105. func (s *OilTechnologyServiceService) DeleteTable(tableName, where string) error {
  106. sql := "DELETE FROM " + tableName
  107. if where != "" {
  108. sql = sql + " Where " + where
  109. }
  110. _,err := s.DBE.Query(sql)
  111. return err
  112. }
  113. func (s *OilTechnologyServiceService) GetPClassEntities(pageIndex, itemsPerPage int64, orderby string,
  114. asc bool, entitiesPtr interface{}, having string, Conditions string) (total int64) {
  115. var sql string
  116. sql = `SELECT a.*,b.*,tmpa.F01 AS tmpF01,tmpa.F02 AS tmpF02,tmpa.F03 AS tmpF03,tmpa.F04 AS tmpF04,tmpa.F05 AS tmpF05,tmpa.F06 AS tmpF06,tmpa.F07 AS tmpF07,
  117. tmpa.F08 AS tmpF08,tmpa.F09 AS tmpF09,tmpa.F10 AS tmpF10,tmpa.F11 AS tmpF11,tmpa.F12 AS tmpF12,tmpa.F13 AS tmpF13,tmpa.F14 AS tmpF14,
  118. tmpa.F15 AS tmpF15,tmpa.F16 AS tmpF16,tmpa.F17 AS tmpF17,tmpa.F18 AS tmpF18,tmpa.F19 AS tmpF19,tmpa.F20 AS tmpF20,tmpa.F21 AS tmpF21,
  119. tmpa.F22 AS tmpF22,tmpa.F23 AS tmpF23,tmpa.F24 AS tmpF24,tmpa.F25 AS tmpF25,tmpa.F26 AS tmpF26,tmpa.F27 AS tmpF27,tmpa.F28 AS tmpF27,
  120. tmpa.F29 AS tmpF29,tmpa.F30 AS tmpF30,tmpa.F31 AS tmpF31,tmpa.F32 AS tmpF32,tmpa.F33 AS tmpF33,tmpa.F34 AS tmpF34,tmpa.F35 AS tmpF35,
  121. tmpa.F36 AS tmpF36,tmpa.F37 AS tmpF37,tmpa.F38 AS tmpF38,tmpa.F39 AS tmpF39,tmpa.F40 AS tmpF40,tmpa.F41 AS tmpF41,tmpa.F42 AS tmpF42,
  122. tmpa.F42 AS tmpF42,tmpa.F43 AS tmpF43,tmpa.F44 AS tmpF44,tmpa.F45 AS tmpF45,tmpa.F46 AS tmpF46,tmpa.F47 AS tmpF47,tmpa.F48 AS tmpF48,
  123. tmpa.F49 AS tmpF49,tmpa.F50 AS tmpF50,tmpa.F51 AS tmpF51,tmpa.F52 AS tmpF52,tmpb.Name AS tmpName,
  124. if( ((tmpa.F01 is null && a.F01 = 1) or (tmpa.F01 = 1 && (a.F01 is null or a.F01 = 0))) or ((tmpa.F02 is null && a.F02 = 1) or (tmpa.F02 = 1 && (a.F02 is null or a.F02 = 0))) or ((tmpa.F03 is null && a.F03 = 1) or (tmpa.F03 = 1 && (a.F03 is null or a.F03 = 0))) or ((tmpa.F04 is null && a.F04 = 1) or (tmpa.F04 = 1 && (a.F04 is null or a.F04 = 0))) or ((tmpa.F05 is null && a.F05 = 1) or (tmpa.F05 = 1 && (a.F05 is null or a.F05 = 0))) or ((tmpa.F06 is null && a.F06 = 1) or (tmpa.F06 = 1 && (a.F06 is null or a.F06 = 0))) or ((tmpa.F07 is null && a.F07 = 1) or (tmpa.F07 = 1 && (a.F07 is null or a.F07 = 0))) or ((tmpa.F08 is null && a.F08 = 1) or (tmpa.F08 = 1 && (a.F08 is null or a.F08 = 0))) or ((tmpa.F09 is null && a.F09 = 1) or (tmpa.F09 = 1 && (a.F09 is null or a.F09 = 0))) or ((tmpa.F10 is null && a.F10 = 1) or (tmpa.F10 = 1 && (a.F10 is null or a.F10 = 0)))
  125. or ((tmpa.F11 is null && a.F11 = 1) or (tmpa.F11 = 1 && (a.F11 is null or a.F11 = 0))) or ((tmpa.F12 is null && a.F12 = 1) or (tmpa.F12 = 1 && (a.F12 is null or a.F12 = 0))) or ((tmpa.F13 is null && a.F13 = 1) or (tmpa.F13 = 1 && (a.F13 is null or a.F13 = 0))) or ((tmpa.F14 is null && a.F14 = 1) or (tmpa.F14 = 1 && (a.F14 is null or a.F14 = 0))) or ((tmpa.F15 is null && a.F15 = 1) or (tmpa.F15 = 1 && (a.F15 is null or a.F15 = 0))) or ((tmpa.F16 is null && a.F16 = 1) or (tmpa.F16 = 1 && (a.F16 is null or a.F16 = 0))) or ((tmpa.F17 is null && a.F17 = 1) or (tmpa.F17 = 1 && (a.F17 is null or a.F17 = 0))) or ((tmpa.F18 is null && a.F18 = 1) or (tmpa.F18 = 1 && (a.F18 is null or a.F18 = 0))) or ((tmpa.F19 is null && a.F19 = 1) or (tmpa.F19 = 1 && (a.F19 is null or a.F19 = 0))) or ((tmpa.F20 is null && a.F20 = 1) or (tmpa.F20 = 1 && (a.F20 is null or a.F20 = 0)))
  126. or ((tmpa.F21 is null && a.F21 = 1) or (tmpa.F21 = 1 && (a.F21 is null or a.F21 = 0))) or ((tmpa.F22 is null && a.F22 = 1) or (tmpa.F22 = 1 && (a.F22 is null or a.F22 = 0))) or ((tmpa.F23 is null && a.F23 = 1) or (tmpa.F23 = 1 && (a.F23 is null or a.F23 = 0))) or ((tmpa.F24 is null && a.F24 = 1) or (tmpa.F24 = 1 && (a.F24 is null or a.F24 = 0))) or ((tmpa.F25 is null && a.F25 = 1) or (tmpa.F25 = 1 && (a.F25 is null or a.F25 = 0))) or ((tmpa.F26 is null && a.F26 = 1) or (tmpa.F26 = 1 && (a.F26 is null or a.F26 = 0))) or ((tmpa.F27 is null && a.F27 = 1) or (tmpa.F27 = 1 && (a.F27 is null or a.F27 = 0))) or ((tmpa.F28 is null && a.F28 = 1) or (tmpa.F28 = 1 && (a.F28 is null or a.F28 = 0))) or ((tmpa.F29 is null && a.F29 = 1) or (tmpa.F29 = 1 && (a.F29 is null or a.F29 = 0))) or ((tmpa.F30 is null && a.F30 = 1) or (tmpa.F30 = 1 && (a.F30 is null or a.F30 = 0)))
  127. or ((tmpa.F31 is null && a.F31 = 1) or (tmpa.F31 = 1 && (a.F31 is null or a.F31 = 0))) or ((tmpa.F32 is null && a.F32 = 1) or (tmpa.F32 = 1 && (a.F32 is null or a.F32 = 0))) or ((tmpa.F33 is null && a.F33 = 1) or (tmpa.F33 = 1 && (a.F33 is null or a.F33 = 0))) or ((tmpa.F34 is null && a.F34 = 1) or (tmpa.F34 = 1 && (a.F34 is null or a.F34 = 0))) or ((tmpa.F35 is null && a.F35 = 1) or (tmpa.F35 = 1 && (a.F35 is null or a.F35 = 0))) or ((tmpa.F36 is null && a.F36 = 1) or (tmpa.F36 = 1 && (a.F36 is null or a.F36 = 0))) or ((tmpa.F37 is null && a.F37 = 1) or (tmpa.F37 = 1 && (a.F37 is null or a.F37 = 0))) or ((tmpa.F38 is null && a.F38 = 1) or (tmpa.F38 = 1 && (a.F38 is null or a.F38 = 0))) or ((tmpa.F39 is null && a.F39 = 1) or (tmpa.F39 = 1 && (a.F39 is null or a.F39 = 0))) or ((tmpa.F40 is null && a.F40 = 1) or (tmpa.F40 = 1 && (a.F40 is null or a.F40 = 0)))
  128. or ((tmpa.F41 is null && a.F41 = 1) or (tmpa.F41 = 1 && (a.F41 is null or a.F41 = 0))) or ((tmpa.F42 is null && a.F42 = 1) or (tmpa.F42 = 1 && (a.F42 is null or a.F42 = 0))) or ((tmpa.F43 is null && a.F43 = 1) or (tmpa.F43 = 1 && (a.F43 is null or a.F43 = 0))) or ((tmpa.F44 is null && a.F44 = 1) or (tmpa.F44 = 1 && (a.F44 is null or a.F44 = 0))) or ((tmpa.F45 is null && a.F45 = 1) or (tmpa.F45 = 1 && (a.F45 is null or a.F45 = 0))) or ((tmpa.F46 is null && a.F46 = 1) or (tmpa.F46 = 1 && (a.F46 is null or a.F46 = 0))) or ((tmpa.F47 is null && a.F47 = 1) or (tmpa.F47 = 1 && (a.F47 is null or a.F47 = 0))) or ((tmpa.F48 is null && a.F48 = 1) or (tmpa.F48 = 1 && (a.F48 is null or a.F48 = 0))) or ((tmpa.F49 is null && a.F49 = 1) or (tmpa.F49 = 1 && (a.F49 is null or a.F49 = 0))) or ((tmpa.F50 is null && a.F50 = 1) or (tmpa.F50 = 1 && (a.F50 is null or a.F50 = 0)))
  129. or ((tmpa.F51 is null && a.F51 = 1) or (tmpa.F51 = 1 && (a.F51 is null or a.F51 = 0))) or ((tmpa.F52 is null && a.F52 = 1) or (tmpa.F52 = 1 && (a.F52 is null or a.F52 = 0)))
  130. ,true, false) as checked`
  131. if Conditions == "5" {
  132. sql += " FROM Tmp_OilTechnologyService a LEFT JOIN Tmp_OilTechnologyServiceClass b ON b.Id = a.ClassId LEFT JOIN OilTechnologyServiceClassClass tmpb ON tmpb.Name = b.Name LEFT JOIN OilTechnologyServiceClass tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ")"
  133. } else {
  134. sql += " FROM OilTechnologyService a LEFT JOIN OilTechnologyServiceClass b ON b.Id = a.ClassId LEFT JOIN Tmp_OilTechnologyServiceClass tmpb ON tmpb.Name = b.Name LEFT JOIN Tmp_OilTechnologyService tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ")"
  135. }
  136. if asc {
  137. sql += ` order by b.` + orderby + ` ASC `
  138. } else {
  139. sql += ` order by b.` + orderby + ` DESC `
  140. }
  141. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  142. sqlCount := "SELECT count(*) FROM OilTechnologyService a LEFT JOIN OilTechnologyServiceClass b ON b.Id = a.ClassId LEFT JOIN Tmp_OilTechnologyServiceClass tmpb ON tmpb.Name = b.Name LEFT JOIN Tmp_OilTechnologyService tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ") "
  143. if Conditions == "5" {
  144. sqlCount = "SELECT count(*) FROM Tmp_OilTechnologyService a LEFT JOIN Tmp_OilTechnologyServiceClass b ON b.Id = a.ClassId LEFT JOIN OilTechnologyServiceClass tmpb ON tmpb.Name = b.Name LEFT JOIN OilTechnologyService tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ") "
  145. }
  146. //var totalResult TotalResult
  147. s.DBE.SQL(sql).Find(entitiesPtr)
  148. //s.DBE.SQL(sqlCount).Get(&totalResult)
  149. //total = totalResult.Total
  150. var resultsSlice []map[string][]byte
  151. resultsSlice, _ = s.DBE.Query(sqlCount)
  152. if len(resultsSlice) > 0 {
  153. results := resultsSlice[0]
  154. for _, value := range results {
  155. total, _ = strconv.ParseInt(string(value), 10, 64)
  156. break
  157. }
  158. }
  159. return total
  160. }
  161. func (s *OilTechnologyServiceService) GetPagingTmpCheckedEntities(entitiesPtr interface{}, where string) (total int64) {
  162. var sql string
  163. sql = `SELECT
  164. a.Id,a.SupplierName,
  165. b.SupplierTypeCode, b.SupplierTypeName,
  166. b.AccessCardNo, a.DepositBank,a.HseTraining,
  167. a.CompanyType,a.SetupTime,a.Address,a.Province,a.City,a.Street,
  168. a.LegalPerson,a.RegCapital,a.Mobile,b.AuditDate,b.ApplyTime,b.InFlag,
  169. a.ContactName,a.CommercialNo,a.LinkAddress,a.LinkProvince,
  170. a.LinkCity,a.LinkStreet,a.BusinessScope,b.InStyle, b.Id CertId,
  171. group_concat(DISTINCT header.Code) AS HeaderCodes,
  172. min(sub.SubClassId) as MinClassId,
  173. CONCAT(
  174. if((max(goods.F01)='1' AND LOCATE('F01', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F01) is null) or (max(goods.F01) = ''), '', '营业执照,') ,
  175. if((max(goods.F02)='1' AND LOCATE('F02', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F02) is null) or (max(goods.F02) = ''), '', '企业信用信息截屏,') ,
  176. if((max(goods.F03)='1' AND LOCATE('F03', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F03) is null) or (max(goods.F03) = ''), '', '诚信合规承诺书,') ,
  177. if((max(goods.F04)='1' AND LOCATE('F04', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F04) is null) or (max(goods.F04) = ''), '', '银行开户许可证或基本存款账户信息,') ,
  178. if((max(goods.F05)='1' AND LOCATE('F05', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F05) is null) or (max(goods.F05) = ''), '', '质量管理体系认证证书,') ,
  179. if((max(goods.F06)='1' AND LOCATE('F06', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F06) is null) or (max(goods.F06) = ''), '', '环境管理体系认证证书,') ,
  180. if((max(goods.F07)='1' AND LOCATE('F07', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F07) is null) or (max(goods.F07) = ''), '', '职业健康安全管理体系认证证书,') ,
  181. if((max(goods.F08)='1' AND LOCATE('F08', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F08) is null) or (max(goods.F08) = ''), '', '排污许可证,') ,
  182. if((max(goods.F09)='1' AND LOCATE('F09', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F09) is null) or (max(goods.F09) = ''), '', '安全生产许可证,') ,
  183. if((max(goods.F10)='1' AND LOCATE('F10', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F10) is null) or (max(goods.F10) = ''), '', '危险废弃物经营许可证(危险废弃物处置),') ,
  184. if((max(goods.F11)='1' AND LOCATE('F11', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F11) is null) or (max(goods.F11) = ''), '', '海洋石油作业安全生产许可证,') ,
  185. if((max(goods.F12)='1' AND LOCATE('F12', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F12) is null) or (max(goods.F12) = ''), '', '辐射安全许可证,') ,
  186. if((max(goods.F13)='1' AND LOCATE('F13', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F13) is null) or (max(goods.F13) = ''), '', '石油工程技术服务企业资质证书,') ,
  187. if((max(goods.F14)='1' AND LOCATE('F14', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F14) is null) or (max(goods.F14) = ''), '', '检验检测机构资质认定证书(气体检测),') ,
  188. if((max(goods.F15)='1' AND LOCATE('F15', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F15) is null) or (max(goods.F15) = ''), '', '工业清洗企业资质证书,') ,
  189. if((max(goods.F16)='1' AND LOCATE('F16', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F16) is null) or (max(goods.F16) = ''), '', '建设项目环境影响评价资格证书,') ,
  190. if((max(goods.F17)='1' AND LOCATE('F17', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F17) is null) or (max(goods.F17) = ''), '', '消防设施维护保养资质证书,') ,
  191. if((max(goods.F18)='1' AND LOCATE('F18', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F18) is null) or (max(goods.F18) = ''), '', '安全评价机构资质证书,') ,
  192. if((max(goods.F19)='1' AND LOCATE('F19', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F19) is null) or (max(goods.F19) = ''), '', '工程造价咨询企业甲级资质证书,') ,
  193. if((max(goods.F20)='1' AND LOCATE('F20', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F20) is null) or (max(goods.F20) = ''), '', '工程监督资质证书,') ,
  194. if((max(goods.F21)='1' AND LOCATE('F21', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F21) is null) or (max(goods.F21) = ''), '', '计量标准考核证书,') ,
  195. if((max(goods.F22)='1' AND LOCATE('F22', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F22) is null) or (max(goods.F22) = ''), '', '房屋预售资格证,') ,
  196. if((max(goods.F23)='1' AND LOCATE('F23', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F23) is null) or (max(goods.F23) = ''), '', '保安服务许可证,') ,
  197. if((max(goods.F24)='1' AND LOCATE('F24', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F24) is null) or (max(goods.F24) = ''), '', '道路运输经营许可证,') ,
  198. if((max(goods.F25)='1' AND LOCATE('F25', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F25) is null) or (max(goods.F25) = ''), '', '机动车维修经营许可证,') ,
  199. if((max(goods.F26)='1' AND LOCATE('F26', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F26) is null) or (max(goods.F26) = ''), '', '道路危险货物运输许可证,') ,
  200. if((max(goods.F27)='1' AND LOCATE('F27', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F27) is null) or (max(goods.F27) = ''), '', '特种设备安装改造维修许可证,') ,
  201. if((max(goods.F28)='1' AND LOCATE('F28', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F28) is null) or (max(goods.F28) = ''), '', '消防设施检测资质证书,') ,
  202. if((max(goods.F29)='1' AND LOCATE('F29', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F29) is null) or (max(goods.F29) = ''), '', '消防安全评估资质,') ,
  203. if((max(goods.F30)='1' AND LOCATE('F30', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F30) is null) or (max(goods.F30) = ''), '', '印刷经营许可证,') ,
  204. if((max(goods.F31)='1' AND LOCATE('F31', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F31) is null) or (max(goods.F31) = ''), '', '餐饮服务许可证,') ,
  205. if((max(goods.F32)='1' AND LOCATE('F32', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F32) is null) or (max(goods.F32) = ''), '', '劳务派遣经营许可证,') ,
  206. if((max(goods.F33)='1' AND LOCATE('F33', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F33) is null) or (max(goods.F33) = ''), '', '人力资源服务许可证,') ,
  207. if((max(goods.F34)='1' AND LOCATE('F34', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F34) is null) or (max(goods.F34) = ''), '', '国家实验室认可证书,') ,
  208. if((max(goods.F35)='1' AND LOCATE('F35', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F35) is null) or (max(goods.F35) = ''), '', '海洋石油专业设备检验检测机构证书,') ,
  209. if((max(goods.F36)='1' AND LOCATE('F36', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F36) is null) or (max(goods.F36) = ''), '', '安全生产检验检测证书,') ,
  210. if((max(goods.F37)='1' AND LOCATE('F37', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F37) is null) or (max(goods.F37) = ''), '', '液化气钢瓶检验证书,') ,
  211. if((max(goods.F38)='1' AND LOCATE('F38', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F38) is null) or (max(goods.F38) = ''), '', '国家电网承试承装承维修许可证,') ,
  212. if((max(goods.F39)='1' AND LOCATE('F39', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F39) is null) or (max(goods.F39) = ''), '', '建筑企业资质证书,') ,
  213. if((max(goods.F40)='1' AND LOCATE('F40', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F40) is null) or (max(goods.F40) = ''), '', '中油集团监造许可,') ,
  214. if((max(goods.F43)='1' AND LOCATE('F43', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F43) is null) or (max(goods.F43) = ''), '', '物业服务企业资质证书,') ,
  215. if((max(goods.F44)='1' AND LOCATE('F44', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F44) is null) or (max(goods.F44) = ''), '', '全国投资项目在线审批监管平台备案信息,') ,
  216. if((max(goods.F45)='1' AND LOCATE('F45', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F45) is null) or (max(goods.F45) = ''), '', '') ,
  217. if((max(goods.F46)='1' AND LOCATE('F46', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F46) is null) or (max(goods.F46) = ''), '', '') ,
  218. if((max(goods.F47)='1' AND LOCATE('F47', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F47) is null) or (max(goods.F47) = ''), '', '') ,
  219. if((max(goods.F48)='1' AND LOCATE('F48', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F48) is null) or (max(goods.F48) = ''), '', '') ,
  220. if((max(goods.F49)='1' AND LOCATE('F49', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F49) is null) or (max(goods.F49) = ''), '', '') ,
  221. if((max(goods.F50)='1' AND LOCATE('F50', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F50) is null) or (max(goods.F50) = ''), '', '') ,
  222. if((max(goods.F51)='1' AND LOCATE('F51', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F51) is null) or (max(goods.F51) = ''), '', '') ,
  223. if((max(goods.F52)='1' AND LOCATE('F52', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F52) is null) or (max(goods.F52) = ''), '', '')
  224. ) AS ZzName,
  225. (
  226. ((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
  227. (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
  228. (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
  229. 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
  230. 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
  231. 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
  232. if((max(goods.F05)='1' AND LOCATE('F05', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F05) is null) or (max(goods.F05) = ''), TRUE, FALSE) AND
  233. if((max(goods.F06)='1' AND LOCATE('F06', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F06) is null) or (max(goods.F06) = ''), TRUE, FALSE) AND
  234. if((max(goods.F07)='1' AND LOCATE('F07', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F07) is null) or (max(goods.F07) = ''), TRUE, FALSE) AND
  235. if((max(goods.F08)='1' AND LOCATE('F08', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F08) is null) or (max(goods.F08) = ''), TRUE, FALSE) AND
  236. if((max(goods.F09)='1' AND LOCATE('F09', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F09) is null) or (max(goods.F09) = ''), TRUE, FALSE) AND
  237. if((max(goods.F10)='1' AND LOCATE('F10', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F10) is null) or (max(goods.F10) = ''), TRUE, FALSE) AND
  238. 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
  239. 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
  240. 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
  241. 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
  242. 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
  243. 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
  244. 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
  245. 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
  246. if((max(goods.F19)='1' AND LOCATE('F19', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F19) is null) or (max(goods.F19) = ''), TRUE, FALSE) AND
  247. if((max(goods.F20)='1' AND LOCATE('F20', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F20) is null) or (max(goods.F20) = ''), TRUE, FALSE) AND
  248. if((max(goods.F21)='1' AND LOCATE('F21', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F21) is null) or (max(goods.F21) = ''), TRUE, FALSE) AND
  249. if((max(goods.F22)='1' AND LOCATE('F22', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F22) is null) or (max(goods.F22) = ''), TRUE, FALSE) AND
  250. if((max(goods.F23)='1' AND LOCATE('F23', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F23) is null) or (max(goods.F23) = ''), TRUE, FALSE) AND
  251. if((max(goods.F24)='1' AND LOCATE('F24', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F24) is null) or (max(goods.F24) = ''), TRUE, FALSE) AND
  252. if((max(goods.F25)='1' AND LOCATE('F25', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F25) is null) or (max(goods.F25) = ''), TRUE, FALSE) AND
  253. if((max(goods.F26)='1' AND LOCATE('F26', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F26) is null) or (max(goods.F26) = ''), TRUE, FALSE) AND
  254. if((max(goods.F27)='1' AND LOCATE('F27', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F27) is null) or (max(goods.F27) = ''), TRUE, FALSE) AND
  255. if((max(goods.F28)='1' AND LOCATE('F28', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F28) is null) or (max(goods.F28) = ''), TRUE, FALSE) AND
  256. if((max(goods.F29)='1' AND LOCATE('F29', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F29) is null) or (max(goods.F29) = ''), TRUE, FALSE) AND
  257. if((max(goods.F30)='1' AND LOCATE('F30', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F30) is null) or (max(goods.F30) = ''), TRUE, FALSE) AND
  258. if((max(goods.F31)='1' AND LOCATE('F31', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F31) is null) or (max(goods.F31) = ''), TRUE, FALSE) AND
  259. if((max(goods.F32)='1' AND LOCATE('F32', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F32) is null) or (max(goods.F32) = ''), TRUE, FALSE) AND
  260. if((max(goods.F33)='1' AND LOCATE('F33', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F33) is null) or (max(goods.F33) = ''), TRUE, FALSE) AND
  261. if((max(goods.F34)='1' AND LOCATE('F34', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F34) is null) or (max(goods.F34) = ''), TRUE, FALSE) AND
  262. if((max(goods.F35)='1' AND LOCATE('F35', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F35) is null) or (max(goods.F35) = ''), TRUE, FALSE) AND
  263. if((max(goods.F36)='1' AND LOCATE('F36', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F36) is null) or (max(goods.F36) = ''), TRUE, FALSE) AND
  264. if((max(goods.F37)='1' AND LOCATE('F37', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F37) is null) or (max(goods.F37) = ''), TRUE, FALSE) AND
  265. if((max(goods.F38)='1' AND LOCATE('F38', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F38) is null) or (max(goods.F38) = ''), TRUE, FALSE) AND
  266. if((max(goods.F39)='1' AND LOCATE('F39', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F39) is null) or (max(goods.F39) = ''), TRUE, FALSE) AND
  267. if((max(goods.F40)='1' AND LOCATE('F40', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F40) is null) or (max(goods.F40) = ''), TRUE, FALSE) AND
  268. if((max(goods.F43)='1' AND LOCATE('F43', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F43) is null) or (max(goods.F43) = ''), TRUE, FALSE) AND
  269. if((max(goods.F44)='1' AND LOCATE('F44', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F44) is null) or (max(goods.F44) = ''), TRUE, FALSE) AND
  270. if((max(goods.F45)='1' AND LOCATE('F45', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F45) is null) or (max(goods.F45) = ''), TRUE, FALSE) AND
  271. if((max(goods.F46)='1' AND LOCATE('F46', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F46) is null) or (max(goods.F46) = ''), TRUE, FALSE) AND
  272. if((max(goods.F47)='1' AND LOCATE('F47', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F47) is null) or (max(goods.F47) = ''), TRUE, FALSE) AND
  273. if((max(goods.F48)='1' AND LOCATE('F48', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F48) is null) or (max(goods.F48) = ''), TRUE, FALSE) AND
  274. if((max(goods.F49)='1' AND LOCATE('F49', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F49) is null) or (max(goods.F49) = ''), TRUE, FALSE) AND
  275. if((max(goods.F50)='1' AND LOCATE('F50', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F50) is null) or (max(goods.F50) = ''), TRUE, FALSE) AND
  276. if((max(goods.F51)='1' AND LOCATE('F51', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F51) is null) or (max(goods.F51) = ''), TRUE, FALSE) AND
  277. if((max(goods.F52)='1' AND LOCATE('F52', group_concat(DISTINCT header.Code)) > 0) or (max(goods.F52) is null) or (max(goods.F52) = ''), TRUE, FALSE)
  278. ) AS checked
  279. FROM OilSupplier a
  280. LEFT JOIN OilSupplierCert b ON a.Id=b.SupplierId
  281. LEFT JOIN OilSupplierCertSub sub ON b.Id=sub.SupplierCertId
  282. LEFT JOIN OilSupplierFile files ON a.Id=files.SupplierId
  283. LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name and header.CategoryCode = '03'
  284. LEFT JOIN Tmp_OilTechnologyServiceClass class ON sub.Name=class.Name
  285. LEFT JOIN Tmp_OilTechnologyService goods ON class.Id=goods.ClassId
  286. WHERE`
  287. sql += where
  288. sql += ` GROUP BY a.Id, b.Id `
  289. //sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  290. //sqlCount := "SELECT count(DISTINCT a.Id) as total FROM OilSupplier a LEFT JOIN OilSupplierCert b ON a.Id=b.SupplierId LEFT JOIN OilSupplierCertSub sub ON b.Id=sub.SupplierCertId LEFT JOIN OilSupplierFile files ON a.Id=files.SupplierId LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name LEFT JOIN tmp_OilGoodsAptitudeClass class ON sub.Code=class.Code LEFT JOIN tmp_OilGoodsAptitude goods ON class.Id=goods.ClassId WHERE b.SupplierTypeCode='01' AND " + having
  291. var totalResult TotalResult
  292. s.DBE.SQL(sql).Find(entitiesPtr)
  293. //s.DBE.SQL(sqlCount).Get(&totalResult)
  294. total = totalResult.Total
  295. return total
  296. }
  297. func (s *OilTechnologyServiceService) GetPagingTmpSubEntities(pageIndex, itemsPerPage int64, orderby string,
  298. asc bool, entitiesPtr interface{}, having string) (total int64) {
  299. var sql string
  300. sql = `SELECT
  301. a.*,group_concat(DISTINCT header.Code) AS HeaderCodes
  302. FROM OilSupplierCertSub a
  303. LEFT JOIN OilSupplierFile files ON a.SupplierId=files.SupplierId
  304. LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name
  305. LEFT JOIN Tmp_OilTechnologyServiceClass class ON a.Name=class.Name
  306. LEFT JOIN Tmp_OilTechnologyService goods ON class.Id=goods.ClassId`
  307. sql += " where (" + having + ")"
  308. sql += ` GROUP BY a.Id `
  309. if asc {
  310. sql += ` order by ` + orderby + ` ASC `
  311. } else {
  312. sql += ` order by ` + orderby + ` DESC `
  313. }
  314. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  315. sqlCount := "SELECT count(*) as total FROM OilSupplierCertSub a LEFT JOIN Tmp_OilTechnologyServiceClass class ON a.Name=class.Name LEFT JOIN Tmp_OilTechnologyService goods ON class.Id=goods.ClassId where (" + having + ") "
  316. var totalResult TotalResult
  317. s.DBE.SQL(sql).Find(entitiesPtr)
  318. s.DBE.SQL(sqlCount).Get(&totalResult)
  319. total = totalResult.Total
  320. return total
  321. }
  322. func (s *OilTechnologyServiceService) DeleteOilSupplierCertSub(where string) error {
  323. 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)"
  324. _, err := s.DBE.Query(sql)
  325. return err
  326. }