suppliercert.go 42 KB

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