select.go 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548
  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. nilTime := time.Time{}
  468. for _, item := range list {
  469. var dataArr []string
  470. dataArr = append(dataArr, item.SupplierName)
  471. dataArr = append(dataArr, item.AccessCardNo)
  472. // 准入类别
  473. if item.SupplierTypeCode == "01" {
  474. dataArr = append(dataArr, "物资类")
  475. } else if item.SupplierTypeCode == "02" {
  476. dataArr = append(dataArr, "基建类")
  477. } else if item.SupplierTypeCode == "03" {
  478. dataArr = append(dataArr, "服务类")
  479. } else {
  480. dataArr = append(dataArr, "")
  481. }
  482. // 准入方式
  483. if item.InStyle == "1" {
  484. dataArr = append(dataArr, "评审准入")
  485. } else if item.InStyle == "2" {
  486. dataArr = append(dataArr, "一级物资备案准入")
  487. } else if item.InStyle == "3" {
  488. dataArr = append(dataArr, "二级物资备案准入")
  489. } else if item.InStyle == "4" {
  490. dataArr = append(dataArr, "战略合作准入")
  491. } else if item.InStyle == "5" {
  492. dataArr = append(dataArr, "内部多元准入")
  493. } else if item.InStyle == "6" {
  494. dataArr = append(dataArr, "招标准入")
  495. } else {
  496. dataArr = append(dataArr, "")
  497. }
  498. // 准入标识
  499. if item.InFlag == "1" {
  500. dataArr = append(dataArr, "准入")
  501. } else if item.InFlag == "2" {
  502. dataArr = append(dataArr, "暂停")
  503. } else if item.InFlag == "3" {
  504. dataArr = append(dataArr, "取消")
  505. } else {
  506. dataArr = append(dataArr, "")
  507. }
  508. if item.ApplyTime == nilTime {
  509. dataArr = append(dataArr, "")
  510. } else {
  511. dataArr = append(dataArr, item.ApplyTime.Format("2006-01-02 15:04:05"))
  512. }
  513. dataArr = append(dataArr, item.OldSupplierName)
  514. if item.Grade == "1" {
  515. dataArr = append(dataArr, "一级")
  516. } else if item.Grade == "2" {
  517. dataArr = append(dataArr, "二级")
  518. } else {
  519. dataArr = append(dataArr, "")
  520. }
  521. if item.OperType == "制造商" {
  522. dataArr = append(dataArr, item.OperType)
  523. } else {
  524. dataArr = append(dataArr, "非制造商")
  525. }
  526. dataArr = append(dataArr, item.LegalPerson)
  527. dataArr = append(dataArr, strconv.FormatFloat(item.RegCapital, 'f', 2, 64))
  528. dataArr = append(dataArr, item.ContactName)
  529. dataArr = append(dataArr, item.Mobile)
  530. dataArr = append(dataArr, item.CommercialNo)
  531. dataArr = append(dataArr, item.DepositBank)
  532. dataArr = append(dataArr, item.CompanyType)
  533. if item.SetupTime == nilTime {
  534. dataArr = append(dataArr, "")
  535. } else {
  536. dataArr = append(dataArr, item.SetupTime.Format("2006-01-02 15:04:05"))
  537. }
  538. dataArr = append(dataArr, item.CheckUnitName)
  539. dataArr = append(dataArr, item.FullName)
  540. if item.CreateOn == nilTime {
  541. dataArr = append(dataArr, "")
  542. } else {
  543. dataArr = append(dataArr, item.CreateOn.Format("2006-01-02 15:04:05"))
  544. }
  545. dataArr = append(dataArr, item.Address)
  546. dataArr = append(dataArr, item.LinkAddress)
  547. dataArr = append(dataArr, item.BusinessScope)
  548. dataArr = append(dataArr, item.NeedFileType)
  549. // dataArr = append(dataArr, item.CerSubName) // 准入编码
  550. dataArr = append(dataArr, item.Remark)
  551. row := sheet.AddRow()
  552. row.WriteSlice(&dataArr, -1)
  553. }
  554. for c, cl := 0, len(sheet.Cols); c < cl; c++ {
  555. sheet.Cols[c].Width = 20
  556. }
  557. dir := "static/file/excel/report/" + this.GetAccode()
  558. SaveDirectory(dir)
  559. path := dir + "/" + "supplier_export_" + utils.TimeFormat(time.Now(), "20060102") + fileTitle + ".xlsx"
  560. f.Save(path)
  561. var sw *Seaweed
  562. var filer []string
  563. if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
  564. filer = []string{_filer}
  565. }
  566. sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
  567. _, _, fID, _ := sw.UploadFile(path, "", "")
  568. retDocUrl := utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
  569. os.Remove(path)
  570. this.Data["json"] = retDocUrl
  571. this.ServeJSON()
  572. }
  573. // @Title 根据公司名获取公司信息和准入
  574. // @Description
  575. // @Success 200 {object}
  576. // @router /getbaseinfo [post]
  577. func (this *SelectController) GetBaseInfo() {
  578. Spesearch := this.GetString("Spesearch")
  579. spesearchs := strings.Split(Spesearch, ",")
  580. svc := selectbusiness.GetSelectService(utils.DBE)
  581. var infoIntelist []supplier.OilSupplierInte
  582. for _, item := range spesearchs {
  583. //var supplierinfo supplier.SupplierInfoInte
  584. var infoInte supplier.OilSupplierInte
  585. where := " where 1 = 1 AND a.SupplierName = '" + item + "'"
  586. svc.GetInfoByCompId(where, &infoInte.SupplierInfo)
  587. var cert1 suppliercert.OilSupplierCert
  588. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '01'"
  589. svc.GetEntityByWhere(OilSupplierCertName, where, &cert1)
  590. infoInte.SupplierInfo.WZStatus = cert1.InFlag
  591. infoInte.SupplierInfo.WZDate = cert1.ApplyTime.Format("2006-01-02")
  592. var cert2 suppliercert.OilSupplierCert
  593. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '02'"
  594. svc.GetEntityByWhere(OilSupplierCertName, where, &cert2)
  595. infoInte.SupplierInfo.JSStatus = cert2.InFlag
  596. infoInte.SupplierInfo.JSDate = cert2.ApplyTime.Format("2006-01-02")
  597. var cert3 suppliercert.OilSupplierCert
  598. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '03'"
  599. svc.GetEntityByWhere(OilSupplierCertName, where, &cert3)
  600. infoInte.SupplierInfo.JFStatus = cert3.InFlag
  601. infoInte.SupplierInfo.JFDate = cert3.ApplyTime.Format("2006-01-02")
  602. if infoInte.SupplierInfo.SupplierName != "" {
  603. //var suplliersup []supplier.OilSupplierCertSubInte
  604. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='01'"
  605. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.WZsub)
  606. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='02'"
  607. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JSsub)
  608. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='03'"
  609. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JFsub)
  610. } else if item == "" {
  611. where = "where SupplierTypeCode='01'"
  612. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.WZsub)
  613. where = "where and SupplierTypeCode='02'"
  614. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JSsub)
  615. where = "where SupplierTypeCode='03'"
  616. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JFsub)
  617. }
  618. infoIntelist = append(infoIntelist, infoInte)
  619. }
  620. var datainfo DataInfo
  621. datainfo.Items = infoIntelist
  622. this.Data["json"] = &datainfo
  623. this.ServeJSON()
  624. }
  625. // @Title 根据分页获取公司信息和准入, // 提供给银行接口的用户名 和 密码:ceshi1, Ceshi111
  626. // @Description
  627. // @Success 200 {object}
  628. // @router /getinfobypage [post]
  629. func (this *SelectController) GetInfoByPage() {
  630. page := this.GetString("page")
  631. svc := selectbusiness.GetSelectService(utils.DBE)
  632. var infoIntelist []supplier.OilSupplierInte
  633. intpage, _ := strconv.Atoi(page)
  634. for i := (intpage - 1) * 50; i < (intpage * 50); i++ {
  635. //var supplierinfo supplier.SupplierInfoInte
  636. var infoInte supplier.OilSupplierInte
  637. stringi := strconv.Itoa(i)
  638. where := " where 1 = 1 limit " + stringi + ",1"
  639. svc.GetInfoByCompId(where, &infoInte.SupplierInfo)
  640. var cert1 suppliercert.OilSupplierCert
  641. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '01'"
  642. svc.GetEntityByWhere(OilSupplierCertName, where, &cert1)
  643. infoInte.SupplierInfo.WZStatus = cert1.InFlag
  644. infoInte.SupplierInfo.WZDate = cert1.ApplyTime.Format("2006-01-02")
  645. var cert2 suppliercert.OilSupplierCert
  646. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '02'"
  647. svc.GetEntityByWhere(OilSupplierCertName, where, &cert2)
  648. infoInte.SupplierInfo.JSStatus = cert2.InFlag
  649. infoInte.SupplierInfo.JSDate = cert2.ApplyTime.Format("2006-01-02")
  650. var cert3 suppliercert.OilSupplierCert
  651. where = "SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode= '03'"
  652. svc.GetEntityByWhere(OilSupplierCertName, where, &cert3)
  653. infoInte.SupplierInfo.JFStatus = cert3.InFlag
  654. infoInte.SupplierInfo.JFDate = cert3.ApplyTime.Format("2006-01-02")
  655. if infoInte.SupplierInfo.SupplierName != "" {
  656. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='01'"
  657. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.WZsub)
  658. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='02'"
  659. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JSsub)
  660. where = "where SupplierId=" + strconv.Itoa(infoInte.SupplierInfo.Id) + " and SupplierTypeCode='03'"
  661. svc.Getoilsuppliercertsub(OilSupplierCertSubName, where, &infoInte.JFsub)
  662. }
  663. if infoInte.SupplierInfo.Id != 0 {
  664. infoIntelist = append(infoIntelist, infoInte)
  665. }
  666. }
  667. var datainfo DataInfo
  668. datainfo.Items = infoIntelist
  669. this.Data["json"] = &datainfo
  670. this.ServeJSON()
  671. }
  672. // @Title 获取所有
  673. // @Description
  674. // @Success 200 {object}
  675. // @router /up [post]
  676. func (this *SelectController) Up() {
  677. var model UpSearch
  678. var jsonBlob = this.Ctx.Input.RequestBody
  679. json.Unmarshal(jsonBlob, &model)
  680. // //获取分页信息
  681. page := this.GetPageInfoForm()
  682. where := ""
  683. asc := false
  684. Order := this.GetString("Order")
  685. Prop := this.GetString("Prop")
  686. CreateOn := this.GetString("CreateOn")
  687. if Order != "" && Prop != "" {
  688. if Order == "asc" {
  689. asc = true
  690. }
  691. }
  692. if CreateOn != "" {
  693. dates := strings.Split(CreateOn, ",")
  694. if len(dates) == 2 {
  695. minDate := dates[0]
  696. maxDate := dates[1]
  697. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  698. }
  699. }
  700. if model.FullName != "" {
  701. where = where + " and (select FullName from Base_Organize where Id = a.CommitComId) like '%" + model.FullName + "%'"
  702. }
  703. svc := selectbusiness.GetSelectService(utils.DBE)
  704. var list []UpInfoSearch
  705. total := svc.GetUp(OilSupplierCertName, page.CurrentPage, page.Size, Prop, asc, &list, where)
  706. var datainfo DataInfo
  707. datainfo.Items = list
  708. datainfo.CurrentItemCount = total
  709. datainfo.PageIndex = page.CurrentPage
  710. datainfo.ItemsPerPage = page.Size
  711. this.Data["json"] = &datainfo
  712. this.ServeJSON()
  713. }
  714. // @Title 获取所有资质名称
  715. // @Description
  716. // @Success 200 {object}
  717. // @router /getnftoptions [post]
  718. func (this *SelectController) GetNFTOptions() {
  719. svc := selectbusiness.GetSelectService(utils.DBE)
  720. var list []map[string]string
  721. sql := "select distinct(Name) from " + BaseTableHeader + ""
  722. list, _ = svc.DBE.QueryString(sql)
  723. var datainfo DataInfo
  724. datainfo.Items = list
  725. this.Data["json"] = &datainfo
  726. this.ServeJSON()
  727. }
  728. // @Title 流程查询准入
  729. // @Description
  730. // @Success 200 {object}
  731. // @router /getprocessauditlist [get]
  732. func (this *SelectController) GetProcessAuditList() {
  733. //获取分页信息
  734. page := this.GetPageInfoForm()
  735. where := " 1=1 and b.WorkflowId != '' and b.WorkflowId != '0' "
  736. orderby := "Id"
  737. asc := false
  738. Order := this.GetString("Order")
  739. Prop := this.GetString("Prop")
  740. if Order != "" && Prop != "" {
  741. orderby = Prop
  742. if Order == "asc" {
  743. asc = true
  744. }
  745. }
  746. svc := supplier.GetOilSupplierService(utils.DBE)
  747. tabinx := this.GetString("tabinx")
  748. supplierTypeCode := this.GetString("SupplierTypeCode")
  749. supplierName := this.GetString("SupplierName")
  750. CreateOn := this.GetString("CreateOn")
  751. //企业用户必须加创建人条件
  752. var registerUser register.OilCorporateInfo
  753. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  754. svc.GetEntity(&registerUser, sql)
  755. var processinfolist []Processinfo
  756. if this.User.IsCompanyUser == 1 {
  757. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  758. }
  759. if supplierTypeCode != "" {
  760. where = where + " and b.SupplierTypeCode = '" + supplierTypeCode + "'"
  761. }
  762. if supplierName != "" {
  763. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  764. }
  765. var total int64 = 0
  766. var datainfo DataInfo
  767. if tabinx == "1" || tabinx == "0" {
  768. var list []Processinfo //[]supplier.OilSupplierView
  769. if CreateOn != "" {
  770. dates := strings.Split(CreateOn, ",")
  771. if len(dates) == 2 {
  772. minDate := dates[0]
  773. maxDate := dates[1]
  774. where = where + " and b.CreateOn>='" + minDate + "' and b.CreateOn<='" + maxDate + "'"
  775. }
  776. }
  777. total = total + svc.GetProcessInfoWithOrderBytbl(OilSupplierName, OilSupplierCertName, page.CurrentPage, page.Size, "b.Id", asc, &list, where)
  778. processinfolist = append(processinfolist, list...)
  779. //datainfo.Items = processinfolist
  780. }
  781. if tabinx == "2" || tabinx == "0" {
  782. whereapp := "1=1 and a.WorkflowId != '' and a.WorkflowId != '0'"
  783. //企业用户必须加创建人条件
  784. if this.User.IsCompanyUser == 1 {
  785. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  786. }
  787. if supplierTypeCode != "" {
  788. whereapp = whereapp + " and a.AppendType = '" + supplierTypeCode + "'"
  789. }
  790. if supplierName != "" {
  791. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  792. }
  793. if CreateOn != "" {
  794. dates := strings.Split(CreateOn, ",")
  795. if len(dates) == 2 {
  796. minDate := dates[0]
  797. maxDate := dates[1]
  798. whereapp = whereapp + " a.and CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  799. }
  800. }
  801. var list []Processinfo //[]suppliercertappend.OilSupplierCertAppend
  802. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  803. total = total + svc.GetProcessInfoWithOrderBytbl(OilSupplierCertAppendName, page.CurrentPage, page.Size, "a.Id", asc, &list, whereapp)
  804. processinfolist = append(processinfolist, list...)
  805. //datainfo.Items = processinfolist
  806. }
  807. if tabinx == "3" || tabinx == "0" {
  808. whereapp := "1=1 and a.WorkflowId != '' and a.WorkflowId != '0'"
  809. //企业用户必须加创建人条件
  810. if this.User.IsCompanyUser == 1 {
  811. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  812. }
  813. if supplierTypeCode != "" {
  814. whereapp = whereapp + " and a.SupplierTypeName = '" + supplierTypeCode + "'"
  815. }
  816. if supplierName != "" {
  817. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  818. }
  819. if CreateOn != "" {
  820. dates := strings.Split(CreateOn, ",")
  821. if len(dates) == 2 {
  822. minDate := dates[0]
  823. maxDate := dates[1]
  824. whereapp = whereapp + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  825. }
  826. }
  827. var list []Processinfo //[]annualaudit.OilAnnualAudit
  828. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  829. total = total + svc.GetProcessInfoWithOrderBytbl(OilAnnualAuditName, page.CurrentPage, page.Size, orderby, asc, &list, whereapp)
  830. processinfolist = append(processinfolist, list...)
  831. //datainfo.Items = processinfolist
  832. }
  833. if tabinx == "4" || tabinx == "0" {
  834. whereapp := "1=1 and a.WorkflowId != '' and a.WorkflowId != '0'"
  835. //企业用户必须加创建人条件
  836. if this.User.IsCompanyUser == 1 {
  837. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  838. }
  839. if supplierName != "" {
  840. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  841. }
  842. if CreateOn != "" {
  843. dates := strings.Split(CreateOn, ",")
  844. if len(dates) == 2 {
  845. minDate := dates[0]
  846. maxDate := dates[1]
  847. whereapp = whereapp + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  848. }
  849. }
  850. var list []Processinfo //[]infochange.OilInfoChange
  851. svc := infochange.GetInfoChangeService(utils.DBE)
  852. total = total + svc.GetProcessInfoWithOrderBytbl(OilInfoChangeName, page.CurrentPage, page.Size, orderby, asc, &list, whereapp)
  853. processinfolist = append(processinfolist, list...)
  854. //datainfo.Items = processinfolist
  855. }
  856. if tabinx == "5" {
  857. whereapp := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  858. //企业用户必须加创建人条件
  859. if this.User.IsCompanyUser == 1 {
  860. whereapp = whereapp + " and CreateUserId = '" + this.User.Id + "'"
  861. }
  862. if supplierName != "" {
  863. whereapp = whereapp + " and SupplierName like '%" + supplierName + "%'"
  864. }
  865. if CreateOn != "" {
  866. dates := strings.Split(CreateOn, ",")
  867. if len(dates) == 2 {
  868. minDate := dates[0]
  869. maxDate := dates[1]
  870. whereapp = whereapp + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  871. }
  872. }
  873. svc := qualchange.GetQualChangeService(utils.DBE)
  874. var list []qualchange.OilQualChangeMain
  875. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, whereapp)
  876. datainfo.Items = list
  877. }
  878. if tabinx == "0" {
  879. whereapp := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  880. where1 := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  881. where2 := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  882. where3 := "1=1 and WorkflowId != '' and WorkflowId != '0'"
  883. //企业用户必须加创建人条件
  884. if this.User.IsCompanyUser == 1 {
  885. whereapp = whereapp + " and a.CreateUserId = '" + this.User.Id + "'"
  886. where1 = where1 + " and a.CreateUserId = '" + this.User.Id + "'"
  887. where2 = where2 + " and a.CreateUserId = '" + this.User.Id + "'"
  888. where3 = where3 + " and a.CreateUserId = '" + this.User.Id + "'"
  889. }
  890. if supplierTypeCode != "" {
  891. //whereapp = whereapp + " and a.SupplierTypeCode = '" + supplierTypeCode + "'"
  892. where1 = where1 + " and b.SupplierTypeCode = '" + supplierTypeCode + "'"
  893. where2 = where2 + " and a.AppendType = '" + supplierTypeCode + "'"
  894. where3 = where3 + " and a.SupplierTypeName = '" + supplierTypeCode + "'"
  895. }
  896. if supplierName != "" {
  897. whereapp = whereapp + " and a.SupplierName like '%" + supplierName + "%'"
  898. where1 = where1 + " and a.SupplierName like '%" + supplierName + "%'"
  899. where2 = where2 + " and a.SupplierName like '%" + supplierName + "%'"
  900. where3 = where3 + " and a.SupplierName like '%" + supplierName + "%'"
  901. }
  902. if CreateOn != "" {
  903. dates := strings.Split(CreateOn, ",")
  904. if len(dates) == 2 {
  905. minDate := dates[0]
  906. maxDate := dates[1]
  907. whereapp = whereapp + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  908. }
  909. }
  910. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  911. var list []Processinfo
  912. svc.GetProcessInfoAllWithOrderBytbl(page.CurrentPage, page.Size, orderby, asc, &list, whereapp, where1, where2, where3)
  913. processinfolist = list
  914. }
  915. sort.Slice(processinfolist, func(i, j int) bool {
  916. return processinfolist[i].CreateOn.Unix() > processinfolist[j].CreateOn.Unix()
  917. })
  918. datainfo.Items = processinfolist
  919. datainfo.CurrentItemCount = total
  920. datainfo.PageIndex = page.CurrentPage
  921. datainfo.ItemsPerPage = page.Size
  922. this.Data["json"] = &datainfo
  923. this.ServeJSON()
  924. }
  925. // @Title 准入范围查询
  926. // @Description
  927. // @Success 200 {object}
  928. // @router /zrfwselect [get]
  929. func (this *SelectController) ZrfwSelect() {
  930. //获取分页信息
  931. page := this.GetPageInfoForm()
  932. limitCurrent := (page.CurrentPage - 1) * page.Size
  933. svc := selectbusiness.GetSelectService(utils.DBE)
  934. supplierTypeCode := this.GetString("SupplierTypeCode")
  935. certsub := this.GetString("certsub")
  936. //企业用户必须加创建人条件
  937. var registerUser register.OilCorporateInfo
  938. var company supplier.OilSupplier
  939. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  940. svc.GetEntity(&registerUser, sql)
  941. if this.User.IsCompanyUser == 1 {
  942. sql1 := " CreateUserId = '" + this.User.Id + "' or CommercialNo='" + registerUser.CommercialNo + "'"
  943. svc.GetEntity(&company, sql1)
  944. }
  945. where := ""
  946. if certsub != "" {
  947. where = " and (Code like '%" + certsub + "%' or Name like '%" + certsub + "%')"
  948. }
  949. if company.SupplierName != "" {
  950. 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) + ""
  951. result, _ := svc.DBE.QueryString(sql2)
  952. sql3 := "select count(distinct(Code)) total from OilSupplierCertSub where SupplierId='" + strconv.Itoa(company.Id) + "' and SupplierTypeCode='" + supplierTypeCode + "'" + where
  953. result1, _ := svc.DBE.QueryString(sql3)
  954. total, _ := strconv.ParseInt(result1[0]["total"], 10, 64)
  955. var datainfo DataInfo
  956. datainfo.Items = result
  957. datainfo.CurrentItemCount = total
  958. datainfo.PageIndex = page.CurrentPage
  959. datainfo.ItemsPerPage = page.Size
  960. this.Data["json"] = &datainfo
  961. this.ServeJSON()
  962. } else {
  963. var datainfo DataInfo
  964. datainfo.Items = ""
  965. datainfo.PageIndex = page.CurrentPage
  966. datainfo.ItemsPerPage = page.Size
  967. this.Data["json"] = &datainfo
  968. this.ServeJSON()
  969. }
  970. }
  971. // @Title 获取所有
  972. // @Description
  973. // @Success 200 {object}
  974. // @router /getallbusinesslist [post]
  975. func (this *SelectController) GetAllBusinesList() {
  976. perject := this.GetString("Perject")
  977. accessCardNo := this.GetString("AccessCardNo")
  978. supplierTypeCode := this.GetString("SupplierTypeCode")
  979. supplierName := this.GetString("SupplierName")
  980. var list []selectbusiness.SelectBusiness
  981. // 准入
  982. if perject == "1" || perject == "" {
  983. where := "1=1 "
  984. if accessCardNo != "" {
  985. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  986. }
  987. if supplierTypeCode != "" {
  988. where = where + " and b.SupplierTypeCode='" + supplierTypeCode + "'"
  989. }
  990. if supplierName != "" {
  991. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  992. }
  993. var zrlist []supplier.OilSupplierView
  994. zrsvc := supplier.GetOilSupplierService(utils.DBE)
  995. if this.User.IsCompanyUser == 1 {
  996. var registerUser register.OilCorporateInfo
  997. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  998. zrsvc.GetEntity(&registerUser, sql)
  999. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1000. }
  1001. zrwhere := where + " and b.Status='" + suppliercert.STORE_STATUS + "'"
  1002. zrsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 100, "b.Id", false, &zrlist, zrwhere)
  1003. for _, item := range zrlist {
  1004. var sele selectbusiness.SelectBusiness
  1005. sele.SupplierName = item.SupplierName
  1006. sele.CreateOn = item.CreateOn
  1007. sele.AccessCardNo = item.AccessCardNo
  1008. sele.TypeCode = item.SupplierTypeCode
  1009. sele.TypeName = item.SupplierTypeName
  1010. sele.Preject = "1"
  1011. list = append(list, sele)
  1012. }
  1013. }
  1014. // 增项
  1015. if perject == "2" || perject == "" {
  1016. where := "1=1 "
  1017. if accessCardNo != "" {
  1018. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  1019. }
  1020. if supplierTypeCode != "" {
  1021. where = where + " and b.AppendType='" + supplierTypeCode + "'"
  1022. }
  1023. if supplierName != "" {
  1024. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  1025. }
  1026. var zxlist []suppliercertappend.OilSupplierCertAppend
  1027. zxsvc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1028. if this.User.IsCompanyUser == 1 {
  1029. var registerUser register.OilCorporateInfo
  1030. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  1031. zxsvc.GetEntity(&registerUser, sql)
  1032. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1033. }
  1034. zxwhere := where + " and b.Status='" + suppliercert.STORE_STATUS + "'"
  1035. zxsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertAppendName, 1, 100, "b.Id", false, &zxlist, zxwhere)
  1036. for _, item := range zxlist {
  1037. var sele selectbusiness.SelectBusiness
  1038. sele.SupplierName = item.SupplierName
  1039. sele.CreateOn = item.CreateOn
  1040. sele.AccessCardNo = item.AccessCardNo
  1041. sele.TypeCode = item.AppendType
  1042. sele.TypeName = ""
  1043. sele.Preject = "2"
  1044. list = append(list, sele)
  1045. }
  1046. }
  1047. // 年审
  1048. if perject == "3" || perject == "" {
  1049. where := "1=1 "
  1050. if accessCardNo != "" {
  1051. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  1052. }
  1053. if supplierTypeCode != "" {
  1054. where = where + " and b.SupplierTypeName='" + supplierTypeCode + "'"
  1055. }
  1056. if supplierName != "" {
  1057. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  1058. }
  1059. var nslist []annualaudit.OilAnnualAudit
  1060. nssvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1061. if this.User.IsCompanyUser == 1 {
  1062. var registerUser register.OilCorporateInfo
  1063. sql := " UserName='" + this.User.Username + "'"
  1064. nssvc.GetEntity(&registerUser, sql)
  1065. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1066. }
  1067. zswhere := where + " and b.Status='" + suppliercert.DRAFT_STATUS + "'"
  1068. nssvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilAnnualAuditName, 1, 100, "b.Id", false, &nslist, zswhere)
  1069. for _, item := range nslist {
  1070. var sele selectbusiness.SelectBusiness
  1071. sele.SupplierName = item.SupplierName
  1072. sele.CreateOn = item.CreateOn
  1073. sele.AccessCardNo = item.AccessCardNo
  1074. sele.TypeCode = item.SupplierTypeName
  1075. sele.TypeName = ""
  1076. sele.Preject = "3"
  1077. list = append(list, sele)
  1078. }
  1079. }
  1080. // 变更申请
  1081. if perject == "4" || perject == "" {
  1082. where := "1=1 "
  1083. if accessCardNo != "" {
  1084. where = where + " and b.AccessCardNo='" + accessCardNo + "'"
  1085. }
  1086. if supplierTypeCode != "" {
  1087. where = where + " and b.SupplierTypeCode='" + supplierTypeCode + "'"
  1088. }
  1089. if supplierName != "" {
  1090. where = where + " and a.SupplierName like '%" + supplierName + "%'"
  1091. }
  1092. var bglist []infochange.SuppModelInfo
  1093. bgsvc := infochange.GetInfoChangeService(utils.DBE)
  1094. if this.User.IsCompanyUser == 1 {
  1095. var registerUser register.OilCorporateInfo
  1096. sql := " UserName='" + this.User.Username + "'"
  1097. bgsvc.GetEntity(&registerUser, sql)
  1098. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  1099. }
  1100. bgwhere := where + " and b.Status='" + suppliercert.DRAFT_STATUS + "'"
  1101. bgsvc.GetSuppPagingEntitiesWithOrderBytbl(OilSupplierName, OilInfoChangeName, 1, 100, "b.Id", false, &bglist, bgwhere)
  1102. for _, item := range bglist {
  1103. var sele selectbusiness.SelectBusiness
  1104. sele.SupplierName = item.SupplierName
  1105. sele.CreateOn = item.CreateOn
  1106. sele.AccessCardNo = ""
  1107. sele.TypeCode = item.SupplierTypeCode
  1108. sele.TypeName = item.SupplierTypeName
  1109. sele.Preject = "4"
  1110. list = append(list, sele)
  1111. }
  1112. }
  1113. var datainfo DataInfo
  1114. datainfo.Items = list
  1115. this.Data["json"] = &datainfo
  1116. this.ServeJSON()
  1117. }
  1118. // @Title 文件上传
  1119. // @Description get user by tokenaddsubfile
  1120. // @Success 200 {object} models.Userblood
  1121. // @router /filelist [get]
  1122. func (this *SelectController) FileList() {
  1123. page := this.GetPageInfoForm()
  1124. var list []supplierfile.OilSupplierFile
  1125. svc := supplierfile.GetSupplierfileService(utils.DBE)
  1126. where := " 1=1"
  1127. orderby := "Id"
  1128. asc := true
  1129. Order := this.GetString("Order")
  1130. Prop := this.GetString("Prop")
  1131. subfilename := this.GetString("subfileName")
  1132. supplierId := this.GetString("SupplierId")
  1133. createOn := this.GetString("CreateOn")
  1134. if Order != "" && Prop != "" {
  1135. orderby = Prop
  1136. if Order == "asc" {
  1137. asc = true
  1138. }
  1139. }
  1140. //企业用户必须加创建人条件
  1141. var registerUser register.OilCorporateInfo
  1142. var company supplier.OilSupplier
  1143. sql := " UserName='" + this.User.Username + "'"
  1144. svc.GetEntity(&registerUser, sql)
  1145. sql1 := " CreateUserId = '" + this.User.Id + "' or CommercialNo='" + registerUser.CommercialNo + "'"
  1146. svc.GetEntity(&company, sql1)
  1147. if supplierId != "0" {
  1148. where = where + " and SupplierId=" + supplierId
  1149. } else {
  1150. where = where + " and SupplierId=" + strconv.Itoa(company.Id)
  1151. }
  1152. if subfilename != "" {
  1153. where = where + " and NeedFileType like '%" + subfilename + "%'"
  1154. }
  1155. if createOn != "" {
  1156. dates := strings.Split(createOn, ",")
  1157. if len(dates) == 2 {
  1158. minDate := dates[0]
  1159. maxDate := dates[1]
  1160. where = where + " and EffectDate>='" + minDate + "' and EffectDate<='" + maxDate + "'"
  1161. }
  1162. }
  1163. total := svc.GetPagingEntitiesWithoutAccCode(page.CurrentPage, page.Size, orderby, asc, &list, where)
  1164. var datainfo DataInfo
  1165. datainfo.Items = list
  1166. datainfo.CurrentItemCount = total
  1167. this.Data["json"] = &datainfo
  1168. this.ServeJSON()
  1169. }
  1170. // @Title 获取列表
  1171. // @Description
  1172. // @Success 200 {object}
  1173. // @router /totallist [get]
  1174. func (this *SelectController) GetTotalList() {
  1175. //获取分页信息
  1176. page := this.GetPageInfoForm()
  1177. where := "0"
  1178. orderby := "Id"
  1179. asc := false
  1180. Order := this.GetString("Order")
  1181. Prop := this.GetString("Prop")
  1182. if Order != "" && Prop != "" {
  1183. orderby = Prop
  1184. if Order == "asc" {
  1185. asc = true
  1186. }
  1187. }
  1188. Years := this.GetString("Years")
  1189. if Years != "" {
  1190. where = Years
  1191. }
  1192. //CreateOn := this.GetString("CreateOn")
  1193. //
  1194. //if CreateOn != "" {
  1195. // dates := strings.Split(CreateOn, ",")
  1196. // if len(dates) == 2 {
  1197. // minDate := dates[0]
  1198. // maxDate := dates[1]
  1199. // where = where + " and ValidityTo>='" + minDate + "' and ValidityTo<='" + maxDate + "'"
  1200. // }
  1201. //}
  1202. svc := selectbusiness.GetSelectService(utils.DBE)
  1203. var list []selectbusiness.TotalCount
  1204. svc.GetTotalInMonth(orderby, asc, &list, where)
  1205. var datainfo DataInfo
  1206. datainfo.Items = list
  1207. datainfo.PageIndex = page.CurrentPage
  1208. datainfo.ItemsPerPage = page.Size
  1209. this.Data["json"] = &datainfo
  1210. this.ServeJSON()
  1211. }
  1212. // @Title 导出资质图片
  1213. // @Description
  1214. // @Success 200 {object}
  1215. // @router /getallbusinesslicense [get]
  1216. func (this *SelectController) GetAllBusinessLicense() {
  1217. needFileType := this.GetString("NeedFileType")
  1218. svc := supplier.GetOilSupplierService(utils.DBE)
  1219. var supplierList []supplier.OilSupplier
  1220. where := "1=1"
  1221. svc.GetEntities(&supplierList, where)
  1222. _dir := utils.Cfg.MustValue("file", "tmplateDir") + needFileType
  1223. downFileUrl := "http://" + utils.Cfg.MustValue("server", "localIP")
  1224. for _, item := range supplierList {
  1225. var supplierFile supplierfile.OilSupplierFile
  1226. where := "SupplierId=" + strconv.Itoa(item.Id) + " and NeedFileType='" + needFileType + "'"
  1227. has := svc.GetEntity(&supplierFile, where)
  1228. if has {
  1229. fileArr := strings.Split(supplierFile.FileName, ".")
  1230. fileUrl := strings.Split(supplierFile.FileUrl, "|")
  1231. if len(fileUrl) == 2 && len(fileArr) == 2 {
  1232. utils.DownloadFile(downFileUrl+fileUrl[0], item.SupplierName+"."+fileArr[1], _dir)
  1233. }
  1234. }
  1235. }
  1236. //Zip(_dir, utils.Cfg.MustValue("file", "tmplateDir") + "license.zip")
  1237. f1, _ := os.Open(_dir)
  1238. var files = []*os.File{f1}
  1239. //destZipName := time.Now().Format("2006-01-02")
  1240. destZipName := needFileType
  1241. destZip := utils.Cfg.MustValue("file", "tmplateDir") + destZipName + ".zip"
  1242. err := Compress(files, destZip)
  1243. retDocUrl := ""
  1244. if err == nil {
  1245. var sw *Seaweed
  1246. var filer []string
  1247. if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
  1248. filer = []string{_filer}
  1249. }
  1250. sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
  1251. _, _, fID, _ := sw.UploadFile(destZip, "", "")
  1252. retDocUrl = utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
  1253. }
  1254. os.Remove(destZip)
  1255. os.RemoveAll(_dir)
  1256. var errinfo ErrorDataInfo
  1257. errinfo.Code = 0
  1258. errinfo.Item = retDocUrl
  1259. this.Data["json"] = &errinfo
  1260. this.ServeJSON()
  1261. }
  1262. // @Title 导出企业资质图片
  1263. // @Description
  1264. // @Success 200 {object}
  1265. // @router /getallbusinesslicensebyid [get]
  1266. func (this *SelectController) GetBusinessLicenseById() {
  1267. SupplierId := this.GetString("SupplierId")
  1268. SupplierName := this.GetString("SupplierName")
  1269. SupplierTypeCode := this.GetString("SupTypeCode")
  1270. svc := supplier.GetOilSupplierService(utils.DBE)
  1271. if SupplierId == "0" && this.User.IsCompanyUser == 1 {
  1272. var registerUser register.OilCorporateInfo
  1273. var company supplier.OilSupplier
  1274. sql := " UserName='" + this.User.Username + "'"
  1275. svc.GetEntity(&registerUser, sql)
  1276. sql1 := " CreateUserId = '" + this.User.Id + "' or CommercialNo='" + registerUser.CommercialNo + "'"
  1277. svc.GetEntity(&company, sql1)
  1278. SupplierId = strconv.Itoa(company.Id)
  1279. SupplierName = company.SupplierName
  1280. }
  1281. _dir := utils.Cfg.MustValue("file", "tmplateDir") + SupplierName
  1282. downFileUrl := "http://" + utils.Cfg.MustValue("server", "localIP")
  1283. var supplierFile []supplierfile.OilSupplierFile
  1284. where := "SupplierId=" + SupplierId
  1285. svc.GetEntities(&supplierFile, where)
  1286. var errinfo ErrorDataInfo
  1287. if len(supplierFile) == 0 {
  1288. errinfo.Code = -1
  1289. errinfo.Message = "该公司没有可导出的资质!"
  1290. this.Data["json"] = &errinfo
  1291. this.ServeJSON()
  1292. return
  1293. }
  1294. for _, item := range supplierFile {
  1295. fileArr := strings.Split(item.FileName, ".")
  1296. fileUrl := strings.Split(item.FileUrl, "|")
  1297. if len(fileUrl) == 2 && len(fileArr) == 2 {
  1298. utils.DownloadFile(downFileUrl+fileUrl[0], item.NeedFileType+"."+fileArr[1], _dir)
  1299. }
  1300. }
  1301. //Zip(_dir, utils.Cfg.MustValue("file", "tmplateDir") + "license.zip")
  1302. f1, _ := os.Open(_dir)
  1303. var files = []*os.File{f1}
  1304. if SupplierTypeCode == "01" {
  1305. SupplierTypeCode = "WZ"
  1306. } else if SupplierTypeCode == "02" {
  1307. SupplierTypeCode = "JS"
  1308. } else if SupplierTypeCode == "03" {
  1309. SupplierTypeCode = "JF"
  1310. } else {
  1311. SupplierTypeCode = ""
  1312. }
  1313. destZipName := SupplierName + time.Now().Format("20060102") + SupplierTypeCode
  1314. destZip := utils.Cfg.MustValue("file", "tmplateDir") + destZipName + ".zip"
  1315. err := Compress(files, destZip)
  1316. retDocUrl := ""
  1317. if err == nil {
  1318. var sw *Seaweed
  1319. var filer []string
  1320. if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
  1321. filer = []string{_filer}
  1322. }
  1323. sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
  1324. _, _, fID, _ := sw.UploadFile(destZip, "", "")
  1325. retDocUrl = utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
  1326. }
  1327. os.Remove(destZip)
  1328. os.RemoveAll(_dir)
  1329. errinfo.Code = 0
  1330. errinfo.Item = retDocUrl
  1331. this.Data["json"] = &errinfo
  1332. this.ServeJSON()
  1333. }
  1334. func Compress(files []*os.File, dest string) error {
  1335. d, _ := os.Create(dest)
  1336. defer d.Close()
  1337. w := zip.NewWriter(d)
  1338. defer w.Close()
  1339. for _, file := range files {
  1340. err := compress(file, "", w)
  1341. if err != nil {
  1342. return err
  1343. }
  1344. }
  1345. return nil
  1346. }
  1347. func compress(file *os.File, prefix string, zw *zip.Writer) error {
  1348. info, err := file.Stat()
  1349. if err != nil {
  1350. return err
  1351. }
  1352. if info.IsDir() {
  1353. prefix = prefix + "/" + info.Name()
  1354. fileInfos, err := file.Readdir(-1)
  1355. if err != nil {
  1356. return err
  1357. }
  1358. for _, fi := range fileInfos {
  1359. f, err := os.Open(file.Name() + "/" + fi.Name())
  1360. if err != nil {
  1361. return err
  1362. }
  1363. err = compress(f, prefix, zw)
  1364. if err != nil {
  1365. return err
  1366. }
  1367. }
  1368. } else {
  1369. header, err := zip.FileInfoHeader(info)
  1370. header.Name = prefix + "/" + header.Name
  1371. if err != nil {
  1372. return err
  1373. }
  1374. writer, err := zw.CreateHeader(header)
  1375. if err != nil {
  1376. return err
  1377. }
  1378. _, err = io.Copy(writer, file)
  1379. file.Close()
  1380. if err != nil {
  1381. return err
  1382. }
  1383. }
  1384. return nil
  1385. }
  1386. // @Title 获取资质列表
  1387. // @Description get user by tokenaddsubfile
  1388. // @Success 200 {object} models.Userblood
  1389. // @router /gettableheaderlist [get]
  1390. func (this *SelectController) GetTableHeaderList() {
  1391. typeCode := this.GetString("Type")
  1392. var tableHeader []tableheader.BaseTableheader
  1393. svc := tableheader.GetTableHeaderService(utils.DBE)
  1394. where := "CategoryCode='" + typeCode + "'"
  1395. svc.GetEntitysByWhere(BaseTableHeader, where, &tableHeader)
  1396. var errinfo ErrorDataInfo
  1397. errinfo.Code = 0
  1398. errinfo.Item = tableHeader
  1399. this.Data["json"] = &errinfo
  1400. this.ServeJSON()
  1401. }