qualchange.go 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/audithistory"
  4. "dashoo.cn/backend/api/business/auditsetting"
  5. "dashoo.cn/backend/api/business/oilsupplier/tableheader"
  6. "dashoo.cn/business2/parameter"
  7. "encoding/json"
  8. "strconv"
  9. "strings"
  10. "time"
  11. "dashoo.cn/backend/api/business/oilsupplier/qualchange"
  12. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  13. "dashoo.cn/backend/api/business/oilsupplier/supplierfile"
  14. "dashoo.cn/business2/permission"
  15. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  16. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  17. "dashoo.cn/backend/api/business/workflow"
  18. "dashoo.cn/backend/api/business/baseUser"
  19. "dashoo.cn/business2/userRole"
  20. . "dashoo.cn/backend/api/controllers"
  21. "dashoo.cn/utils"
  22. )
  23. type QualChangeController struct {
  24. BaseController
  25. }
  26. type QualShenHeModel struct {
  27. QualId int
  28. SuccessStatus int
  29. AuditorRemark string
  30. SuppId int
  31. }
  32. // @Title 获取列表
  33. // @Description get user by token
  34. // @Success 200 {object} []supplier.OilSupplierView
  35. // @router /list [get]
  36. func (this *QualChangeController) GetEntityList() {
  37. //获取分页信息
  38. page := this.GetPageInfoForm()
  39. where := " b.Status >= 1 "
  40. //where := " b.Status >= 7 "
  41. orderby := "a.CreateOn desc"
  42. Order := this.GetString("Order")
  43. Prop := this.GetString("Prop")
  44. if Order != "" && Prop != "" {
  45. orderby = Prop + " " + Order
  46. }
  47. CommercialNo := this.GetString("CommercialNo")
  48. AccessCardNo := this.GetString("AccessCardNo")
  49. SupplierName := this.GetString("SupplierName")
  50. CreateOn := this.GetString("CreateOn")
  51. if CommercialNo != "" {
  52. where = where + " and a.CommercialNo like '%" + CommercialNo + "%'"
  53. }
  54. if AccessCardNo != "" {
  55. where = where + " and b.AccessCardNo like '%" + AccessCardNo + "%'"
  56. }
  57. if SupplierName != "" {
  58. where = where + " and a.SupplierName like '%" + SupplierName + "%'"
  59. }
  60. if CreateOn != "" {
  61. dates := strings.Split(CreateOn, ",")
  62. if len(dates) == 2 {
  63. minDate := dates[0]
  64. maxDate := dates[1]
  65. where = where + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'"
  66. }
  67. }
  68. //企业用户必须加创建人条件
  69. if this.User.IsCompanyUser == 1 {
  70. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  71. } else {
  72. //超级管理员和有查看所有数据权限的用户不加条件
  73. svcPerm := permission.GetPermissionService(utils.DBE)
  74. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
  75. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  76. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  77. }
  78. }
  79. svc := qualchange.GetQualChangeService(utils.DBE)
  80. var list []qualchange.OilSupplierQual
  81. total, list := svc.GetQualPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, OilSupplierFileName, OilQualChangeMainName, orderby, where, page.CurrentPage, page.Size)
  82. var datainfo DataInfo
  83. datainfo.Items = list
  84. datainfo.CurrentItemCount = total
  85. datainfo.PageIndex = page.CurrentPage
  86. datainfo.ItemsPerPage = page.Size
  87. this.Data["json"] = &datainfo
  88. this.ServeJSON()
  89. }
  90. // @Title 获取列表
  91. // @Description get user by token
  92. // @Success 200 {object} []supplier.OilSupplierView
  93. // @router /mytasks [get]
  94. func (this *QualChangeController) GetMyTaskEntityList() {
  95. //获取分页信息
  96. page := this.GetPageInfoForm()
  97. where := " 1=1 "
  98. orderby := "Id"
  99. asc := false
  100. Order := this.GetString("Order")
  101. Prop := this.GetString("Prop")
  102. if Order != "" && Prop != "" {
  103. orderby = Prop
  104. if Order == "asc" {
  105. asc = true
  106. }
  107. }
  108. SupplierTypeName := this.GetString("SupplierTypeName")
  109. RecUnitId := this.GetString("RecUnitId")
  110. AccessCardNo := this.GetString("AccessCardNo")
  111. SupplierName := this.GetString("SupplierName")
  112. CreateOn := this.GetString("CreateOn")
  113. if SupplierTypeName != "" {
  114. where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'"
  115. }
  116. if RecUnitId != "" {
  117. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  118. }
  119. if AccessCardNo != "" {
  120. where = where + " and AccessCardNo like '%" + AccessCardNo + "%'"
  121. }
  122. if SupplierName != "" {
  123. where = where + " and SupplierName like '%" + SupplierName + "%'"
  124. }
  125. if CreateOn != "" {
  126. dates := strings.Split(CreateOn, ",")
  127. if len(dates) == 2 {
  128. minDate := dates[0]
  129. maxDate := dates[1]
  130. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  131. }
  132. }
  133. //找出待办任务
  134. actisvc := workflow.GetActivitiService(utils.DBE)
  135. certIdList := actisvc.GetMyTasks(workflow.OIL_INFO_CHANGE, this.User.Id)
  136. appendIdarr := strings.Split(certIdList, ",")
  137. for i, item := range appendIdarr {
  138. idx := strings.Index(item, "-")
  139. if idx >= 0 {
  140. appendIdarr[i] = strings.Split(item, "-")[0]
  141. }
  142. }
  143. certIdList = strings.Join(appendIdarr, ",")
  144. svc := qualchange.GetQualChangeService(utils.DBE)
  145. var list []qualchange.OilQualChangeMain
  146. var total int64 = 0
  147. if certIdList != "" {
  148. where += " and Id in (" + certIdList + ")"
  149. where += " and Status != -2 "
  150. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  151. }
  152. var datainfo DataInfo
  153. datainfo.Items = list
  154. datainfo.CurrentItemCount = total
  155. datainfo.PageIndex = page.CurrentPage
  156. datainfo.ItemsPerPage = page.Size
  157. this.Data["json"] = &datainfo
  158. this.ServeJSON()
  159. }
  160. // @Title 资质文件
  161. // @Description get user by token
  162. // @Success 200 {object} models.Userblood
  163. // @router /filelist [get]
  164. func (this *QualChangeController) FileList() {
  165. page := this.GetPageInfoForm()
  166. var list []qualchange.OilQualChangeDetail
  167. svc := qualchange.GetQualChangeService(utils.DBE)
  168. where := " 1=1 and a.IsDelete = 0"
  169. orderby := "a.SupplierTypeCode"
  170. asc := true
  171. Order := this.GetString("Order")
  172. Prop := this.GetString("Prop")
  173. if Order != "" && Prop != "" {
  174. orderby = Prop
  175. if Order == "asc" {
  176. asc = true
  177. }
  178. }
  179. SupplierId := this.GetString("SupplierId")
  180. MInfoId := this.GetString("MInfoId")
  181. if SupplierId != "" {
  182. where = where + " and a.SupplierId = '" + SupplierId + "'"
  183. }
  184. SupplierTypeCode := this.GetString("SupplierTypeCode")
  185. if SupplierTypeCode != "" {
  186. where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')"
  187. }
  188. var total int64
  189. AuditStatus := this.GetString("Status")
  190. if AuditStatus == "8" {
  191. total = svc.GetQualPagingEntitiesStatus(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId)
  192. } else {
  193. total = svc.GetQualPagingEntities(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId)
  194. }
  195. var datainfo DataInfo
  196. datainfo.Items = list
  197. datainfo.CurrentItemCount = total
  198. this.Data["json"] = &datainfo
  199. this.ServeJSON()
  200. }
  201. // @Title 添加
  202. // @Description 新增信息变更
  203. // @Success 200 {object} controllers.Request
  204. // @router /addqualmain [post]
  205. func (this *QualChangeController) AddQualMain() {
  206. SupplierId := this.GetString("SupplierId")
  207. Remark := this.GetString("Remark")
  208. var qualchmain qualchange.OilQualChangeMain
  209. var errinfo ErrorDataInfo
  210. qualchmain.SupplierId, _ = strconv.Atoi(SupplierId)
  211. qualchmain.Remark = Remark
  212. qualchmain.CreateOn = time.Now()
  213. qualchmain.CreateBy = this.User.Realname
  214. qualchmain.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  215. svc := qualchange.GetQualChangeService(utils.DBE)
  216. _, err := svc.InsertEntityBytbl(OilQualChangeMainName, &qualchmain)
  217. if err == nil {
  218. errinfo.Message = "添加成功!"
  219. errinfo.Code = 0
  220. errinfo.Item = qualchmain.Id
  221. this.Data["json"] = &errinfo
  222. this.ServeJSON()
  223. } else {
  224. errinfo.Message = "添加失败!"
  225. errinfo.Code = -1
  226. this.Data["json"] = &errinfo
  227. this.ServeJSON()
  228. }
  229. }
  230. // @Title 资质文件
  231. // @Description get user by token
  232. // @Success 200 {object} models.Userblood
  233. // @router /auditfilelist [get]
  234. func (this *QualChangeController) AuditFileList() {
  235. page := this.GetPageInfoForm()
  236. var list []qualchange.OilQualChangeDetail1
  237. svc := qualchange.GetQualChangeService(utils.DBE)
  238. where := " 1=1"
  239. orderby := "a.Id"
  240. asc := true
  241. Order := this.GetString("Order")
  242. Prop := this.GetString("Prop")
  243. if Order != "" && Prop != "" {
  244. orderby = Prop
  245. if Order == "asc" {
  246. asc = true
  247. }
  248. }
  249. SupplierId := this.GetString("SupplierId")
  250. MInfoId := this.GetString("MInfoId")
  251. if SupplierId != "" {
  252. where = where + " and a.SupplierId = '" + SupplierId + "'"
  253. }
  254. SupplierTypeCode := this.GetString("SupplierTypeCode")
  255. if SupplierTypeCode != "" {
  256. where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')"
  257. }
  258. where = where + " and a.IsDelete = 0"
  259. var total int64
  260. AuditStatus := this.GetString("Status")
  261. if AuditStatus == "8" {
  262. total = svc.GetQualPagingEntitiesStatus(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId)
  263. } else {
  264. total = svc.GetQualPagingEntities(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId)
  265. }
  266. var datainfo DataInfo
  267. datainfo.Items = list
  268. datainfo.CurrentItemCount = total
  269. this.Data["json"] = &datainfo
  270. this.ServeJSON()
  271. }
  272. // @Title 获取年审企业名称
  273. // @Description 获取实体
  274. // @Success 200 {object} annualaudit.OilAnnualAudit
  275. // @router /supplierlist [get]
  276. func (this *QualChangeController) GetSupplierList() {
  277. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  278. var supplierlist []annualaudit.Suppliername
  279. supplierlist = svc.GetSupplierList(""+OilSupplierName, ""+OilAnnualAuditName)
  280. var datainfo DataInfo
  281. datainfo.Items = supplierlist
  282. this.Data["json"] = &datainfo
  283. this.ServeJSON()
  284. }
  285. // @Title 获取字典列表
  286. // @Description get user by token
  287. // @Success 200 {object} map[string]interface{}
  288. // @router /dictlist [get]
  289. func (this *QualChangeController) GetDictList() {
  290. dictList := make(map[string]interface{})
  291. //dictSvc := items.GetItemsService(utils.DBE)
  292. userSvc := baseUser.GetBaseUserService(utils.DBE)
  293. //customerSvc := svccustomer.GetCustomerService(utils.DBE)
  294. //dictList["WellNo"] = dictSvc.GetKeyValueItems("WellNo", "")
  295. var userEntity userRole.Base_User
  296. userSvc.GetEntityById(this.User.Id, &userEntity)
  297. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId("", userEntity.Departmentid)
  298. //var dictCustomer []svccustomer.Customer
  299. //customerSvc.GetEntitysByWhere("" + CustomerName, "", &dictCustomer)
  300. //dictList["EntrustCorp"] = &dictCustomer
  301. var datainfo DataInfo
  302. datainfo.Items = dictList
  303. this.Data["json"] = &datainfo
  304. this.ServeJSON()
  305. }
  306. // @Title 获取实体
  307. // @Description 获取实体
  308. // @Success 200 {object} annualaudit.OilAnnualAudit
  309. // @router /get/:id [get]
  310. func (this *QualChangeController) GetEntity() {
  311. Id := this.Ctx.Input.Param(":id")
  312. var model annualaudit.OilAnnualAudit
  313. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  314. svc.GetEntityByIdBytbl(""+OilAnnualAuditName, Id, &model)
  315. this.Data["json"] = &model
  316. this.ServeJSON()
  317. }
  318. // @Title 添加
  319. // @Description 新增
  320. // @Success 200 {object} controllers.Request
  321. // @router /add [post]
  322. func (this *QualChangeController) AddEntity() {
  323. var model annualaudit.OilAnnualAudit
  324. var errinfo ErrorDataInfo
  325. var jsonBlob = this.Ctx.Input.RequestBody
  326. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  327. json.Unmarshal(jsonBlob, &model)
  328. where := "SupplierId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName
  329. var auditentity []annualaudit.OilAnnualAudit
  330. svc.GetEntitysByWhere(""+OilAnnualAuditName, where, &auditentity)
  331. if len(auditentity) == 1 {
  332. errinfo.Message = "已提交年审,请勿重复提交!"
  333. errinfo.Code = -1
  334. this.Data["json"] = &errinfo
  335. this.ServeJSON()
  336. return
  337. }
  338. supwhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = " + model.SupplierTypeName
  339. supsvc := supplier.GetOilSupplierService(utils.DBE)
  340. var list []supplier.OilSupplierView
  341. total := supsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supwhere)
  342. if total == 0 {
  343. errinfo.Message = "请先提交准入申请再提交年审!"
  344. errinfo.Code = -1
  345. this.Data["json"] = &errinfo
  346. this.ServeJSON()
  347. return
  348. }
  349. var suppliermodel supplier.OilSupplierView
  350. suppliermodel = list[0]
  351. model.RecUnitId = suppliermodel.RecUnitId
  352. model.CerId, _ = strconv.Atoi(suppliermodel.CertId)
  353. model.Status = "0"
  354. model.BackReason = suppliermodel.BackReason
  355. //svc.GetEntitysByWhere(""+OilSupplierName, supwhere, &supplierlist)
  356. model.CreateOn = time.Now()
  357. model.CreateBy = this.User.Realname
  358. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  359. //model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int()
  360. _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
  361. annualId := model.Id
  362. //工作流开始
  363. processInstanceId, _ := svc.SubmitOrgAudit("", model.WorkflowId, utils.ToStr(model.CerId), utils.ToStr(model.Id), workflow.OIL_AUDIT_APPLY, workflow.FIRST_TRIAL, this.User.Id, "1", "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName)
  364. var auditmodel annualaudit.OilAnnualAudit
  365. auditmodel.WorkflowId = processInstanceId
  366. cols := []string{
  367. "Id",
  368. "WorkflowId",
  369. }
  370. svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
  371. if err == nil {
  372. //新增
  373. errinfo.Message = "添加成功!"
  374. errinfo.Code = 0
  375. errinfo.Item = model.Id
  376. this.Data["json"] = &errinfo
  377. this.ServeJSON()
  378. } else {
  379. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  380. errinfo.Code = -1
  381. this.Data["json"] = &errinfo
  382. this.ServeJSON()
  383. }
  384. }
  385. // @Title 修改实体
  386. // @Description 修改实体
  387. // @Success 200 {object} controllers.Request
  388. // @router /update/:id [post]
  389. func (this *QualChangeController) UpdateEntity() {
  390. id := this.Ctx.Input.Param(":id")
  391. var errinfo ErrorInfo
  392. if id == "" {
  393. errinfo.Message = "操作失败!请求信息不完整"
  394. errinfo.Code = -2
  395. this.Data["json"] = &errinfo
  396. this.ServeJSON()
  397. return
  398. }
  399. var model annualaudit.OilAnnualAudit
  400. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  401. var jsonBlob = this.Ctx.Input.RequestBody
  402. json.Unmarshal(jsonBlob, &model)
  403. model.ModifiedOn = time.Now()
  404. model.ModifiedBy = this.User.Realname
  405. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  406. cols := []string{
  407. "Id",
  408. "Code",
  409. "Name",
  410. "F01",
  411. "F02",
  412. "F03",
  413. "F04",
  414. "F05",
  415. "F06",
  416. "F07",
  417. "F25",
  418. "Remark",
  419. "DeletionStateCode",
  420. "CreateOn",
  421. "CreateUserId",
  422. "CreateBy",
  423. "ModifiedOn",
  424. "ModifiedUserId",
  425. "ModifiedBy",
  426. }
  427. err := svc.UpdateEntityBytbl(""+OilAnnualAuditName, id, &model, cols)
  428. if err == nil {
  429. errinfo.Message = "修改成功!"
  430. errinfo.Code = 0
  431. this.Data["json"] = &errinfo
  432. this.ServeJSON()
  433. } else {
  434. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  435. errinfo.Code = -1
  436. this.Data["json"] = &errinfo
  437. this.ServeJSON()
  438. }
  439. }
  440. // @Title 资质文件变更上传
  441. // @Description 更新文件上传
  442. // @Param id path string true
  443. // @Success 200 {object}
  444. // @router /editqualchange/:id [put]
  445. func (this *QualChangeController) EditQualChange() {
  446. id := this.Ctx.Input.Param(":id")
  447. var errinfo ErrorInfo
  448. if id == "" {
  449. errinfo.Message = "操作失败!请求信息不完整"
  450. errinfo.Code = -2
  451. this.Data["json"] = &errinfo
  452. this.ServeJSON()
  453. return
  454. }
  455. var model qualchange.OilQualChangeDetail
  456. var jsonblob = this.Ctx.Input.RequestBody
  457. svc := qualchange.GetQualChangeService(utils.DBE)
  458. json.Unmarshal(jsonblob, &model)
  459. if strings.ReplaceAll(model.FileUrl, " ", "") == "" {
  460. errinfo.Message = "资质文件地址错误,请重新上传!"
  461. errinfo.Code = -1
  462. this.Data["json"] = &errinfo
  463. this.ServeJSON()
  464. return
  465. }
  466. model.FileUrl = strings.Trim(model.FileUrl, "$")
  467. model.FileName = strings.Trim(model.FileName, "$")
  468. model.OldFileUrl = strings.Trim(model.OldFileUrl, "$")
  469. model.OldFileName = strings.Trim(model.OldFileName, "$")
  470. var supplierfile supplierfile.OilSupplierFile
  471. svc.GetEntityByIdBytbl(OilSupplierFileName, model.Id, &supplierfile)
  472. if supplierfile.FileUrl == "" {
  473. //区别 更新前和更新后文件
  474. supplierfile.FileUrl = strings.Trim(model.FileUrl, "$")
  475. supplierfile.FileName = strings.Trim(model.FileName, "$")
  476. supplierfile.EffectDate = model.EffectDate
  477. }
  478. supplierfile.ModifiedOn = time.Now()
  479. supplierfile.ModifiedUserId, _ = strconv.Atoi(this.User.Id)
  480. supplierfile.ModifiedBy = this.User.Realname
  481. supplierfile.OtherRemark = model.Remark
  482. svc.UpdateEntityBywheretbl(OilSupplierFileName, &supplierfile, []string{"EffectDate", "FileUrl", "FileName", "ModifiedOn", "ModifiedUserId", "ModifiedBy", "OtherRemark"}, "Id = "+strconv.Itoa(model.Id))
  483. var err error
  484. var entity qualchange.OilQualChangeDetail
  485. var qualdetaimodel []qualchange.OilQualChangeDetail
  486. var mainentirt qualchange.OilQualChangeMain
  487. var qualmain []qualchange.OilQualChangeMain
  488. qmwhere := " SupplierId = " + utils.ToStr(model.SupplierId)
  489. svc.GetEntitysByWhere(OilQualChangeMainName, qmwhere, &qualmain)
  490. mainentirt.SupplierCertId = model.SupplierCertId
  491. mainentirt.Status = "0"
  492. mainentirt.Step = 1
  493. err = svc.UpdateEntityBywheretbl(OilQualChangeMainName, &mainentirt, []string{"SupplierCertId", "Status", "Step"}, qmwhere)
  494. qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(model.Id) + " and ParentId=" + id
  495. svc.GetEntitysByWhere(OilQualChangeDetailName, qdwhere, &qualdetaimodel)
  496. entity = model
  497. entity.Id = 0
  498. entity.ParentId, _ = strconv.Atoi(id)
  499. entity.SupplierCertId = model.SupplierCertId
  500. entity.FileId = model.Id
  501. if len(qualdetaimodel) == 0 {
  502. entity.CreateOn = time.Now()
  503. entity.CreateBy = this.User.Realname
  504. entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  505. _, err = svc.InsertEntityBytbl(OilQualChangeDetailName, &entity)
  506. } else {
  507. err = svc.UpdateEntityBywheretbl(OilQualChangeDetailName, &entity, []string{"EffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere)
  508. }
  509. if err == nil {
  510. errinfo.Message = "操作成功!"
  511. errinfo.Code = 0
  512. this.Data["json"] = &errinfo
  513. this.ServeJSON()
  514. } else {
  515. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  516. errinfo.Code = -1
  517. this.Data["json"] = &errinfo
  518. this.ServeJSON()
  519. }
  520. }
  521. // @Title 信息变更添加资质
  522. // @Description 信息变更添加资质
  523. // @Success 200 {object}
  524. // @router /addqualchange/:id [post]
  525. func (this *QualChangeController) AddQualChange() {
  526. id := this.Ctx.Input.Param(":id")
  527. var errinfo ErrorInfo
  528. if id == "" {
  529. errinfo.Message = "操作失败!请求信息不完整"
  530. errinfo.Code = -2
  531. this.Data["json"] = &errinfo
  532. this.ServeJSON()
  533. return
  534. }
  535. var model qualchange.OilQualChangeDetail
  536. var jsonblob = this.Ctx.Input.RequestBody
  537. json.Unmarshal(jsonblob, &model)
  538. if strings.ReplaceAll(model.FileUrl, " ", "") == "" {
  539. errinfo.Message = "资质文件地址错误,请重新上传!"
  540. errinfo.Code = -1
  541. this.Data["json"] = &errinfo
  542. this.ServeJSON()
  543. return
  544. }
  545. svc := qualchange.GetQualChangeService(utils.DBE)
  546. var supplierfile supplierfile.OilSupplierFile
  547. where := "SupplierId = '" + strconv.Itoa(model.SupplierId) + "' and NeedFileType='" + model.NeedFileType + "' and SupplierTypeCode in ( '000', '" + model.SupplierTypeCode + "')"
  548. has := svc.GetEntity(&supplierfile, where)
  549. var tableHeader tableheader.BaseTableheader
  550. where1 := "Name = '" + model.NeedFileType + "'"
  551. svc.GetEntityByWhere(BaseTableHeader, where1, &tableHeader)
  552. if has {
  553. errinfo.Message = "操作失败!该资质已添加!"
  554. errinfo.Code = -1
  555. this.Data["json"] = &errinfo
  556. this.ServeJSON()
  557. return
  558. }
  559. supplierfile.SupplierId = model.SupplierId
  560. supplierfile.SupplierTypeCode = model.SupplierTypeCode
  561. supplierfile.IsManuf = tableHeader.IsManuf
  562. supplierfile.NeedFileType = model.NeedFileType
  563. supplierfile.FileType = 1
  564. supplierfile.SupType = 4
  565. supplierfile.CreateOn = time.Now()
  566. supplierfile.CreateUserId, _ = strconv.Atoi(this.User.Id)
  567. supplierfile.CreateBy = this.User.Realname
  568. supplierfile.FileUrl = strings.Trim(model.FileUrl, "$")
  569. supplierfile.FileName = strings.Trim(model.FileName, "$")
  570. supplierfile.EffectDate = model.EffectDate
  571. supplierfile.OtherRemark = model.Remark
  572. svc.InsertEntity(&supplierfile)
  573. model.ParentId, _ = strconv.Atoi(id)
  574. model.FileId = supplierfile.Id
  575. model.FileUrl = strings.Trim(model.FileUrl, "$")
  576. model.FileName = strings.Trim(model.FileName, "$")
  577. var err error
  578. var qualdetaimodel []qualchange.OilQualChangeDetail
  579. qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(supplierfile.Id) + " and ParentId=" + id
  580. svc.GetEntitysByWhere(OilQualChangeDetailName, qdwhere, &qualdetaimodel)
  581. if len(qualdetaimodel) == 0 {
  582. model.CreateOn = time.Now()
  583. model.CreateBy = this.User.Realname
  584. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  585. _, err = svc.InsertEntityBytbl(OilQualChangeDetailName, &model)
  586. } else {
  587. err = svc.UpdateEntityBywheretbl(OilQualChangeDetailName, &model, []string{"OldEffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere)
  588. }
  589. if err == nil {
  590. errinfo.Message = "操作成功!"
  591. errinfo.Code = 0
  592. this.Data["json"] = &errinfo
  593. this.ServeJSON()
  594. } else {
  595. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  596. errinfo.Code = -1
  597. this.Data["json"] = &errinfo
  598. this.ServeJSON()
  599. }
  600. }
  601. // @Title 提交审批
  602. // @Description 提交审批
  603. // @Success 200 {object} controllers.Request
  604. // @router /audit/:id [post]
  605. func (this *QualChangeController) AuditEntity() {
  606. suppId := this.Ctx.Input.Param(":id")
  607. firstAudit := this.GetString("auditer")
  608. fushenauditer := this.GetString("fushenauditer")
  609. Remark := this.GetString("Remark")
  610. //取出审批列表
  611. svc := qualchange.GetQualChangeService(utils.DBE)
  612. var suppentity supplier.OilSupplier
  613. //供方信息
  614. svc.GetEntityById(suppId, &suppentity)
  615. var qualmain qualchange.OilQualChangeMain
  616. where := " SupplierId = " + suppId
  617. svc.GetEntity(&qualmain, where)
  618. var errinfo ErrorDataInfo
  619. defer func() { //finally处理失败的异常
  620. if err := recover(); err != nil {
  621. errinfo.Message = "提交失败," + err.(string)
  622. errinfo.Code = -1
  623. this.Data["json"] = &errinfo
  624. this.ServeJSON()
  625. } else {
  626. //返回正确结果
  627. errinfo.Message = "审核提交成功"
  628. errinfo.Code = 0
  629. this.Data["json"] = &errinfo
  630. this.ServeJSON()
  631. }
  632. }()
  633. svcActiviti := workflow.GetActivitiService(utils.DBE)
  634. processInstanceId := ""
  635. businessKey := ""
  636. if qualmain.WorkFlowId == "0" || len(qualmain.WorkFlowId) <= 0 {
  637. //启动工作流
  638. businessKey = utils.ToStr(qualmain.Id) + "-" + strconv.Itoa(qualmain.AuditIndex)
  639. processInstanceId = svcActiviti.StartProcess(workflow.OIL_INFO_CHANGE, businessKey, this.User.Id)
  640. }
  641. var ActiComplete workflow.ActiCompleteVM
  642. ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE
  643. ActiComplete.BusinessKey = businessKey
  644. ActiComplete.UserNames = firstAudit
  645. ActiComplete.UserId = this.User.Id
  646. ActiComplete.Result = "1"
  647. ActiComplete.Remarks = Remark
  648. ActiComplete.CallbackUrl = ""
  649. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  650. if receiveVal == "true" {
  651. //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
  652. var qualmainmodel qualchange.OilQualChangeMain
  653. qualmainmodel.WorkFlowId = processInstanceId
  654. qualmainmodel.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
  655. qualmainmodel.AuditIndex = qualmain.AuditIndex + 1
  656. qualmainmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
  657. qualmainmodel.SecondAudit, _ = strconv.Atoi(fushenauditer)
  658. qualmainmodel.BusinessKey = ActiComplete.BusinessKey
  659. qualmainmodel.CreateOn = time.Now()
  660. qualmainmodel.CreateBy = this.User.Realname
  661. qualmainmodel.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  662. qualmainmodel.SupplierName = suppentity.SupplierName
  663. qualmainmodel.CommercialNo = suppentity.CommercialNo
  664. cols := []string{
  665. "Id",
  666. "WorkflowId",
  667. "Status",
  668. "Step",
  669. "AuditIndex",
  670. "FirstAudit",
  671. "SecondAudit",
  672. "BusinessKey",
  673. "CreateOn",
  674. "CreateBy",
  675. "CreateUserId",
  676. "SupplierName",
  677. "CommercialNo",
  678. }
  679. _, err := svc.UpdateEntityByIdCols(qualmain.Id, qualmainmodel, cols)
  680. if err == nil {
  681. errinfo.Message = "提交成功!"
  682. errinfo.Code = 0
  683. this.Data["json"] = &errinfo
  684. this.ServeJSON()
  685. } else {
  686. errinfo.Message = "提交失败!"
  687. errinfo.Code = -1
  688. this.Data["json"] = &errinfo
  689. this.ServeJSON()
  690. }
  691. } else {
  692. errinfo.Message = "工作流异常,请联系管理员!"
  693. errinfo.Code = -1
  694. this.Data["json"] = &errinfo
  695. this.ServeJSON()
  696. return
  697. }
  698. }
  699. // @Title 审批
  700. // @Description 审批
  701. // @Success 200 {object} controllers.Request
  702. // @router /qualaudit [post]
  703. func (this *QualChangeController) QualAudit() {
  704. svc := qualchange.GetQualChangeService(utils.DBE)
  705. var jsonblob = this.Ctx.Input.RequestBody
  706. var dataother QualShenHeModel
  707. json.Unmarshal(jsonblob, &dataother)
  708. //取出审批列表
  709. var qualid = dataother.QualId
  710. var qualmodel qualchange.OilQualChangeMain
  711. svc.GetEntityById(utils.ToStr(dataother.QualId), &qualmodel)
  712. var qualdetail []qualchange.OilQualChangeDetail
  713. where := "ParentId = " + utils.ToStr(qualid)
  714. svc.GetEntities(&qualdetail, where)
  715. var errinfo ErrorDataInfo
  716. defer func() { //finally处理失败的异常
  717. if err := recover(); err != nil {
  718. errinfo.Message = "提交失败," + err.(string)
  719. errinfo.Code = -1
  720. this.Data["json"] = &errinfo
  721. this.ServeJSON()
  722. } else {
  723. //返回正确结果
  724. errinfo.Message = "审核提交成功"
  725. errinfo.Code = 0
  726. this.Data["json"] = &errinfo
  727. this.ServeJSON()
  728. }
  729. }()
  730. //审核状态判断进行的操作
  731. step := 2
  732. status := ""
  733. backstatus := "0"
  734. var userIds string
  735. if qualmodel.Status == suppliercert.FIRST_TRIAL_STATUS {
  736. userIds = utils.ToStr(qualmodel.SecondAudit)
  737. status = suppliercert.SECOND_TRIAL_STATUS
  738. step = 2
  739. backstatus = suppliercert.NOPASS_STATUS
  740. } else if qualmodel.Status == suppliercert.SECOND_TRIAL_STATUS {
  741. status = suppliercert.CENT_AUDIT_STATUS
  742. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  743. step = 2
  744. //dictSvc := items.GetItemsService(utils.DBE)
  745. //deptIds := dictSvc.GetKeyValueItems("CENT_AUDIT")
  746. //var users []userRole.Base_RoleList
  747. //certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  748. //for _, dept := range deptIds {
  749. // certSrv.GetAuditUser(dept.Value, workflow.PROF_REGULATION, &users)
  750. // for _, tmpUser := range users {
  751. // userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
  752. // }
  753. //}
  754. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  755. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  756. var userlist []userRole.Base_User
  757. var setting auditsetting.Base_OilAuditSetting
  758. usvc := userRole.GetUserService(utils.DBE)
  759. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  760. svc.GetEntity(&setting, where)
  761. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  762. tempstr := strings.Join(ids, ",")
  763. uids := strings.Replace(tempstr, "uid_", "", -1)
  764. uids = strings.Trim(uids, ",")
  765. if uids != "" {
  766. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  767. svc.GetEntities(&userlist, where)
  768. }
  769. for _, tmpUser := range userlist {
  770. userIds += strconv.Itoa(tmpUser.Id) + ","
  771. }
  772. userIds = strings.Trim(userIds, ",")
  773. } else if qualmodel.Status == suppliercert.CENT_AUDIT_STATUS {
  774. status = suppliercert.ALL_PASE_STATUS
  775. step = 3
  776. backstatus = suppliercert.NO_THIRD_TRIAL_STATUS
  777. }
  778. svcActiviti := workflow.GetActivitiService(utils.DBE)
  779. var ActiComplete workflow.ActiCompleteVM
  780. ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE
  781. ActiComplete.BusinessKey = qualmodel.BusinessKey
  782. ActiComplete.UserNames = userIds
  783. ActiComplete.UserId = this.User.Id
  784. ActiComplete.Remarks = dataother.AuditorRemark
  785. ActiComplete.CallbackUrl = ""
  786. var myerr error
  787. if dataother.SuccessStatus == 1 {
  788. ActiComplete.Result = "1"
  789. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  790. qualmodel.Status = status
  791. qualmodel.Step = step
  792. if receiveVal == "true" {
  793. cols := []string{
  794. "Id",
  795. "Status",
  796. "Step",
  797. }
  798. _, err := svc.UpdateEntityByIdCols(qualid, qualmodel, cols)
  799. if err == nil {
  800. //原信息表更新
  801. if qualmodel.Status == suppliercert.CENT_AUDIT_STATUS {
  802. if len(qualdetail) > 0 {
  803. for i := 0; i < len(qualdetail); i++ {
  804. var supfilemodel supplierfile.OilSupplierFile
  805. supfilemodel.FileName = qualdetail[i].FileName
  806. supfilemodel.FileUrl = qualdetail[i].FileUrl
  807. supfilemodel.EffectDate = qualdetail[i].EffectDate
  808. err = svc.UpdateEntityBytbl(OilSupplierFileName, qualdetail[i].FileId, &supfilemodel, []string{"FileName", "FileUrl", "EffectDate"})
  809. }
  810. }
  811. }
  812. if myerr == nil {
  813. errinfo.Message = "提交成功!"
  814. errinfo.Code = 0
  815. this.Data["json"] = &errinfo
  816. this.ServeJSON()
  817. } else {
  818. errinfo.Message = "提交失败!"
  819. errinfo.Code = -1
  820. this.Data["json"] = &errinfo
  821. this.ServeJSON()
  822. }
  823. } else {
  824. errinfo.Message = "工作流异常,请联系管理员!"
  825. errinfo.Code = -1
  826. this.Data["json"] = &errinfo
  827. this.ServeJSON()
  828. return
  829. }
  830. } else {
  831. ActiComplete.Result = "0"
  832. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  833. if receiveVal == "true" {
  834. if qualmodel.Status == suppliercert.CENT_AUDIT_STATUS {
  835. qualmodel.Status = backstatus
  836. } else {
  837. qualmodel.Status = backstatus
  838. // 审批历史
  839. var audithistoryentity audithistory.Base_AuditHistory
  840. audithistoryentity.EntityId = qualid
  841. audithistoryentity.WorkflowId = qualmodel.WorkFlowId
  842. audithistoryentity.Process = ActiComplete.ProcessKey
  843. audithistoryentity.BusinessKey = ActiComplete.BusinessKey
  844. audithistoryentity.Type = "04"
  845. audithistoryentity.BackStep = qualmodel.Status
  846. audithistoryentity.Index = qualmodel.AuditIndex
  847. audithistoryentity.CreateOn = time.Now()
  848. audithistoryentity.CreateBy = this.User.Realname
  849. audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  850. _, myerr = svc.InsertEntity(audithistoryentity)
  851. qualmodel.WorkFlowId = ""
  852. }
  853. qualmodel.Step = 1
  854. cols := []string{
  855. "Status",
  856. "Step",
  857. }
  858. _, myerr := svc.UpdateEntityByIdCols(qualid, qualmodel, cols)
  859. if myerr == nil {
  860. errinfo.Message = "提交成功!"
  861. errinfo.Code = 0
  862. this.Data["json"] = &errinfo
  863. this.ServeJSON()
  864. } else {
  865. errinfo.Message = "提交失败!"
  866. errinfo.Code = -1
  867. this.Data["json"] = &errinfo
  868. this.ServeJSON()
  869. }
  870. } else {
  871. errinfo.Message = "工作流异常,请联系管理员!"
  872. errinfo.Code = -1
  873. this.Data["json"] = &errinfo
  874. this.ServeJSON()
  875. return
  876. }
  877. }
  878. }
  879. }