2
3

suppliercertappend.go 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/audithistory"
  4. "dashoo.cn/backend/api/business/auditsetting"
  5. msg2 "dashoo.cn/backend/api/business/msg"
  6. "dashoo.cn/backend/api/business/oilsupplier/infochange"
  7. "dashoo.cn/backend/api/business/oilsupplier/oilcostmanage"
  8. "dashoo.cn/backend/api/business/oilsupplier/qualchange"
  9. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  10. "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
  11. "dashoo.cn/backend/api/business/oilsupplier/supplierfile"
  12. "dashoo.cn/backend/api/business/oilsupplier/supplierlog"
  13. "dashoo.cn/backend/api/business/oilsupplier/tableheader"
  14. "dashoo.cn/backend/api/business/organize"
  15. "dashoo.cn/backend/api/business/paymentinfo"
  16. "dashoo.cn/backend/api/business/register"
  17. "dashoo.cn/business2/parameter"
  18. "dashoo.cn/business2/userRole"
  19. "dashoo.cn/business3/items"
  20. "encoding/json"
  21. "fmt"
  22. "log"
  23. "strconv"
  24. "strings"
  25. "time"
  26. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  27. "dashoo.cn/backend/api/business/workflow"
  28. "dashoo.cn/business2/permission"
  29. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
  30. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub"
  31. . "dashoo.cn/backend/api/controllers"
  32. "dashoo.cn/utils"
  33. "github.com/go-xorm/xorm"
  34. )
  35. type OilSupplierCertAppendController struct {
  36. BaseController
  37. }
  38. type AppShenHeModel struct {
  39. AnnualId int
  40. SuccessStatus int
  41. AuditorRemark string
  42. Auditer int
  43. MajorDept int
  44. }
  45. // @Title 获取列表
  46. // @Description 获取列表
  47. // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
  48. // @router /list [get]
  49. func (this *OilSupplierCertAppendController) GetList() {
  50. //获取分页信息
  51. page := this.GetPageInfoForm()
  52. where := " b.Id is not null "
  53. orderby := "b.Id"
  54. asc := false
  55. Order := this.GetString("Order")
  56. Prop := this.GetString("Prop")
  57. if Order != "" && Prop != "" {
  58. orderby = Prop
  59. if Order == "asc" {
  60. asc = true
  61. }
  62. }
  63. ApplyDate := this.GetString("ApplyDate")
  64. RecUnitId := this.GetString("RecUnitId")
  65. RecUnitName := this.GetString("RecUnitName")
  66. AppendType := this.GetString("AppendType")
  67. DenyReason := this.GetString("DenyReason")
  68. AuditDate := this.GetString("AuditDate")
  69. Remark := this.GetString("Remark")
  70. CreateOn := this.GetString("CreateOn")
  71. if ApplyDate != "" {
  72. where = where + " and b.ApplyDate like '%" + ApplyDate + "%'"
  73. }
  74. if RecUnitId != "" {
  75. where = where + " and b.RecUnitId like '%" + RecUnitId + "%'"
  76. }
  77. if RecUnitName != "" {
  78. where = where + " and b.RecUnitName like '%" + RecUnitName + "%'"
  79. }
  80. if AppendType != "" {
  81. where = where + " and b.AppendType like '%" + AppendType + "%'"
  82. }
  83. if DenyReason != "" {
  84. where = where + " and b.DenyReason like '%" + DenyReason + "%'"
  85. }
  86. if AuditDate != "" {
  87. where = where + " and b.AuditDate like '%" + AuditDate + "%'"
  88. }
  89. if Remark != "" {
  90. where = where + " and b.Remark like '%" + Remark + "%'"
  91. }
  92. if CreateOn != "" {
  93. dates := strings.Split(CreateOn, ",")
  94. if len(dates) == 2 {
  95. minDate := dates[0]
  96. maxDate := dates[1]
  97. where = where + " and b.CreateOn>='" + minDate + "' and b.CreateOn<='" + maxDate + "'"
  98. }
  99. }
  100. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  101. var registerUser register.OilCorporateInfo
  102. sql := " UserName='" + this.User.Username + "'"
  103. svc.GetEntity(&registerUser, sql)
  104. //企业用户必须加创建人条件
  105. if this.User.IsCompanyUser == 1 {
  106. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  107. } else {
  108. //超级管理员和有查看所有数据权限的用户不加条件
  109. svcPerm := permission.GetPermissionService(utils.DBE)
  110. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.append.AllRecord")
  111. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  112. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  113. }
  114. }
  115. var list []suppliercertappend.OilSupplierCertAppend
  116. //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  117. total := svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertAppendName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  118. var datainfo DataInfo
  119. datainfo.Items = list
  120. datainfo.CurrentItemCount = total
  121. datainfo.PageIndex = page.CurrentPage
  122. datainfo.ItemsPerPage = page.Size
  123. this.Data["json"] = &datainfo
  124. this.ServeJSON()
  125. }
  126. // @Title 通过Id获取信息
  127. // @Description get user by token
  128. // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
  129. // @router /getEntityById/:id [get]
  130. func (this *OilSupplierCertAppendController) GetEntityById() {
  131. Id := this.Ctx.Input.Param(":id")
  132. var model suppliercertappend.OilSupplierCertAppend
  133. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  134. svc.GetEntityByIdBytbl(OilSupplierCertAppendName, Id, &model)
  135. this.Data["json"] = &model
  136. this.ServeJSON()
  137. }
  138. // @Title 获取公司信息
  139. // @Description 根据创建用户Id和增项类别号获取公司信息
  140. // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
  141. // @router /getsupplier [get]
  142. func (this *OilSupplierCertAppendController) GetSupplier() {
  143. SuppTypeCode := this.GetString("SuppTypeCode")
  144. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  145. where := "1=1 "
  146. if SuppTypeCode != "" {
  147. where = " WHERE b.Id is NOT NULL AND a.SupplierTypeCode = '" + SuppTypeCode + "' and a.InFlag='1'"
  148. } else {
  149. where = " WHERE b.Id is NOT NULL AND a.InFlag='1'"
  150. }
  151. var registerUser register.OilCorporateInfo
  152. sql := " UserName='" + this.User.Username + "'"
  153. svc.GetEntity(&registerUser, sql)
  154. //企业用户必须加创建人条件
  155. if this.User.IsCompanyUser == 1 {
  156. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or b.CommercialNo='" + registerUser.CommercialNo + "')"
  157. //if this.User.IsCompanyUser == 1 {
  158. // where = where + " and b.CreateUserId = '" + this.User.Id + "'"
  159. }
  160. 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 "
  161. sqlStr = sqlStr + where
  162. model, _ := svc.DBE.QueryString(sqlStr)
  163. this.Data["json"] = &model
  164. this.ServeJSON()
  165. }
  166. // @Title 添加
  167. // @Description 添加增项信息
  168. // @Success 200 {object} controllers.Request
  169. // @router /addappend [post]
  170. func (this *OilSupplierCertAppendController) AddAppend() {
  171. var errinfo DataEntryInfo
  172. var jsonblob = this.Ctx.Input.RequestBody
  173. var cermodel suppliercert.OilSupplierCert
  174. var model suppliercertappend.OilSupplierCertAppend
  175. json.Unmarshal(jsonblob, &model)
  176. where := " Id = " + utils.ToStr(model.SupplierCertId) + " and SupplierTypeCode = '" + model.AppendType + "'"
  177. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  178. where_app := " SupplierCertId = " + utils.ToStr(model.SupplierCertId) + " and SupplierId = " + utils.ToStr(model.SupplierId) + " and AppendType = '" + model.AppendType + "'"
  179. //where_app += " and Status < 11"
  180. orderby := "ApplyDate DESC"
  181. var modeltmp []suppliercertappend.OilSupplierCertAppend
  182. svc.GetEntitysByOrderbyWhere(OilSupplierCertAppendName, where_app, orderby, &modeltmp)
  183. if len(modeltmp) > 0 {
  184. status, _ := strconv.Atoi(modeltmp[0].Status)
  185. if status < 11 && status != 8 {
  186. errinfo.Message = "已提交增项申请,审批通过后才可再提交申请!"
  187. errinfo.Code = -1
  188. errinfo.Info = model.Id
  189. this.Data["json"] = &errinfo
  190. this.ServeJSON()
  191. return
  192. }
  193. var cert suppliercert.OilSupplierCert
  194. svc.GetEntityById(model.SupplierCertId, &cert)
  195. if cert.IsRestrict == 1 {
  196. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  197. sAddLimitMonth, _ := strconv.Atoi(paramSvc.GetBaseparameterMessage("GFGL1", "paramset", "sAddLimitMonth"))
  198. fmt.Println(modeltmp[0].AuditDate)
  199. ApplyDate, _ := time.Parse("2006-01-02", modeltmp[0].ApplyDate.AddDate(0, sAddLimitMonth, 0).Format("2006-01-02"))
  200. nowtime, _ := time.Parse("2006-01-02", time.Now().Format("2006-01-02"))
  201. fmt.Println(ApplyDate, nowtime)
  202. if nowtime.Before(ApplyDate) {
  203. errinfo.Message = "增项申请时间未到!请" + ApplyDate.Format("2006-01-02") + "日以后再来申请"
  204. errinfo.Code = -1
  205. errinfo.Info = model.Id
  206. this.Data["json"] = &errinfo
  207. this.ServeJSON()
  208. return
  209. }
  210. }
  211. style, _ := strconv.Atoi(modeltmp[0].InStyle)
  212. if style != 6 {
  213. id := strconv.Itoa(modeltmp[0].SupplierId)
  214. sqlCount := "select count(*) from OilSupplierCertAppend where SupplierId=" + id + " AND YEAR(CreateOn)=YEAR(NOW()) AND AppendType = '" + model.AppendType + "'"
  215. var countRes, _ = svc.DBE.Query(sqlCount)
  216. if len(countRes) > 0 {
  217. results := countRes[0]
  218. var count int64
  219. for _, value := range results {
  220. count, _ = strconv.ParseInt(string(value), 10, 64)
  221. break
  222. }
  223. if count >= 2 {
  224. errinfo.Message = "除招标准入外,增项申请每年只能申请2次!"
  225. errinfo.Code = -1
  226. errinfo.Info = model.Id
  227. this.Data["json"] = &errinfo
  228. this.ServeJSON()
  229. return
  230. }
  231. }
  232. }
  233. }
  234. svc.GetEntityByWhere(OilSupplierCertName, where, &cermodel)
  235. //if cermodel.Status != "8" {
  236. // errinfo.Message = "入库后才能提交增项!"
  237. // errinfo.Code = -1
  238. // this.Data["json"] = &errinfo
  239. // this.ServeJSON()
  240. // return
  241. //}
  242. //添加增项信息
  243. model.AccessCardNo = cermodel.AccessCardNo
  244. model.InStyle = cermodel.InStyle
  245. model.ApplyDate = time.Now() //申请日期
  246. model.CreateOn = time.Now()
  247. model.CreateBy = this.User.Realname
  248. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  249. _, err := svc.InsertEntityBytbl(OilSupplierCertAppendName, &model)
  250. //查询准入范围
  251. var certsublist []suppliercertsub.OilSupplierCertSub
  252. suwhere := " SupplierCertId = " + utils.ToStr(model.SupplierCertId) + " and SupplierTypeCode = " + model.AppendType
  253. svc.GetEntitysByWhere(OilSupplierCertSubName, suwhere, &certsublist)
  254. if err == nil {
  255. errinfo.Message = "操作成功!"
  256. errinfo.Code = 0
  257. errinfo.Item = certsublist
  258. errinfo.Info = model.Id
  259. this.Data["json"] = &errinfo
  260. this.ServeJSON()
  261. } else {
  262. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  263. errinfo.Code = -1
  264. this.Data["json"] = &errinfo
  265. this.ServeJSON()
  266. }
  267. }
  268. // @Title 修改实体
  269. // @Description 修改实体
  270. // @Success 200 {object} controllers.Request
  271. // @router /update/:id [post]
  272. func (this *OilSupplierCertAppendController) UpdateEntity() {
  273. var errinfo ErrorInfo
  274. var model suppliercertappend.OilSupplierCertAppend
  275. id := this.Ctx.Input.Param(":id")
  276. if id == "" {
  277. errinfo.Message = "操作失败!请求信息不完整"
  278. errinfo.Code = -2
  279. this.Data["json"] = &errinfo
  280. this.ServeJSON()
  281. return
  282. }
  283. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  284. var jsonBlob = this.Ctx.Input.RequestBody
  285. json.Unmarshal(jsonBlob, &model)
  286. model.ApplyDate = time.Now() //更新申请日期
  287. model.ModifiedOn = time.Now()
  288. model.ModifiedBy = this.User.Realname
  289. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  290. cols := []string{
  291. "Id",
  292. "InStyle",
  293. "ApplyDate",
  294. "RecUnitFlag",
  295. "RecUnitId",
  296. "RecUnitName",
  297. "WorkRange",
  298. "Remark",
  299. "ModifiedOn",
  300. "ModifiedUserId",
  301. "ModifiedBy",
  302. }
  303. err := svc.UpdateEntityBytbl(OilSupplierCertAppendName, id, &model, cols)
  304. if err == nil {
  305. errinfo.Message = "修改成功!"
  306. errinfo.Code = 0
  307. this.Data["json"] = &errinfo
  308. this.ServeJSON()
  309. } else {
  310. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  311. errinfo.Code = -1
  312. this.Data["json"] = &errinfo
  313. this.ServeJSON()
  314. }
  315. }
  316. // @Title 删除
  317. // @Description 级联删除
  318. // @Success 200 {object} ErrorInfo
  319. // @Failure 403 :id 为空
  320. // @router /delete/:Id [delete]
  321. func (this *OilSupplierCertAppendController) DeleteEntity() {
  322. Id := this.Ctx.Input.Param(":Id")
  323. var errinfo ErrorInfo
  324. if Id == "" {
  325. errinfo.Message = "操作失败!请求信息不完整"
  326. errinfo.Code = -2
  327. this.Data["json"] = &errinfo
  328. this.ServeJSON()
  329. return
  330. }
  331. //定义session
  332. var session *xorm.Session
  333. session = utils.DBE.NewSession()
  334. svc := suppliercertappend.GetOilSupplierCertAppendSession(session)
  335. svcSub := suppliercertappendsub.GetOilSupplierCertAppendSubSession(session)
  336. //"session开始" 之前,首先定义 "session关闭"
  337. defer session.Close()
  338. err := session.Begin()
  339. where := "SupplierCertAppendId = " + Id
  340. //删除资质表信息
  341. var submodel []suppliercertsub.OilSupplierCertSub
  342. svc.GetEntitysByWhere(OilSupplierCertSubName, where, &submodel)
  343. if len(submodel) > 0 {
  344. filewhere := " SupplierId = " + utils.ToStr(submodel[0].SupplierId) + " and SupType = 2 and SupplierTypeCode = '" + submodel[0].SupplierTypeCode + "'"
  345. err = svcSub.DeleteEntityBytbl(OilSupplierFileName, filewhere)
  346. if err != nil {
  347. //回滚操作
  348. session.Rollback()
  349. }
  350. }
  351. //删除准入范围表信息
  352. err = svcSub.DeleteEntityBytbl(OilSupplierCertSubName, where)
  353. if err != nil {
  354. //回滚操作
  355. session.Rollback()
  356. }
  357. //最后删除主表信息
  358. var model suppliercertappend.OilSupplierCertAppend
  359. var entityempty suppliercertappend.OilSupplierCertAppend
  360. opdesc := "删除-" + Id
  361. err = svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertAppendName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "增项信息")
  362. if err != nil {
  363. session.Rollback()
  364. }
  365. //提交操作
  366. err = session.Commit()
  367. if err == nil {
  368. activitiService := workflow.GetActivitiService(utils.DBE)
  369. var deleteProcessVM workflow.DeleteProcessVM
  370. if model.WorkFlowId != "" && model.WorkFlowId != "0" {
  371. deleteProcessVM.ProcessInstanceId = model.WorkFlowId
  372. deleteProcessVM.DeleteReason = "未审批通过,被申请人删除"
  373. activitiService.DeleteComplete(deleteProcessVM)
  374. }
  375. errinfo.Message = "删除成功"
  376. errinfo.Code = 0
  377. this.Data["json"] = &errinfo
  378. this.ServeJSON()
  379. } else {
  380. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  381. errinfo.Code = -1
  382. this.Data["json"] = &errinfo
  383. this.ServeJSON()
  384. }
  385. }
  386. // @Title 获取列表
  387. // @Description get user by token
  388. // @Success 200 {object} []supplier.OilSupplierView
  389. // @router /mytasks [get]
  390. func (this *OilSupplierCertAppendController) GetMyTaskEntityList() {
  391. //获取分页信息
  392. page := this.GetPageInfoForm()
  393. where := " 1=1 "
  394. orderby := "Id"
  395. asc := false
  396. Order := this.GetString("Order")
  397. where = where + " and Status>0"
  398. Prop := this.GetString("Prop")
  399. if Order != "" && Prop != "" {
  400. orderby = Prop
  401. if Order == "asc" {
  402. asc = true
  403. }
  404. }
  405. ApplyDate := this.GetString("ApplyDate")
  406. RecUnitId := this.GetString("RecUnitId")
  407. RecUnitName := this.GetString("RecUnitName")
  408. AppendType := this.GetString("AppendType")
  409. DenyReason := this.GetString("DenyReason")
  410. AuditDate := this.GetString("AuditDate")
  411. Remark := this.GetString("Remark")
  412. CreateOn := this.GetString("CreateOn")
  413. if ApplyDate != "" {
  414. where = where + " and ApplyDate like '%" + ApplyDate + "%'"
  415. }
  416. if RecUnitId != "" {
  417. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  418. }
  419. if RecUnitName != "" {
  420. where = where + " and RecUnitName like '%" + RecUnitName + "%'"
  421. }
  422. if AppendType != "" {
  423. where = where + " and AppendType like '" + AppendType + "'"
  424. }
  425. if DenyReason != "" {
  426. where = where + " and DenyReason like '%" + DenyReason + "%'"
  427. }
  428. if AuditDate != "" {
  429. where = where + " and AuditDate like '%" + AuditDate + "%'"
  430. }
  431. if Remark != "" {
  432. where = where + " and Remark like '%" + Remark + "%'"
  433. }
  434. if CreateOn != "" {
  435. dates := strings.Split(CreateOn, ",")
  436. if len(dates) == 2 {
  437. minDate := dates[0]
  438. maxDate := dates[1]
  439. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  440. }
  441. }
  442. //找出待办任务
  443. actisvc := workflow.GetActivitiService(utils.DBE)
  444. var appendIdList string
  445. str := actisvc.GetMyTasks(workflow.OIL_ENUSER_APPEND_APPLY, this.User.Id)
  446. if str != "" {
  447. appendIdList = str
  448. appendIdList = appendIdList + ","
  449. }
  450. appendIdList = strings.Trim(appendIdList, ",")
  451. appendIdarr := strings.Split(appendIdList, ",")
  452. for i, item := range appendIdarr {
  453. idx := strings.Index(item, "-")
  454. if idx >= 0 {
  455. appendIdarr[i] = strings.Split(item, "-")[0]
  456. }
  457. }
  458. appendIdList = strings.Join(appendIdarr, ",")
  459. var list []suppliercertappend.OilSupplierCertAppend
  460. var total int64 = 0
  461. if appendIdList != "" {
  462. where += " and Id in (" + appendIdList + ")"
  463. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  464. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  465. }
  466. //根据部门查询待办任务
  467. var datainfo DataInfo
  468. datainfo.Items = list
  469. datainfo.CurrentItemCount = total
  470. datainfo.PageIndex = page.CurrentPage
  471. datainfo.ItemsPerPage = page.Size
  472. this.Data["json"] = &datainfo
  473. this.ServeJSON()
  474. }
  475. // @Title 提交审批
  476. // @Description 提交审批
  477. // @Success 200 {object} controllers.Request
  478. // @router /audit/:id [post]
  479. func (this *OilSupplierCertAppendController) AuditEntity() {
  480. certappendId := this.Ctx.Input.Param(":id")
  481. firstAudit := this.GetString("FirstAuditName")
  482. SecondAudit := this.GetString("SecondAudit")
  483. ThirdAudit := this.GetString("ThirdAudit")
  484. AuditRemark := this.GetString("AuditRemark")
  485. typeCode := this.GetString("TypeCode")
  486. var setting auditsetting.Base_OilAuditSetting
  487. var userlist []userRole.Base_User
  488. usvc := userRole.GetUserService(utils.DBE)
  489. where := ""
  490. if this.User.IsCompanyUser == 1 {
  491. if typeCode == "01" {
  492. where = "AuditStepCode='" + workflow.SUB_OFFICE_WZ + "'"
  493. } else if typeCode == "02" {
  494. where = "AuditStepCode='" + workflow.SUB_OFFICE_JS + "'"
  495. } else if typeCode == "03" {
  496. where = "AuditStepCode='" + workflow.SUB_OFFICE_JF + "'"
  497. }
  498. usvc.GetEntity(&setting, where)
  499. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  500. tempstr := strings.Join(ids, ",")
  501. uids := strings.Replace(tempstr, "uid_", "", -1)
  502. uids = strings.Trim(uids, ",")
  503. if uids != "" {
  504. where := "Id in (" + uids + ")" + " and UnitId=" + firstAudit
  505. usvc.GetEntities(&userlist, where)
  506. }
  507. userIds := ""
  508. for _, tmpUser := range userlist {
  509. userIds += strconv.Itoa(tmpUser.Id) + ","
  510. }
  511. firstAudit = strings.Trim(userIds, ",")
  512. }
  513. //取出审批列表
  514. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  515. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  516. certSrv.GetEntityById(certappendId, &supplierCertAppendEntity)
  517. var supplierEntity supplier.OilSupplier
  518. certSrv.GetEntityById(supplierCertAppendEntity.SupplierId, &supplierEntity)
  519. var historworkflowid string
  520. historworkflowid = supplierCertAppendEntity.WorkFlowId
  521. var errinfo ErrorDataInfo
  522. defer func() { //finally处理失败的异常
  523. if err := recover(); err != nil {
  524. errinfo.Message = "提交失败," + err.(string)
  525. errinfo.Code = -1
  526. this.Data["json"] = &errinfo
  527. this.ServeJSON()
  528. } else {
  529. //返回正确结果
  530. errinfo.Message = "审核提交成功"
  531. errinfo.Code = 0
  532. this.Data["json"] = &errinfo
  533. this.ServeJSON()
  534. }
  535. }()
  536. var suppappend suppliercertappend.OilSupplierCertAppend
  537. //第二次提交先清空工作流
  538. if supplierCertAppendEntity.AuditIndex > 0 {
  539. suppappend.WorkFlowId = ""
  540. cols := []string{
  541. "WorkflowId",
  542. }
  543. certSrv.UpdateEntityByIdCols(certappendId, suppappend, cols)
  544. supplierCertAppendEntity.WorkFlowId = ""
  545. }
  546. svcActiviti := workflow.GetActivitiService(utils.DBE)
  547. processInstanceId := ""
  548. businessKey := ""
  549. result := strconv.Itoa(this.User.IsCompanyUser)
  550. if supplierCertAppendEntity.WorkFlowId == "0" || len(supplierCertAppendEntity.WorkFlowId) <= 0 {
  551. //启动工作流
  552. businessKey = certappendId + "-" + strconv.Itoa(supplierCertAppendEntity.AuditIndex)
  553. processInstanceId = svcActiviti.StartProcess2(workflow.OIL_ENUSER_APPEND_APPLY, businessKey, this.User.Id, result, supplierCertAppendEntity.AppendType, supplierCertAppendEntity.SupplierName)
  554. }
  555. var ActiComplete workflow.ActiCompleteVM
  556. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  557. ActiComplete.BusinessKey = businessKey
  558. ActiComplete.UserNames = firstAudit
  559. ActiComplete.UserId = this.User.Id
  560. ActiComplete.Result = result
  561. ActiComplete.Remarks = AuditRemark
  562. ActiComplete.CallbackUrl = ""
  563. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  564. var cert suppliercert.OilSupplierCert
  565. svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  566. colscert := []string{
  567. "IsRestrict",
  568. }
  569. cert.IsRestrict = 1
  570. svc.UpdateEntityBytbl(OilSupplierCertName, supplierCertAppendEntity.SupplierCertId, &cert, colscert)
  571. if receiveVal == "true" {
  572. if supplierCertAppendEntity.AuditIndex > 0 {
  573. // 审批历史
  574. var audithistoryentity audithistory.Base_AuditHistory
  575. audithistoryentity.EntityId, _ = strconv.Atoi(certappendId)
  576. audithistoryentity.WorkflowId = historworkflowid
  577. audithistoryentity.Process = workflow.OIL_ENUSER_APPEND_APPLY
  578. audithistoryentity.BusinessKey = businessKey
  579. audithistoryentity.Type = supplierCertAppendEntity.AppendType
  580. audithistoryentity.BackStep = supplierCertAppendEntity.Status
  581. audithistoryentity.Index = supplierCertAppendEntity.AuditIndex
  582. audithistoryentity.CreateOn = time.Now()
  583. audithistoryentity.CreateBy = this.User.Realname
  584. audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  585. certSrv.InsertEntity(audithistoryentity)
  586. }
  587. errinfo.Message = "提交成功!"
  588. errinfo.Code = 0
  589. this.Data["json"] = &errinfo
  590. this.ServeJSON()
  591. } else {
  592. errinfo.Message = "工作流异常,请联系管理员!"
  593. errinfo.Code = -1
  594. this.Data["json"] = &errinfo
  595. this.ServeJSON()
  596. return
  597. }
  598. //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
  599. var model suppliercertappend.OilSupplierCertAppend
  600. model.WorkFlowId = processInstanceId
  601. if this.User.IsCompanyUser == 1 {
  602. model.Status = suppliercert.FEN_TRIAL_STATUS //分办
  603. } else if this.User.IsCompanyUser == 0 {
  604. model.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
  605. }
  606. model.FirstAudit, _ = strconv.Atoi(firstAudit)
  607. model.SecondAudit, _ = strconv.Atoi(SecondAudit)
  608. model.ThirdAudit, _ = strconv.Atoi(ThirdAudit)
  609. model.AuditIndex = supplierCertAppendEntity.AuditIndex
  610. model.BusinessKey = businessKey
  611. model.ProcessKey = ActiComplete.ProcessKey
  612. cols := []string{
  613. "Id",
  614. "WorkFlowId",
  615. "Status",
  616. "FirstAudit",
  617. "SecondAudit",
  618. "ThirdAudit",
  619. "AuditIndex",
  620. "BusinessKey",
  621. "ProcessKey",
  622. }
  623. certSrv.UpdateEntityByIdCols(certappendId, model, cols)
  624. }
  625. // @Title 企业用户提交审批----启动工作流
  626. // @Description 企业用户提交按钮
  627. // @Success 200 {object} controllers.Request
  628. // @router /company-audit/:id [post]
  629. func (this *OilSupplierCertAppendController) CompanySubmitAuditEntity() {
  630. certAppendId := this.Ctx.Input.Param(":id")
  631. unitId := this.GetString("UnitId")
  632. AuditRemark := this.GetString("AuditRemark")
  633. var errinfo ErrorDataInfo
  634. defer func() { //finally处理失败的异常
  635. if err := recover(); err != nil {
  636. errinfo.Message = err.(string)
  637. errinfo.Code = -1
  638. this.Data["json"] = &errinfo
  639. this.ServeJSON()
  640. } else {
  641. //返回正确结果
  642. errinfo.Message = "提交成功"
  643. errinfo.Code = 0
  644. this.Data["json"] = &errinfo
  645. this.ServeJSON()
  646. }
  647. }()
  648. if this.User.IsCompanyUser == 0 {
  649. // 0二级单位; 1企业用户
  650. panic("非企业用户,请用分办功能提交!")
  651. }
  652. //取出准入申请表
  653. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  654. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  655. certSrv.GetEntityById(certAppendId, &supplierCertAppendEntity)
  656. // 检查是否允许提交
  657. certSrv.IsSupplierCertAppendCanSubmit(strconv.Itoa(supplierCertAppendEntity.SupplierId), certAppendId)
  658. stepCode := workflow.GetWorkFlowStepCode(supplierCertAppendEntity.AppendType)
  659. auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
  660. approverIds := auditSettingService.GetApproverIdsByStepCodeAndUnitId(stepCode, unitId)
  661. if approverIds == "" {
  662. panic("该分办单位未配置审批人")
  663. }
  664. //取出企业主表
  665. supplierSvc := supplier.GetOilSupplierService(utils.DBE)
  666. var supplierEntity supplier.OilSupplier
  667. //检查是否可提交
  668. supplierSvc.GetEntityById(supplierCertAppendEntity.SupplierId, &supplierEntity)
  669. status, _ := strconv.Atoi(supplierCertAppendEntity.Status)
  670. if status > 0 {
  671. panic("工作流已经启动,请刷新重试!")
  672. }
  673. svcActiviti := workflow.GetActivitiService(utils.DBE)
  674. //启动工作流
  675. businessKey := supplierCertAppendEntity.BusinessKey
  676. processInstanceId := supplierCertAppendEntity.WorkFlowId
  677. // 如果被驳回,不再新启工作流
  678. if processInstanceId == "" {
  679. businessKey = certAppendId + "-" + strconv.Itoa(supplierCertAppendEntity.AuditIndex)
  680. processInstanceId = svcActiviti.StartProcess2(workflow.OIL_ENUSER_APPEND_APPLY, businessKey, this.User.Id, "1", supplierCertAppendEntity.AppendType, supplierEntity.SupplierName)
  681. if len(processInstanceId) <= 0 {
  682. panic("工作流启动失败!")
  683. }
  684. supplierCertAppendEntity.AuditIndex += 1
  685. }
  686. // 将启动和工作流,选择的初审和复审人员保存下来
  687. cols := []string{
  688. "Id",
  689. "WorkflowId",
  690. "BusinessKey",
  691. "ProcessKey",
  692. "CommitComId",
  693. "AuditIndex",
  694. }
  695. supplierCertAppendEntity.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  696. supplierCertAppendEntity.BusinessKey = businessKey
  697. supplierCertAppendEntity.WorkFlowId = processInstanceId
  698. supplierCertAppendEntity.CommitComId = unitId
  699. certSrv.UpdateEntityByIdCols(certAppendId, supplierCertAppendEntity, cols)
  700. var ActiComplete workflow.ActiCompleteVM
  701. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  702. ActiComplete.BusinessKey = businessKey
  703. ActiComplete.UserId = this.User.Id
  704. ActiComplete.Result = "1" //提交给二级单位分办
  705. ActiComplete.Remarks = AuditRemark
  706. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  707. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  708. if receiveVal != "true" {
  709. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  710. panic("任务已审批,请刷新!")
  711. }
  712. // 记录申请快照 选择在准入项更新以后记录快照,防止第一次审批未通过后又改变了准入范围(待验证)。 // CertSubStatus字段 -1是什么状态
  713. supplierLogService := supplierlog.GetSupplierLogService(utils.DBE)
  714. sourceId, _ := strconv.Atoi(certAppendId)
  715. supplierLogService.SaveSupplierLogForAppend(supplierCertAppendEntity.SupplierId, sourceId) // 增项
  716. }
  717. // @Title 二级分办单位提交审批----启动工作流
  718. // @Description 二级分办单位提交审批按钮
  719. // @Success 200 {object} controllers.Request
  720. // @router /unit-audit/:id [post]
  721. func (this *OilSupplierCertAppendController) SeparateUnitSubmitAuditEntity() {
  722. certAppendId := this.Ctx.Input.Param(":id")
  723. firstAudit := this.GetString("firstAudit")
  724. secondAudit := this.GetString("SecondAudit")
  725. thirdAudit := this.GetString("ThirdAudit")
  726. auditRemark := this.GetString("AuditRemark")
  727. userId := this.User.Id
  728. var baseUserInfo userRole.Base_User
  729. userService := userRole.GetUserService(utils.DBE)
  730. userService.GetEntityById(userId, &baseUserInfo)
  731. unitId := baseUserInfo.UnitId
  732. var errinfo ErrorDataInfo
  733. defer func() { //finally处理失败的异常
  734. if err := recover(); err != nil {
  735. errinfo.Message = err.(string)
  736. errinfo.Code = -1
  737. this.Data["json"] = &errinfo
  738. this.ServeJSON()
  739. } else {
  740. //返回正确结果
  741. errinfo.Message = "审核提交成功"
  742. errinfo.Code = 0
  743. this.Data["json"] = &errinfo
  744. this.ServeJSON()
  745. }
  746. }()
  747. if firstAudit == "" || secondAudit == "" {
  748. panic("请选择审批人")
  749. }
  750. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  751. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  752. certSrv.GetEntityById(certAppendId, &supplierCertAppendEntity)
  753. var supplierEntity supplier.OilSupplier
  754. certSrv.GetEntityById(supplierCertAppendEntity.SupplierId, &supplierEntity)
  755. svcActiviti := workflow.GetActivitiService(utils.DBE)
  756. //启动工作流
  757. businessKey := supplierCertAppendEntity.BusinessKey
  758. processInstanceId := supplierCertAppendEntity.WorkFlowId
  759. // 如果被驳回,不再新启工作流
  760. if processInstanceId == "" {
  761. businessKey = certAppendId + "-" + strconv.Itoa(supplierCertAppendEntity.AuditIndex)
  762. processInstanceId = svcActiviti.StartProcess2(workflow.OIL_ENUSER_APPEND_APPLY, businessKey, this.User.Id, "1", supplierCertAppendEntity.AppendType, supplierEntity.SupplierName)
  763. if len(processInstanceId) <= 0 {
  764. panic("工作流启动失败!")
  765. }
  766. supplierCertAppendEntity.AuditIndex += 1
  767. }
  768. // 将启动和工作流,选择的初审和复审人员保存下来
  769. cols := []string{
  770. "Id",
  771. "FirstAudit",
  772. "SecondAudit",
  773. "thirdAudit",
  774. "WorkFlowId",
  775. "BusinessKey",
  776. "ProcessKey",
  777. "CommitComId",
  778. "AuditIndex",
  779. }
  780. supplierCertAppendEntity.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  781. supplierCertAppendEntity.BusinessKey = businessKey
  782. supplierCertAppendEntity.WorkFlowId = processInstanceId
  783. supplierCertAppendEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  784. supplierCertAppendEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
  785. supplierCertAppendEntity.ThirdAudit, _ = strconv.Atoi(thirdAudit)
  786. supplierCertAppendEntity.CommitComId = strconv.Itoa(unitId)
  787. certSrv.UpdateEntityByIdCols(certAppendId, supplierCertAppendEntity, cols)
  788. var ActiComplete workflow.ActiCompleteVM
  789. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  790. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  791. ActiComplete.UserId = this.User.Id // 当前审批操作人员
  792. //ActiComplete.UserNames = secondAudit // 当前审批操作人员
  793. ActiComplete.Result = "2" //分办提交给二级单位初审
  794. ActiComplete.Remarks = auditRemark
  795. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  796. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  797. if receiveVal != "true" {
  798. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  799. panic("任务已审批,请刷新!")
  800. }
  801. // 记录申请快照 选择在准入项更新以后记录快照,防止第一次审批未通过后又改变了准入范围(待验证)。 // CertSubStatus字段 -1是什么状态
  802. supplierLogService := supplierlog.GetSupplierLogService(utils.DBE)
  803. sourceId, _ := strconv.Atoi(certAppendId)
  804. supplierLogService.SaveSupplierLogForAppend(supplierCertAppendEntity.SupplierId, sourceId) // 增项
  805. }
  806. // @Title 二级单位分办 --审批
  807. // @Description 二级分办
  808. // @Success 200 {object} controllers.Request
  809. // @router /separate-audit/:id [post]
  810. func (this *OilSupplierCertAppendController) AppendSeparateAuditEntity() {
  811. certAppendId := this.Ctx.Input.Param(":id")
  812. Result := this.GetString("Result")
  813. firstAudit := this.GetString("FirstAudit")
  814. secondAudit := this.GetString("SecondAudit")
  815. thirdAudit := this.GetString("ThirdAudit")
  816. // typeCode := this.GetString("TypeCode")
  817. AuditRemark := this.GetString("AuditRemark")
  818. var errinfo ErrorDataInfo
  819. defer func() { //finally处理失败的异常
  820. if err := recover(); err != nil {
  821. errinfo.Message = err.(string)
  822. errinfo.Code = -1
  823. this.Data["json"] = &errinfo
  824. this.ServeJSON()
  825. } else {
  826. //返回正确结果
  827. errinfo.Message = "审核提交成功"
  828. errinfo.Code = 0
  829. this.Data["json"] = &errinfo
  830. this.ServeJSON()
  831. }
  832. }()
  833. // 取出准入表信息
  834. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  835. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  836. certSrv.GetEntityById(certAppendId, &supplierCertAppendEntity)
  837. if Result == "1" {
  838. if firstAudit == "" || secondAudit == "" {
  839. panic("请选择审批人")
  840. }
  841. // 将选择的初审和复审人员保存下来
  842. cols := []string{
  843. "FirstAudit",
  844. "SecondAudit",
  845. "thirdAudit",
  846. }
  847. supplierCertAppendEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  848. supplierCertAppendEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
  849. supplierCertAppendEntity.ThirdAudit, _ = strconv.Atoi(thirdAudit) // 专业处室
  850. certSrv.UpdateEntityByIdCols(certAppendId, supplierCertAppendEntity, cols)
  851. }
  852. svcActiviti := workflow.GetActivitiService(utils.DBE)
  853. var ActiComplete workflow.ActiCompleteVM
  854. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  855. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  856. ActiComplete.UserId = this.User.Id // 审批人员
  857. // ActiComplete.UserNames = secondAudit // 初审人员
  858. ActiComplete.Result = Result //分办完成后只向前走
  859. ActiComplete.Remarks = AuditRemark
  860. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  861. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  862. if receiveVal != "true" {
  863. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  864. panic("任务已审批,请刷新!")
  865. }
  866. }
  867. // @Title 分办之后的各级审批 --审批 包含:二级单位初审、复审, 业务处室专业审核
  868. // @Description 分办之后的各级审批
  869. // @Success 200 {object} controllers.Request
  870. // @router /common-audit/:id [post]
  871. func (this *OilSupplierCertAppendController) AppendCommonAuditEntity() {
  872. certAppendId := this.Ctx.Input.Param(":id")
  873. result := this.GetString("result")
  874. AuditRemark := this.GetString("AuditRemark")
  875. var errinfo ErrorDataInfo
  876. defer func() { //finally处理失败的异常
  877. if err := recover(); err != nil {
  878. errinfo.Message = err.(string)
  879. errinfo.Code = -1
  880. this.Data["json"] = &errinfo
  881. this.ServeJSON()
  882. } else {
  883. //返回正确结果
  884. errinfo.Message = "审核提交成功"
  885. errinfo.Code = 0
  886. this.Data["json"] = &errinfo
  887. this.ServeJSON()
  888. }
  889. }()
  890. //取出准入表信息
  891. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  892. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  893. certSrv.GetEntityById(certAppendId, &supplierCertAppendEntity)
  894. svcActiviti := workflow.GetActivitiService(utils.DBE)
  895. var ActiComplete workflow.ActiCompleteVM
  896. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  897. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  898. ActiComplete.UserId = this.User.Id //审批人员
  899. ActiComplete.Result = result //前台审批[同意、不同意]
  900. ActiComplete.Remarks = AuditRemark
  901. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  902. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  903. if receiveVal != "true" {
  904. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  905. panic("任务已审批,请刷新!")
  906. }
  907. }
  908. // @Title 业务处室接收分办 专业审批
  909. // @Description 业务处室接收分办 专业审批
  910. // @Success 200 {object} controllers.Request
  911. // @router /business-separate-audit/:id [post]
  912. func (this *OilSupplierCertAppendController) AppendBusinessOfficeSeparateAuditEntity() {
  913. certAppendId := this.Ctx.Input.Param(":id")
  914. Result := this.GetString("Result")
  915. ProfessionalAudit := this.GetString("ProfessionalAudit")
  916. AuditRemark := this.GetString("AuditRemark")
  917. var errInfo ErrorDataInfo
  918. defer func() { //finally处理失败的异常
  919. if err := recover(); err != nil {
  920. errInfo.Message = err.(string)
  921. errInfo.Code = -1
  922. this.Data["json"] = &errInfo
  923. this.ServeJSON()
  924. } else {
  925. //返回正确结果
  926. errInfo.Message = "审核提交成功"
  927. errInfo.Code = 0
  928. this.Data["json"] = &errInfo
  929. this.ServeJSON()
  930. }
  931. }()
  932. //取出准入表信息
  933. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  934. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  935. certSrv.GetEntityById(certAppendId, &supplierCertAppendEntity)
  936. // 保证工作流上信息显示准确,暂不考虑异常
  937. if Result == "1" {
  938. cols := []string{
  939. "Id",
  940. "Status",
  941. "ProfessionalAudit",
  942. }
  943. supplierCertAppendId := strings.Split(supplierCertAppendEntity.BusinessKey, "-")[0]
  944. supplierCertAppendEntity.Status = suppliercert.PROF_AUDIT_STATUS //专业处室接收
  945. supplierCertAppendEntity.ProfessionalAudit, _ = strconv.Atoi(ProfessionalAudit)
  946. certSrv.UpdateEntityByIdCols(supplierCertAppendId, supplierCertAppendEntity, cols)
  947. }
  948. svcActiviti := workflow.GetActivitiService(utils.DBE)
  949. var ActiComplete workflow.ActiCompleteVM
  950. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  951. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  952. ActiComplete.UserId = this.User.Id //审批人员
  953. ActiComplete.Result = Result //前台审批[同意、不同意]
  954. ActiComplete.UserNames = ProfessionalAudit // 直接分配业务处室专业审批人
  955. ActiComplete.Remarks = AuditRemark
  956. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  957. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  958. if receiveVal != "true" {
  959. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  960. panic("任务已审批,请刷新!")
  961. }
  962. }
  963. // @Title 集中审批
  964. // @Description 集中审批
  965. // @Success 200 {object} controllers.Request
  966. // @router /concentrate-audit/:id [post]
  967. func (this *OilSupplierCertAppendController) AppendConcentrateAuditEntity() {
  968. certAppendId := this.Ctx.Input.Param(":id")
  969. AuditRemark := this.GetString("AuditRemark") // TODO 前台选择的审批结果
  970. var errInfo ErrorDataInfo
  971. defer func() { //finally处理失败的异常
  972. if err := recover(); err != nil {
  973. errInfo.Message = err.(string)
  974. errInfo.Code = -1
  975. this.Data["json"] = &errInfo
  976. this.ServeJSON()
  977. } else {
  978. //返回正确结果
  979. errInfo.Message = "审核提交成功"
  980. errInfo.Code = 0
  981. this.Data["json"] = &errInfo
  982. this.ServeJSON()
  983. }
  984. }()
  985. //取出准入表信息
  986. certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  987. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  988. certSrv.GetEntityById(certAppendId, &supplierCertAppendEntity)
  989. svcActiviti := workflow.GetActivitiService(utils.DBE)
  990. var ActiComplete workflow.ActiCompleteVM
  991. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  992. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  993. ActiComplete.UserId = this.User.Id //审批人员
  994. ActiComplete.Result = "1" //前台审批[同意、不同意] // TODO 前台选择的审批结果
  995. ActiComplete.Remarks = AuditRemark
  996. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  997. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  998. if receiveVal != "true" {
  999. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  1000. panic("任务已审批,请刷新!")
  1001. }
  1002. //cols := []string{
  1003. // "Id",
  1004. // "Status",
  1005. //}
  1006. //supplierCertId := strings.Split(supplierCertEntity.BusinessKey, "-")[0]
  1007. //supplierCertEntity.Status = suppliercert.PROF_AUDIT_STATUS //专业处室接收
  1008. //certSrv.UpdateEntityByIdCols(supplierCertId, supplierCertEntity, cols)
  1009. }
  1010. // @Title 确认是否入库
  1011. // @Description 确认是否入库
  1012. // @Success 200 {object} controllers.Request
  1013. // @router /update-is-storage/:id [post]
  1014. func (this *OilSupplierCertAppendController) UpdateIsStorage() {
  1015. id := this.Ctx.Input.Param(":id")
  1016. status := this.GetString("Status")
  1017. //PACNumber := this.GetString("PACNumber")
  1018. //SupplierId := this.GetString("SupplierId")
  1019. var errinfo ErrorInfo
  1020. if id == "" {
  1021. errinfo.Message = "操作失败!请求信息不完整"
  1022. errinfo.Code = -2
  1023. this.Data["json"] = &errinfo
  1024. this.ServeJSON()
  1025. return
  1026. }
  1027. defer func() { //finally处理失败的异常
  1028. if err := recover(); err != nil {
  1029. errinfo.Message = err.(string)
  1030. errinfo.Code = -1
  1031. this.Data["json"] = &errinfo
  1032. this.ServeJSON()
  1033. } else {
  1034. //返回正确结果
  1035. if status == "1" {
  1036. errinfo.Message = "入库成功"
  1037. } else {
  1038. errinfo.Message = "退回成功"
  1039. }
  1040. errinfo.Code = 0
  1041. this.Data["json"] = &errinfo
  1042. this.ServeJSON()
  1043. }
  1044. }()
  1045. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  1046. certAppendSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1047. certAppendSrv.GetEntityById(id, &supplierCertAppendEntity)
  1048. //var supplierEntity supplier.OilSupplier
  1049. //srv := supplier.GetOilSupplierService(utils.DBE)
  1050. //srv.GetEntityById(SupplierId, &supplierEntity)
  1051. //supplierEntity.PACNumber = PACNumber
  1052. //srvCols := []string{"PACNumber"}
  1053. //srv.UpdateEntityByIdCols(SupplierId, &supplierEntity, srvCols)
  1054. AuditRemark := ""
  1055. fmt.Println("审批入库传入状态:", status)
  1056. if status == "1" {
  1057. AuditRemark = "审批通过已入库。"
  1058. } else {
  1059. status = "0"
  1060. AuditRemark = "入库退回。"
  1061. }
  1062. svcActiviti := workflow.GetActivitiService(utils.DBE)
  1063. var ActiComplete workflow.ActiCompleteVM
  1064. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  1065. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  1066. ActiComplete.UserId = this.User.Id //审批人员
  1067. ActiComplete.Result = status //前台审批[同意、不同意]
  1068. ActiComplete.Remarks = AuditRemark
  1069. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  1070. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1071. if receiveVal != "true" {
  1072. log.Println("工作流异常, 业务ID:"+supplierCertAppendEntity.BusinessKey+", 流程ID:"+supplierCertAppendEntity.WorkFlowId, " 工作流传参: ", ActiComplete, receiveVal)
  1073. panic("任务已审批,请刷新!")
  1074. }
  1075. }
  1076. // @Title 审批
  1077. // @Description 审批
  1078. // @Param body body suppliercert.OilSupplierCert
  1079. // @Success 200 {object} controllers.Request
  1080. // @router /auditEntityFir/:id [post]
  1081. func (this *OilSupplierCertAppendController) AuditEntityFir() {
  1082. appendId := this.Ctx.Input.Param(":id")
  1083. firstAudit := this.GetString("FirstAuditName")
  1084. secondAudit := this.GetString("SecondAudit")
  1085. thirdAudit := this.GetString("ThirdAudit")
  1086. //取出审批列表
  1087. //certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  1088. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1089. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  1090. svc.GetEntityById(appendId, &supplierCertAppendEntity)
  1091. var supplierEntity supplier.OilSupplier
  1092. wheresup := "Id=" + strconv.Itoa(supplierCertAppendEntity.SupplierId)
  1093. svc.GetEntity(&supplierEntity, wheresup)
  1094. var jsonblob = this.Ctx.Input.RequestBody
  1095. var dataother AppShenHeModel
  1096. json.Unmarshal(jsonblob, &dataother)
  1097. var errinfo ErrorDataInfo
  1098. defer func() { //finally处理失败的异常
  1099. if err := recover(); err != nil {
  1100. errinfo.Message = "提交失败," + err.(string)
  1101. errinfo.Code = -1
  1102. this.Data["json"] = &errinfo
  1103. this.ServeJSON()
  1104. } else {
  1105. //返回正确结果
  1106. errinfo.Message = "审核提交成功"
  1107. errinfo.Code = 0
  1108. this.Data["json"] = &errinfo
  1109. this.ServeJSON()
  1110. }
  1111. }()
  1112. step := 2
  1113. status := ""
  1114. backstatus := "0"
  1115. var userIds string
  1116. if supplierCertAppendEntity.Status == suppliercert.FEN_TRIAL_STATUS {
  1117. userIds = firstAudit
  1118. status = suppliercert.FIRST_TRIAL_STATUS
  1119. backstatus = suppliercert.NO_FEN_TRIAL_STATUS
  1120. step = 2
  1121. if dataother.SuccessStatus == 1 {
  1122. supplierCertAppendEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  1123. supplierCertAppendEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
  1124. supplierCertAppendEntity.ThirdAudit, _ = strconv.Atoi(thirdAudit)
  1125. cols := []string{
  1126. "Id",
  1127. "FirstAudit",
  1128. "SecondAudit",
  1129. "ThirdAudit",
  1130. }
  1131. svc.UpdateEntityByIdCols(appendId, supplierCertAppendEntity, cols)
  1132. }
  1133. }
  1134. if supplierCertAppendEntity.Status == suppliercert.FIRST_TRIAL_STATUS {
  1135. userIds = utils.ToStr(supplierCertAppendEntity.SecondAudit)
  1136. status = suppliercert.SECOND_TRIAL_STATUS
  1137. step = 2
  1138. backstatus = suppliercert.NOPASS_STATUS
  1139. } else if supplierCertAppendEntity.Status == suppliercert.SECOND_TRIAL_STATUS {
  1140. svc := organize.GetOrganizeService(utils.DBE)
  1141. unitId := svc.GetMyUnitDepartmentId(strconv.Itoa(supplierCertAppendEntity.ThirdAudit))
  1142. step = 2
  1143. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  1144. var userlist []userRole.Base_User
  1145. var setting auditsetting.Base_OilAuditSetting
  1146. usvc := userRole.GetUserService(utils.DBE)
  1147. if supplierCertAppendEntity.InStyle == "3" && supplierEntity.MgrUnit == supplier.MGRUNIT {
  1148. status = suppliercert.CENT_AUDIT_STATUS
  1149. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  1150. usvc.GetEntity(&setting, where)
  1151. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  1152. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  1153. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  1154. tempstr := strings.Join(ids, ",")
  1155. uids := strings.Replace(tempstr, "uid_", "", -1)
  1156. uids = strings.Trim(uids, ",")
  1157. if uids != "" {
  1158. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  1159. usvc.GetEntities(&userlist, where)
  1160. }
  1161. } else if supplierCertAppendEntity.InStyle == "3" && supplierEntity.MgrUnit != supplier.MGRUNIT {
  1162. status = suppliercert.CENT_AUDIT_STATUS
  1163. step = 2
  1164. backstatus = suppliercert.NO_PROF_AUDIT_STATUS
  1165. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  1166. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  1167. var userlist []userRole.Base_User
  1168. var setting auditsetting.Base_OilAuditSetting
  1169. usvc := userRole.GetUserService(utils.DBE)
  1170. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  1171. usvc.GetEntity(&setting, where)
  1172. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  1173. tempstr := strings.Join(ids, ",")
  1174. uids := strings.Replace(tempstr, "uid_", "", -1)
  1175. uids = strings.Trim(uids, ",")
  1176. if uids != "" {
  1177. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  1178. usvc.GetEntities(&userlist, where)
  1179. }
  1180. for _, tmpUser := range userlist {
  1181. userIds += strconv.Itoa(tmpUser.Id) + ","
  1182. }
  1183. userIds = strings.Trim(userIds, ",")
  1184. } else if supplierCertAppendEntity.InStyle == "2" || supplierCertAppendEntity.InStyle == "4" || supplierCertAppendEntity.InStyle == "6" {
  1185. step = 2
  1186. status = suppliercert.ALL_PASE_STATUS
  1187. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  1188. } else {
  1189. status = suppliercert.THIRD_TRIAL_STATUS
  1190. where := "AuditStepCode='" + workflow.PROF_RECE + "'"
  1191. svc.GetEntity(&setting, where)
  1192. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  1193. tempstr := strings.Join(ids, ",")
  1194. uids := strings.Replace(tempstr, "uid_", "", -1)
  1195. uids = strings.Trim(uids, ",")
  1196. if uids != "" {
  1197. where := "Id in (" + uids + ")" + " and UnitId=" + unitId
  1198. svc.GetEntities(&userlist, where)
  1199. }
  1200. }
  1201. for _, tmpUser := range userlist {
  1202. userIds += strconv.Itoa(tmpUser.Id) + "," //strconv.FormatInt(tmpUser.Id, 10) + ","
  1203. }
  1204. userIds = strings.Trim(userIds, ",")
  1205. } else if supplierCertAppendEntity.Status == suppliercert.THIRD_TRIAL_STATUS {
  1206. userIds = utils.ToStr(dataother.Auditer)
  1207. status = suppliercert.PROF_AUDIT_STATUS
  1208. step = 2
  1209. backstatus = suppliercert.NO_THIRD_TRIAL_STATUS
  1210. } else if supplierCertAppendEntity.Status == suppliercert.PROF_AUDIT_STATUS {
  1211. if supplierCertAppendEntity.InStyle == "3" {
  1212. status = suppliercert.PAYING_AUDIT_STATUS
  1213. step = 3
  1214. backstatus = suppliercert.NO_CENT_AUDIT_STATUS
  1215. } else {
  1216. status = suppliercert.CENT_AUDIT_STATUS
  1217. step = 2
  1218. backstatus = suppliercert.NO_PROF_AUDIT_STATUS
  1219. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  1220. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  1221. var userlist []userRole.Base_User
  1222. var setting auditsetting.Base_OilAuditSetting
  1223. usvc := userRole.GetUserService(utils.DBE)
  1224. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  1225. usvc.GetEntity(&setting, where)
  1226. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  1227. tempstr := strings.Join(ids, ",")
  1228. uids := strings.Replace(tempstr, "uid_", "", -1)
  1229. uids = strings.Trim(uids, ",")
  1230. if uids != "" {
  1231. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  1232. usvc.GetEntities(&userlist, where)
  1233. }
  1234. for _, tmpUser := range userlist {
  1235. userIds += strconv.Itoa(tmpUser.Id) + ","
  1236. }
  1237. userIds = strings.Trim(userIds, ",")
  1238. }
  1239. } else if supplierCertAppendEntity.Status == suppliercert.CENT_AUDIT_STATUS {
  1240. userIds = utils.ToStr(dataother.Auditer)
  1241. status = suppliercert.PAYING_AUDIT_STATUS
  1242. step = 3
  1243. backstatus = suppliercert.NO_CENT_AUDIT_STATUS
  1244. }
  1245. svcActiviti := workflow.GetActivitiService(utils.DBE)
  1246. var ActiComplete workflow.ActiCompleteVM
  1247. ActiComplete.ProcessKey = supplierCertAppendEntity.ProcessKey
  1248. ActiComplete.BusinessKey = supplierCertAppendEntity.BusinessKey
  1249. ActiComplete.UserNames = userIds
  1250. ActiComplete.UserId = this.User.Id
  1251. ActiComplete.Remarks = dataother.AuditorRemark
  1252. ActiComplete.CallbackUrl = ""
  1253. if dataother.SuccessStatus == 1 {
  1254. ActiComplete.Result = "1"
  1255. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1256. if receiveVal == "true" {
  1257. if supplierCertAppendEntity.Status == "5" {
  1258. if supplierCertAppendEntity.InStyle == suppliercert.PINGSHEN { // 评审准入
  1259. wheresup := " SupplierCertAppendId=" + strconv.Itoa(supplierCertAppendEntity.Id) + " and Type='2'"
  1260. var sup []suppliercertsub.OilSupplierCertSub
  1261. total := svc.GetPagingEntitiesWithOrder(1, 10, "Id", true, &sup, wheresup)
  1262. dictSvc := items.GetItemsService(utils.DBE)
  1263. appendAmt := dictSvc.GetKeyValueItems("SupplierAppend")
  1264. appendi, _ := strconv.Atoi(appendAmt[0].Value)
  1265. if supplierCertAppendEntity.AppendType == suppliercert.DOOGS_TYPECODE && total <= int64(appendi) { // 物资类 小于等于50条不交费
  1266. status = suppliercert.ALL_PASE_STATUS
  1267. } else {
  1268. paysvc := paymentinfo.GetPaymentService(utils.DBE)
  1269. var Amount float64
  1270. asvc := oilcostmanage.GetOilCostManageService(utils.DBE)
  1271. Amount = asvc.GetAmount("APPEND", supplierCertAppendEntity.AppendType)
  1272. var payinfo paymentinfo.OilPaymentInfo
  1273. payinfo.SrcId = supplierCertAppendEntity.Id
  1274. payinfo.SupplierId = supplierCertAppendEntity.SupplierId
  1275. payinfo.SupplierCertId = supplierCertAppendEntity.SupplierCertId
  1276. payinfo.USCCode = supplierEntity.CommercialNo
  1277. payinfo.SupplierName = supplierEntity.SupplierName
  1278. payinfo.PayType = "3"
  1279. payinfo.IsPay = "0"
  1280. payinfo.IsInvoice = "0"
  1281. payinfo.Amount = strconv.FormatFloat(Amount, 'E', -1, 64)
  1282. payinfo.CreateUserId = supplierCertAppendEntity.CreateUserId
  1283. payinfo.CreateBy = supplierCertAppendEntity.CreateBy
  1284. payinfo.CreateOn = time.Now()
  1285. paysvc.InsertEntity(&payinfo)
  1286. //发短信
  1287. toMobile := supplierEntity.Mobile
  1288. bFlag := ""
  1289. if supplierCertAppendEntity.AppendType == "01" {
  1290. bFlag = "物资类"
  1291. } else if supplierCertAppendEntity.AppendType == "02" {
  1292. bFlag = "基建类"
  1293. } else {
  1294. bFlag = "服务类"
  1295. }
  1296. msg := "您的" + bFlag + "增项审核通过,请及时确认信息并交费!"
  1297. msgService := msg2.GetMsgService(utils.DBE)
  1298. msgService.HandleMsg(toMobile, msg, "4-1", supplierCertAppendEntity.CreateBy, supplierEntity.ContactName, strconv.Itoa(supplierCertAppendEntity.CreateUserId), this.User.Username)
  1299. }
  1300. //var model suppliercertsub.OilSupplierCertSub
  1301. //model.Type = "3"
  1302. //model.ModifiedOn = time.Now()
  1303. //model.ModifiedBy = this.User.Realname
  1304. //model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  1305. //colssup := []string{
  1306. // "Type",
  1307. // "ModifiedOn",
  1308. // "ModifiedUserId",
  1309. // "ModifiedBy",
  1310. //}
  1311. //svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &model, colssup, wheresup)
  1312. //paysvc.AddPaymentinfo(supplierCertAppendEntity.SupplierId, supplierCertAppendEntity.Id, Amount, "3")
  1313. } else {
  1314. status = suppliercert.ALL_PASE_STATUS
  1315. }
  1316. // 信息变更
  1317. var infoitems []suppliercertappendsub.OilAppendChangeItem
  1318. where := "SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and InfoId = " + utils.ToStr(supplierCertAppendEntity.Id)
  1319. svc.GetEntities(&infoitems, where)
  1320. this.updatesupplier(OilSupplierName, supplierCertAppendEntity.SupplierId, infoitems)
  1321. // 更新资质
  1322. var qualdetail []suppliercertappendsub.OilAppendChangeDetail
  1323. wheres := "SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and ParentId=" + strconv.Itoa(supplierCertAppendEntity.Id)
  1324. svc.GetEntities(&qualdetail, wheres)
  1325. if len(qualdetail) > 0 {
  1326. for i := 0; i < len(qualdetail); i++ {
  1327. var supfilemodel supplierfile.OilSupplierFile
  1328. supfilemodel.FileName = qualdetail[i].FileName
  1329. supfilemodel.FileUrl = qualdetail[i].FileUrl
  1330. supfilemodel.EffectDate = qualdetail[i].EffectDate
  1331. svc.UpdateEntityBytbl(OilSupplierFileName, qualdetail[i].FileId, &supfilemodel, []string{"FileName", "FileUrl", "EffectDate"})
  1332. }
  1333. }
  1334. }
  1335. if status == suppliercert.ALL_PASE_STATUS {
  1336. appsvc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1337. //更新准入项表
  1338. appendwhere := " SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and SupplierCertId = " + utils.ToStr(supplierCertAppendEntity.SupplierCertId) + " and Type = '2'"
  1339. var appendsubmodel suppliercertsub.OilSupplierCertSub
  1340. appendsubmodel.Type = "3"
  1341. appsvc.UpdateEntityBywheretbl(OilSupplierCertSubName, &appendsubmodel, []string{"Type"}, appendwhere)
  1342. //更新资质表
  1343. appendfilewhere := " SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and SupType = 2"
  1344. var appendsubfilemodel supplierfile.OilSupplierFile
  1345. appendsubfilemodel.SupType = 3
  1346. appsvc.UpdateEntityBywheretbl(OilSupplierCertSubName, &appendsubfilemodel, []string{"SupType"}, appendfilewhere)
  1347. //更新增项表
  1348. appdwhere := " SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and SupplierCertId = " + utils.ToStr(supplierCertAppendEntity.SupplierCertId) + " and Status = '6'"
  1349. var appendmodel suppliercertappend.OilSupplierCertAppend
  1350. appendmodel.Status = suppliercert.ALL_PASE_STATUS
  1351. appsvc.UpdateEntityBywheretbl(OilSupplierCertAppendName, &appendmodel, []string{"Status"}, appdwhere)
  1352. // 信息变更
  1353. var infoitems []suppliercertappendsub.OilAppendChangeItem
  1354. where := "SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and InfoId = " + utils.ToStr(supplierCertAppendEntity.Id)
  1355. svc.GetEntities(&infoitems, where)
  1356. this.updatesupplier(OilSupplierName, supplierCertAppendEntity.SupplierId, infoitems)
  1357. // 更新资质
  1358. var qualdetail []suppliercertappendsub.OilAppendChangeDetail
  1359. wheres := "SupplierId = " + utils.ToStr(supplierCertAppendEntity.SupplierId) + " and ParentId=" + strconv.Itoa(supplierCertAppendEntity.Id)
  1360. svc.GetEntities(&qualdetail, wheres)
  1361. if len(qualdetail) > 0 {
  1362. for i := 0; i < len(qualdetail); i++ {
  1363. var supfilemodel supplierfile.OilSupplierFile
  1364. supfilemodel.FileName = qualdetail[i].FileName
  1365. supfilemodel.FileUrl = qualdetail[i].FileUrl
  1366. supfilemodel.EffectDate = qualdetail[i].EffectDate
  1367. svc.UpdateEntityBytbl(OilSupplierFileName, qualdetail[i].FileId, &supfilemodel, []string{"FileName", "FileUrl", "EffectDate"})
  1368. }
  1369. }
  1370. }
  1371. supplierCertAppendEntity.Status = status
  1372. supplierCertAppendEntity.Step = step
  1373. supplierCertAppendEntity.AuditDate = time.Now()
  1374. cols := []string{
  1375. "Status",
  1376. "Step",
  1377. "AuditDate",
  1378. }
  1379. svc.UpdateEntityByIdCols(appendId, supplierCertAppendEntity, cols)
  1380. errinfo.Message = "提交成功!"
  1381. errinfo.Code = 0
  1382. this.Data["json"] = &errinfo
  1383. this.ServeJSON()
  1384. } else {
  1385. errinfo.Message = "工作流异常,请联系管理员!"
  1386. errinfo.Code = -1
  1387. this.Data["json"] = &errinfo
  1388. this.ServeJSON()
  1389. return
  1390. }
  1391. } else {
  1392. ActiComplete.Result = "0"
  1393. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1394. if receiveVal == "true" {
  1395. if supplierCertAppendEntity.Status == "5" {
  1396. supplierCertAppendEntity.Status = backstatus
  1397. supplierCertAppendEntity.Step = step
  1398. supplierCertAppendEntity.AuditIndex = supplierCertAppendEntity.AuditIndex + 1
  1399. } else {
  1400. supplierCertAppendEntity.Status = backstatus
  1401. supplierCertAppendEntity.Step = 1
  1402. supplierCertAppendEntity.AuditIndex = supplierCertAppendEntity.AuditIndex + 1
  1403. }
  1404. cols := []string{
  1405. "Status",
  1406. "Step",
  1407. "AuditIndex",
  1408. }
  1409. _, err := svc.UpdateEntityByIdCols(appendId, supplierCertAppendEntity, cols)
  1410. toMobile := supplierEntity.Mobile
  1411. bFlag := ""
  1412. if supplierCertAppendEntity.AppendType == "01" {
  1413. bFlag = "物资类"
  1414. } else if supplierCertAppendEntity.AppendType == "02" {
  1415. bFlag = "基建类"
  1416. } else {
  1417. bFlag = "服务类"
  1418. }
  1419. msg := "您的" + bFlag + "增项审核未通过,请及时查看!"
  1420. msgService := msg2.GetMsgService(utils.DBE)
  1421. msgService.HandleMsg(toMobile, msg, "5-1", supplierCertAppendEntity.CreateBy, supplierEntity.ContactName, strconv.Itoa(supplierCertAppendEntity.CreateUserId), this.User.Username)
  1422. if err == nil {
  1423. errinfo.Message = "提交成功!"
  1424. errinfo.Code = 0
  1425. this.Data["json"] = &errinfo
  1426. this.ServeJSON()
  1427. } else {
  1428. errinfo.Message = "提交失败!"
  1429. errinfo.Code = -1
  1430. this.Data["json"] = &errinfo
  1431. this.ServeJSON()
  1432. }
  1433. } else {
  1434. errinfo.Message = "工作流异常,请联系管理员!"
  1435. errinfo.Code = -1
  1436. this.Data["json"] = &errinfo
  1437. this.ServeJSON()
  1438. return
  1439. }
  1440. }
  1441. }
  1442. //更新供方信息表
  1443. func (this *OilSupplierCertAppendController) updatesupplier(supname string, suppid int, infoitems []suppliercertappendsub.OilAppendChangeItem) error {
  1444. svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1445. var err error
  1446. if len(infoitems) > 0 {
  1447. for i := 0; i < len(infoitems); i++ {
  1448. //var cols []string
  1449. //cols = append(cols, infoitems[i].SelectItem)
  1450. where := " Id = " + utils.ToStr(suppid)
  1451. var sql string
  1452. if infoitems[i].SelectItem == "SetupTime" {
  1453. sql = `UPDATE ` + supname + ` set ` + infoitems[i].SelectItem + ` = '` + infoitems[i].ChangeInfo[0:10] + `' where ` + where
  1454. } else {
  1455. sql = `UPDATE ` + supname + ` set ` + infoitems[i].SelectItem + ` = '` + infoitems[i].ChangeInfo + `' where ` + where
  1456. }
  1457. _, err = svc.DBE.Exec(sql)
  1458. //err = svc.UpdateEntityBytbl(OilSupplierName, suppid, &supmodel, cols)
  1459. }
  1460. }
  1461. return err
  1462. }
  1463. // @Title 添加资金
  1464. // @Description 添加资金
  1465. // @Success 200 {object}
  1466. // @router /addqualchange/:id [post]
  1467. func (this *OilSupplierCertAppendController) AddAppChange() {
  1468. id := this.Ctx.Input.Param(":id")
  1469. var errinfo ErrorInfo
  1470. if id == "" {
  1471. errinfo.Message = "操作失败!请求信息不完整"
  1472. errinfo.Code = -2
  1473. this.Data["json"] = &errinfo
  1474. this.ServeJSON()
  1475. return
  1476. }
  1477. var model qualchange.OilQualChangeDetail
  1478. var jsonblob = this.Ctx.Input.RequestBody
  1479. json.Unmarshal(jsonblob, &model)
  1480. svc := qualchange.GetQualChangeService(utils.DBE)
  1481. var supplierfile supplierfile.OilSupplierFile
  1482. where := "SupplierId = '" + strconv.Itoa(model.SupplierId) + "' and NeedFileType='" + model.NeedFileType + "'"
  1483. has := svc.GetEntity(&supplierfile, where)
  1484. var tableHeader tableheader.BaseTableheader
  1485. where1 := "Name = '" + model.NeedFileType + "'"
  1486. svc.GetEntityByWhere(BaseTableHeader, where1, &tableHeader)
  1487. if has {
  1488. errinfo.Message = "操作失败!不能重复添加"
  1489. errinfo.Code = -1
  1490. this.Data["json"] = &errinfo
  1491. this.ServeJSON()
  1492. return
  1493. }
  1494. supplierfile.SupplierId = model.SupplierId
  1495. supplierfile.SupplierTypeCode = model.SupplierTypeCode
  1496. supplierfile.IsManuf = tableHeader.IsManuf
  1497. supplierfile.NeedFileType = model.NeedFileType
  1498. supplierfile.FileType = 0
  1499. supplierfile.SupType = 2
  1500. supplierfile.CreateOn = time.Now()
  1501. supplierfile.CreateUserId, _ = strconv.Atoi(this.User.Id)
  1502. supplierfile.CreateBy = this.User.Realname
  1503. svc.InsertEntity(&supplierfile)
  1504. model.ParentId, _ = strconv.Atoi(id)
  1505. model.FileId = supplierfile.Id
  1506. model.FileUrl = strings.Trim(model.FileUrl, "$")
  1507. model.FileName = strings.Trim(model.FileName, "$")
  1508. var err error
  1509. var qualdetaimodel []qualchange.OilQualChangeDetail
  1510. qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(supplierfile.Id) + " and ParentId=" + id
  1511. svc.GetEntitysByWhere(OilAppendChangeDetailName, qdwhere, &qualdetaimodel)
  1512. if len(qualdetaimodel) == 0 {
  1513. model.CreateOn = time.Now()
  1514. model.CreateBy = this.User.Realname
  1515. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  1516. _, err = svc.InsertEntityBytbl(OilAppendChangeDetailName, &model)
  1517. } else {
  1518. err = svc.UpdateEntityBywheretbl(OilAppendChangeDetailName, &model, []string{"OldEffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere)
  1519. }
  1520. if err == nil {
  1521. errinfo.Message = "操作成功!"
  1522. errinfo.Code = 0
  1523. this.Data["json"] = &errinfo
  1524. this.ServeJSON()
  1525. } else {
  1526. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  1527. errinfo.Code = -1
  1528. this.Data["json"] = &errinfo
  1529. this.ServeJSON()
  1530. }
  1531. }
  1532. // @Title 删除新上传的资质
  1533. // @Description
  1534. // @Success 200 {object} ErrorInfo
  1535. // @Failure 403 :id 为空
  1536. // @router /deletenewfile/:Id [delete]
  1537. func (this *OilSupplierCertAppendController) DeleteNewFile() {
  1538. Id := this.Ctx.Input.Param(":Id")
  1539. var errinfo ErrorInfo
  1540. if Id == "" {
  1541. errinfo.Message = "操作失败!请求信息不完整"
  1542. errinfo.Code = -2
  1543. this.Data["json"] = &errinfo
  1544. this.ServeJSON()
  1545. return
  1546. }
  1547. svc := infochange.GetInfoChangeService(utils.DBE)
  1548. where := "FileId=" + Id
  1549. err := svc.DeleteEntityBytbl(OilAppendChangeDetailName, where)
  1550. where1 := "Id=" + Id
  1551. err = svc.DeleteEntityBytbl(OilSupplierFileName, where1)
  1552. if err == nil {
  1553. errinfo.Message = "删除成功"
  1554. errinfo.Code = 0
  1555. this.Data["json"] = &errinfo
  1556. this.ServeJSON()
  1557. } else {
  1558. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  1559. errinfo.Code = -1
  1560. this.Data["json"] = &errinfo
  1561. this.ServeJSON()
  1562. }
  1563. }
  1564. // @Title 交费用户确认交费
  1565. // @Description 交费用户确认交费
  1566. // @Success 200 {object} controllers.Request
  1567. // @router /update-pay-status/:id [post]
  1568. func (this *OilSupplierCertAppendController) UpdatePayStatus() {
  1569. certId := this.Ctx.Input.Param(":id")
  1570. var errinfo ErrorInfo
  1571. if certId == "" {
  1572. errinfo.Message = "操作失败!请求信息不完整"
  1573. errinfo.Code = -2
  1574. this.Data["json"] = &errinfo
  1575. this.ServeJSON()
  1576. return
  1577. }
  1578. supplierCerAppendtSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  1579. var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
  1580. supplierCerAppendtSrv.GetEntityById(certId, &supplierCertAppendEntity)
  1581. paySrv := paymentinfo.GetPaymentService(utils.DBE)
  1582. var paymentInfoEntities []paymentinfo.OilPaymentInfo
  1583. err := paySrv.GetPaymentInfoBySrcId(certId, "3", &paymentInfoEntities)
  1584. if err != nil {
  1585. errinfo.Message = "未知错误,请稍后再试!"
  1586. errinfo.Code = -1
  1587. this.Data["json"] = &errinfo
  1588. this.ServeJSON()
  1589. }
  1590. if len(paymentInfoEntities) == 1 {
  1591. for _, item := range paymentInfoEntities {
  1592. if item.IsPay == "1" {
  1593. errinfo.Message = "已确认交费!请耐心等待"
  1594. errinfo.Code = -1
  1595. this.Data["json"] = &errinfo
  1596. this.ServeJSON()
  1597. }
  1598. if item.IsPay == "2" {
  1599. errinfo.Message = "已交费!请勿重复操作!"
  1600. errinfo.Code = -1
  1601. this.Data["json"] = &errinfo
  1602. this.ServeJSON()
  1603. }
  1604. }
  1605. }
  1606. sql := "UPDATE OilPaymentInfo SET IsPay ='1' where SrcId=" + certId
  1607. supplierCerAppendtSrv.DBE.Exec(sql)
  1608. errinfo.Message = "确认交费成功!"
  1609. errinfo.Code = 0
  1610. this.Data["json"] = &errinfo
  1611. this.ServeJSON()
  1612. }