suppliercert.go 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/audithistory"
  4. "dashoo.cn/backend/api/business/codecsequence"
  5. msg2 "dashoo.cn/backend/api/business/msg"
  6. "dashoo.cn/backend/api/business/oilsupplier/oilcostmanage"
  7. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  8. "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
  9. "dashoo.cn/backend/api/business/organize"
  10. "dashoo.cn/backend/api/business/paymentinfo"
  11. "dashoo.cn/business2/parameter"
  12. "encoding/json"
  13. "fmt"
  14. "strconv"
  15. "strings"
  16. "time"
  17. "dashoo.cn/backend/api/business/auditsetting"
  18. "dashoo.cn/backend/api/business/workflow"
  19. "dashoo.cn/backend/api/business/baseUser"
  20. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  21. . "dashoo.cn/backend/api/controllers"
  22. "dashoo.cn/business2/userRole"
  23. "dashoo.cn/utils"
  24. )
  25. type OilSupplierCertController struct {
  26. BaseController
  27. }
  28. // @Title 获取列表
  29. // @Description get user by token
  30. // @Success 200 {object} []suppliercert.OilSupplierCert
  31. // @router /list [get]
  32. func (this *OilSupplierCertController) GetEntityList() {
  33. //获取分页信息
  34. page := this.GetPageInfoForm()
  35. where := " 1=1 "
  36. orderby := "Id"
  37. asc := false
  38. Order := this.GetString("Order")
  39. Prop := this.GetString("Prop")
  40. if Order != "" && Prop != "" {
  41. orderby = Prop
  42. if Order == "asc" {
  43. asc = true
  44. }
  45. }
  46. Id := this.GetString("Id")
  47. SupplierId := this.GetString("SupplierId")
  48. AccessCardNo := this.GetString("AccessCardNo")
  49. SupplierTypeCode := this.GetString("SupplierTypeCode")
  50. SupplierTypeName := this.GetString("SupplierTypeName")
  51. RecUnitReason := this.GetString("RecUnitReason")
  52. RecUnitPerson := this.GetString("RecUnitPerson")
  53. RecDate := this.GetString("RecDate")
  54. RecUnitId := this.GetString("RecUnitId")
  55. RecUnitName := this.GetString("RecUnitName")
  56. StatusA := this.GetString("StatusA")
  57. BackReason := this.GetString("BackReason")
  58. InFlag := this.GetString("InFlag")
  59. EffectStartTime := this.GetString("EffectStartTime")
  60. EffectEndTime := this.GetString("EffectEndTime")
  61. AuditProcessNote := this.GetString("AuditProcessNote")
  62. AuditDate := this.GetString("AuditDate")
  63. PayNotice := this.GetString("PayNotice")
  64. SupplierStatus := this.GetString("SupplierStatus")
  65. MgrType := this.GetString("MgrType")
  66. Type := this.GetString("Type")
  67. MgrUnit := this.GetString("MgrUnit")
  68. AddinTime := this.GetString("AddinTime")
  69. EffectTime := this.GetString("EffectTime")
  70. ApplyTime := this.GetString("ApplyTime")
  71. SupplierNo := this.GetString("SupplierNo")
  72. MDMFlag := this.GetString("MDMFlag")
  73. InternalFlag := this.GetString("InternalFlag")
  74. ImportFlag := this.GetString("ImportFlag")
  75. OutsideFlog := this.GetString("OutsideFlog")
  76. Remark := this.GetString("Remark")
  77. IsDelete := this.GetString("IsDelete")
  78. CreateOn := this.GetString("CreateOn")
  79. CreateUserId := this.GetString("CreateUserId")
  80. CreateBy := this.GetString("CreateBy")
  81. ModifiedOn := this.GetString("ModifiedOn")
  82. ModifiedUserId := this.GetString("ModifiedUserId")
  83. ModifiedBy := this.GetString("ModifiedBy")
  84. if Id != "" {
  85. where = where + " and Id like '%" + Id + "%'"
  86. }
  87. if SupplierId != "" {
  88. where = where + " and SupplierId like '%" + SupplierId + "%'"
  89. }
  90. if AccessCardNo != "" {
  91. where = where + " and AccessCardNo like '%" + AccessCardNo + "%'"
  92. }
  93. if SupplierTypeCode != "" {
  94. where = where + " and SupplierTypeCode like '%" + SupplierTypeCode + "%'"
  95. }
  96. if SupplierTypeName != "" {
  97. where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'"
  98. }
  99. if RecUnitReason != "" {
  100. where = where + " and RecUnitReason like '%" + RecUnitReason + "%'"
  101. }
  102. if RecUnitPerson != "" {
  103. where = where + " and RecUnitPerson like '%" + RecUnitPerson + "%'"
  104. }
  105. if RecDate != "" {
  106. where = where + " and RecDate like '%" + RecDate + "%'"
  107. }
  108. if RecUnitId != "" {
  109. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  110. }
  111. if RecUnitName != "" {
  112. where = where + " and RecUnitName like '%" + RecUnitName + "%'"
  113. }
  114. if StatusA != "" {
  115. where = where + " and StatusA like '%" + StatusA + "%'"
  116. }
  117. if BackReason != "" {
  118. where = where + " and BackReason like '%" + BackReason + "%'"
  119. }
  120. if InFlag != "" {
  121. where = where + " and InFlag like '%" + InFlag + "%'"
  122. }
  123. if EffectStartTime != "" {
  124. where = where + " and EffectStartTime like '%" + EffectStartTime + "%'"
  125. }
  126. if EffectEndTime != "" {
  127. where = where + " and EffectEndTime like '%" + EffectEndTime + "%'"
  128. }
  129. if AuditProcessNote != "" {
  130. where = where + " and AuditProcessNote like '%" + AuditProcessNote + "%'"
  131. }
  132. if AuditDate != "" {
  133. where = where + " and AuditDate like '%" + AuditDate + "%'"
  134. }
  135. if PayNotice != "" {
  136. where = where + " and PayNotice like '%" + PayNotice + "%'"
  137. }
  138. if SupplierStatus != "" {
  139. where = where + " and SupplierStatus like '%" + SupplierStatus + "%'"
  140. }
  141. if MgrType != "" {
  142. where = where + " and MgrType like '%" + MgrType + "%'"
  143. }
  144. if Type != "" {
  145. where = where + " and Type like '%" + Type + "%'"
  146. }
  147. if MgrUnit != "" {
  148. where = where + " and MgrUnit like '%" + MgrUnit + "%'"
  149. }
  150. if AddinTime != "" {
  151. where = where + " and AddinTime like '%" + AddinTime + "%'"
  152. }
  153. if EffectTime != "" {
  154. where = where + " and EffectTime like '%" + EffectTime + "%'"
  155. }
  156. if ApplyTime != "" {
  157. where = where + " and ApplyTime like '%" + ApplyTime + "%'"
  158. }
  159. if SupplierNo != "" {
  160. where = where + " and SupplierNo like '%" + SupplierNo + "%'"
  161. }
  162. if MDMFlag != "" {
  163. where = where + " and MDMFlag like '%" + MDMFlag + "%'"
  164. }
  165. if InternalFlag != "" {
  166. where = where + " and InternalFlag like '%" + InternalFlag + "%'"
  167. }
  168. if ImportFlag != "" {
  169. where = where + " and ImportFlag like '%" + ImportFlag + "%'"
  170. }
  171. if OutsideFlog != "" {
  172. where = where + " and OutsideFlog like '%" + OutsideFlog + "%'"
  173. }
  174. if Remark != "" {
  175. where = where + " and Remark like '%" + Remark + "%'"
  176. }
  177. if IsDelete != "" {
  178. where = where + " and IsDelete like '%" + IsDelete + "%'"
  179. }
  180. if CreateOn != "" {
  181. where = where + " and CreateOn like '%" + CreateOn + "%'"
  182. }
  183. if CreateUserId != "" {
  184. where = where + " and CreateUserId like '%" + CreateUserId + "%'"
  185. }
  186. if CreateBy != "" {
  187. where = where + " and CreateBy like '%" + CreateBy + "%'"
  188. }
  189. if ModifiedOn != "" {
  190. where = where + " and ModifiedOn like '%" + ModifiedOn + "%'"
  191. }
  192. if ModifiedUserId != "" {
  193. where = where + " and ModifiedUserId like '%" + ModifiedUserId + "%'"
  194. }
  195. if ModifiedBy != "" {
  196. where = where + " and ModifiedBy like '%" + ModifiedBy + "%'"
  197. }
  198. if CreateOn != "" {
  199. dates := strings.Split(CreateOn, ",")
  200. if len(dates) == 2 {
  201. minDate := dates[0]
  202. maxDate := dates[1]
  203. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  204. }
  205. }
  206. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  207. var list []suppliercert.OilSupplierCert
  208. total := svc.GetPagingEntitiesWithOrderBytbl(this.User.AccCode, page.CurrentPage, page.Size, orderby, asc, &list, where)
  209. var datainfo DataInfo
  210. datainfo.Items = list
  211. datainfo.CurrentItemCount = total
  212. datainfo.PageIndex = page.CurrentPage
  213. datainfo.ItemsPerPage = page.Size
  214. this.Data["json"] = &datainfo
  215. this.ServeJSON()
  216. }
  217. // @Title 获取字典列表
  218. // @Description get user by token
  219. // @Success 200 {object} map[string]interface{}
  220. // @router /dictlist [get]
  221. func (this *OilSupplierCertController) GetDictList() {
  222. dictList := make(map[string]interface{})
  223. //dictSvc := items.GetItemsService(utils.DBE)
  224. userSvc := baseUser.GetBaseUserService(utils.DBE)
  225. //customerSvc := svccustomer.GetCustomerService(utils.DBE)
  226. //dictList["WellNo"] = dictSvc.GetKeyValueItems("WellNo", this.User.AccCode)
  227. var userEntity userRole.Base_User
  228. userSvc.GetEntityById(this.User.Id, &userEntity)
  229. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid)
  230. //var dictCustomer []svccustomer.Customer
  231. //customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer)
  232. //dictList["EntrustCorp"] = &dictCustomer
  233. var datainfo DataInfo
  234. datainfo.Items = dictList
  235. this.Data["json"] = &datainfo
  236. this.ServeJSON()
  237. }
  238. // @Title 获取实体
  239. // @Description 获取实体
  240. // @Success 200 {object} suppliercert.OilSupplierCert
  241. // @router /get/:id [get]
  242. func (this *OilSupplierCertController) GetEntity() {
  243. Id := this.Ctx.Input.Param(":id")
  244. var model suppliercert.OilSupplierCert
  245. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  246. svc.GetEntityByIdBytbl(OilSupplierCertName, Id, &model)
  247. this.Data["json"] = &model
  248. this.ServeJSON()
  249. }
  250. // @Title 获取实体
  251. // @Description 获取实体
  252. // @Success 200 {object} suppliercert.OilSupplierCert
  253. // @router /getbycreatorandtype/:typecode [get]
  254. func (this *OilSupplierCertController) GetEntityByCreatorId() {
  255. creatorId := this.User.Id
  256. typeCode := this.Ctx.Input.Param(":typecode")
  257. var model suppliercert.OilSupplierCert
  258. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  259. where := " CreateUserId = '" + creatorId + "'"
  260. where += " and SupplierTypeCode = '" + typeCode + "'"
  261. svc.GetEntityByWhere(OilSupplierCertName, where, &model)
  262. this.Data["json"] = &model
  263. this.ServeJSON()
  264. }
  265. // @Title 添加
  266. // @Description 新增
  267. // @Success 200 {object} controllers.Request
  268. // @router /add [post]
  269. func (this *OilSupplierCertController) AddEntity() {
  270. var model suppliercert.OilSupplierCert
  271. var jsonBlob = this.Ctx.Input.RequestBody
  272. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  273. json.Unmarshal(jsonBlob, &model)
  274. model.CreateOn = time.Now()
  275. model.CreateBy = this.User.Realname
  276. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  277. //model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int()
  278. _, err := svc.InsertEntityBytbl(OilSupplierCertName, &model)
  279. var errinfo ErrorDataInfo
  280. if err == nil {
  281. //新增
  282. errinfo.Message = "添加成功!"
  283. errinfo.Code = 0
  284. errinfo.Item = model.Id
  285. this.Data["json"] = &errinfo
  286. this.ServeJSON()
  287. } else {
  288. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  289. errinfo.Code = -1
  290. this.Data["json"] = &errinfo
  291. this.ServeJSON()
  292. }
  293. }
  294. // @Title 修改实体
  295. // @Description 修改实体
  296. // @Success 200 {object} controllers.Request
  297. // @router /update/:id [post]
  298. func (this *OilSupplierCertController) UpdateEntity() {
  299. id := this.Ctx.Input.Param(":id")
  300. var errinfo ErrorInfo
  301. if id == "" {
  302. errinfo.Message = "操作失败!请求信息不完整"
  303. errinfo.Code = -2
  304. this.Data["json"] = &errinfo
  305. this.ServeJSON()
  306. return
  307. }
  308. var model suppliercert.OilSupplierCert
  309. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  310. var jsonBlob = this.Ctx.Input.RequestBody
  311. json.Unmarshal(jsonBlob, &model)
  312. model.ModifiedOn = time.Now()
  313. model.ModifiedBy = this.User.Realname
  314. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  315. cols := []string{
  316. "Id",
  317. "SupplierId",
  318. "AccessCardNo",
  319. "SupplierTypeCode",
  320. "SupplierTypeName",
  321. "RecUnitReason",
  322. "RecUnitPerson",
  323. "RecDate",
  324. "RecUnitId",
  325. "RecUnitName",
  326. "Status",
  327. "BackReason",
  328. "InFlag",
  329. "EffectStartTime",
  330. "EffectEndTime",
  331. "AuditProcessNote",
  332. "AuditDate",
  333. "PayNotice",
  334. "SupplierStatus",
  335. "MgrType",
  336. "Type",
  337. "MgrUnit",
  338. "AddinTime",
  339. "EffectTime",
  340. "ApplyTime",
  341. "SupplierNo",
  342. "MDMFlag",
  343. "InternalFlag",
  344. "ImportFlag",
  345. "OutsideFlog",
  346. "Remark",
  347. "IsDelete",
  348. "CreateOn",
  349. "CreateUserId",
  350. "CreateBy",
  351. "ModifiedOn",
  352. "ModifiedUserId",
  353. "ModifiedBy",
  354. }
  355. err := svc.UpdateEntityBytbl(OilSupplierCertName, id, &model, cols)
  356. if err == nil {
  357. errinfo.Message = "修改成功!"
  358. errinfo.Code = 0
  359. this.Data["json"] = &errinfo
  360. this.ServeJSON()
  361. } else {
  362. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  363. errinfo.Code = -1
  364. this.Data["json"] = &errinfo
  365. this.ServeJSON()
  366. }
  367. }
  368. // @Title 企业入库
  369. // @Description 企业入库
  370. // @Success 200 {object} controllers.Request
  371. // @router /updatestorage/:id [post]
  372. func (this *OilSupplierCertController) UpdateStorage() {
  373. id := this.Ctx.Input.Param(":id")
  374. status := this.GetString("Status")
  375. var errinfo ErrorInfo
  376. if id == "" {
  377. errinfo.Message = "操作失败!请求信息不完整"
  378. errinfo.Code = -2
  379. this.Data["json"] = &errinfo
  380. this.ServeJSON()
  381. return
  382. }
  383. var model suppliercert.OilSupplierCert
  384. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  385. //var jsonBlob = this.Ctx.Input.RequestBody
  386. //json.Unmarshal(jsonBlob, &model)
  387. var err error
  388. if status == suppliercert.NO_CENT_AUDIT_STATUS {
  389. model.Status = suppliercert.DRAFT_STATUS
  390. cols := []string{
  391. "Status",
  392. }
  393. err = svc.UpdateEntityBytbl(OilSupplierCertName, id, &model, cols)
  394. } else {
  395. model.Status = suppliercert.STORE_STATUS
  396. model.Step = 7
  397. model.StorageOn = time.Now()
  398. model.ApplyTime = time.Now().AddDate(1, 0 ,0)
  399. model.InFlag = "1"
  400. model.ModifiedOn = time.Now()
  401. model.ModifiedBy = this.User.Realname
  402. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  403. cols := []string{
  404. "Step",
  405. "Status",
  406. "ApplyTime",
  407. "InFlag",
  408. "StorageOn",
  409. "ModifiedOn",
  410. "ModifiedUserId",
  411. "ModifiedBy",
  412. }
  413. err = svc.UpdateEntityBytbl(OilSupplierCertName, id, &model, cols)
  414. }
  415. if err == nil {
  416. errinfo.Message = "提交成功!"
  417. errinfo.Code = 0
  418. this.Data["json"] = &errinfo
  419. this.ServeJSON()
  420. } else {
  421. errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error())
  422. errinfo.Code = -1
  423. this.Data["json"] = &errinfo
  424. this.ServeJSON()
  425. }
  426. }
  427. // @Title 删除单条信息
  428. // @Description
  429. // @Success 200 {object} ErrorInfo
  430. // @Failure 403 :id 为空
  431. // @router /delete/:Id [delete]
  432. func (this *OilSupplierCertController) DeleteEntity() {
  433. Id := this.Ctx.Input.Param(":Id")
  434. var errinfo ErrorInfo
  435. if Id == "" {
  436. errinfo.Message = "操作失败!请求信息不完整"
  437. errinfo.Code = -2
  438. this.Data["json"] = &errinfo
  439. this.ServeJSON()
  440. return
  441. }
  442. var model suppliercert.OilSupplierCert
  443. var entityempty suppliercert.OilSupplierCert
  444. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  445. opdesc := "删除-" + Id
  446. err := svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "钻井日报")
  447. if err == nil {
  448. errinfo.Message = "删除成功"
  449. errinfo.Code = 0
  450. this.Data["json"] = &errinfo
  451. this.ServeJSON()
  452. } else {
  453. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  454. errinfo.Code = -1
  455. this.Data["json"] = &errinfo
  456. this.ServeJSON()
  457. }
  458. }
  459. // @Title 提交审批
  460. // @Description 提交审批
  461. // @Success 200 {object} controllers.Request
  462. // @router /audit/:id [post]
  463. func (this *OilSupplierCertController) AuditEntity() {
  464. certId := this.Ctx.Input.Param(":id")
  465. firstAudit := this.GetString("FirstAuditName")
  466. AuditRemark := this.GetString("AuditRemark")
  467. secondAudit := this.GetString("SecondAudit")
  468. thirdAudit := this.GetString("ThirdAudit")
  469. var setting auditsetting.Base_OilAuditSetting
  470. var userlist []userRole.Base_User
  471. usvc := userRole.GetUserService(utils.DBE)
  472. if this.User.IsCompanyUser == 1 {
  473. where := "AuditStepCode='" + workflow.SUB_OFFICE + "'"
  474. usvc.GetEntity(&setting, where)
  475. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  476. tempstr := strings.Join(ids, ",")
  477. uids := strings.Replace(tempstr, "uid_", "", -1)
  478. uids = strings.Trim(uids, ",")
  479. if uids != "" {
  480. where := "Id in (" + uids + ")" + " and UnitId=" + firstAudit
  481. usvc.GetEntities(&userlist, where)
  482. }
  483. userIds := ""
  484. for _, tmpUser := range userlist {
  485. userIds += strconv.Itoa(tmpUser.Id) + ","
  486. }
  487. firstAudit = strings.Trim(userIds, ",")
  488. }
  489. //取出审批列表
  490. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  491. var supplierCertEntity suppliercert.OilSupplierCert
  492. certSrv.GetEntityById(certId, &supplierCertEntity)
  493. svc := organize.GetOrganizeService(utils.DBE)
  494. unitId := svc.GetMyUnitDepartmentId(this.User.DepartmentId)
  495. var errinfo ErrorDataInfo
  496. defer func() { //finally处理失败的异常
  497. if err := recover(); err != nil {
  498. errinfo.Message = "提交失败," + err.(string)
  499. errinfo.Code = -1
  500. this.Data["json"] = &errinfo
  501. this.ServeJSON()
  502. } else {
  503. //返回正确结果
  504. errinfo.Message = "审核提交成功"
  505. errinfo.Code = 0
  506. this.Data["json"] = &errinfo
  507. this.ServeJSON()
  508. }
  509. }()
  510. ////判断当前部门是否企业用户
  511. //result := "1"
  512. //if this.User.IsCompanyUser == 1 {
  513. // result = "0"
  514. //}
  515. svcActiviti := workflow.GetActivitiService(utils.DBE)
  516. ////获得有审核权限的人员
  517. //var users []userRole.Base_RoleList
  518. //var userIds string
  519. //var auditWorkflow auditsetting.Base_OilAuditSetting
  520. //rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  521. //rsvc.GetAuditStepRoleEntity(OilAuditSettingName, firstAudit, workflow.FIRST_TRIAL, &auditWorkflow)
  522. //users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), this.User.AccCode) //
  523. processInstanceId := ""
  524. businessKey := ""
  525. if supplierCertEntity.WorkflowId == "0" || len(supplierCertEntity.WorkflowId) <= 0 {
  526. //启动工作流
  527. businessKey = certId + "-" + strconv.Itoa(supplierCertEntity.AuditIndex)
  528. if this.User.IsCompanyUser == 1 {
  529. if supplierCertEntity.InStyle == "2" {
  530. processInstanceId = svcActiviti.StartProcess(workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY, businessKey, this.User.Id)
  531. } else if supplierCertEntity.InStyle == "3" {
  532. processInstanceId = svcActiviti.StartProcess(workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY, businessKey, this.User.Id)
  533. } else {
  534. processInstanceId = svcActiviti.StartProcess(workflow.OIL_ENUSER_SUPPLIER_APPLY, businessKey, this.User.Id)
  535. }
  536. }else if this.User.IsCompanyUser == 0 {
  537. if supplierCertEntity.InStyle == "2" {
  538. processInstanceId = svcActiviti.StartProcess(workflow.OIL_FIRST_SUPPLIER_APPLY, businessKey, this.User.Id)
  539. } else if supplierCertEntity.InStyle == "3" {
  540. processInstanceId = svcActiviti.StartProcess(workflow.OIL_SECOND_SUPPLIER_APPLY, businessKey, this.User.Id)
  541. } else {
  542. processInstanceId = svcActiviti.StartProcess(workflow.OIL_SUPPLIER_APPLY, businessKey, this.User.Id)
  543. }
  544. }
  545. } else {
  546. processInstanceId = supplierCertEntity.WorkflowId
  547. }
  548. //processInstanceId,_ := certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.FIRST_TRIAL, this.User.Id, result, "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName, "", "")
  549. //for _, tmpUser := range users {
  550. // userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
  551. //}
  552. //userIds = strings.Trim(userIds, ",")
  553. var ActiComplete workflow.ActiCompleteVM
  554. if this.User.IsCompanyUser == 1 {
  555. if supplierCertEntity.InStyle == "2" {
  556. ActiComplete.ProcessKey = workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY
  557. } else if supplierCertEntity.InStyle == "3" {
  558. ActiComplete.ProcessKey = workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY
  559. } else {
  560. ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY
  561. }
  562. }else if this.User.IsCompanyUser == 0 {
  563. if supplierCertEntity.InStyle == "2" {
  564. ActiComplete.ProcessKey = workflow.OIL_FIRST_SUPPLIER_APPLY
  565. } else if supplierCertEntity.InStyle == "3" {
  566. ActiComplete.ProcessKey = workflow.OIL_SECOND_SUPPLIER_APPLY
  567. } else {
  568. ActiComplete.ProcessKey = workflow.OIL_SUPPLIER_APPLY
  569. }
  570. }
  571. ActiComplete.BusinessKey = businessKey
  572. ActiComplete.UserNames = firstAudit
  573. ActiComplete.UserId = this.User.Id
  574. ActiComplete.Result = "1"
  575. ActiComplete.Remarks = AuditRemark
  576. ActiComplete.CallbackUrl = ""
  577. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  578. if receiveVal == "true" {
  579. errinfo.Message = "提交成功!"
  580. errinfo.Code = 0
  581. this.Data["json"] = &errinfo
  582. this.ServeJSON()
  583. } else {
  584. errinfo.Message = "工作流异常,请联系管理员!"
  585. errinfo.Code = -1
  586. this.Data["json"] = &errinfo
  587. this.ServeJSON()
  588. return
  589. }
  590. fmt.Println("-----------processInstanceId------------")
  591. //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
  592. supplierCertEntity.WorkflowId = processInstanceId
  593. if this.User.IsCompanyUser == 1 {
  594. supplierCertEntity.Status = suppliercert.FEN_TRIAL_STATUS //分办
  595. }else if this.User.IsCompanyUser == 0 {
  596. supplierCertEntity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
  597. }
  598. supplierCertEntity.Step = 2
  599. supplierCertEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  600. supplierCertEntity.AuditIndex = supplierCertEntity.AuditIndex + 1
  601. supplierCertEntity.BusinessKey = ActiComplete.BusinessKey
  602. supplierCertEntity.SecondAudit,_ = strconv.Atoi(secondAudit)
  603. supplierCertEntity.ThirdAudit,_ = strconv.Atoi(thirdAudit)
  604. supplierCertEntity.ProcessKey = ActiComplete.ProcessKey
  605. supplierCertEntity.CommitComId = unitId
  606. cols := []string{
  607. "Id",
  608. "WorkflowId",
  609. "Status",
  610. "Step",
  611. "FirstAudit",
  612. "AuditIndex",
  613. "BusinessKey",
  614. "SecondAudit",
  615. "ThirdAudit",
  616. "ProcessKey",
  617. "CommitComId",
  618. }
  619. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  620. //var model classorgsetting.OilClassOrgSetting
  621. //var jsonBlob = this.Ctx.Input.RequestBody
  622. //svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  623. //
  624. //json.Unmarshal(jsonBlob, &model)
  625. //model.CreateOn = time.Now()
  626. //model.CreateBy = this.User.Realname
  627. //model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  628. ////model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int()
  629. //
  630. //svc.InsertEntityBytbl(OilSupplierCertName, &model)
  631. //fmt.Println(model)
  632. }
  633. // @Title 专业审批
  634. // @Description 准入初审提交审批
  635. // @Success 200 {object} controllers.Request
  636. // @router /admission/:id [post]
  637. func (this *OilSupplierCertController) AuditEntityadmission() {
  638. certId := this.Ctx.Input.Param(":id")
  639. var errinfo ErrorDataInfo
  640. defer func() { //finally处理失败的异常
  641. if err := recover(); err != nil {
  642. errinfo.Message = "提交失败," + err.(string)
  643. errinfo.Code = -1
  644. this.Data["json"] = &errinfo
  645. this.ServeJSON()
  646. } else {
  647. //返回正确结果
  648. errinfo.Message = "审核提交成功"
  649. errinfo.Code = 0
  650. this.Data["json"] = &errinfo
  651. this.ServeJSON()
  652. }
  653. }()
  654. //取出审批列表
  655. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  656. certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.PROF_AUDIT, this.User.Id, "1", "提交给专业科室审核", OilSupplierCertSubName, OilClassOrgSettingName, "", "")
  657. //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
  658. var supplierCertEntity suppliercert.OilSupplierCert
  659. certSrv.GetEntityById(certId, supplierCertEntity)
  660. supplierCertEntity.Status = suppliercert.PROF_AUDIT_STATUS //二级单位初审
  661. cols := []string{
  662. "Id",
  663. "Status",
  664. }
  665. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  666. }
  667. // @Title 审批
  668. // @Description 审批
  669. // @Param body body suppliercert.OilSupplierCert
  670. // @Success 200 {object} controllers.Request
  671. // @router /auditEntityFir/:id [post]
  672. func (this *OilSupplierCertController) AuditEntityFir() {
  673. var dataother ShenHeModel
  674. certId := this.Ctx.Input.Param(":id")
  675. auditer := this.GetString("auditer")
  676. firstAudit := this.GetString("FirstAuditName")
  677. AuditRemark := this.GetString("AuditRemark")
  678. secondAudit := this.GetString("SecondAudit")
  679. thirdAudit := this.GetString("ThirdAudit")
  680. //majorDept := this.GetString("majorDept")
  681. //取出审批列表
  682. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  683. var supplierCertEntity suppliercert.OilSupplierCert
  684. var supplierEntity supplier.OilSupplier
  685. certSrv.GetEntityById(certId, &supplierCertEntity)
  686. wheresup := "Id=" + strconv.Itoa(supplierCertEntity.SupplierId)
  687. certSrv.GetEntity(&supplierEntity, wheresup)
  688. var jsonblob = this.Ctx.Input.RequestBody
  689. json.Unmarshal(jsonblob, &dataother)
  690. if AuditRemark != "" {
  691. dataother.AuditorRemark = AuditRemark
  692. }
  693. var errinfo ErrorDataInfo
  694. defer func() { //finally处理失败的异常
  695. if err := recover(); err != nil {
  696. errinfo.Message = "提交失败," + err.(string)
  697. errinfo.Code = -1
  698. this.Data["json"] = &errinfo
  699. this.ServeJSON()
  700. } else {
  701. //返回正确结果
  702. errinfo.Message = "审核提交成功"
  703. errinfo.Code = 0
  704. this.Data["json"] = &errinfo
  705. this.ServeJSON()
  706. }
  707. }()
  708. //remarks := ""
  709. step := 2
  710. status := ""
  711. backstatus := "0"
  712. var userIds string
  713. if supplierCertEntity.Status == suppliercert.FEN_TRIAL_STATUS {
  714. userIds = firstAudit
  715. status = suppliercert.FIRST_TRIAL_STATUS
  716. step = 2
  717. supplierCertEntity.Step = 2
  718. supplierCertEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  719. supplierCertEntity.SecondAudit,_ = strconv.Atoi(secondAudit)
  720. supplierCertEntity.ThirdAudit,_ = strconv.Atoi(thirdAudit)
  721. cols := []string{
  722. "Id",
  723. "Step",
  724. "FirstAudit",
  725. "SecondAudit",
  726. "ThirdAudit",
  727. }
  728. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  729. }
  730. if supplierCertEntity.Status == suppliercert.FIRST_TRIAL_STATUS {
  731. userIds = utils.ToStr(supplierCertEntity.SecondAudit)
  732. status = suppliercert.SECOND_TRIAL_STATUS
  733. backstatus = suppliercert.NOPASS_STATUS
  734. step = 2
  735. //supplierCertEntity.ThirdAudit,_ = strconv.Atoi(majorDept)
  736. //cols := []string{
  737. // "ThirdAudit",
  738. //}
  739. //certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  740. } else if supplierCertEntity.Status == suppliercert.SECOND_TRIAL_STATUS {
  741. step = 2
  742. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  743. svc := organize.GetOrganizeService(utils.DBE)
  744. unitId := svc.GetMyUnitDepartmentId(strconv.Itoa(supplierCertEntity.ThirdAudit))
  745. var userlist []userRole.Base_User
  746. var setting auditsetting.Base_OilAuditSetting
  747. usvc := userRole.GetUserService(utils.DBE)
  748. if supplierCertEntity.InStyle == "2" {
  749. status = suppliercert.CENT_AUDIT_STATUS
  750. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  751. usvc.GetEntity(&setting, where)
  752. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  753. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  754. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  755. tempstr := strings.Join(ids, ",")
  756. uids := strings.Replace(tempstr, "uid_", "", -1)
  757. uids = strings.Trim(uids, ",")
  758. if uids != "" {
  759. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  760. usvc.GetEntities(&userlist, where)
  761. }
  762. } else {
  763. status = suppliercert.THIRD_TRIAL_STATUS
  764. where := "AuditStepCode='" + workflow.PROF_RECE + "'"
  765. svc.GetEntity(&setting, where)
  766. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  767. tempstr := strings.Join(ids, ",")
  768. uids := strings.Replace(tempstr, "uid_", "", -1)
  769. uids = strings.Trim(uids, ",")
  770. if uids != "" {
  771. where := "Id in (" + uids + ")" + " and UnitId=" + unitId
  772. svc.GetEntities(&userlist, where)
  773. }
  774. }
  775. //var users []userRole.Base_RoleList
  776. //certSrv.GetAuditUser(strconv.Itoa(supplierCertEntity.ThirdAudit), workflow.PROF_RECE, &users)
  777. for _, tmpUser := range userlist {
  778. userIds += strconv.Itoa(tmpUser.Id) + "," //strconv.FormatInt(tmpUser.Id, 10) + ","
  779. }
  780. userIds = strings.Trim(userIds, ",")
  781. step = 2
  782. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  783. } else if supplierCertEntity.Status == suppliercert.THIRD_TRIAL_STATUS {
  784. userIds = auditer
  785. status = suppliercert.PROF_AUDIT_STATUS
  786. step = 2
  787. backstatus = suppliercert.NO_THIRD_TRIAL_STATUS
  788. } else if supplierCertEntity.Status == suppliercert.PROF_AUDIT_STATUS {
  789. if supplierCertEntity.InStyle == "3" {
  790. userIds = auditer
  791. status = suppliercert.PAYING_AUDIT_STATUS
  792. step = 3
  793. backstatus = suppliercert.NO_CENT_AUDIT_STATUS
  794. } else {
  795. status = suppliercert.CENT_AUDIT_STATUS
  796. step = 2
  797. backstatus = suppliercert.NO_PROF_AUDIT_STATUS
  798. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  799. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  800. var userlist []userRole.Base_User
  801. var setting auditsetting.Base_OilAuditSetting
  802. usvc := userRole.GetUserService(utils.DBE)
  803. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  804. usvc.GetEntity(&setting, where)
  805. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  806. tempstr := strings.Join(ids, ",")
  807. uids := strings.Replace(tempstr, "uid_", "", -1)
  808. uids = strings.Trim(uids, ",")
  809. if uids != "" {
  810. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  811. usvc.GetEntities(&userlist, where)
  812. }
  813. for _, tmpUser := range userlist {
  814. userIds += strconv.Itoa(tmpUser.Id) + ","
  815. }
  816. userIds = strings.Trim(userIds, ",")
  817. }
  818. } else if supplierCertEntity.Status == suppliercert.CENT_AUDIT_STATUS {
  819. userIds = auditer
  820. status = suppliercert.PAYING_AUDIT_STATUS
  821. step = 3
  822. backstatus = suppliercert.NO_CENT_AUDIT_STATUS
  823. }
  824. svcActiviti := workflow.GetActivitiService(utils.DBE)
  825. var ActiComplete workflow.ActiCompleteVM
  826. ActiComplete.ProcessKey = supplierCertEntity.ProcessKey
  827. ActiComplete.BusinessKey = supplierCertEntity.BusinessKey
  828. ActiComplete.UserNames = userIds
  829. ActiComplete.UserId = this.User.Id
  830. ActiComplete.Remarks = dataother.AuditorRemark
  831. ActiComplete.CallbackUrl = ""
  832. if dataother.SuccessStatus == 1 {
  833. ActiComplete.Result = "1"
  834. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  835. if receiveVal == "true" {
  836. if supplierCertEntity.Status == suppliercert.CENT_AUDIT_STATUS {
  837. if supplierCertEntity.InStyle == "1" {
  838. paysvc := paymentinfo.GetPaymentService(utils.DBE)
  839. var Amount float64
  840. asvc := oilcostmanage.GetOilCostManageService(utils.DBE)
  841. Amount = asvc.GetAmount("ZHUNRU",supplierCertEntity.SupplierTypeCode)
  842. //if supplierCertEntity.SupplierTypeCode == suppliercert.DOOGS_TYPECODE {
  843. // Amount = 6000
  844. //} else if supplierCertEntity.SupplierTypeCode == suppliercert.BASIS_TYPECODE {
  845. // Amount = 7000
  846. //} else if supplierCertEntity.SupplierTypeCode == suppliercert.TECH_TYPECODE {
  847. // Amount = 8000
  848. //}
  849. var payinfo paymentinfo.OilPaymentInfo
  850. payinfo.SupplierId = supplierCertEntity.SupplierId
  851. payinfo.SrcId = supplierCertEntity.Id
  852. payinfo.SupplierCertId = supplierCertEntity.Id
  853. payinfo.USCCode = supplierEntity.CommercialNo
  854. payinfo.SupplierName = supplierEntity.SupplierName
  855. payinfo.PayType = "1"
  856. payinfo.Amount = strconv.FormatFloat(Amount,'E',-1,64)
  857. payinfo.IsPay = "0"
  858. payinfo.CreateUserId = supplierCertEntity.CreateUserId
  859. payinfo.CreateBy = supplierCertEntity.CreateBy
  860. payinfo.CreateOn = time.Now()
  861. wheresup := " SupplierCertId=" + strconv.Itoa(supplierCertEntity.Id)
  862. var sup []suppliercertsub.OilSupplierCertSub
  863. total := paysvc.GetPagingEntitiesWithOrder(1,10,"Id",true,&sup,wheresup)
  864. if supplierCertEntity.SupplierTypeCode == "01" && total <= 50 {
  865. } else {
  866. paysvc.InsertEntity(&payinfo)
  867. //发短信
  868. toMobile := supplierEntity.Mobile
  869. msg:= "您的"+supplierCertEntity.SupplierTypeName + "准入审核通过,请及时确认缴费信息!"
  870. msgService := msg2.GetMsgService(utils.DBE)
  871. msgService.HandleMsg(toMobile,msg,"3-1",supplierCertEntity.CreateBy,supplierEntity.ContactName,strconv.Itoa(supplierCertEntity.CreateUserId))
  872. }
  873. //paysvc.AddPaymentinfo(supplierCertEntity.SupplierId, supplierCertEntity.Id, Amount, "1")
  874. supplierCertEntity.Status = status
  875. supplierCertEntity.Step = step
  876. cols := []string{
  877. "Status",
  878. "Step",
  879. }
  880. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  881. } else {
  882. supplierCertEntity.Status = suppliercert.STOREING_STATUS
  883. supplierCertEntity.Step = step
  884. cols := []string{
  885. "Status",
  886. "Step",
  887. }
  888. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  889. }
  890. } else if supplierCertEntity.Status == suppliercert.PROF_AUDIT_STATUS && supplierCertEntity.InStyle == "3" {
  891. //if supplierCertEntity.InStyle == "3" {
  892. supplierCertEntity.Status = suppliercert.STOREING_STATUS
  893. supplierCertEntity.Step = 3
  894. cols := []string{
  895. "Status",
  896. "Step",
  897. }
  898. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  899. //} else {
  900. // supplierCertEntity.Status = status
  901. // supplierCertEntity.Step = step
  902. // cols := []string{
  903. // "Status",
  904. // "Step",
  905. // }
  906. // certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  907. //}
  908. } else {
  909. supplierCertEntity.Status = status
  910. supplierCertEntity.Step = step
  911. cols := []string{
  912. "Status",
  913. "Step",
  914. }
  915. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  916. }
  917. errinfo.Message = "提交成功!"
  918. errinfo.Code = 0
  919. this.Data["json"] = &errinfo
  920. this.ServeJSON()
  921. } else {
  922. errinfo.Message = "工作流异常,请联系管理员!"
  923. errinfo.Code = -1
  924. this.Data["json"] = &errinfo
  925. this.ServeJSON()
  926. return
  927. }
  928. } else {
  929. ActiComplete.Result = "0"
  930. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  931. if receiveVal == "true" {
  932. // 审批历史
  933. var audithistoryentity audithistory.Base_AuditHistory
  934. audithistoryentity.EntityId = supplierCertEntity.Id
  935. audithistoryentity.WorkflowId = supplierCertEntity.WorkflowId
  936. audithistoryentity.Process = ActiComplete.ProcessKey
  937. audithistoryentity.BusinessKey = ActiComplete.BusinessKey
  938. audithistoryentity.Type = supplierCertEntity.SupplierTypeCode
  939. audithistoryentity.BackStep = supplierCertEntity.Status
  940. audithistoryentity.Index = supplierCertEntity.AuditIndex
  941. audithistoryentity.CreateOn = time.Now()
  942. audithistoryentity.CreateBy = this.User.Realname
  943. audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  944. certSrv.InsertEntity(audithistoryentity)
  945. if supplierCertEntity.Status == suppliercert.CENT_AUDIT_STATUS {
  946. supplierCertEntity.Status = suppliercert.NO_CENT_AUDIT_STATUS
  947. supplierCertEntity.BackReason = dataother.AuditorRemark
  948. cols := []string{
  949. "BackReason",
  950. }
  951. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  952. } else {
  953. supplierCertEntity.Status = backstatus
  954. }
  955. supplierCertEntity.Step = 1
  956. supplierCertEntity.WorkflowId = ""
  957. cols := []string{
  958. "Status",
  959. "Step",
  960. "WorkflowId",
  961. }
  962. certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
  963. toMobile := supplierEntity.Mobile
  964. msg:= "您的"+supplierCertEntity.SupplierTypeName + "准入审核未通过,请及时查看!"
  965. msgService := msg2.GetMsgService(utils.DBE)
  966. msgService.HandleMsg(toMobile,msg,"4-1",supplierCertEntity.CreateBy,supplierEntity.ContactName,strconv.Itoa(supplierCertEntity.CreateUserId))
  967. errinfo.Message = "提交成功!"
  968. errinfo.Code = 0
  969. this.Data["json"] = &errinfo
  970. this.ServeJSON()
  971. } else {
  972. errinfo.Message = "工作流异常,请联系管理员!"
  973. errinfo.Code = -1
  974. this.Data["json"] = &errinfo
  975. this.ServeJSON()
  976. return
  977. }
  978. }
  979. }
  980. // @Title 审核
  981. // @Description 审核
  982. // @Success 200 {object} controllers.Request
  983. // @router /auditcallback [get]
  984. func (this *OilSupplierCertController) AuditCallback() {
  985. id := this.GetString("Id")
  986. status := this.GetString("status")
  987. step := this.GetString("step")
  988. var supplierCertEntity suppliercert.OilSupplierCert
  989. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  990. supplierCertEntity.Status = status
  991. supplierCertEntity.Step, _ = strconv.Atoi(step)
  992. cols := []string{
  993. "Id",
  994. "Status",
  995. "step",
  996. }
  997. svc.UpdateEntityByIdCols(id, supplierCertEntity, cols)
  998. fmt.Println(id, status, step)
  999. }
  1000. // @Title 获取实体
  1001. // @Description 获取实体
  1002. // @Success 200 {object} controllers.Request
  1003. // @router /isaccess [get]
  1004. func (this *OilSupplierCertController) IsAccess() {
  1005. auditstepcode := this.GetString("auditstepcode")
  1006. processkey := this.GetString("processkey")
  1007. id := this.GetString("id")
  1008. //var users []userRole.Base_RoleList
  1009. //var auditWorkflow auditsetting.Base_OilAuditSetting
  1010. //rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  1011. res := false
  1012. if auditstepcode == workflow.PROF_CONCENT { // 集中审批
  1013. //rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, workflow.PROF_AUDIT, &auditWorkflow)
  1014. //users = rsvc.GetUserByRole("10000204", this.User.AccCode)
  1015. //for _, user := range users {
  1016. // if this.User.Id == strconv.Itoa(int(user.Id)) {
  1017. // res = true
  1018. // break
  1019. // }
  1020. //}
  1021. var setting auditsetting.Base_OilAuditSetting
  1022. svc := organize.GetOrganizeService(utils.DBE)
  1023. where := "AuditStepCode='" + auditstepcode + "'"
  1024. svc.GetEntity(&setting, where)
  1025. res = svc.UserInRoleById(this.User.Id, strconv.Itoa(setting.RoleId))
  1026. } else {
  1027. //var users []suppliercert.UserList
  1028. //where := "OrganizeId=" + this.User.DepartmentId + " and AuditStepCode='" + auditstepcode + "'"
  1029. //rsvc.GetEntitysByWhere(OilAuditSettingName,where, &users)
  1030. //rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, auditstepcode, &auditWorkflow)
  1031. //users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), this.User.AccCode)
  1032. //var users []userRole.Base_RoleList
  1033. //certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  1034. //certSrv.GetAuditUser(this.User.DepartmentId, auditstepcode, &users)
  1035. var setting auditsetting.Base_OilAuditSetting
  1036. svc := organize.GetOrganizeService(utils.DBE)
  1037. where := "AuditStepCode='" + auditstepcode + "'"
  1038. svc.GetEntity(&setting, where)
  1039. res = svc.UserInRoleById(this.User.Id, strconv.Itoa(setting.RoleId))
  1040. if res {
  1041. actisvc := workflow.GetActivitiService(utils.DBE)
  1042. ids := actisvc.GetMyTasks(processkey, this.User.Id)
  1043. res = strings.Contains(ids,id)
  1044. }
  1045. //for _, user := range users {
  1046. // if this.User.Id == strconv.Itoa(int(user.Id)) {
  1047. // res = true
  1048. // break
  1049. // }
  1050. //}
  1051. }
  1052. this.Data["json"] = res
  1053. this.ServeJSON()
  1054. }
  1055. // @Title 获取准入编码
  1056. // @Description 获取准入编码
  1057. // @Success 200 {object} controllers.Request
  1058. // @router /createaccesscardno/:type [get]
  1059. func (this *OilSupplierCertController) CreateAccessCardNo() {
  1060. Id := this.GetString("Id")
  1061. certId := this.GetString(("SupplierCertId"))
  1062. typeCode := this.Ctx.Input.Param(":type")
  1063. codecSvc := codecsequence.GetCodecSequenceService(utils.DBE)
  1064. var entitycert suppliercert.OilSupplierCert
  1065. var entity supplier.OilSupplier
  1066. //where := "Id = " + Id
  1067. //codecSvc.GetEntities(&model, "")
  1068. seqStr := ""
  1069. cols := []string{}
  1070. if (typeCode == "01") { // 物质
  1071. has := true
  1072. for has {
  1073. seqStr = codecSvc.GetWZAccessCardNo(this.User.AccCode)
  1074. where := "SupplierTypeCode='" + typeCode + "' and AccessCardNo='" + seqStr + "'"
  1075. has = codecSvc.GetEntity(&entitycert, where)
  1076. }
  1077. cols = []string{"WZAccessCardNo"}
  1078. entity.WZAccessCardNo = seqStr
  1079. } else if typeCode == "03" { //技术服务
  1080. has := true
  1081. for has {
  1082. seqStr = codecSvc.GetJFAccessCardNo(this.User.AccCode)
  1083. where := "SupplierTypeCode='" + typeCode + "' and AccessCardNo='" + seqStr + "'"
  1084. has = codecSvc.GetEntity(&entitycert, where)
  1085. }
  1086. cols = []string{"JFAccessCardNo"}
  1087. entity.JFAccessCardNo = seqStr
  1088. } else if typeCode == "02" { // 基建
  1089. has := true
  1090. for has {
  1091. seqStr = codecSvc.GetJSAccessCardNo(this.User.AccCode)
  1092. where := "SupplierTypeCode='" + typeCode + "' and AccessCardNo='" + seqStr + "'"
  1093. has = codecSvc.GetEntity(&entitycert, where)
  1094. }
  1095. cols = []string{"JSAccessCardNo"}
  1096. entity.JSAccessCardNo = seqStr
  1097. }
  1098. codecSvc.UpdateEntityByIdCols(Id, &entity, cols)
  1099. var cert suppliercert.OilSupplierCert
  1100. certcols := []string{"AccessCardNo"}
  1101. cert.AccessCardNo = seqStr
  1102. codecSvc.UpdateEntityByIdCols(certId, &cert, certcols)
  1103. this.Data["json"] = seqStr
  1104. this.ServeJSON()
  1105. }
  1106. // @Title 修改准入标识
  1107. // @Description 修改准入标识
  1108. // @Success 200 {object} controllers.Request
  1109. // @router /updatainflag/ [get]
  1110. func (this *OilSupplierCertController) UpdataInFlag() {
  1111. t := time.Now()
  1112. session := utils.DBE.NewSession()
  1113. var certentitys []suppliercert.OilSupplierCert
  1114. svc := suppliercert.GetOilSupplierCertSession(session)
  1115. defer func() {
  1116. session.Close()
  1117. }()
  1118. err := session.Begin()
  1119. svc.GetEntities(&certentitys, "InFlag!='3'")
  1120. currenttime := time.Now()
  1121. //.Format("2006-01-02")
  1122. for i := 0; i < len(certentitys); i++ {
  1123. if currenttime.After(certentitys[i].ApplyTime) && !currenttime.After(certentitys[i].ApplyTime.AddDate(1,0,0)) && certentitys[i].InFlag != "2" {
  1124. var certentity suppliercert.OilSupplierCert
  1125. certentity.InFlag = "2"
  1126. cols := []string{"InFlag"}
  1127. _,err = svc.UpdateEntityByIdCols(certentitys[i].Id, &certentity, cols)
  1128. if err != nil {
  1129. session.Rollback()
  1130. }
  1131. }
  1132. if currenttime.After(certentitys[i].ApplyTime.AddDate(1, 0, 0)) {
  1133. fmt.Println(time.Now().Format("2006-01-02"), certentitys[i].ApplyTime.AddDate(1, 0, 0).Format("2006-01-02"))
  1134. var certentity suppliercert.OilSupplierCert
  1135. certentity.InFlag = "3"
  1136. cols := []string{"InFlag"}
  1137. _,err = svc.UpdateEntityByIdCols(certentitys[i].Id, &certentity, cols)
  1138. if err != nil {
  1139. session.Rollback()
  1140. }
  1141. }
  1142. }
  1143. err = session.Commit()
  1144. fmt.Println(err)
  1145. elapsed := time.Since(t)
  1146. fmt.Println(elapsed, "更新准入标识")
  1147. }
  1148. // @Title 保存准入编码
  1149. // @Description 保存准入编码
  1150. // @Success 200 {object} controllers.Request
  1151. // @router /saveaccesscardno/:Id [get]
  1152. func (this *OilSupplierCertController) SaveAccessCardNo() {
  1153. id := this.Ctx.Input.Param(":Id")
  1154. certId := this.GetString(("SupplierCertId"))
  1155. typeCode := this.GetString("typeCode")
  1156. accessCardNo := this.GetString("AccessCardNo")
  1157. var model []suppliercert.OilSupplierCert
  1158. var supplier supplier.OilSupplier
  1159. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  1160. where := "AccessCardNo='" + accessCardNo + "'"
  1161. svc.GetEntities(&model, where)
  1162. supcols := []string{}
  1163. if model == nil || len(model) == 0 {
  1164. if (typeCode == "01") { // 物质
  1165. supplier.WZAccessCardNo = accessCardNo
  1166. supcols = []string{"WZAccessCardNo"}
  1167. } else if typeCode == "03" { //技术服务
  1168. supplier.JFAccessCardNo = accessCardNo
  1169. supcols = []string{"JFAccessCardNo"}
  1170. } else if typeCode == "02" { // 基建
  1171. supplier.JSAccessCardNo = accessCardNo
  1172. supcols = []string{"JSAccessCardNo"}
  1173. }
  1174. svc.UpdateEntityByIdCols(id, &supplier, supcols)
  1175. var cert suppliercert.OilSupplierCert
  1176. certcols := []string{"AccessCardNo"}
  1177. cert.AccessCardNo = accessCardNo
  1178. svc.UpdateEntityByIdCols(certId, &cert, certcols)
  1179. var errinfo ErrorDataInfo
  1180. errinfo.Message = "保存成功!"
  1181. errinfo.Code = 0
  1182. this.Data["json"] = &errinfo
  1183. this.ServeJSON()
  1184. } else {
  1185. var errinfo ErrorDataInfo
  1186. errinfo.Message = "准入编码已经存在!"
  1187. errinfo.Code = -1
  1188. this.Data["json"] = &errinfo
  1189. this.ServeJSON()
  1190. }
  1191. }
  1192. // @Title 快到期短信通知
  1193. // @Description 修改准入标识
  1194. // @Success 200 {object} controllers.Request
  1195. // @router /sendingSMS/ [get]
  1196. func (this *OilSupplierCertController) SendingSMS() {
  1197. t := time.Now()
  1198. svcsupp := supplier.GetOilSupplierService(utils.DBE)
  1199. var list []supplier.OilSupplierView
  1200. where := "b.InFlag = '1'"
  1201. svcsupp.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 0, 0, "Id", true, &list, where)
  1202. currenttime := time.Now()
  1203. for _,item := range list {
  1204. if currenttime.AddDate(0,3,0).Format("2006-01-02") == (item.ApplyTime.Format("2006-01-02")) {
  1205. toMobile := "15288965998,15863081686,15563862958"//item.Mobile
  1206. msg:= "您的" + item.SupplierTypeName + "准入还有3个月到期"
  1207. msgService := msg2.GetMsgService(utils.DBE)
  1208. msgService.HandleMsg(toMobile,msg,"1-1",item.CreateBy,item.ContactName,strconv.Itoa(item.CreateUserId))
  1209. }
  1210. if currenttime.AddDate(0,2,0).Format("2006-01-02") == (item.ApplyTime.Format("2006-01-02")) {
  1211. toMobile := "15288965998,15863081686,15563862958"//item.Mobile
  1212. msg:= "您的" + item.SupplierTypeName + "准入还有2个月到期"
  1213. msgService := msg2.GetMsgService(utils.DBE)
  1214. msgService.HandleMsg(toMobile,msg,"1-1",item.CreateBy,item.ContactName,strconv.Itoa(item.CreateUserId))
  1215. }
  1216. if currenttime.AddDate(0,1,0).Format("2006-01-02") == (item.ApplyTime.Format("2006-01-02")) {
  1217. toMobile := ",15863081686,15863081686,15563862958"//item.Mobile
  1218. msg:= "您的" + item.SupplierTypeName + "准入还有1个月到期"
  1219. msgService := msg2.GetMsgService(utils.DBE)
  1220. msgService.HandleMsg(toMobile,msg,"1-1",item.CreateBy,item.ContactName,strconv.Itoa(item.CreateUserId))
  1221. }
  1222. }
  1223. elapsed := time.Since(t)
  1224. fmt.Println(elapsed, "快到期提醒")
  1225. }