suppliercertappend.go 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/audithistory"
  4. "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
  5. "dashoo.cn/business2/userRole"
  6. "dashoo.cn/business2/items"
  7. "encoding/json"
  8. "fmt"
  9. "strconv"
  10. "strings"
  11. "time"
  12. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  13. "dashoo.cn/backend/api/business/paymentinfo"
  14. "dashoo.cn/backend/api/business/workflow"
  15. "dashoo.cn/business2/permission"
  16. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
  17. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub"
  18. . "dashoo.cn/backend/api/controllers"
  19. "dashoo.cn/utils"
  20. "github.com/go-xorm/xorm"
  21. )
  22. type OilSupplierCertAppendController struct {
  23. BaseController
  24. }
  25. type AppShenHeModel struct {
  26. AnnualId int
  27. SuccessStatus int
  28. AuditorRemark string
  29. Auditer int
  30. MajorDept int
  31. }
  32. // @Title 获取列表
  33. // @Description 获取列表
  34. // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
  35. // @router /list [get]
  36. func (this *OilSupplierCertAppendController) GetList() {
  37. //获取分页信息
  38. page := this.GetPageInfoForm()
  39. where := " 1=1 "
  40. orderby := "Id"
  41. asc := false
  42. Order := this.GetString("Order")
  43. Prop := this.GetString("Prop")
  44. if Order != "" && Prop != "" {
  45. orderby = Prop
  46. if Order == "asc" {
  47. asc = true
  48. }
  49. }
  50. ApplyDate := this.GetString("ApplyDate")
  51. RecUnitId := this.GetString("RecUnitId")
  52. RecUnitName := this.GetString("RecUnitName")
  53. AppendType := this.GetString("AppendType")
  54. DenyReason := this.GetString("DenyReason")
  55. AuditDate := this.GetString("AuditDate")
  56. Remark := this.GetString("Remark")
  57. CreateOn := this.GetString("CreateOn")
  58. if ApplyDate != "" {
  59. where = where + " and ApplyDate like '%" + ApplyDate + "%'"
  60. }
  61. if RecUnitId != "" {
  62. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  63. }
  64. if RecUnitName != "" {
  65. where = where + " and RecUnitName like '%" + RecUnitName + "%'"
  66. }
  67. if AppendType != "" {
  68. where = where + " and AppendType like '%" + AppendType + "%'"
  69. }
  70. if DenyReason != "" {
  71. where = where + " and DenyReason like '%" + DenyReason + "%'"
  72. }
  73. if AuditDate != "" {
  74. where = where + " and AuditDate like '%" + AuditDate + "%'"
  75. }
  76. if Remark != "" {
  77. where = where + " and Remark like '%" + Remark + "%'"
  78. }
  79. if CreateOn != "" {
  80. dates := strings.Split(CreateOn, ",")
  81. if len(dates) == 2 {
  82. minDate := dates[0]
  83. maxDate := dates[1]
  84. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  85. }
  86. }
  87. //企业用户必须加创建人条件
  88. if this.User.IsCompanyUser == 1 {
  89. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  90. } else {
  91. //超级管理员和有查看所有数据权限的用户不加条件
  92. svcPerm := permission.GetPermissionService(utils.DBE)
  93. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
  94. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  95. where = where + " and CreateUserId = '" + this.User.Id + "'"
  96. }
  97. }
  98. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  99. var list []suppliercertappend.OilSupplierCertAppend
  100. total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  101. var datainfo DataInfo
  102. datainfo.Items = list
  103. datainfo.CurrentItemCount = total
  104. datainfo.PageIndex = page.CurrentPage
  105. datainfo.ItemsPerPage = page.Size
  106. this.Data["json"] = &datainfo
  107. this.ServeJSON()
  108. }
  109. // @Title 通过Id获取信息
  110. // @Description get user by token
  111. // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
  112. // @router /getEntityById/:id [get]
  113. func (this *OilSupplierCertAppendController) GetEntityById() {
  114. Id := this.Ctx.Input.Param(":id")
  115. var model suppliercertappend.OilSupplierCertAppend
  116. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  117. svc.GetEntityByIdBytbl(OilSupplierCertAppendName, Id, &model)
  118. this.Data["json"] = &model
  119. this.ServeJSON()
  120. }
  121. // @Title 获取公司信息
  122. // @Description 根据创建用户Id和增项类别号获取公司信息
  123. // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
  124. // @router /getsupplier/:id [get]
  125. func (this *OilSupplierCertAppendController) GetSupplier() {
  126. Id := this.Ctx.Input.Param(":id")
  127. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  128. sqlStr := "SELECT b.Id AS SupplierId, a.Id AS SupplierCertId, b.SupplierName AS SupplierName FROM OilSupplierCert AS a LEFT JOIN OilSupplier AS b ON a.SupplierId = b.Id "
  129. where := "WHERE b.Id is NOT NULL AND a.SupplierTypeCode = " + Id + " and a.InFlag='1'"
  130. sqlStr = sqlStr + where
  131. model, _ := svc.DBE.QueryString(sqlStr)
  132. this.Data["json"] = &model
  133. this.ServeJSON()
  134. }
  135. // @Title 添加
  136. // @Description 添加增项信息
  137. // @Success 200 {object} controllers.Request
  138. // @router /addappend [post]
  139. func (this *OilSupplierCertAppendController) AddAppend() {
  140. var errinfo DataEntryInfo
  141. var jsonblob = this.Ctx.Input.RequestBody
  142. var cermodel suppliercert.OilSupplierCert
  143. var model suppliercertappend.OilSupplierCertAppend
  144. json.Unmarshal(jsonblob, &model)
  145. where := " Id = "+ utils.ToStr(model.SupplierCertId)+ " and SupplierTypeCode = "+ model.AppendType
  146. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  147. svc.GetEntityByWhere(OilSupplierCertName, where, &cermodel)
  148. //if cermodel.Status != "8" {
  149. // errinfo.Message = "入库后才能提交增项!"
  150. // errinfo.Code = -1
  151. // this.Data["json"] = &errinfo
  152. // this.ServeJSON()
  153. // return
  154. //}
  155. //添加增项信息
  156. model.InStyle = cermodel.InStyle
  157. model.ApplyDate = time.Now() //申请日期
  158. model.CreateOn = time.Now()
  159. model.CreateBy = this.User.Realname
  160. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  161. _, err := svc.InsertEntityBytbl(OilSupplierCertAppendName, &model)
  162. //查询准入范围
  163. var certsublist []suppliercertsub.OilSupplierCertSub
  164. suwhere := " SupplierCertId = "+ utils.ToStr(model.SupplierCertId)+ " and SupplierTypeCode = "+ model.AppendType
  165. svc.GetEntitysByWhere(OilSupplierCertSubName, suwhere, &certsublist)
  166. if err == nil {
  167. errinfo.Message = "操作成功!"
  168. errinfo.Code = 0
  169. errinfo.Item = certsublist
  170. errinfo.Info = model.Id
  171. this.Data["json"] = &errinfo
  172. this.ServeJSON()
  173. } else {
  174. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  175. errinfo.Code = -1
  176. this.Data["json"] = &errinfo
  177. this.ServeJSON()
  178. }
  179. }
  180. // @Title 修改实体
  181. // @Description 修改实体
  182. // @Success 200 {object} controllers.Request
  183. // @router /update/:id [post]
  184. func (this *OilSupplierCertAppendController) UpdateEntity() {
  185. var errinfo ErrorInfo
  186. var model suppliercertappend.OilSupplierCertAppend
  187. id := this.Ctx.Input.Param(":id")
  188. if id == "" {
  189. errinfo.Message = "操作失败!请求信息不完整"
  190. errinfo.Code = -2
  191. this.Data["json"] = &errinfo
  192. this.ServeJSON()
  193. return
  194. }
  195. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  196. var jsonBlob = this.Ctx.Input.RequestBody
  197. json.Unmarshal(jsonBlob, &model)
  198. model.ApplyDate = time.Now() //更新申请日期
  199. model.ModifiedOn = time.Now()
  200. model.ModifiedBy = this.User.Realname
  201. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  202. cols := []string{
  203. "Id",
  204. "ApplyDate",
  205. "RecUnitFlag",
  206. "RecUnitId",
  207. "RecUnitName",
  208. "WorkRange",
  209. "Remark",
  210. "ModifiedOn",
  211. "ModifiedUserId",
  212. "ModifiedBy",
  213. }
  214. err := svc.UpdateEntityBytbl(OilSupplierCertAppendName, id, &model, cols)
  215. if err == nil {
  216. errinfo.Message = "修改成功!"
  217. errinfo.Code = 0
  218. this.Data["json"] = &errinfo
  219. this.ServeJSON()
  220. } else {
  221. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  222. errinfo.Code = -1
  223. this.Data["json"] = &errinfo
  224. this.ServeJSON()
  225. }
  226. }
  227. // @Title 删除
  228. // @Description 级联删除
  229. // @Success 200 {object} ErrorInfo
  230. // @Failure 403 :id 为空
  231. // @router /delete/:Id [delete]
  232. func (this *OilSupplierCertAppendController) DeleteEntity() {
  233. Id := this.Ctx.Input.Param(":Id")
  234. var errinfo ErrorInfo
  235. if Id == "" {
  236. errinfo.Message = "操作失败!请求信息不完整"
  237. errinfo.Code = -2
  238. this.Data["json"] = &errinfo
  239. this.ServeJSON()
  240. return
  241. }
  242. //定义session
  243. var session *xorm.Session
  244. session = utils.DBE.NewSession()
  245. svc := suppliercertappend.GetOilSupplierCertAppendSession(session)
  246. svcSub := suppliercertappendsub.GetOilSupplierCertAppendSubSession(session)
  247. //"session开始" 之前,首先定义 "session关闭"
  248. defer session.Close()
  249. err := session.Begin()
  250. //首先删除子表信息
  251. where := "SupplierCertAppendId = " + Id
  252. err = svcSub.DeleteEntityBytbl(OilSupplierCertAppendSubName, where)
  253. if err != nil {
  254. //回滚操作
  255. session.Rollback()
  256. }
  257. //最后删除主表信息
  258. var model suppliercertappend.OilSupplierCertAppend
  259. var entityempty suppliercertappend.OilSupplierCertAppend
  260. opdesc := "删除-" + Id
  261. err = svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertAppendName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "增项信息")
  262. if err != nil {
  263. session.Rollback()
  264. }
  265. //提交操作
  266. err = session.Commit()
  267. if err == nil {
  268. errinfo.Message = "删除成功"
  269. errinfo.Code = 0
  270. this.Data["json"] = &errinfo
  271. this.ServeJSON()
  272. } else {
  273. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  274. errinfo.Code = -1
  275. this.Data["json"] = &errinfo
  276. this.ServeJSON()
  277. }
  278. }
  279. // @Title 获取列表
  280. // @Description get user by token
  281. // @Success 200 {object} []supplier.OilSupplierView
  282. // @router /mytasks [get]
  283. func (this *OilSupplierCertAppendController) GetMyTaskEntityList() {
  284. //获取分页信息
  285. page := this.GetPageInfoForm()
  286. where := " 1=1 "
  287. orderby := "Id"
  288. asc := false
  289. Order := this.GetString("Order")
  290. where = where + " and Status>0"
  291. Prop := this.GetString("Prop")
  292. if Order != "" && Prop != "" {
  293. orderby = Prop
  294. if Order == "asc" {
  295. asc = true
  296. }
  297. }
  298. ApplyDate := this.GetString("ApplyDate")
  299. RecUnitId := this.GetString("RecUnitId")
  300. RecUnitName := this.GetString("RecUnitName")
  301. AppendType := this.GetString("AppendType")
  302. DenyReason := this.GetString("DenyReason")
  303. AuditDate := this.GetString("AuditDate")
  304. Remark := this.GetString("Remark")
  305. CreateOn := this.GetString("CreateOn")
  306. if ApplyDate != "" {
  307. where = where + " and ApplyDate like '%" + ApplyDate + "%'"
  308. }
  309. if RecUnitId != "" {
  310. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  311. }
  312. if RecUnitName != "" {
  313. where = where + " and RecUnitName like '%" + RecUnitName + "%'"
  314. }
  315. if AppendType != "" {
  316. where = where + " and AppendType like '" + AppendType + "'"
  317. }
  318. if DenyReason != "" {
  319. where = where + " and DenyReason like '%" + DenyReason + "%'"
  320. }
  321. if AuditDate != "" {
  322. where = where + " and AuditDate like '%" + AuditDate + "%'"
  323. }
  324. if Remark != "" {
  325. where = where + " and Remark like '%" + Remark + "%'"
  326. }
  327. if CreateOn != "" {
  328. dates := strings.Split(CreateOn, ",")
  329. if len(dates) == 2 {
  330. minDate := dates[0]
  331. maxDate := dates[1]
  332. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  333. }
  334. }
  335. //找出待办任务
  336. actisvc := workflow.GetActivitiService(utils.DBE)
  337. var appendIdList string
  338. if actisvc.GetMyTasks(workflow.OIL_APPEND_APPLY, this.User.Id) != "" {
  339. appendIdList = actisvc.GetMyTasks(workflow.OIL_APPEND_APPLY, this.User.Id)
  340. appendIdList = appendIdList + ","
  341. }
  342. if actisvc.GetMyTasks(workflow.OIL_FIRST_APPEND_APPLY, this.User.Id) != "" {
  343. appendIdList = fmt.Sprintf("%s %s", appendIdList, actisvc.GetMyTasks(workflow.OIL_FIRST_APPEND_APPLY, this.User.Id))
  344. appendIdList = appendIdList + ","
  345. }
  346. if actisvc.GetMyTasks(workflow.OIL_SECOND_APPEND_APPLY, this.User.Id) != "" {
  347. appendIdList = fmt.Sprintf("%s %s", appendIdList, actisvc.GetMyTasks(workflow.OIL_SECOND_APPEND_APPLY, this.User.Id))
  348. appendIdList = appendIdList + ","
  349. }
  350. appendIdList = strings.Trim(appendIdList, ",")
  351. appendIdarr := strings.Split(appendIdList, ",")
  352. for i, item := range appendIdarr {
  353. idx := strings.Index(item,"-")
  354. if (idx >= 0 ) {
  355. appendIdarr[i] = strings.Split(item, "-")[0]
  356. }
  357. }
  358. appendIdList = strings.Join(appendIdarr, ",")
  359. var list []suppliercertappend.OilSupplierCertAppend
  360. var total int64 = 0
  361. if (appendIdList != "") {
  362. where += " and Id in (" + appendIdList + ")"
  363. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  364. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  365. }
  366. //根据部门查询待办任务
  367. var datainfo DataInfo
  368. datainfo.Items = list
  369. datainfo.CurrentItemCount = total
  370. datainfo.PageIndex = page.CurrentPage
  371. datainfo.ItemsPerPage = page.Size
  372. this.Data["json"] = &datainfo
  373. this.ServeJSON()
  374. }
  375. // @Title 提交审批
  376. // @Description 提交审批
  377. // @Success 200 {object} controllers.Request
  378. // @router /audit/:id [post]
  379. func (this *OilSupplierCertAppendController) AuditEntity() {
  380. certappendId := this.Ctx.Input.Param(":id")
  381. firstAudit := this.GetString("FirstAuditName")
  382. SecondAudit := this.GetString("SecondAudit")
  383. ThirdAudit := this.GetString("ThirdAudit")
  384. AuditRemark := this.GetString("AuditRemark")
  385. //取出审批列表
  386. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  387. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  388. certSrv.GetEntityById(certappendId, &supplierCertAppendEntity)
  389. var historworkflowid string
  390. historworkflowid = supplierCertAppendEntity.WorkFlowId
  391. var errinfo ErrorDataInfo
  392. defer func() { //finally处理失败的异常
  393. if err := recover(); err != nil {
  394. errinfo.Message = "提交失败," + err.(string)
  395. errinfo.Code = -1
  396. this.Data["json"] = &errinfo
  397. this.ServeJSON()
  398. } else {
  399. //返回正确结果
  400. errinfo.Message = "审核提交成功"
  401. errinfo.Code = 0
  402. this.Data["json"] = &errinfo
  403. this.ServeJSON()
  404. }
  405. }()
  406. var suppappend suppliercertappend.OilSupplierCertAppend
  407. //第二次提交先清空工作流
  408. if supplierCertAppendEntity.AuditIndex > 0 {
  409. suppappend.WorkFlowId = ""
  410. cols := []string{
  411. "WorkflowId",
  412. }
  413. certSrv.UpdateEntityByIdCols(certappendId, suppappend, cols)
  414. supplierCertAppendEntity.WorkFlowId = ""
  415. }
  416. svcActiviti := workflow.GetActivitiService(utils.DBE)
  417. processInstanceId := ""
  418. businessKey := ""
  419. if supplierCertAppendEntity.WorkFlowId == "0" || len(supplierCertAppendEntity.WorkFlowId) <= 0 {
  420. //启动工作流
  421. businessKey = certappendId + "-" + strconv.Itoa(supplierCertAppendEntity.AuditIndex)
  422. if supplierCertAppendEntity.InStyle == "2" {
  423. processInstanceId = svcActiviti.StartProcess(workflow.OIL_FIRST_APPEND_APPLY, businessKey, this.User.Id)
  424. }else if supplierCertAppendEntity.InStyle == "3" {
  425. processInstanceId = svcActiviti.StartProcess(workflow.OIL_SECOND_APPEND_APPLY, businessKey, this.User.Id)
  426. }else {
  427. processInstanceId = svcActiviti.StartProcess(workflow.OIL_APPEND_APPLY, businessKey, this.User.Id)
  428. }
  429. }
  430. var ActiComplete workflow.ActiCompleteVM
  431. if supplierCertAppendEntity.InStyle == "2" {
  432. ActiComplete.ProcessKey = workflow.OIL_FIRST_APPEND_APPLY
  433. }else if supplierCertAppendEntity.InStyle == "3" {
  434. ActiComplete.ProcessKey = workflow.OIL_SECOND_APPEND_APPLY
  435. }else{
  436. ActiComplete.ProcessKey = workflow.OIL_APPEND_APPLY
  437. }
  438. ActiComplete.BusinessKey = businessKey
  439. ActiComplete.UserNames = firstAudit
  440. ActiComplete.UserId = this.User.Id
  441. ActiComplete.Result = "1"
  442. ActiComplete.Remarks = AuditRemark
  443. ActiComplete.CallbackUrl = ""
  444. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  445. if receiveVal == "true" {
  446. if supplierCertAppendEntity.AuditIndex > 0 {
  447. // 审批历史
  448. var audithistoryentity audithistory.Base_AuditHistory
  449. audithistoryentity.EntityId, _ = strconv.Atoi(certappendId)
  450. audithistoryentity.WorkflowId = historworkflowid
  451. audithistoryentity.Process = workflow.OIL_APPEND_APPLY
  452. audithistoryentity.BusinessKey = businessKey
  453. audithistoryentity.Type = supplierCertAppendEntity.AppendType
  454. audithistoryentity.BackStep = supplierCertAppendEntity.Status
  455. audithistoryentity.Index = supplierCertAppendEntity.AuditIndex
  456. audithistoryentity.CreateOn = time.Now()
  457. audithistoryentity.CreateBy = this.User.Realname
  458. audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  459. certSrv.InsertEntity(audithistoryentity)
  460. }
  461. errinfo.Message = "提交成功!"
  462. errinfo.Code = 0
  463. this.Data["json"] = &errinfo
  464. this.ServeJSON()
  465. } else {
  466. errinfo.Message = "工作流异常,请联系管理员!"
  467. errinfo.Code = -1
  468. this.Data["json"] = &errinfo
  469. this.ServeJSON()
  470. return
  471. }
  472. //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
  473. var model suppliercertappend.OilSupplierCertAppend
  474. model.WorkFlowId = processInstanceId
  475. model.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
  476. model.FirstAudit, _ = strconv.Atoi(firstAudit)
  477. model.SecondAudit, _ = strconv.Atoi(SecondAudit)
  478. model.ThirdAudit, _ = strconv.Atoi(ThirdAudit)
  479. model.AuditIndex = supplierCertAppendEntity.AuditIndex
  480. model.BusinessKey = businessKey
  481. cols := []string{
  482. "Id",
  483. "WorkFlowId",
  484. "Status",
  485. "FirstAudit",
  486. "SecondAudit",
  487. "ThirdAudit",
  488. "AuditIndex",
  489. "BusinessKey",
  490. }
  491. certSrv.UpdateEntityByIdCols(certappendId, model, cols)
  492. }
  493. // @Title 审批
  494. // @Description 审批
  495. // @Param body body suppliercert.OilSupplierCert
  496. // @Success 200 {object} controllers.Request
  497. // @router /auditEntityFir/:id [post]
  498. func (this *OilSupplierCertAppendController) AuditEntityFir() {
  499. appendId := this.Ctx.Input.Param(":id")
  500. //取出审批列表
  501. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  502. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  503. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  504. svc.GetEntityById(appendId, &supplierCertAppendEntity)
  505. var jsonblob = this.Ctx.Input.RequestBody
  506. var dataother AppShenHeModel
  507. json.Unmarshal(jsonblob, &dataother)
  508. var errinfo ErrorDataInfo
  509. defer func() { //finally处理失败的异常
  510. if err := recover(); err != nil {
  511. errinfo.Message = "提交失败," + err.(string)
  512. errinfo.Code = -1
  513. this.Data["json"] = &errinfo
  514. this.ServeJSON()
  515. } else {
  516. //返回正确结果
  517. errinfo.Message = "审核提交成功"
  518. errinfo.Code = 0
  519. this.Data["json"] = &errinfo
  520. this.ServeJSON()
  521. }
  522. }()
  523. step := 2
  524. status := ""
  525. backstatus := "0"
  526. var userIds string
  527. if supplierCertAppendEntity.InStyle == "2" {
  528. if supplierCertAppendEntity.Status == suppliercert.SECOND_TRIAL_STATUS{
  529. supplierCertAppendEntity.Status = suppliercert.PROF_AUDIT_STATUS
  530. }
  531. }
  532. if supplierCertAppendEntity.Status == suppliercert.FIRST_TRIAL_STATUS {
  533. userIds = utils.ToStr(supplierCertAppendEntity.SecondAudit)
  534. status = suppliercert.SECOND_TRIAL_STATUS
  535. step = 2
  536. backstatus = suppliercert.NOPASS_STATUS
  537. } else if supplierCertAppendEntity.Status == suppliercert.SECOND_TRIAL_STATUS {
  538. status = suppliercert.THIRD_TRIAL_STATUS
  539. step = 2
  540. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  541. supsvc := suppliercert.GetOilSupplierCertService(utils.DBE)
  542. var users []userRole.Base_RoleList
  543. supsvc.GetAuditUser(strconv.Itoa(supplierCertAppendEntity.ThirdAudit), workflow.PROF_RECE, &users)
  544. for _, tmpUser := range users {
  545. userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
  546. }
  547. userIds = strings.Trim(userIds, ",")
  548. } else if supplierCertAppendEntity.Status == suppliercert.THIRD_TRIAL_STATUS {
  549. userIds = utils.ToStr(dataother.Auditer)
  550. status = suppliercert.PROF_AUDIT_STATUS
  551. step = 2
  552. backstatus = suppliercert.NO_THIRD_TRIAL_STATUS
  553. } else if supplierCertAppendEntity.Status == suppliercert.PROF_AUDIT_STATUS {
  554. status = suppliercert.CENT_AUDIT_STATUS
  555. step = 2
  556. backstatus = suppliercert.NO_PROF_AUDIT_STATUS
  557. dictSvc := items.GetItemsService(utils.DBE)
  558. deptIds := dictSvc.GetKeyValueItems("CENT_AUDIT")
  559. var users []userRole.Base_RoleList
  560. for _, dept := range deptIds {
  561. certSrv.GetAuditUser(dept.Value, workflow.PROF_REGULATION, &users)
  562. for _, tmpUser := range users {
  563. userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
  564. }
  565. }
  566. userIds = strings.Trim(userIds, ",")
  567. } else if supplierCertAppendEntity.Status == suppliercert.CENT_AUDIT_STATUS {
  568. userIds = utils.ToStr(dataother.Auditer)
  569. status = suppliercert.PAYING_AUDIT_STATUS
  570. step = 3
  571. backstatus = suppliercert.NO_CENT_AUDIT_STATUS
  572. }
  573. svcActiviti := workflow.GetActivitiService(utils.DBE)
  574. var ActiComplete workflow.ActiCompleteVM
  575. if supplierCertAppendEntity.InStyle == "2" {
  576. ActiComplete.ProcessKey = workflow.OIL_FIRST_SUPPLIER_APPLY
  577. }else if supplierCertAppendEntity.InStyle == "3" {
  578. ActiComplete.ProcessKey = workflow.OIL_SECOND_SUPPLIER_APPLY
  579. }else{
  580. ActiComplete.ProcessKey = workflow.OIL_APPEND_APPLY
  581. }
  582. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  583. ActiComplete.UserNames = userIds
  584. ActiComplete.UserId = this.User.Id
  585. ActiComplete.Remarks = dataother.AuditorRemark
  586. ActiComplete.CallbackUrl = ""
  587. if dataother.SuccessStatus == 1 {
  588. ActiComplete.Result = "1"
  589. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  590. if receiveVal == "true" {
  591. supplierCertAppendEntity.Status = status
  592. supplierCertAppendEntity.Step = step
  593. cols := []string{
  594. "Status",
  595. "Step",
  596. }
  597. svc.UpdateEntityByIdCols(appendId, supplierCertAppendEntity, cols)
  598. if supplierCertAppendEntity.Status == "5" {
  599. if supplierCertAppendEntity.InStyle == "1" {
  600. paysvc := paymentinfo.GetPaymentService(utils.DBE)
  601. var Amount float64
  602. if supplierCertAppendEntity.AppendType == "01" {
  603. Amount = 6000
  604. } else if supplierCertAppendEntity.AppendType == "02" {
  605. Amount = 7000
  606. } else if supplierCertAppendEntity.AppendType == "03" {
  607. Amount = 8000
  608. }
  609. paysvc.AddPaymentinfo(supplierCertAppendEntity.SupplierId, supplierCertAppendEntity.Id, Amount, "3")
  610. }
  611. }
  612. errinfo.Message = "提交成功!"
  613. errinfo.Code = 0
  614. this.Data["json"] = &errinfo
  615. this.ServeJSON()
  616. } else {
  617. errinfo.Message = "工作流异常,请联系管理员!"
  618. errinfo.Code = -1
  619. this.Data["json"] = &errinfo
  620. this.ServeJSON()
  621. return
  622. }
  623. } else {
  624. ActiComplete.Result = "0"
  625. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  626. if receiveVal == "true" {
  627. if supplierCertAppendEntity.Status == "5" {
  628. supplierCertAppendEntity.Status = backstatus
  629. supplierCertAppendEntity.Step = step
  630. supplierCertAppendEntity.AuditIndex = supplierCertAppendEntity.AuditIndex + 1
  631. }else {
  632. supplierCertAppendEntity.Status = "-1"
  633. supplierCertAppendEntity.Status = "0"
  634. supplierCertAppendEntity.Step = 1
  635. supplierCertAppendEntity.AuditIndex = supplierCertAppendEntity.AuditIndex + 1
  636. }
  637. cols := []string{
  638. "Status",
  639. "Step",
  640. "AuditIndex",
  641. }
  642. _,err := svc.UpdateEntityByIdCols(appendId, supplierCertAppendEntity, cols)
  643. if err == nil {
  644. errinfo.Message = "提交成功!"
  645. errinfo.Code = 0
  646. this.Data["json"] = &errinfo
  647. this.ServeJSON()
  648. }else {
  649. errinfo.Message = "提交失败!"
  650. errinfo.Code = -1
  651. this.Data["json"] = &errinfo
  652. this.ServeJSON()
  653. }
  654. } else {
  655. errinfo.Message = "工作流异常,请联系管理员!"
  656. errinfo.Code = -1
  657. this.Data["json"] = &errinfo
  658. this.ServeJSON()
  659. return
  660. }
  661. }
  662. }