select.go 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536
  1. package oilsupplier
  2. import (
  3. "archive/zip"
  4. "encoding/json"
  5. "fmt"
  6. "github.com/tealeg/xlsx"
  7. "io"
  8. "log"
  9. "os"
  10. "sort"
  11. "strconv"
  12. "strings"
  13. "time"
  14. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  15. "dashoo.cn/backend/api/business/oilsupplier/infochange"
  16. "dashoo.cn/backend/api/business/oilsupplier/qualchange"
  17. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  18. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
  19. "dashoo.cn/backend/api/business/oilsupplier/supplierfile"
  20. "dashoo.cn/backend/api/business/oilsupplier/tableheader"
  21. "dashoo.cn/backend/api/business/register"
  22. // "fmt"
  23. "dashoo.cn/backend/api/business/oilsupplier/selectbusiness"
  24. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  25. . "dashoo.cn/backend/api/controllers"
  26. "dashoo.cn/utils"
  27. . "github.com/linxGnu/goseaweedfs"
  28. )
  29. type SelectController struct {
  30. BaseController
  31. }
  32. type UpSearch struct {
  33. FullName string
  34. }
  35. type UpInfoSearch struct {
  36. FullName string
  37. SupplierTypeName string
  38. HeGe int
  39. BuHeGe int
  40. ZongShu int
  41. Reason string
  42. }
  43. type Processinfo struct {
  44. Id int
  45. AccessCardNo string
  46. WorkflowId string
  47. ProcessKey string
  48. SupplierName string
  49. SupplierTypeCode string
  50. Status string
  51. Type string
  52. CreateOn time.Time
  53. AddinTime time.Time
  54. RecUnitName string
  55. ContactName string
  56. Mobile string
  57. }
  58. // @Title 获取所有
  59. // @Description
  60. // @Success 200 {object}
  61. // @router /getcompanylist [post]
  62. func (this *SelectController) GetTList() {
  63. var model supplier.OilSupplierSelect
  64. var model1 supplier.RegCapitalRange //注册资金范围
  65. //var model2 supplier.NeedFileTypeStruct //资质结构体
  66. var jsonBlob = this.Ctx.Input.RequestBody
  67. json.Unmarshal(jsonBlob, &model)
  68. json.Unmarshal(jsonBlob, &model1)
  69. //json.Unmarshal(jsonBlob, &model2)
  70. // //获取分页信息
  71. page := this.GetPageInfoForm()
  72. where := " 1=1 AND b.InFlag in (1,2,3) AND b.Status = '8' "
  73. orderby := "a.Id"
  74. asc := true
  75. Order := this.GetString("Order")
  76. Prop := this.GetString("Prop")
  77. OperType := this.GetString("OperType")
  78. Grade := this.GetString("Grade")
  79. CheckUId := this.GetString("CheckUId")
  80. FullId := this.GetString("FullId")
  81. if Order != "" && Prop != "" {
  82. orderby = Prop
  83. if Order == "desc" {
  84. asc = false
  85. }
  86. }
  87. //准入证号
  88. if model.AccessCardNo != "" {
  89. where = where + " and b.AccessCardNo like '%" + model.AccessCardNo + "%'"
  90. }
  91. //企业名称
  92. if model.SupplierName != "" {
  93. where = where + " and a.SupplierName like '%" + model.SupplierName + "%'"
  94. }
  95. if model.OldSupplierName != "" {
  96. where = where + " and a.OldSupplierName like '%" + model.OldSupplierName + "%'"
  97. }
  98. if FullId != "" {
  99. where = where + " and f.Id = '" + FullId + "'"
  100. }
  101. if CheckUId != "" {
  102. where = where + " and b.RecUnitId = '" + CheckUId + "'"
  103. }
  104. //准入类别(基建,物资,技术服务)
  105. if model.SupplierTypeCode != "" {
  106. where = where + " and b.SupplierTypeCode = '" + model.SupplierTypeCode + "'"
  107. }
  108. //准入标识 1 准入 2 暂停 3取消
  109. if model.InFlag != "" {
  110. where = where + " and b.InFlag = '" + model.InFlag + "'"
  111. }
  112. //法人
  113. if model.LegalPerson != "" {
  114. where = where + " and a.LegalPerson like '%" + model.LegalPerson + "%'"
  115. }
  116. //联系人
  117. if model.ContactName != "" {
  118. where = where + " and a.ContactName like '%" + model.ContactName + "%'"
  119. }
  120. //统一社会信用代码
  121. if model.CommercialNo != "" {
  122. where = where + " and a.CommercialNo like '%" + model.CommercialNo + "%'"
  123. }
  124. //开户银行
  125. if model.DepositBank != "" {
  126. where = where + " and a.DepositBank like '%" + model.DepositBank + "%'"
  127. }
  128. if OperType == "1" {
  129. OperType = "制造商"
  130. } else if OperType == "2" {
  131. OperType = "代理商"
  132. } else if OperType == "3" {
  133. OperType = "贸易商"
  134. }
  135. //准入状态
  136. if OperType != "" {
  137. where = where + " and a.OperType = '" + OperType + "'"
  138. }
  139. //级别
  140. if Grade != "" {
  141. where = where + " and a.Grade = '" + Grade + "'"
  142. }
  143. //HSE审查
  144. if model.HseTraining != "" {
  145. where = where + " and a.HseTraining = '" + model.HseTraining + "'"
  146. }
  147. //公司类型
  148. if model.CompanyType != "" {
  149. where = where + " and a.CompanyType like '%" + model.CompanyType + "%'"
  150. }
  151. //成立时间
  152. SetupTime := this.GetString("SetupTime")
  153. if SetupTime != "" {
  154. where = where + " and a.SetupTime ='" + SetupTime + "'"
  155. }
  156. //注册资金范围
  157. if model1.RegCapital1 != "" {
  158. where = where + " and a.RegCapital >= '" + model1.RegCapital1 + "'"
  159. }
  160. if model1.RegCapital2 != "" {
  161. where = where + " and a.RegCapital <= '" + model1.RegCapital2 + "'"
  162. }
  163. //注册省份
  164. if model.Province != "" {
  165. where = where + " and a.Province = '" + model.Province + "'"
  166. }
  167. //注册市
  168. if model.City != "" {
  169. where = where + " and a.City = '" + model.City + "'"
  170. }
  171. //注册区
  172. if model.Street != "" {
  173. where = where + " and a.Street = '" + model.Street + "'"
  174. }
  175. //注册详细地址
  176. if model.Address != "" {
  177. where = where + " and a.Address like '%" + model.Address + "%'"
  178. }
  179. if model.LinkProvince != "" {
  180. where = where + " and a.LinkProvince = '" + model.LinkProvince + "'"
  181. }
  182. if model.LinkCity != "" {
  183. where = where + " and a.LinkCity = '" + model.LinkCity + "'"
  184. }
  185. if model.LinkStreet != "" {
  186. where = where + " and a.LinkStreet = '" + model.LinkStreet + "'"
  187. }
  188. if model.LinkAddress != "" {
  189. where = where + " and a.LinkAddress like '%" + model.LinkAddress + "%'"
  190. }
  191. //营业范围
  192. if model.BusinessScope != "" {
  193. where = where + " and a.BusinessScope like '%" + model.BusinessScope + "%'"
  194. }
  195. CreateOn := this.GetString("CreateOn")
  196. if CreateOn != "" {
  197. dates := strings.Split(CreateOn, ",")
  198. if len(dates) == 2 {
  199. minDate := dates[0]
  200. maxDate := dates[1]
  201. where = where + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  202. }
  203. }
  204. a := model.InStyle
  205. fmt.Println(a)
  206. //准入方式
  207. if model.InStyle != "" {
  208. if model.InStyle == "0" {
  209. where = where + " and b.InStyle in ('2','3','4','5')"
  210. } else {
  211. where = where + " and b.InStyle ='" + model.InStyle + "'"
  212. }
  213. }
  214. //包含资质
  215. //if model2.NeedFileType != nil && len(model2.NeedFileType) > 0 {
  216. // pararm := ""
  217. // for i := 0; i < len(model2.NeedFileType); i++ {
  218. //
  219. // pararm = pararm + "'" + model2.NeedFileType[i] + "',"
  220. //
  221. // }
  222. // fmt.Println(pararm[0 : len(pararm)-1])
  223. // where = where + " and d.NeedFileType in (" + pararm[0:len(pararm)-1] + ")"
  224. //}
  225. having := ""
  226. CerSubName := strings.Split(model.CerSubName, ",")
  227. comma := strings.Contains(model.CerSubName, ",")
  228. if comma {
  229. CerSubName = strings.Split(model.CerSubName, ",")
  230. } else {
  231. CerSubName = strings.Split(model.CerSubName, ",")
  232. }
  233. var Ids supplier.OilCertIds
  234. //准入范围
  235. if model.CerSubName != "" {
  236. svc := supplier.GetOilSupplierService(utils.DBE)
  237. where1 := ""
  238. for key, value := range CerSubName {
  239. if key == 0 {
  240. where1 += " (Name like '%" + value + "%' or Code like '" + value + "%' "
  241. } else {
  242. where1 += "or Name like '%" + value + "%' or Code like '" + value + "%' "
  243. }
  244. }
  245. where1 += ") "
  246. svc.GetCertIds(&Ids, where1)
  247. }
  248. //资质
  249. if model.NeedFileType != "" {
  250. having = " having NeedFileType like '%" + model.NeedFileType + "%' "
  251. }
  252. svc := selectbusiness.GetSelectService(utils.DBE)
  253. var list []supplier.OilSupplierSelect
  254. total := svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, OilInfoChangeName, OilCorporateInfoName, OilSupplierCertSubName,
  255. OilSupplierFileName, page.CurrentPage, page.Size, orderby, asc, &list, where, having, model.CerSubName, Ids.Ids, model.NeedFileType)
  256. var datainfo DataInfo
  257. datainfo.Items = list
  258. datainfo.CurrentItemCount = total
  259. datainfo.PageIndex = page.CurrentPage
  260. datainfo.ItemsPerPage = page.Size
  261. this.Data["json"] = &datainfo
  262. this.ServeJSON()
  263. }
  264. // @Title get 导出ex
  265. // @Description
  266. // @Success 200 {object}
  267. // @router /export-company-list [post]
  268. func (this *SelectController) ExportCompanyList() {
  269. var model supplier.OilSupplierSelect
  270. var model1 supplier.RegCapitalRange //注册资金范围
  271. var jsonBlob = this.Ctx.Input.RequestBody
  272. json.Unmarshal(jsonBlob, &model)
  273. json.Unmarshal(jsonBlob, &model1)
  274. //json.Unmarshal(jsonBlob, &model2)
  275. // //获取分页信息
  276. page := this.GetPageInfoForm()
  277. where := " 1=1 AND b.InFlag in (1,2,3) AND b.Status = '8' "
  278. orderby := "a.Id"
  279. asc := true
  280. Order := this.GetString("Order")
  281. Prop := this.GetString("Prop")
  282. OperType := this.GetString("OperType")
  283. Grade := this.GetString("Grade")
  284. CheckUId := this.GetString("CheckUId")
  285. FullId := this.GetString("FullId")
  286. selectedCertIdList := this.GetString("selectedCertIdList")
  287. if Order != "" && Prop != "" {
  288. orderby = Prop
  289. if Order == "desc" {
  290. asc = false
  291. }
  292. }
  293. having := ""
  294. var Ids supplier.OilCertIds
  295. if selectedCertIdList != "" {
  296. where = where + " and b.Id in (" + selectedCertIdList + ") "
  297. } else {
  298. //准入证号
  299. if model.AccessCardNo != "" {
  300. where = where + " and b.AccessCardNo like '%" + model.AccessCardNo + "%'"
  301. }
  302. //企业名称
  303. if model.SupplierName != "" {
  304. where = where + " and a.SupplierName like '%" + model.SupplierName + "%'"
  305. }
  306. if model.OldSupplierName != "" {
  307. where = where + " and a.OldSupplierName like '%" + model.OldSupplierName + "%'"
  308. }
  309. if FullId != "" {
  310. where = where + " and f.Id = '" + FullId + "'"
  311. }
  312. if CheckUId != "" {
  313. where = where + " and b.RecUnitId = '" + CheckUId + "'"
  314. }
  315. //准入类别(基建,物资,技术服务)
  316. if model.SupplierTypeCode != "" {
  317. where = where + " and b.SupplierTypeCode = '" + model.SupplierTypeCode + "'"
  318. }
  319. //准入标识 1 准入 2 暂停 3取消
  320. if model.InFlag != "" {
  321. where = where + " and b.InFlag = '" + model.InFlag + "'"
  322. }
  323. //法人
  324. if model.LegalPerson != "" {
  325. where = where + " and a.LegalPerson like '%" + model.LegalPerson + "%'"
  326. }
  327. //联系人
  328. if model.ContactName != "" {
  329. where = where + " and a.ContactName like '%" + model.ContactName + "%'"
  330. }
  331. //统一社会信用代码
  332. if model.CommercialNo != "" {
  333. where = where + " and a.CommercialNo like '%" + model.CommercialNo + "%'"
  334. }
  335. //开户银行
  336. if model.DepositBank != "" {
  337. where = where + " and a.DepositBank like '%" + model.DepositBank + "%'"
  338. }
  339. if OperType == "1" {
  340. OperType = "制造商"
  341. } else if OperType == "2" {
  342. OperType = "代理商"
  343. } else if OperType == "3" {
  344. OperType = "贸易商"
  345. }
  346. //准入状态
  347. if OperType != "" {
  348. where = where + " and a.OperType = '" + OperType + "'"
  349. }
  350. //级别
  351. if Grade != "" {
  352. where = where + " and a.Grade = '" + Grade + "'"
  353. }
  354. //HSE审查
  355. if model.HseTraining != "" {
  356. where = where + " and a.HseTraining = '" + model.HseTraining + "'"
  357. }
  358. //公司类型
  359. if model.CompanyType != "" {
  360. where = where + " and a.CompanyType like '%" + model.CompanyType + "%'"
  361. }
  362. //成立时间
  363. SetupTime := this.GetString("SetupTime")
  364. if SetupTime != "" {
  365. where = where + " and a.SetupTime ='" + SetupTime + "'"
  366. }
  367. //注册资金范围
  368. if model1.RegCapital1 != "" {
  369. where = where + " and a.RegCapital >= '" + model1.RegCapital1 + "'"
  370. }
  371. if model1.RegCapital2 != "" {
  372. where = where + " and a.RegCapital <= '" + model1.RegCapital2 + "'"
  373. }
  374. //注册省份
  375. if model.Province != "" {
  376. where = where + " and a.Province = '" + model.Province + "'"
  377. }
  378. //注册市
  379. if model.City != "" {
  380. where = where + " and a.City = '" + model.City + "'"
  381. }
  382. //注册区
  383. if model.Street != "" {
  384. where = where + " and a.Street = '" + model.Street + "'"
  385. }
  386. //注册详细地址
  387. if model.Address != "" {
  388. where = where + " and a.Address like '%" + model.Address + "%'"
  389. }
  390. if model.LinkProvince != "" {
  391. where = where + " and a.LinkProvince = '" + model.LinkProvince + "'"
  392. }
  393. if model.LinkCity != "" {
  394. where = where + " and a.LinkCity = '" + model.LinkCity + "'"
  395. }
  396. if model.LinkStreet != "" {
  397. where = where + " and a.LinkStreet = '" + model.LinkStreet + "'"
  398. }
  399. if model.LinkAddress != "" {
  400. where = where + " and a.LinkAddress like '%" + model.LinkAddress + "%'"
  401. }
  402. //营业范围
  403. if model.BusinessScope != "" {
  404. where = where + " and a.BusinessScope like '%" + model.BusinessScope + "%'"
  405. }
  406. CreateOn := this.GetString("CreateOn")
  407. if CreateOn != "" {
  408. dates := strings.Split(CreateOn, ",")
  409. if len(dates) == 2 {
  410. minDate := dates[0]
  411. maxDate := dates[1]
  412. where = where + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  413. }
  414. }
  415. a := model.InStyle
  416. fmt.Println(a)
  417. //准入方式
  418. if model.InStyle != "" {
  419. if model.InStyle == "0" {
  420. where = where + " and b.InStyle in ('2','3','4','5')"
  421. } else {
  422. where = where + " and b.InStyle ='" + model.InStyle + "'"
  423. }
  424. }
  425. CerSubName := strings.Split(model.CerSubName, ",")
  426. comma := strings.Contains(model.CerSubName, ",")
  427. if comma {
  428. CerSubName = strings.Split(model.CerSubName, ",")
  429. } else {
  430. CerSubName = strings.Split(model.CerSubName, ",")
  431. }
  432. //准入范围
  433. if model.CerSubName != "" {
  434. svc := supplier.GetOilSupplierService(utils.DBE)
  435. where1 := ""
  436. for key, value := range CerSubName {
  437. if key == 0 {
  438. where1 += " (Name like '%" + value + "%' or Code like '" + value + "%' "
  439. } else {
  440. where1 += "or Name like '%" + value + "%' or Code like '" + value + "%' "
  441. }
  442. }
  443. where1 += ") "
  444. svc.GetCertIds(&Ids, where1)
  445. }
  446. //资质
  447. if model.NeedFileType != "" {
  448. having = " having NeedFileType like '%" + model.NeedFileType + "%' "
  449. }
  450. }
  451. page.Size = 15000
  452. svc := selectbusiness.GetSelectService(utils.DBE)
  453. var list []supplier.OilSupplierSelect
  454. total := svc.GetMyPagingEntitiesWithOrderBytblForExport(OilSupplierName, OilSupplierCertName, OilInfoChangeName, OilCorporateInfoName, OilSupplierCertSubName,
  455. OilSupplierFileName, page.CurrentPage, page.Size, orderby, asc, &list, where, having, model.CerSubName, Ids.Ids, model.NeedFileType)
  456. log.Print("共导出供方信息:", total)
  457. // 获取到所有符合条件的供方信息列表 ↑
  458. fileTitle := "供方信息表"
  459. //自定义显示列
  460. title := strings.Split("企业名称,准入证号,准入类别,准入方式,状态,有效日期,企业曾用名,级别,供应商类型,法人代表,注册资金,联系人,"+
  461. "移动电话,统一社会信用代码,开户银行,公司类型,成立时间,推荐单位,专业处室,申请时间,注册地址,通信地址,营业范围,企业资质,备注", ",")
  462. f := xlsx.NewFile()
  463. sheet, _ := f.AddSheet(fileTitle)
  464. row := sheet.AddRow()
  465. row.WriteSlice(&title, -1)
  466. // 与表头顺序一一对应 ↓
  467. for _, item := range list {
  468. var dataArr []string
  469. dataArr = append(dataArr, item.SupplierName)
  470. dataArr = append(dataArr, item.AccessCardNo)
  471. // 准入类别
  472. if item.SupplierTypeCode == "01" {
  473. dataArr = append(dataArr, "物资类")
  474. } else if item.SupplierTypeCode == "02" {
  475. dataArr = append(dataArr, "基建类")
  476. } else if item.SupplierTypeCode == "03" {
  477. dataArr = append(dataArr, "服务类")
  478. } else {
  479. dataArr = append(dataArr, "")
  480. }
  481. // 准入方式
  482. if item.InStyle == "1" {
  483. dataArr = append(dataArr, "评审准入")
  484. } else if item.InStyle == "2" {
  485. dataArr = append(dataArr, "一级物资备案准入")
  486. } else if item.InStyle == "3" {
  487. dataArr = append(dataArr, "二级物资备案准入")
  488. } else if item.InStyle == "4" {
  489. dataArr = append(dataArr, "战略合作准入")
  490. } else if item.InStyle == "5" {
  491. dataArr = append(dataArr, "内部多元准入")
  492. } else if item.InStyle == "6" {
  493. dataArr = append(dataArr, "招标准入")
  494. } else {
  495. dataArr = append(dataArr, "")
  496. }
  497. // 准入标识
  498. if item.InFlag == "1" {
  499. dataArr = append(dataArr, "准入")
  500. } else if item.InFlag == "2" {
  501. dataArr = append(dataArr, "暂停")
  502. } else if item.InFlag == "3" {
  503. dataArr = append(dataArr, "取消")
  504. } else {
  505. dataArr = append(dataArr, "")
  506. }
  507. dataArr = append(dataArr, item.ApplyTime.Format("2006-01-02 15:04:05"))
  508. dataArr = append(dataArr, item.OldSupplierName)
  509. if item.Grade == "1" {
  510. dataArr = append(dataArr, "一级")
  511. } else if item.Grade == "2" {
  512. dataArr = append(dataArr, "二级")
  513. } else {
  514. dataArr = append(dataArr, "")
  515. }
  516. if item.OperType == "制造商" {
  517. dataArr = append(dataArr, item.OperType)
  518. } else {
  519. dataArr = append(dataArr, "非制造商")
  520. }
  521. dataArr = append(dataArr, item.LegalPerson)
  522. dataArr = append(dataArr, strconv.FormatFloat(item.RegCapital, 'f', 2, 64))
  523. dataArr = append(dataArr, item.ContactName)
  524. dataArr = append(dataArr, item.Mobile)
  525. dataArr = append(dataArr, item.CommercialNo)
  526. dataArr = append(dataArr, item.DepositBank)
  527. dataArr = append(dataArr, item.CompanyType)
  528. dataArr = append(dataArr, item.SetupTime.Format("2006-01-02 15:04:05"))
  529. dataArr = append(dataArr, item.CheckUnitName)
  530. dataArr = append(dataArr, item.FullName)
  531. dataArr = append(dataArr, item.CreateOn.Format("2006-01-02 15:04:05"))
  532. dataArr = append(dataArr, item.Address)
  533. dataArr = append(dataArr, item.LinkAddress)
  534. dataArr = append(dataArr, item.BusinessScope)
  535. dataArr = append(dataArr, item.NeedFileType)
  536. // dataArr = append(dataArr, item.CerSubName) // 准入编码
  537. dataArr = append(dataArr, item.Remark)
  538. row := sheet.AddRow()
  539. row.WriteSlice(&dataArr, -1)
  540. }
  541. for c, cl := 0, len(sheet.Cols); c < cl; c++ {
  542. sheet.Cols[c].Width = 20
  543. }
  544. dir := "static/file/excel/report/" + this.GetAccode()
  545. SaveDirectory(dir)
  546. path := dir + "/" + "supplier_export_" + utils.TimeFormat(time.Now(), "20060102") + fileTitle + ".xlsx"
  547. f.Save(path)
  548. var sw *Seaweed
  549. var filer []string
  550. if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
  551. filer = []string{_filer}
  552. }
  553. sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
  554. _, _, fID, _ := sw.UploadFile(path, "", "")
  555. retDocUrl := utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
  556. os.Remove(path)
  557. this.Data["json"] = retDocUrl
  558. this.ServeJSON()
  559. }
  560. // @Title 根据公司名获取公司信息和准入
  561. // @Description
  562. // @Success 200 {object}
  563. // @router /getbaseinfo [post]
  564. func (this *SelectController) GetBaseInfo() {
  565. Spesearch := this.GetString("Spesearch")
  566. spesearchs := strings.Split(Spesearch, ",")
  567. svc := selectbusiness.GetSelectService(utils.DBE)
  568. var infoIntelist []supplier.OilSupplierInte
  569. for _, item := range spesearchs {
  570. //var supplierinfo supplier.SupplierInfoInte
  571. var infoInte supplier.OilSupplierInte
  572. where := " where 1 = 1 AND a.SupplierName = '" + item + "'"
  573. svc.GetInfoByCompId(where, &infoInte.SupplierInfo)
  574. var cert1 suppliercert.OilSupplierCert
  575. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '01'"
  576. svc.GetEntityByWhere(OilSupplierCertName, where, &cert1)
  577. infoInte.SupplierInfo.WZStatus = cert1.InFlag
  578. infoInte.SupplierInfo.WZDate = cert1.ApplyTime.Format("2006-01-02")
  579. var cert2 suppliercert.OilSupplierCert
  580. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '02'"
  581. svc.GetEntityByWhere(OilSupplierCertName, where, &cert2)
  582. infoInte.SupplierInfo.JSStatus = cert2.InFlag
  583. infoInte.SupplierInfo.JSDate = cert2.ApplyTime.Format("2006-01-02")
  584. var cert3 suppliercert.OilSupplierCert
  585. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '03'"
  586. svc.GetEntityByWhere(OilSupplierCertName, where, &cert3)
  587. infoInte.SupplierInfo.JFStatus = cert3.InFlag
  588. infoInte.SupplierInfo.JFDate = cert3.ApplyTime.Format("2006-01-02")
  589. if infoInte.SupplierInfo.SupplierName != "" {
  590. //var suplliersup []supplier.OilSupplierCertSubInte
  591. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='01'"
  592. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.WZsub)
  593. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='02'"
  594. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JSsub)
  595. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='03'"
  596. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JFsub)
  597. } else if item == "" {
  598. where = "where SupplierTypeCode='01'"
  599. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.WZsub)
  600. where = "where and SupplierTypeCode='02'"
  601. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JSsub)
  602. where = "where SupplierTypeCode='03'"
  603. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JFsub)
  604. }
  605. infoIntelist = append(infoIntelist, infoInte)
  606. }
  607. var datainfo DataInfo
  608. datainfo.Items = infoIntelist
  609. this.Data["json"] = &datainfo
  610. this.ServeJSON()
  611. }
  612. // @Title 根据分页获取公司信息和准入, // 提供给银行接口的用户名 和 密码:ceshi1, Ceshi111
  613. // @Description
  614. // @Success 200 {object}
  615. // @router /getinfobypage [post]
  616. func (this *SelectController) GetInfoByPage() {
  617. page := this.GetString("page")
  618. svc := selectbusiness.GetSelectService(utils.DBE)
  619. var infoIntelist []supplier.OilSupplierInte
  620. intpage, _ := strconv.Atoi(page)
  621. for i := (intpage - 1) * 50; i < (intpage * 50); i++ {
  622. //var supplierinfo supplier.SupplierInfoInte
  623. var infoInte supplier.OilSupplierInte
  624. stringi := strconv.Itoa(i)
  625. where := " where 1 = 1 limit " + stringi + ",1"
  626. svc.GetInfoByCompId(where, &infoInte.SupplierInfo)
  627. var cert1 suppliercert.OilSupplierCert
  628. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '01'"
  629. svc.GetEntityByWhere(OilSupplierCertName, where, &cert1)
  630. infoInte.SupplierInfo.WZStatus = cert1.InFlag
  631. infoInte.SupplierInfo.WZDate = cert1.ApplyTime.Format("2006-01-02")
  632. var cert2 suppliercert.OilSupplierCert
  633. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '02'"
  634. svc.GetEntityByWhere(OilSupplierCertName, where, &cert2)
  635. infoInte.SupplierInfo.JSStatus = cert2.InFlag
  636. infoInte.SupplierInfo.JSDate = cert2.ApplyTime.Format("2006-01-02")
  637. var cert3 suppliercert.OilSupplierCert
  638. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '03'"
  639. svc.GetEntityByWhere(OilSupplierCertName, where, &cert3)
  640. infoInte.SupplierInfo.JFStatus = cert3.InFlag
  641. infoInte.SupplierInfo.JFDate = cert3.ApplyTime.Format("2006-01-02")
  642. if infoInte.SupplierInfo.SupplierName != "" {
  643. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='01'"
  644. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.WZsub)
  645. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='02'"
  646. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JSsub)
  647. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='03'"
  648. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JFsub)
  649. }
  650. if infoInte.SupplierInfo.Id != 0 {
  651. infoIntelist = append(infoIntelist, infoInte)
  652. }
  653. }
  654. var datainfo DataInfo
  655. datainfo.Items = infoIntelist
  656. this.Data["json"] = &datainfo
  657. this.ServeJSON()
  658. }
  659. // @Title 获取所有
  660. // @Description
  661. // @Success 200 {object}
  662. // @router /up [post]
  663. func (this *SelectController) Up() {
  664. var model UpSearch
  665. var jsonBlob = this.Ctx.Input.RequestBody
  666. json.Unmarshal(jsonBlob, &model)
  667. // //获取分页信息
  668. page := this.GetPageInfoForm()
  669. where := ""
  670. asc := false
  671. Order := this.GetString("Order")
  672. Prop := this.GetString("Prop")
  673. CreateOn := this.GetString("CreateOn")
  674. if Order != "" && Prop != "" {
  675. if Order == "asc" {
  676. asc = true
  677. }
  678. }
  679. if CreateOn != "" {
  680. dates := strings.Split(CreateOn, ",")
  681. if len(dates) == 2 {
  682. minDate := dates[0]
  683. maxDate := dates[1]
  684. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  685. }
  686. }
  687. if model.FullName != "" {
  688. where = where + " and (select FullName from Base_Organize where Id = a.CommitComId) like '%" + model.FullName + "%'"
  689. }
  690. svc := selectbusiness.GetSelectService(utils.DBE)
  691. var list []UpInfoSearch
  692. total := svc.GetUp(OilSupplierCertName, page.CurrentPage, page.Size, Prop, asc, &list, where)
  693. var datainfo DataInfo
  694. datainfo.Items = list
  695. datainfo.CurrentItemCount = total
  696. datainfo.PageIndex = page.CurrentPage
  697. datainfo.ItemsPerPage = page.Size
  698. this.Data["json"] = &datainfo
  699. this.ServeJSON()
  700. }
  701. // @Title 获取所有资质名称
  702. // @Description
  703. // @Success 200 {object}
  704. // @router /getnftoptions [post]
  705. func (this *SelectController) GetNFTOptions() {
  706. svc := selectbusiness.GetSelectService(utils.DBE)
  707. var list []map[string]string
  708. sql := "select distinct(Name) from " + BaseTableHeader + ""
  709. list, _ = svc.DBE.QueryString(sql)
  710. var datainfo DataInfo
  711. datainfo.Items = list
  712. this.Data["json"] = &datainfo
  713. this.ServeJSON()
  714. }
  715. // @Title 流程查询准入
  716. // @Description
  717. // @Success 200 {object}
  718. // @router /getprocessauditlist [get]
  719. func (this *SelectController) GetProcessAuditList() {
  720. //获取分页信息
  721. page := this.GetPageInfoForm()
  722. where := " 1=1 and b.WorkflowId != '' and b.WorkflowId != '0' "
  723. orderby := "Id"
  724. asc := false
  725. Order := this.GetString("Order")
  726. Prop := this.GetString("Prop")
  727. if Order != "" && Prop != "" {
  728. orderby = Prop
  729. if Order == "asc" {
  730. asc = true
  731. }
  732. }
  733. svc := supplier.GetOilSupplierService(utils.DBE)
  734. tabinx := this.GetString("tabinx")
  735. supplierTypeCode := this.GetString("SupplierTypeCode")
  736. supplierName := this.GetString("SupplierName")
  737. CreateOn := this.GetString("CreateOn")
  738. //企业用户必须加创建人条件
  739. var registerUser register.OilCorporateInfo
  740. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  741. svc.GetEntity(&registerUser, sql)
  742. var processinfolist []Processinfo
  743. if this.User.IsCompanyUser == 1 {
  744. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  745. }
  746. if supplierTypeCode != "" {
  747. where = where + " and b.SupplierTypeCode = '" + supplierTypeCode + "'"
  748. }
  749. if supplierName != "" {
  750. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  751. }
  752. var total int64 = 0
  753. var datainfo DataInfo
  754. if tabinx == "1" || tabinx == "0" {
  755. var list []Processinfo //[]supplier.OilSupplierView
  756. if CreateOn != "" {
  757. dates := strings.Split(CreateOn, ",")
  758. if len(dates) == 2 {
  759. minDate := dates[0]
  760. maxDate := dates[1]
  761. where = where + " and b.CreateOn>='" + minDate + "' and b.CreateOn<='" + maxDate + "'"
  762. }
  763. }
  764. total = total + svc.GetProcessInfoWithOrderBytbl(OilSupplierName, OilSupplierCertName, page.CurrentPage, page.Size, "b.Id", asc, &list, where)
  765. processinfolist = append(processinfolist, list...)
  766. //datainfo.Items = processinfolist
  767. }
  768. if tabinx == "2" || tabinx == "0" {
  769. whereapp := "1=1 and a.WorkflowId != '' and a.WorkflowId != '0'"
  770. //企业用户必须加创建人条件
  771. if this.User.IsCompanyUser == 1 {
  772. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  773. }
  774. if supplierTypeCode != "" {
  775. whereapp = whereapp + " and a.AppendType = '" + supplierTypeCode + "'"
  776. }
  777. if supplierName != "" {
  778. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  779. }
  780. if CreateOn != "" {
  781. dates := strings.Split(CreateOn, ",")
  782. if len(dates) == 2 {
  783. minDate := dates[0]
  784. maxDate := dates[1]
  785. whereapp = whereapp + " a.and CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  786. }
  787. }
  788. var list []Processinfo //[]suppliercertappend.OilSupplierCertAppend
  789. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  790. total = total + svc.GetProcessInfoWithOrderBytbl(OilSupplierCertAppendName, page.CurrentPage, page.Size, "a.Id", asc, &list, whereapp)
  791. processinfolist = append(processinfolist, list...)
  792. //datainfo.Items = processinfolist
  793. }
  794. if tabinx == "3" || tabinx == "0" {
  795. whereapp := "1=1 and a.WorkflowId != '' and a.WorkflowId != '0'"
  796. //企业用户必须加创建人条件
  797. if this.User.IsCompanyUser == 1 {
  798. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  799. }
  800. if supplierTypeCode != "" {
  801. whereapp = whereapp + " and a.SupplierTypeName = '" + supplierTypeCode + "'"
  802. }
  803. if supplierName != "" {
  804. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  805. }
  806. if CreateOn != "" {
  807. dates := strings.Split(CreateOn, ",")
  808. if len(dates) == 2 {
  809. minDate := dates[0]
  810. maxDate := dates[1]
  811. whereapp = whereapp + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  812. }
  813. }
  814. var list []Processinfo //[]annualaudit.OilAnnualAudit
  815. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  816. total = total + svc.GetProcessInfoWithOrderBytbl(OilAnnualAuditName, page.CurrentPage, page.Size, orderby, asc, &list, whereapp)
  817. processinfolist = append(processinfolist, list...)
  818. //datainfo.Items = processinfolist
  819. }
  820. if tabinx == "4" || tabinx == "0" {
  821. whereapp := "1=1 and a.WorkflowId != '' and a.WorkflowId != '0'"
  822. //企业用户必须加创建人条件
  823. if this.User.IsCompanyUser == 1 {
  824. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  825. }
  826. if supplierName != "" {
  827. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  828. }
  829. if CreateOn != "" {
  830. dates := strings.Split(CreateOn, ",")
  831. if len(dates) == 2 {
  832. minDate := dates[0]
  833. maxDate := dates[1]
  834. whereapp = whereapp + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  835. }
  836. }
  837. var list []Processinfo //[]infochange.OilInfoChange
  838. svc := infochange.GetInfoChangeService(utils.DBE)
  839. total = total + svc.GetProcessInfoWithOrderBytbl(OilInfoChangeName, page.CurrentPage, page.Size, orderby, asc, &list, whereapp)
  840. processinfolist = append(processinfolist, list...)
  841. //datainfo.Items = processinfolist
  842. }
  843. if tabinx == "5" {
  844. whereapp := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  845. //企业用户必须加创建人条件
  846. if this.User.IsCompanyUser == 1 {
  847. whereapp = whereapp + " and CreateUserId = '" + this.User.Id + "'"
  848. }
  849. if supplierName != "" {
  850. whereapp = whereapp + " and SupplierName like '%" + supplierName + "%'"
  851. }
  852. if CreateOn != "" {
  853. dates := strings.Split(CreateOn, ",")
  854. if len(dates) == 2 {
  855. minDate := dates[0]
  856. maxDate := dates[1]
  857. whereapp = whereapp + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  858. }
  859. }
  860. svc := qualchange.GetQualChangeService(utils.DBE)
  861. var list []qualchange.OilQualChangeMain
  862. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, whereapp)
  863. datainfo.Items = list
  864. }
  865. if tabinx == "0" {
  866. whereapp := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  867. where1 := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  868. where2 := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  869. where3 := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  870. //企业用户必须加创建人条件
  871. if this.User.IsCompanyUser == 1 {
  872. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  873. where1 = where1 + " and a.CreateUserId = '" + this.User.Id + "'"
  874. where2 = where2 + " and a.CreateUserId = '" + this.User.Id + "'"
  875. where3 = where3 + " and a.CreateUserId = '" + this.User.Id + "'"
  876. }
  877. if supplierTypeCode != "" {
  878. //whereapp = whereapp + " and a.SupplierTypeCode = '" + supplierTypeCode + "'"
  879. where1 = where1 + " and b.SupplierTypeCode = '" + supplierTypeCode + "'"
  880. where2 = where2 + " and a.AppendType = '" + supplierTypeCode + "'"
  881. where3 = where3 + " and a.SupplierTypeName = '" + supplierTypeCode + "'"
  882. }
  883. if supplierName != "" {
  884. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  885. where1 = where1 + " and a.SupplierName like '%" + supplierName + "%'"
  886. where2 = where2 + " and a.SupplierName like '%" + supplierName + "%'"
  887. where3 = where3 + " and a.SupplierName like '%" + supplierName + "%'"
  888. }
  889. if CreateOn != "" {
  890. dates := strings.Split(CreateOn, ",")
  891. if len(dates) == 2 {
  892. minDate := dates[0]
  893. maxDate := dates[1]
  894. whereapp = whereapp + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  895. }
  896. }
  897. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  898. var list []Processinfo
  899. svc.GetProcessInfoAllWithOrderBytbl(page.CurrentPage, page.Size, orderby, asc, &list, whereapp, where1, where2, where3)
  900. processinfolist = list
  901. }
  902. sort.Slice(processinfolist, func(i, j int) bool {
  903. return processinfolist[i].CreateOn.Unix() > processinfolist[j].CreateOn.Unix()
  904. })
  905. datainfo.Items = processinfolist
  906. datainfo.CurrentItemCount = total
  907. datainfo.PageIndex = page.CurrentPage
  908. datainfo.ItemsPerPage = page.Size
  909. this.Data["json"] = &datainfo
  910. this.ServeJSON()
  911. }
  912. // @Title 准入范围查询
  913. // @Description
  914. // @Success 200 {object}
  915. // @router /zrfwselect [get]
  916. func (this *SelectController) ZrfwSelect() {
  917. //获取分页信息
  918. page := this.GetPageInfoForm()
  919. limitCurrent := (page.CurrentPage - 1) * page.Size
  920. svc := selectbusiness.GetSelectService(utils.DBE)
  921. supplierTypeCode := this.GetString("SupplierTypeCode")
  922. certsub := this.GetString("certsub")
  923. //企业用户必须加创建人条件
  924. var registerUser register.OilCorporateInfo
  925. var company supplier.OilSupplier
  926. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  927. svc.GetEntity(&registerUser, sql)
  928. if this.User.IsCompanyUser == 1 {
  929. sql1 := " CreateUserId = '" + this.User.Id + "' or CommercialNo='" + registerUser.CommercialNo + "'"
  930. svc.GetEntity(&company, sql1)
  931. }
  932. where := ""
  933. if certsub != "" {
  934. where = " and (Code like '%" + certsub + "%' or Name like '%" + certsub + "%')"
  935. }
  936. if company.SupplierName != "" {
  937. sql2 := "select distinct(Code),Name,SupplierId,CertSubStatus from OilSupplierCertSub where SupplierId='" + strconv.Itoa(company.Id) + "' and SupplierTypeCode='" + supplierTypeCode + "' " + where + " order by CertSubStatus desc,Code asc limit " + strconv.FormatInt(limitCurrent, 10) + "," + strconv.FormatInt(page.Size, 10) + ""
  938. result, _ := svc.DBE.QueryString(sql2)
  939. sql3 := "select count(distinct(Code)) total from OilSupplierCertSub where SupplierId='" + strconv.Itoa(company.Id) + "' and SupplierTypeCode='" + supplierTypeCode + "'" + where
  940. result1, _ := svc.DBE.QueryString(sql3)
  941. total, _ := strconv.ParseInt(result1[0]["total"], 10, 64)
  942. var datainfo DataInfo
  943. datainfo.Items = result
  944. datainfo.CurrentItemCount = total
  945. datainfo.PageIndex = page.CurrentPage
  946. datainfo.ItemsPerPage = page.Size
  947. this.Data["json"] = &datainfo
  948. this.ServeJSON()
  949. } else {
  950. var datainfo DataInfo
  951. datainfo.Items = ""
  952. datainfo.PageIndex = page.CurrentPage
  953. datainfo.ItemsPerPage = page.Size
  954. this.Data["json"] = &datainfo
  955. this.ServeJSON()
  956. }
  957. }
  958. // @Title 获取所有
  959. // @Description
  960. // @Success 200 {object}
  961. // @router /getallbusinesslist [post]
  962. func (this *SelectController) GetAllBusinesList() {
  963. perject := this.GetString("Perject")
  964. accessCardNo := this.GetString("AccessCardNo")
  965. supplierTypeCode := this.GetString("SupplierTypeCode")
  966. supplierName := this.GetString("SupplierName")
  967. var list []selectbusiness.SelectBusiness
  968. // 准入
  969. if perject == "1" || perject == "" {
  970. where := "1=1 "
  971. if accessCardNo != "" {
  972. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  973. }
  974. if supplierTypeCode != "" {
  975. where = where + " and b.SupplierTypeCode='" + supplierTypeCode + "'"
  976. }
  977. if supplierName != "" {
  978. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  979. }
  980. var zrlist []supplier.OilSupplierView
  981. zrsvc := supplier.GetOilSupplierService(utils.DBE)
  982. if this.User.IsCompanyUser == 1 {
  983. var registerUser register.OilCorporateInfo
  984. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  985. zrsvc.GetEntity(&registerUser, sql)
  986. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  987. }
  988. zrwhere := where + " and b.Status='" + suppliercert.STORE_STATUS + "'"
  989. zrsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 100, "b.Id", false, &zrlist, zrwhere)
  990. for _, item := range zrlist {
  991. var sele selectbusiness.SelectBusiness
  992. sele.SupplierName = item.SupplierName
  993. sele.CreateOn = item.CreateOn
  994. sele.AccessCardNo = item.AccessCardNo
  995. sele.TypeCode = item.SupplierTypeCode
  996. sele.TypeName = item.SupplierTypeName
  997. sele.Preject = "1"
  998. list = append(list, sele)
  999. }
  1000. }
  1001. // 增项
  1002. if perject == "2" || perject == "" {
  1003. where := "1=1 "
  1004. if accessCardNo != "" {
  1005. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  1006. }
  1007. if supplierTypeCode != "" {
  1008. where = where + " and b.AppendType='" + supplierTypeCode + "'"
  1009. }
  1010. if supplierName != "" {
  1011. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  1012. }
  1013. var zxlist []suppliercertappend.OilSupplierCertAppend
  1014. zxsvc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1015. if this.User.IsCompanyUser == 1 {
  1016. var registerUser register.OilCorporateInfo
  1017. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  1018. zxsvc.GetEntity(&registerUser, sql)
  1019. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1020. }
  1021. zxwhere := where + " and b.Status='" + suppliercert.STORE_STATUS + "'"
  1022. zxsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertAppendName, 1, 100, "b.Id", false, &zxlist, zxwhere)
  1023. for _, item := range zxlist {
  1024. var sele selectbusiness.SelectBusiness
  1025. sele.SupplierName = item.SupplierName
  1026. sele.CreateOn = item.CreateOn
  1027. sele.AccessCardNo = item.AccessCardNo
  1028. sele.TypeCode = item.AppendType
  1029. sele.TypeName = ""
  1030. sele.Preject = "2"
  1031. list = append(list, sele)
  1032. }
  1033. }
  1034. // 年审
  1035. if perject == "3" || perject == "" {
  1036. where := "1=1 "
  1037. if accessCardNo != "" {
  1038. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  1039. }
  1040. if supplierTypeCode != "" {
  1041. where = where + " and b.SupplierTypeName='" + supplierTypeCode + "'"
  1042. }
  1043. if supplierName != "" {
  1044. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  1045. }
  1046. var nslist []annualaudit.OilAnnualAudit
  1047. nssvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1048. if this.User.IsCompanyUser == 1 {
  1049. var registerUser register.OilCorporateInfo
  1050. sql := " UserName='" + this.User.Username + "'"
  1051. nssvc.GetEntity(&registerUser, sql)
  1052. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1053. }
  1054. zswhere := where + " and b.Status='" + suppliercert.DRAFT_STATUS + "'"
  1055. nssvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilAnnualAuditName, 1, 100, "b.Id", false, &nslist, zswhere)
  1056. for _, item := range nslist {
  1057. var sele selectbusiness.SelectBusiness
  1058. sele.SupplierName = item.SupplierName
  1059. sele.CreateOn = item.CreateOn
  1060. sele.AccessCardNo = item.AccessCardNo
  1061. sele.TypeCode = item.SupplierTypeName
  1062. sele.TypeName = ""
  1063. sele.Preject = "3"
  1064. list = append(list, sele)
  1065. }
  1066. }
  1067. // 变更申请
  1068. if perject == "4" || perject == "" {
  1069. where := "1=1 "
  1070. if accessCardNo != "" {
  1071. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  1072. }
  1073. if supplierTypeCode != "" {
  1074. where = where + " and b.SupplierTypeCode='" + supplierTypeCode + "'"
  1075. }
  1076. if supplierName != "" {
  1077. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  1078. }
  1079. var bglist []infochange.SuppModelInfo
  1080. bgsvc := infochange.GetInfoChangeService(utils.DBE)
  1081. if this.User.IsCompanyUser == 1 {
  1082. var registerUser register.OilCorporateInfo
  1083. sql := " UserName='" + this.User.Username + "'"
  1084. bgsvc.GetEntity(&registerUser, sql)
  1085. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1086. }
  1087. bgwhere := where + " and b.Status='" + suppliercert.DRAFT_STATUS + "'"
  1088. bgsvc.GetSuppPagingEntitiesWithOrderBytbl(OilSupplierName, OilInfoChangeName, 1, 100, "b.Id", false, &bglist, bgwhere)
  1089. for _, item := range bglist {
  1090. var sele selectbusiness.SelectBusiness
  1091. sele.SupplierName = item.SupplierName
  1092. sele.CreateOn = item.CreateOn
  1093. sele.AccessCardNo = ""
  1094. sele.TypeCode = item.SupplierTypeCode
  1095. sele.TypeName = item.SupplierTypeName
  1096. sele.Preject = "4"
  1097. list = append(list, sele)
  1098. }
  1099. }
  1100. var datainfo DataInfo
  1101. datainfo.Items = list
  1102. this.Data["json"] = &datainfo
  1103. this.ServeJSON()
  1104. }
  1105. // @Title 文件上传
  1106. // @Description get user by tokenaddsubfile
  1107. // @Success 200 {object} models.Userblood
  1108. // @router /filelist [get]
  1109. func (this *SelectController) FileList() {
  1110. page := this.GetPageInfoForm()
  1111. var list []supplierfile.OilSupplierFile
  1112. svc := supplierfile.GetSupplierfileService(utils.DBE)
  1113. where := " 1=1"
  1114. orderby := "Id"
  1115. asc := true
  1116. Order := this.GetString("Order")
  1117. Prop := this.GetString("Prop")
  1118. subfilename := this.GetString("subfileName")
  1119. supplierId := this.GetString("SupplierId")
  1120. createOn := this.GetString("CreateOn")
  1121. if Order != "" && Prop != "" {
  1122. orderby = Prop
  1123. if Order == "asc" {
  1124. asc = true
  1125. }
  1126. }
  1127. //企业用户必须加创建人条件
  1128. var registerUser register.OilCorporateInfo
  1129. var company supplier.OilSupplier
  1130. sql := " UserName='" + this.User.Username + "'"
  1131. svc.GetEntity(&registerUser, sql)
  1132. sql1 := " CreateUserId = '" + this.User.Id + "' or CommercialNo='" + registerUser.CommercialNo + "'"
  1133. svc.GetEntity(&company, sql1)
  1134. if supplierId != "0" {
  1135. where = where + " and SupplierId=" + supplierId
  1136. } else {
  1137. where = where + " and SupplierId=" + strconv.Itoa(company.Id)
  1138. }
  1139. if subfilename != "" {
  1140. where = where + " and NeedFileType like '%" + subfilename + "%'"
  1141. }
  1142. if createOn != "" {
  1143. dates := strings.Split(createOn, ",")
  1144. if len(dates) == 2 {
  1145. minDate := dates[0]
  1146. maxDate := dates[1]
  1147. where = where + " and EffectDate>='" + minDate + "' and EffectDate<='" + maxDate + "'"
  1148. }
  1149. }
  1150. total := svc.GetPagingEntitiesWithoutAccCode(page.CurrentPage, page.Size, orderby, asc, &list, where)
  1151. var datainfo DataInfo
  1152. datainfo.Items = list
  1153. datainfo.CurrentItemCount = total
  1154. this.Data["json"] = &datainfo
  1155. this.ServeJSON()
  1156. }
  1157. // @Title 获取列表
  1158. // @Description
  1159. // @Success 200 {object}
  1160. // @router /totallist [get]
  1161. func (this *SelectController) GetTotalList() {
  1162. //获取分页信息
  1163. page := this.GetPageInfoForm()
  1164. where := "0"
  1165. orderby := "Id"
  1166. asc := false
  1167. Order := this.GetString("Order")
  1168. Prop := this.GetString("Prop")
  1169. if Order != "" && Prop != "" {
  1170. orderby = Prop
  1171. if Order == "asc" {
  1172. asc = true
  1173. }
  1174. }
  1175. Years := this.GetString("Years")
  1176. if Years != "" {
  1177. where = Years
  1178. }
  1179. //CreateOn := this.GetString("CreateOn")
  1180. //
  1181. //if CreateOn != "" {
  1182. // dates := strings.Split(CreateOn, ",")
  1183. // if len(dates) == 2 {
  1184. // minDate := dates[0]
  1185. // maxDate := dates[1]
  1186. // where = where + " and ValidityTo>='" + minDate + "' and ValidityTo<='" + maxDate + "'"
  1187. // }
  1188. //}
  1189. svc := selectbusiness.GetSelectService(utils.DBE)
  1190. var list []selectbusiness.TotalCount
  1191. svc.GetTotalInMonth(orderby, asc, &list, where)
  1192. var datainfo DataInfo
  1193. datainfo.Items = list
  1194. datainfo.PageIndex = page.CurrentPage
  1195. datainfo.ItemsPerPage = page.Size
  1196. this.Data["json"] = &datainfo
  1197. this.ServeJSON()
  1198. }
  1199. // @Title 导出资质图片
  1200. // @Description
  1201. // @Success 200 {object}
  1202. // @router /getallbusinesslicense [get]
  1203. func (this *SelectController) GetAllBusinessLicense() {
  1204. needFileType := this.GetString("NeedFileType")
  1205. svc := supplier.GetOilSupplierService(utils.DBE)
  1206. var supplierList []supplier.OilSupplier
  1207. where := "1=1"
  1208. svc.GetEntities(&supplierList, where)
  1209. _dir := utils.Cfg.MustValue("file", "tmplateDir") + needFileType
  1210. downFileUrl := "http://" + utils.Cfg.MustValue("server", "localIP")
  1211. for _, item := range supplierList {
  1212. var supplierFile supplierfile.OilSupplierFile
  1213. where := "SupplierId=" + strconv.Itoa(item.Id) + " and NeedFileType='" + needFileType + "'"
  1214. has := svc.GetEntity(&supplierFile, where)
  1215. if has {
  1216. fileArr := strings.Split(supplierFile.FileName, ".")
  1217. fileUrl := strings.Split(supplierFile.FileUrl, "|")
  1218. if len(fileUrl) == 2 && len(fileArr) == 2 {
  1219. utils.DownloadFile(downFileUrl+fileUrl[0], item.SupplierName+"."+fileArr[1], _dir)
  1220. }
  1221. }
  1222. }
  1223. //Zip(_dir, utils.Cfg.MustValue("file", "tmplateDir") + "license.zip")
  1224. f1, _ := os.Open(_dir)
  1225. var files = []*os.File{f1}
  1226. //destZipName := time.Now().Format("2006-01-02")
  1227. destZipName := needFileType
  1228. destZip := utils.Cfg.MustValue("file", "tmplateDir") + destZipName + ".zip"
  1229. err := Compress(files, destZip)
  1230. retDocUrl := ""
  1231. if err == nil {
  1232. var sw *Seaweed
  1233. var filer []string
  1234. if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
  1235. filer = []string{_filer}
  1236. }
  1237. sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
  1238. _, _, fID, _ := sw.UploadFile(destZip, "", "")
  1239. retDocUrl = utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
  1240. }
  1241. os.Remove(destZip)
  1242. os.RemoveAll(_dir)
  1243. var errinfo ErrorDataInfo
  1244. errinfo.Code = 0
  1245. errinfo.Item = retDocUrl
  1246. this.Data["json"] = &errinfo
  1247. this.ServeJSON()
  1248. }
  1249. // @Title 导出企业资质图片
  1250. // @Description
  1251. // @Success 200 {object}
  1252. // @router /getallbusinesslicensebyid [get]
  1253. func (this *SelectController) GetBusinessLicenseById() {
  1254. SupplierId := this.GetString("SupplierId")
  1255. SupplierName := this.GetString("SupplierName")
  1256. SupplierTypeCode := this.GetString("SupTypeCode")
  1257. svc := supplier.GetOilSupplierService(utils.DBE)
  1258. if SupplierId == "0" && this.User.IsCompanyUser == 1 {
  1259. var registerUser register.OilCorporateInfo
  1260. var company supplier.OilSupplier
  1261. sql := " UserName='" + this.User.Username + "'"
  1262. svc.GetEntity(&registerUser, sql)
  1263. sql1 := " CreateUserId = '" + this.User.Id + "' or CommercialNo='" + registerUser.CommercialNo + "'"
  1264. svc.GetEntity(&company, sql1)
  1265. SupplierId = strconv.Itoa(company.Id)
  1266. SupplierName = company.SupplierName
  1267. }
  1268. _dir := utils.Cfg.MustValue("file", "tmplateDir") + SupplierName
  1269. downFileUrl := "http://" + utils.Cfg.MustValue("server", "localIP")
  1270. var supplierFile []supplierfile.OilSupplierFile
  1271. where := "SupplierId=" + SupplierId
  1272. svc.GetEntities(&supplierFile, where)
  1273. var errinfo ErrorDataInfo
  1274. if len(supplierFile) == 0 {
  1275. errinfo.Code = -1
  1276. errinfo.Message = "该公司没有可导出的资质!"
  1277. this.Data["json"] = &errinfo
  1278. this.ServeJSON()
  1279. return
  1280. }
  1281. for _, item := range supplierFile {
  1282. fileArr := strings.Split(item.FileName, ".")
  1283. fileUrl := strings.Split(item.FileUrl, "|")
  1284. if len(fileUrl) == 2 && len(fileArr) == 2 {
  1285. utils.DownloadFile(downFileUrl+fileUrl[0], item.NeedFileType+"."+fileArr[1], _dir)
  1286. }
  1287. }
  1288. //Zip(_dir, utils.Cfg.MustValue("file", "tmplateDir") + "license.zip")
  1289. f1, _ := os.Open(_dir)
  1290. var files = []*os.File{f1}
  1291. if SupplierTypeCode == "01" {
  1292. SupplierTypeCode = "WZ"
  1293. } else if SupplierTypeCode == "02" {
  1294. SupplierTypeCode = "JS"
  1295. } else if SupplierTypeCode == "03" {
  1296. SupplierTypeCode = "JF"
  1297. } else {
  1298. SupplierTypeCode = ""
  1299. }
  1300. destZipName := SupplierName + time.Now().Format("20060102") + SupplierTypeCode
  1301. destZip := utils.Cfg.MustValue("file", "tmplateDir") + destZipName + ".zip"
  1302. err := Compress(files, destZip)
  1303. retDocUrl := ""
  1304. if err == nil {
  1305. var sw *Seaweed
  1306. var filer []string
  1307. if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
  1308. filer = []string{_filer}
  1309. }
  1310. sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
  1311. _, _, fID, _ := sw.UploadFile(destZip, "", "")
  1312. retDocUrl = utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
  1313. }
  1314. os.Remove(destZip)
  1315. os.RemoveAll(_dir)
  1316. errinfo.Code = 0
  1317. errinfo.Item = retDocUrl
  1318. this.Data["json"] = &errinfo
  1319. this.ServeJSON()
  1320. }
  1321. func Compress(files []*os.File, dest string) error {
  1322. d, _ := os.Create(dest)
  1323. defer d.Close()
  1324. w := zip.NewWriter(d)
  1325. defer w.Close()
  1326. for _, file := range files {
  1327. err := compress(file, "", w)
  1328. if err != nil {
  1329. return err
  1330. }
  1331. }
  1332. return nil
  1333. }
  1334. func compress(file *os.File, prefix string, zw *zip.Writer) error {
  1335. info, err := file.Stat()
  1336. if err != nil {
  1337. return err
  1338. }
  1339. if info.IsDir() {
  1340. prefix = prefix + "/" + info.Name()
  1341. fileInfos, err := file.Readdir(-1)
  1342. if err != nil {
  1343. return err
  1344. }
  1345. for _, fi := range fileInfos {
  1346. f, err := os.Open(file.Name() + "/" + fi.Name())
  1347. if err != nil {
  1348. return err
  1349. }
  1350. err = compress(f, prefix, zw)
  1351. if err != nil {
  1352. return err
  1353. }
  1354. }
  1355. } else {
  1356. header, err := zip.FileInfoHeader(info)
  1357. header.Name = prefix + "/" + header.Name
  1358. if err != nil {
  1359. return err
  1360. }
  1361. writer, err := zw.CreateHeader(header)
  1362. if err != nil {
  1363. return err
  1364. }
  1365. _, err = io.Copy(writer, file)
  1366. file.Close()
  1367. if err != nil {
  1368. return err
  1369. }
  1370. }
  1371. return nil
  1372. }
  1373. // @Title 获取资质列表
  1374. // @Description get user by tokenaddsubfile
  1375. // @Success 200 {object} models.Userblood
  1376. // @router /gettableheaderlist [get]
  1377. func (this *SelectController) GetTableHeaderList() {
  1378. typeCode := this.GetString("Type")
  1379. var tableHeader []tableheader.BaseTableheader
  1380. svc := tableheader.GetTableHeaderService(utils.DBE)
  1381. where := "CategoryCode='" + typeCode + "'"
  1382. svc.GetEntitysByWhere(BaseTableHeader, where, &tableHeader)
  1383. var errinfo ErrorDataInfo
  1384. errinfo.Code = 0
  1385. errinfo.Item = tableHeader
  1386. this.Data["json"] = &errinfo
  1387. this.ServeJSON()
  1388. }