2
3

oilgoodsaptitudeService.go 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. package goodsaptitude
  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 OilGoodsAptitudeService struct {
  10. MyServiceBase
  11. }
  12. func GetOilGoodsAptitudeService(xormEngine *xorm.Engine) *OilGoodsAptitudeService {
  13. s := new(OilGoodsAptitudeService)
  14. s.DBE = xormEngine
  15. return s
  16. }
  17. type TotalResult struct {
  18. Total int64 `xorm:"INT(11) 'total'"`
  19. }
  20. func (s *OilGoodsAptitudeService) GetMyPagingEntitiesWithOrderBytbl(tableName string, pageIndex, itemsPerPage int64, order string, asc bool, entitiesPtr interface{}, where ...string) (total int64) {
  21. var err error
  22. var resultsSlice []map[string][]byte
  23. //获取表名
  24. if len(where) == 0 {
  25. if asc {
  26. err = s.DBE.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr)
  27. } else {
  28. err = s.DBE.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr)
  29. }
  30. //获取总记录数
  31. sql := "SELECT COUNT(*) AS total FROM " + tableName
  32. resultsSlice, err = s.DBE.Query(sql)
  33. } else {
  34. if asc {
  35. err = s.DBE.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr)
  36. } else {
  37. err = s.DBE.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr)
  38. }
  39. sql := "SELECT COUNT(*) AS total FROM " + tableName + " where " + where[0]
  40. resultsSlice, err = s.DBE.Query(sql)
  41. }
  42. //LogError(err)
  43. if len(resultsSlice) > 0 {
  44. results := resultsSlice[0]
  45. for _, value := range results {
  46. total, err = strconv.ParseInt(string(value), 10, 64)
  47. LogError(err)
  48. break
  49. }
  50. }
  51. return total
  52. }
  53. func (s *OilGoodsAptitudeService) GetGoodsList(goodsclass, where string) []GoodsBusiness {
  54. if where == "" {
  55. where = " 1=1 "
  56. }
  57. var sql string
  58. sql = `select Id, Code, Name, concat(Code, ' ', Name) as CodeName, ParentId, Remark, DeletionStateCode
  59. from ` + goodsclass + ` where ` + where + ` order by Code asc `
  60. List := make([]GoodsBusiness, 0)
  61. utils.DBE.Sql(sql).Find(&List)
  62. return List
  63. }
  64. func (s *OilGoodsAptitudeService) GetList_2019(OilGoodsAptitudeName, OilGoodsAptitudeClassName string, pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where string) (total int64) {
  65. var resultsSlice []map[string][]byte
  66. //获取总记录数
  67. sqlCount := `select count(*) from ` + OilGoodsAptitudeName + ` a `
  68. sqlCount += ` left join ` + OilGoodsAptitudeClassName + " b on b.Id = a.ClassId"
  69. sqlCount += ` where ` + where
  70. var sql string
  71. sql = `select a.*, b.Code, b.Name `
  72. sql += ` from ` + OilGoodsAptitudeName + ` a `
  73. sql += ` left join ` + OilGoodsAptitudeClassName + " b on b.Id = a.ClassId"
  74. sql += ` where ` + where
  75. if asc {
  76. sql += ` order by ` + orderby + ` ASC `
  77. } else {
  78. sql += ` order by ` + orderby + ` DESC `
  79. }
  80. if (pageIndex != 0 && itemsPerPage !=0) {
  81. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  82. }
  83. s.DBE.SQL(sql).Find(entitiesPtr)
  84. resultsSlice, _ = s.DBE.Query(sqlCount)
  85. if len(resultsSlice) > 0 {
  86. results := resultsSlice[0]
  87. for _, value := range results {
  88. total, _ = strconv.ParseInt(string(value), 10, 64)
  89. break
  90. }
  91. }
  92. return total
  93. }
  94. func (s *OilGoodsAptitudeService) GetFCode() string {
  95. sql := "select group_concat(Code ORDER BY SortCode) FCodes from `Base_TableHeader` where CategoryCode= '01'"
  96. results, err :=s.DBE.QueryString(sql)
  97. if err != nil {
  98. return ""
  99. }
  100. return results[0]["FCodes"]
  101. }
  102. func (s *OilGoodsAptitudeService) GetGoodsAptitudeF(entity interface{}, where string) error {
  103. sql := "select F01,F02,F03,F04,F05,F06,F07,F08,F09,F10,"
  104. sql += "F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,"
  105. sql += "F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,"
  106. sql += "F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,"
  107. sql += "F41,F42,F43,F44,F45,F46 from OilGoodsAptitude "
  108. if where != "" {
  109. sql = sql + " where " + where
  110. }
  111. err := s.DBE.Sql(sql).Find(entity)
  112. return err
  113. }
  114. func (s *OilGoodsAptitudeService) DeleteTable(tableName, where string) error {
  115. sql := "DELETE FROM " + tableName
  116. if where != "" {
  117. sql = sql + " Where " + where
  118. }
  119. _,err := s.DBE.Query(sql)
  120. return err
  121. }
  122. func (s *OilGoodsAptitudeService) GetMyPagingDelEntitiesWithOrderBytbl(supplierTableName, supplierCertTableName, OilInfoChangeName, OilCorporateInfoName, OilSupplierCertSubName,
  123. OilSupplierFileName string, pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where,having, liftjoon string) (total int64) {
  124. var sql string
  125. sql = `select SQL_CALC_FOUND_ROWS a.Id,a.SupplierName,b.AccessCardNo,b.SupplierTypeCode,`
  126. sql += `a.LegalPerson,a.RegCapital,a.Mobile,b.AuditDate,b.ApplyTime,b.InFlag,a.ContactName,a.CommercialNo, `
  127. sql += `a.DepositBank,a.HseTraining,a.CompanyType,a.SetupTime,a.Address,a.Province,a.City,a.Street, `
  128. sql += `a.LinkAddress,a.LinkProvince,a.LinkCity,a.LinkStreet,a.BusinessScope, `
  129. sql += `b.InStyle, b.Id CertId, `
  130. sql += `group_concat(distinct e.NeedFileType) NeedFileType `
  131. if liftjoon != "" {
  132. sql += `,group_concat(distinct d.Name) CerSubName `
  133. }
  134. sql += `from ` + supplierTableName + ` a `
  135. sql += `left join ` + supplierCertTableName + ` b on b.SupplierId = a.Id `
  136. sql += liftjoon
  137. sql += `left join ` + OilSupplierFileName + ` e on e.SupplierId = a.Id `
  138. sql += `LEFT JOIN tmp_OilSupplierCertSub t ON t.SupplierCertId = b.Id `
  139. sql += `where ` + where
  140. sql += ` group by a.Id,b.Id ` + having
  141. if asc {
  142. sql += ` order by ` + orderby + ` ASC `
  143. } else {
  144. sql += ` order by ` + orderby + ` DESC `
  145. }
  146. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  147. sqlCount := "SELECT FOUND_ROWS() as total"
  148. var totalResult TotalResult
  149. session := s.DBE.NewSession()
  150. session.Begin()
  151. session.SQL(sql).Find(entitiesPtr)
  152. session.SQL(sqlCount).Get(&totalResult)
  153. session.Commit()
  154. total = totalResult.Total
  155. return total
  156. }
  157. //查看贸易或制造商准入资质个数
  158. func (s *OilGoodsAptitudeService) GetNumOfPass(ismanf string) (total int64) {
  159. var resultsSlice []map[string][]byte
  160. sqlCount := "SELECT COUNT(Id) FROM Base_TableHeader WHERE IsManuf = '"+ismanf+"' AND CategoryCode = '01'"
  161. resultsSlice, _ = s.DBE.Query(sqlCount)
  162. if len(resultsSlice) > 0 {
  163. results := resultsSlice[0]
  164. for _, value := range results {
  165. total, _ = strconv.ParseInt(string(value), 10, 64)
  166. break
  167. }
  168. }
  169. return total
  170. }
  171. func (s *OilGoodsAptitudeService) TruncateTable(tableName string) error {
  172. sql := "TRUNCATE TABLE " + tableName
  173. _,err := s.DBE.Query(sql)
  174. return err
  175. }
  176. func (s *OilGoodsAptitudeService) InsertGoodsAptitude(fromTableName, toTableName string) error {
  177. sql := "INSERT INTO " + toTableName + " SELECT * FROM " + fromTableName
  178. _,err := s.DBE.Query(sql)
  179. return err
  180. }
  181. func (s *OilGoodsAptitudeService) InsertTmpGoodsAptitude(parentId, fcode, val string) error {
  182. sql := "INSERT INTO `tmp_OilGoodsAptitude` (Edition,ClassId," + fcode + ") "
  183. sql += " VALUES ('1',"+ parentId +"," + val + ")"
  184. _, err := s.DBE.Query(sql)
  185. return err
  186. }
  187. func (s *OilGoodsAptitudeService) GetPagingCheckedEntities(pageIndex, itemsPerPage int64, orderby string,
  188. asc bool, entitiesPtr interface{}, where string) (total int64) {
  189. var sql string
  190. sql = `SELECT
  191. a.Id,a.SupplierName,
  192. b.SupplierTypeCode, b.SupplierTypeName,
  193. b.AccessCardNo, a.DepositBank,a.HseTraining,
  194. a.CompanyType,a.SetupTime,a.Address,a.Province,a.City,a.Street,
  195. a.LegalPerson,a.RegCapital,a.Mobile,b.AuditDate,b.ApplyTime,b.InFlag,
  196. a.ContactName,a.CommercialNo,a.LinkAddress,a.LinkProvince,
  197. a.LinkCity,a.LinkStreet,a.BusinessScope,b.InStyle, b.Id CertId,
  198. COUNT(sub.Id) AS subCnt,
  199. group_concat(DISTINCT header.Code) AS headerCodes,
  200. group_concat(distinct sub.Name) AS subNames,
  201. group_concat(distinct sub.Code) certSubCodes,
  202. group_concat(DISTINCT sub.SubClassId) AS subClassIds,
  203. max(goods.F01) AS F01,
  204. max(goods.F02) AS F02,
  205. max(goods.F03) AS F03,
  206. max(goods.F04) AS F04,
  207. max(goods.F05) AS F05,
  208. max(goods.F06) AS F06,
  209. max(goods.F07) AS F07,
  210. max(goods.F08) AS F08,
  211. max(goods.F09) AS F09,
  212. max(goods.F10) AS F10,
  213. max(goods.F11) AS F11,
  214. max(goods.F12) AS F12,
  215. max(goods.F13) AS F13,
  216. max(goods.F14) AS F14,
  217. max(goods.F15) AS F15,
  218. max(goods.F16) AS F16,
  219. max(goods.F17) AS F17,
  220. max(goods.F18) AS F18,
  221. max(goods.F19) AS F19,
  222. max(goods.F20) AS F20,
  223. max(goods.F21) AS F21,
  224. max(goods.F22) AS F22,
  225. max(goods.F23) AS F23,
  226. max(goods.F24) AS F24,
  227. max(goods.F25) AS F25,
  228. max(goods.F26) AS F26,
  229. max(goods.F27) AS F27,
  230. max(goods.F28) AS F28,
  231. max(goods.F29) AS F29,
  232. max(goods.F30) AS F30,
  233. max(goods.F31) AS F31,
  234. max(goods.F32) AS F32,
  235. max(goods.F33) AS F33,
  236. max(goods.F34) AS F34,
  237. max(goods.F35) AS F35,
  238. max(goods.F36) AS F36,
  239. max(goods.F37) AS F37,
  240. max(goods.F38) AS F38,
  241. max(goods.F39) AS F39,
  242. max(goods.F40) AS F40,
  243. max(goods.F41) AS F41,
  244. max(goods.F42) AS F42,
  245. max(goods.F43) AS F43,
  246. max(goods.F44) AS F44,
  247. max(goods.F45) AS F45,
  248. max(goods.F46) AS F46,
  249. (
  250. ((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
  251. (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)) or
  252. (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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. 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
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. 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
  277. 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
  278. 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
  279. 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
  280. 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
  281. 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
  282. 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
  283. 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
  284. 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
  285. 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
  286. 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
  287. 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
  288. 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
  289. 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
  290. 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) AND
  291. 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
  292. 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
  293. 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
  294. 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
  295. 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)
  296. ) AS checked
  297. FROM OilSupplier a
  298. LEFT JOIN OilSupplierCert b ON a.Id=b.SupplierId
  299. LEFT JOIN OilSupplierCertSub sub ON b.Id=sub.SupplierCertId and sub.Type in (1, 3)
  300. LEFT JOIN OilSupplierFile files ON a.Id=files.SupplierId
  301. LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name
  302. LEFT JOIN tmp_OilGoodsAptitudeClass class ON sub.Code=class.Code
  303. LEFT JOIN tmp_OilGoodsAptitude goods ON class.Id=goods.ClassId
  304. WHERE b.SupplierTypeCode='01' and `
  305. sql += where
  306. sql += ` GROUP BY a.Id, b.Id `
  307. if asc {
  308. sql += ` order by ` + orderby + ` ASC `
  309. } else {
  310. sql += ` order by ` + orderby + ` DESC `
  311. }
  312. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  313. sqlCount := "SELECT count(*) as total FROM OilSupplier a LEFT JOIN OilSupplierCert b ON a.Id=b.SupplierId WHERE b.SupplierTypeCode='03'"
  314. var totalResult TotalResult
  315. s.DBE.SQL(sql).Find(entitiesPtr)
  316. s.DBE.SQL(sqlCount).Get(&totalResult)
  317. total = totalResult.Total
  318. return total
  319. }
  320. func (s *OilGoodsAptitudeService) GetPagingTmpCheckedEntities(entitiesPtr interface{}, where string) (total int64) {
  321. var sql string
  322. sql = `SELECT
  323. a.Id,a.SupplierName,
  324. b.SupplierTypeCode, b.SupplierTypeName,
  325. b.AccessCardNo, a.DepositBank,a.HseTraining,
  326. a.CompanyType,a.SetupTime,a.Address,a.Province,a.City,a.Street,
  327. a.LegalPerson,a.RegCapital,a.Mobile,b.AuditDate,b.ApplyTime,b.InFlag,
  328. a.ContactName,a.CommercialNo,a.LinkAddress,a.LinkProvince,
  329. a.LinkCity,a.LinkStreet,a.BusinessScope,b.InStyle, b.Id CertId,
  330. group_concat(DISTINCT header.Code) AS HeaderCodes,
  331. min(sub.SubClassId) as MinClassId,
  332. COUNT(goods.GoodsLevel < sub.GoodsLevel or null) AS OneTwoCount,
  333. COUNT(goods.GoodsLevel > sub.GoodsLevel or null) AS TwoOneCount,
  334. (
  335. ((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
  336. (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)) or
  337. (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
  338. 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
  339. 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
  340. 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
  341. 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
  342. 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
  343. 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
  344. 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
  345. 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
  346. 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
  347. 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
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. 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
  355. 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
  356. 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
  357. 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
  358. 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
  359. 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
  360. 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
  361. 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
  362. 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
  363. 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
  364. 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
  365. 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
  366. 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
  367. 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
  368. 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
  369. 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
  370. 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
  371. 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
  372. 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
  373. 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
  374. 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
  375. 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) AND
  376. 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
  377. 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
  378. 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
  379. 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
  380. 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)
  381. ) AS checked
  382. FROM OilSupplier a
  383. LEFT JOIN OilSupplierCert b ON a.Id=b.SupplierId
  384. LEFT JOIN OilSupplierCertSub sub ON b.Id=sub.SupplierCertId
  385. LEFT JOIN OilSupplierFile files ON a.Id=files.SupplierId
  386. LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name and header.CategoryCode = '01'
  387. LEFT JOIN tmp_OilGoodsAptitudeClass class ON sub.Code=class.Code
  388. LEFT JOIN tmp_OilGoodsAptitude goods ON class.Id=goods.ClassId
  389. WHERE`
  390. sql += where
  391. sql += ` GROUP BY a.Id, b.Id `
  392. //sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  393. //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
  394. var totalResult TotalResult
  395. s.DBE.SQL(sql).Find(entitiesPtr)
  396. //s.DBE.SQL(sqlCount).Get(&totalResult)
  397. total = totalResult.Total
  398. return total
  399. }
  400. func (s *OilGoodsAptitudeService) GetPagingTmpSubEntities(pageIndex, itemsPerPage int64, orderby string,
  401. asc bool, entitiesPtr interface{}, having string) (total int64) {
  402. var sql string
  403. sql = `SELECT
  404. a.*,group_concat(DISTINCT header.Code) AS HeaderCodes
  405. FROM OilSupplierCertSub a
  406. LEFT JOIN OilSupplierFile files ON a.SupplierId=files.SupplierId
  407. LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name
  408. LEFT JOIN tmp_OilGoodsAptitudeClass class ON a.Code=class.Code
  409. LEFT JOIN tmp_OilGoodsAptitude goods ON class.Id=goods.ClassId`
  410. sql += " where (" + having + ")"
  411. sql += ` GROUP BY a.Id `
  412. if asc {
  413. sql += ` order by ` + orderby + ` ASC `
  414. } else {
  415. sql += ` order by ` + orderby + ` DESC `
  416. }
  417. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  418. sqlCount := "SELECT count(*) as total FROM OilSupplierCertSub a LEFT JOIN tmp_OilGoodsAptitudeClass class ON a.Code=class.Code LEFT JOIN tmp_OilGoodsAptitude goods ON class.Id=goods.ClassId where (" + having + ") "
  419. var totalResult TotalResult
  420. s.DBE.SQL(sql).Find(entitiesPtr)
  421. s.DBE.SQL(sqlCount).Get(&totalResult)
  422. total = totalResult.Total
  423. return total
  424. }
  425. func (s *OilGoodsAptitudeService) GetPClassEntities(pageIndex, itemsPerPage int64, orderby string,
  426. asc bool, entitiesPtr interface{}, having string, Conditions string) (total int64) {
  427. var sql string
  428. 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,
  429. 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,
  430. 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,
  431. 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,
  432. 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,
  433. 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,
  434. tmpa.F42 AS tmpF42,tmpa.F43 AS tmpF43,tmpa.F44 AS tmpF44,tmpa.F45 AS tmpF45,tmpa.F46 AS tmpF46,tmpa.GoodsLevel AS tmpGoodsLevel,
  435. 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)))
  436. 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)))
  437. 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)))
  438. 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)))
  439. 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)))
  440. ,true, false) as checked`
  441. if Conditions == "5" {
  442. sql += " FROM tmp_OilGoodsAptitude a LEFT JOIN tmp_OilGoodsAptitudeClass b ON b.Id = a.ClassId LEFT JOIN OilGoodsAptitudeClass tmpb ON tmpb.Code = b.Code LEFT JOIN OilGoodsAptitude tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ")"
  443. } else {
  444. sql += " FROM OilGoodsAptitude a LEFT JOIN OilGoodsAptitudeClass b ON b.Id = a.ClassId LEFT JOIN tmp_OilGoodsAptitudeClass tmpb ON tmpb.Code = b.Code LEFT JOIN tmp_OilGoodsAptitude tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ")"
  445. }
  446. if asc {
  447. sql += ` order by b.` + orderby + ` ASC `
  448. } else {
  449. sql += ` order by b.` + orderby + ` DESC `
  450. }
  451. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  452. sqlCount := "SELECT count(*) FROM OilGoodsAptitude a LEFT JOIN OilGoodsAptitudeClass b ON b.Id = a.ClassId LEFT JOIN tmp_OilGoodsAptitudeClass tmpb ON tmpb.Code = b.Code LEFT JOIN tmp_OilGoodsAptitude tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ") "
  453. if Conditions == "5" {
  454. sqlCount = "SELECT count(*) FROM tmp_OilGoodsAptitude a LEFT JOIN tmp_OilGoodsAptitudeClass b ON b.Id = a.ClassId LEFT JOIN OilGoodsAptitudeClass tmpb ON tmpb.Code = b.Code LEFT JOIN OilGoodsAptitude tmpa ON tmpa.ClassId = tmpb.Id where (" + having + ") "
  455. }
  456. //var totalResult TotalResult
  457. s.DBE.SQL(sql).Find(entitiesPtr)
  458. //s.DBE.SQL(sqlCount).Get(&totalResult)
  459. //total = totalResult.Total
  460. var resultsSlice []map[string][]byte
  461. resultsSlice, _ = s.DBE.Query(sqlCount)
  462. if len(resultsSlice) > 0 {
  463. results := resultsSlice[0]
  464. for _, value := range results {
  465. total, _ = strconv.ParseInt(string(value), 10, 64)
  466. break
  467. }
  468. }
  469. return total
  470. }
  471. func (s *OilGoodsAptitudeService) GetPagingSubEntities(pageIndex, itemsPerPage int64, orderby string,
  472. asc bool, entitiesPtr interface{}, having string) (total int64) {
  473. var sql string
  474. sql = `SELECT
  475. a.*,group_concat(DISTINCT header.Code) AS HeaderCodes
  476. FROM OilSupplierCertSub a
  477. LEFT JOIN OilSupplierFile files ON a.SupplierId=files.SupplierId
  478. LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name
  479. LEFT JOIN OilGoodsAptitudeClass class ON a.Code=class.Code
  480. LEFT JOIN OilGoodsAptitude goods ON class.Id=goods.ClassId
  481. LEFT JOIN OilSupplierContrastNew con ON con.Id=a.SupplierId`
  482. sql += " where (" + having + ")"
  483. sql += ` GROUP BY a.Id `
  484. if asc {
  485. sql += ` order by ` + orderby + ` ASC `
  486. } else {
  487. sql += ` order by ` + orderby + ` DESC `
  488. }
  489. if itemsPerPage != 0 {
  490. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  491. }
  492. sqlCount := "SELECT count(*) as total FROM OilSupplierCertSub a LEFT JOIN OilSupplierFile files ON a.SupplierId=files.SupplierId LEFT JOIN Base_TableHeader header ON files.NeedFileType=header.Name LEFT JOIN OilGoodsAptitudeClass class ON a.Code=class.Code LEFT JOIN OilGoodsAptitude goods ON class.Id=goods.ClassId where (" + having + ")"
  493. var totalResult TotalResult
  494. s.DBE.SQL(sql).Find(entitiesPtr)
  495. s.DBE.SQL(sqlCount).Get(&totalResult)
  496. total = totalResult.Total
  497. return total
  498. }
  499. func (s *OilGoodsAptitudeService) GetTableTotal(where string, entitiesPtr interface{}) (total int64) {
  500. sqlCount := "SELECT count(*) as total FROM OilSupplierCertSub where (" + where + ")"
  501. sql := "SELECT * FROM OilSupplierCertSub where (" + where + ")"
  502. s.DBE.SQL(sql).Find(entitiesPtr)
  503. var totalResult TotalResult
  504. s.DBE.SQL(sqlCount).Get(&totalResult)
  505. total = totalResult.Total
  506. return total
  507. }
  508. func (s *OilGoodsAptitudeService) GetNoSubCntTotal(where string) (total int64) {
  509. sqlCount := "select count(a.`Name`) as total from OilSupplierCertSub a left join tmp_OilGoodsAptitudeClass b on b.`Name` = a.`Name` where (" + where + ")"
  510. var totalResult TotalResult
  511. s.DBE.SQL(sqlCount).Get(&totalResult)
  512. total = totalResult.Total
  513. return total
  514. }
  515. func (s *OilGoodsAptitudeService) GetEntityByCode(where string, entityPtr interface{}) (has bool) {
  516. sql := "SELECT COUNT((sub.GoodsLevel < goods.GoodsLevel) or null) AS OneTwoCount,COUNT((sub.GoodsLevel > goods.GoodsLevel) or null) AS TwoOneCount FROM OilSupplierCertSub sub LEFT JOIN tmp_OilGoodsAptitude goods ON sub.SubClassId=goods.ClassId where (" + where + ")"
  517. s.DBE.SQL(sql).Get(entityPtr)
  518. return
  519. }