oilsupplierService.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. package supplier
  2. import (
  3. . "dashoo.cn/backend/api/mydb"
  4. "dashoo.cn/utils"
  5. "github.com/go-xorm/xorm"
  6. "strconv"
  7. )
  8. type OilSupplierService struct {
  9. MyServiceBase
  10. }
  11. func GetOilSupplierService(xormEngine *xorm.Engine) *OilSupplierService {
  12. s := new(OilSupplierService)
  13. s.DBE = xormEngine
  14. return s
  15. }
  16. //
  17. func (s *OilSupplierService) GetMyPagingEntitiesWithOrderBytbl(supplierTableName, supplierCertTableName string, pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where string) (total int64) {
  18. var resultsSlice []map[string][]byte
  19. //获取总记录数
  20. sqlCount := `select count(*) from ` + supplierTableName + ` a `
  21. sqlCount += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  22. sqlCount += ` where ` + where
  23. var sql string
  24. sql = `select a.*, b.Id as CertId, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, b.InFlag, b.ApplyTime,b.EffectEndTime, `
  25. sql += ` b.WorkerTotal, `
  26. sql += ` b.ContractNum, `
  27. sql += ` b.UniversityNum, `
  28. sql += ` b.TechnicalNum, `
  29. sql += ` b.AboveProfNum, `
  30. sql += ` b.MiddleProfNum, `
  31. sql += ` b.NationalRegNum, `
  32. sql += ` b.NationalCertTotal, `
  33. sql += ` b.DesignerTotal, `
  34. sql += ` b.SkillerTotal, `
  35. sql += ` b.Status, `
  36. sql += ` b.WorkflowId, b.CreateOn ,b.ProcessKey,b.BusinessKey,b.BackRemark,b.IsRestrict`
  37. sql += ` from ` + supplierTableName + ` a `
  38. sql += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  39. sql += ` where ` + where
  40. if asc {
  41. sql += ` order by ` + orderby + ` ASC `
  42. } else {
  43. sql += ` order by ` + orderby + ` DESC `
  44. }
  45. if pageIndex != 0 && itemsPerPage != 0 {
  46. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  47. }
  48. s.DBE.SQL(sql).Find(entitiesPtr)
  49. resultsSlice, _ = s.DBE.Query(sqlCount)
  50. if len(resultsSlice) > 0 {
  51. results := resultsSlice[0]
  52. for _, value := range results {
  53. total, _ = strconv.ParseInt(string(value), 10, 64)
  54. break
  55. }
  56. }
  57. return total
  58. }
  59. func (s *OilSupplierService) GetMyPagingEntitiesWithOrderBytbl2(supplierTableName, supplierCertTableName string, pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where string, code string, Ids string) (total int64) {
  60. var resultsSlice []map[string][]byte
  61. //获取总记录数
  62. sqlCount := `select count(DISTINCT b.Id) from ` + supplierTableName + ` a `
  63. sqlCount += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  64. sqlCount += ` where ` + where
  65. if code != "" {
  66. sqlCount += ` and b.Id in (` + Ids + ")"
  67. }
  68. var sql string
  69. sql = `select DISTINCT b.Id as CertId, a.*, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, b.InFlag, b.ApplyTime,b.EffectEndTime, `
  70. sql += ` b.WorkerTotal, `
  71. sql += ` b.ContractNum, `
  72. sql += ` b.UniversityNum, `
  73. sql += ` b.TechnicalNum, `
  74. sql += ` b.AboveProfNum, `
  75. sql += ` b.MiddleProfNum, `
  76. sql += ` b.NationalRegNum, `
  77. sql += ` b.NationalCertTotal, `
  78. sql += ` b.DesignerTotal, `
  79. sql += ` b.SkillerTotal, `
  80. sql += ` b.Status, `
  81. sql += ` b.WorkflowId, b.CreateOn ,b.ProcessKey,b.BusinessKey,b.BackRemark,b.IsRestrict,b.Remark`
  82. sql += ` from ` + supplierTableName + ` a `
  83. sql += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  84. sql += ` where ` + where
  85. if code != "" {
  86. sql += ` and b.Id in (` + Ids + ")"
  87. }
  88. if asc {
  89. sql += ` order by ` + orderby + ` ASC `
  90. } else {
  91. sql += ` order by ` + orderby + ` DESC `
  92. }
  93. if pageIndex != 0 && itemsPerPage != 0 {
  94. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  95. }
  96. s.DBE.SQL(sql).Find(entitiesPtr)
  97. resultsSlice, _ = s.DBE.Query(sqlCount)
  98. if len(resultsSlice) > 0 {
  99. results := resultsSlice[0]
  100. for _, value := range results {
  101. total, _ = strconv.ParseInt(string(value), 10, 64)
  102. break
  103. }
  104. }
  105. return total
  106. }
  107. func (s *OilSupplierService) GetMyPagingEntitiesWithOrderBytbl3(supplierTableName, supplierCertTableName string, pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where string) (total int64) {
  108. var resultsSlice []map[string][]byte
  109. //获取总记录数
  110. sqlCount := `select count(DISTINCT b.Id) from ` + supplierTableName + ` a `
  111. sqlCount += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  112. sqlCount += ` left join OilSupplierCertSub c on c.SupplierCertId = b.Id`
  113. sqlCount += ` where ` + where
  114. var sql string
  115. sql = `select DISTINCT b.Id as CertId, a.*, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, b.InFlag, b.ApplyTime,b.EffectEndTime, `
  116. sql += ` b.WorkerTotal, `
  117. sql += ` b.ContractNum, `
  118. sql += ` b.UniversityNum, `
  119. sql += ` b.TechnicalNum, `
  120. sql += ` b.AboveProfNum, `
  121. sql += ` b.MiddleProfNum, `
  122. sql += ` b.NationalRegNum, `
  123. sql += ` b.NationalCertTotal, `
  124. sql += ` b.DesignerTotal, `
  125. sql += ` b.SkillerTotal, `
  126. sql += ` b.Status, `
  127. sql += ` GROUP_CONCAT(CONCAT(c.Code, ':', c.Name)) as CodeName, `
  128. sql += ` b.WorkflowId, b.CreateOn ,b.ProcessKey,b.BusinessKey,b.BackRemark,b.IsRestrict,b.Remark`
  129. sql += ` from ` + supplierTableName + ` a `
  130. sql += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  131. sql += ` left join OilSupplierCertSub c on c.SupplierCertId = b.Id`
  132. sql += ` where ` + where
  133. sql += ` GROUP BY a.Id,b.Id`
  134. if asc {
  135. sql += ` order by ` + orderby + ` ASC `
  136. } else {
  137. sql += ` order by ` + orderby + ` DESC `
  138. }
  139. if pageIndex != 0 && itemsPerPage != 0 {
  140. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  141. }
  142. s.DBE.SQL(sql).Find(entitiesPtr)
  143. resultsSlice, _ = s.DBE.Query(sqlCount)
  144. if len(resultsSlice) > 0 {
  145. results := resultsSlice[0]
  146. for _, value := range results {
  147. total, _ = strconv.ParseInt(string(value), 10, 64)
  148. break
  149. }
  150. }
  151. return total
  152. }
  153. func (s *OilSupplierService) CheckRepeatApplyInfo(supplierTableName, supplierCertTableName, typeCode, SupplierName, CommercialNo, OrganCode, BankAccount, CompanyUrl string, entitiesPtr interface{}) {
  154. //获取分页信息
  155. where2 := " b.SupplierTypeCode = '" + typeCode
  156. where := ""
  157. if SupplierName != "" {
  158. where = where + " or a.SupplierName = '" + SupplierName + "'"
  159. }
  160. if CommercialNo != "" {
  161. where = where + " or a.CommercialNo = '" + CommercialNo + "'"
  162. }
  163. if OrganCode != "" {
  164. where = where + " or a.OrganCode = '" + OrganCode + "'"
  165. }
  166. if BankAccount != "" {
  167. where = where + " or a.BankAccount = '" + BankAccount + "'"
  168. }
  169. if CompanyUrl != "" {
  170. where = where + " or a.CompanyUrl = '" + CompanyUrl + "'"
  171. }
  172. if len(where) > 0 {
  173. where2 += " and (1=0 " + where + ")"
  174. var sql string
  175. sql = `select a.*, b.Id as CertId, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, `
  176. sql += ` b.WorkerTotal, `
  177. sql += ` b.ContractNum, `
  178. sql += ` b.UniversityNum, `
  179. sql += ` b.TechnicalNum, `
  180. sql += ` b.AboveProfNum, `
  181. sql += ` b.MiddleProfNum, `
  182. sql += ` b.NationalRegNum, `
  183. sql += ` b.NationalCertTotal, `
  184. sql += ` b.DesignerTotal, `
  185. sql += ` b.SkillerTotal, `
  186. sql += ` b.Status, `
  187. sql += ` b.WorkflowId `
  188. sql += ` from ` + supplierTableName + ` a `
  189. sql += ` right join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  190. sql += ` where ` + where2
  191. s.DBE.SQL(sql).Find(entitiesPtr)
  192. }
  193. }
  194. func (s *OilSupplierService) CheckUpdateRepeatApplyInfo(supplierTableName, supplierCertTableName, typeCode, supplierId, SupplierName, CommercialNo, OrganCode, BankAccount, CompanyUrl string, entitiesPtr interface{}) {
  195. //获取分页信息
  196. where2 := " a.Id != '" + supplierId + "'"
  197. where := ""
  198. if SupplierName != "" {
  199. where = where + " or a.SupplierName = '" + SupplierName + "'"
  200. }
  201. if CommercialNo != "" {
  202. where = where + " or a.CommercialNo = '" + CommercialNo + "'"
  203. }
  204. if OrganCode != "" {
  205. where = where + " or a.OrganCode = '" + OrganCode + "'"
  206. }
  207. if BankAccount != "" {
  208. where = where + " or a.BankAccount = '" + BankAccount + "'"
  209. }
  210. if CompanyUrl != "" {
  211. where = where + " or a.CompanyUrl = '" + CompanyUrl + "'"
  212. }
  213. if len(where) > 0 {
  214. where2 += " and (1=0 " + where + ")"
  215. var sql string
  216. sql = `select a.*, b.Id as CertId, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, `
  217. sql += ` b.WorkerTotal, `
  218. sql += ` b.ContractNum, `
  219. sql += ` b.UniversityNum, `
  220. sql += ` b.TechnicalNum, `
  221. sql += ` b.AboveProfNum, `
  222. sql += ` b.MiddleProfNum, `
  223. sql += ` b.NationalRegNum, `
  224. sql += ` b.NationalCertTotal, `
  225. sql += ` b.DesignerTotal, `
  226. sql += ` b.SkillerTotal, `
  227. sql += ` b.Status, `
  228. sql += ` b.WorkflowId `
  229. sql += ` from ` + supplierTableName + ` a `
  230. sql += ` right join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  231. sql += ` where ` + where2
  232. s.DBE.SQL(sql).Find(entitiesPtr)
  233. }
  234. }
  235. func (s *OilSupplierService) CanUpdateSupplier(oilSupplierCertTableName string, supplierId int, typeCode string) bool {
  236. session := s.DBE.NewSession()
  237. sessionSvc := GetOilSupplierSession(session)
  238. defer session.Close()
  239. session.Begin()
  240. result := sessionSvc.CanUpdateSupplier(oilSupplierCertTableName, supplierId, typeCode)
  241. session.Commit()
  242. return result
  243. }
  244. func (s *OilSupplierService) GetUpdateCols(oilSupplierCertTableName string, supplierTypeCode string, supplierId int) []string {
  245. session := s.DBE.NewSession()
  246. sessionSvc := GetOilSupplierSession(session)
  247. defer session.Close()
  248. session.Begin()
  249. cols := sessionSvc.GetUpdateCols(oilSupplierCertTableName, supplierTypeCode, supplierId)
  250. session.Commit()
  251. return cols
  252. }
  253. func (s *OilSupplierService) GetProOrTreeList(ids string, entitiesPtr interface{}) {
  254. where := " Id in (" + ids + ")"
  255. sql := "SELECT Id, FullName, ParentId FROM Base_Organize where " + where
  256. s.DBE.SQL(sql).Find(entitiesPtr)
  257. return
  258. }
  259. func (s *OilSupplierService) GetMyTodoEntitie(supplierTableName, supplierCertTableName string, entitiesPtr interface{}, where string) bool {
  260. var sql string
  261. sql = `select a.Id, a.SupplierName, b.Id as CertId, b.SupplierTypeCode, '1' as Type, b.Status `
  262. sql += ` from ` + supplierTableName + ` a `
  263. sql += ` left join ` + supplierCertTableName + " b on b.SupplierId = a.Id"
  264. sql += ` where ` + where
  265. has, _ := s.DBE.SQL(sql).Get(entitiesPtr)
  266. return has
  267. }
  268. func (s *OilSupplierService) GetExpireFile(supplierTableName, supplierFileTableName string, entitiesPtr interface{}, where string) error {
  269. var sql string
  270. sql = `SELECT a.Id, a.SupplierName, a.Mobile, a.CreateBy, a.ContactName, a.CreateUserId, GROUP_CONCAT(b.NeedFileType SEPARATOR ';' ) NeedAllFile `
  271. sql += ` FROM ` + supplierTableName + ` a `
  272. sql += ` left join ` + supplierFileTableName + " b ON a.Id=b.SupplierId "
  273. sql += ` where ` + where
  274. sql += ` GROUP BY a.Id, a.SupplierName, a.Mobile `
  275. err := s.DBE.SQL(sql).Find(entitiesPtr)
  276. return err
  277. }
  278. func (s *OilSupplierService) GetExpireFileList(supplierTableName, supplierFileTableName string, entitiesPtr interface{}, where string) error {
  279. var sql string
  280. sql = `SELECT a.Id, a.SupplierName, a.Mobile, b.SupplierTypeCode`
  281. sql += ` FROM ` + supplierTableName + ` a `
  282. sql += ` left join ` + supplierFileTableName + " b ON a.Id=b.SupplierId "
  283. sql += ` where ` + where
  284. sql += ` GROUP BY a.Id, a.SupplierName, a.Mobile, b.SupplierTypeCode `
  285. err := s.DBE.SQL(sql).Find(entitiesPtr)
  286. return err
  287. }
  288. func (s *OilSupplierService) GetInterfaceData(supplierTableName, supplierFileTableName string, entitiesPtr interface{}, where string) error {
  289. var sql string
  290. sql = `SELECT a.Id, a.SupplierName, a.RegCapital, GROUP_CONCAT(b.NeedFileType SEPARATOR ';' ) NeedAllFile `
  291. sql += ` FROM ` + supplierTableName + ` a `
  292. sql += ` left join ` + supplierFileTableName + " b ON a.Id=b.SupplierId "
  293. sql += ` where ` + where
  294. sql += ` GROUP BY a.Id, a.SupplierName, a.Mobile `
  295. err := s.DBE.SQL(sql).Find(entitiesPtr)
  296. return err
  297. }
  298. func (s *OilSupplierService) GetProcessInfoWithOrderBytbl(supplierTableName, supplierCertTableName string, pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where string) (total int64) {
  299. var resultsSlice []map[string][]byte
  300. //获取总记录数
  301. sqlCount := `select count(*) from ` + supplierTableName + ` a `
  302. sqlCount += ` left join ` + supplierCertTableName + ` b on b.SupplierId = a.Id`
  303. sqlCount += ` Left join Base_User u on a.CreateUserId = u.Id `
  304. sqlCount += ` LEFT JOIN Base_Organize org ON b.CommitComId = org.Id`
  305. sqlCount += ` where ` + where
  306. var sql string
  307. sql = `select a.SupplierName, b.Id, b.AccessCardNo, b.CreateOn, b.ModifiedOn As AddinTime, a.Mobile, `
  308. sql += ` b.Status, b.SupplierTypeCode, `
  309. sql += ` b.WorkflowId, b.ProcessKey, '1' as Type, b.CreateOn,`
  310. sql += ` org.FullName As RecUnitName,`
  311. sql += ` u.Realname as ContactName,`
  312. sql += ` u.Telephone as Mobile`
  313. sql += ` from ` + supplierTableName + ` a `
  314. sql += ` left join ` + supplierCertTableName + ` b on b.SupplierId = a.Id`
  315. sql += ` Left join Base_User u on a.CreateUserId = u.Id `
  316. sql += ` LEFT JOIN Base_Organize org ON b.CommitComId = org.Id`
  317. sql += ` where ` + where
  318. if asc {
  319. sql += ` order by ` + orderby + ` ASC `
  320. } else {
  321. sql += ` order by ` + orderby + ` DESC `
  322. }
  323. if pageIndex != 0 && itemsPerPage != 0 {
  324. sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  325. }
  326. s.DBE.SQL(sql).Find(entitiesPtr)
  327. resultsSlice, _ = s.DBE.Query(sqlCount)
  328. if len(resultsSlice) > 0 {
  329. results := resultsSlice[0]
  330. for _, value := range results {
  331. total, _ = strconv.ParseInt(string(value), 10, 64)
  332. break
  333. }
  334. }
  335. return total
  336. }
  337. func (s *OilSupplierService) GetCertIds(entitiesPtr interface{}, where string) {
  338. sql := "SELECT GROUP_CONCAT(DISTINCT SupplierCertId) as Ids from OilSupplierCertSub where " + where + " ORDER BY SupplierCertId"
  339. s.DBE.SQL(sql).Get(entitiesPtr)
  340. }
  341. func (s *OilSupplierService) GetBlackList(entitiesPtr interface{}, where string) {
  342. sql := "SELECT a.Id from BlackList a LEFT JOIN OilSupplier b on b.Id = a.SupplierId LEFT JOIN OilCorporateInfo c ON b.CommercialNo = c.CommercialNo where " + where
  343. s.DBE.SQL(sql).Get(entitiesPtr)
  344. }