annualaudit.go 68 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/audithistory"
  4. "dashoo.cn/backend/api/business/baseUser"
  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/suppliercert"
  10. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
  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/areajson"
  18. "dashoo.cn/business2/items"
  19. "dashoo.cn/business2/permission"
  20. "dashoo.cn/business3/parameter"
  21. "log"
  22. "reflect"
  23. "encoding/json"
  24. "fmt"
  25. "strconv"
  26. "strings"
  27. "time"
  28. "dashoo.cn/backend/api/business/auditsetting"
  29. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  30. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  31. "dashoo.cn/backend/api/business/workflow"
  32. "dashoo.cn/business2/userRole"
  33. . "dashoo.cn/backend/api/controllers"
  34. "dashoo.cn/utils"
  35. )
  36. type AnnualAuditController struct {
  37. BaseController
  38. }
  39. type ShenHeModel struct {
  40. AnnualId int
  41. SuccessStatus int
  42. AuditorRemark string
  43. }
  44. type ComShenHeModel struct {
  45. SupplierId int
  46. SupplierTypeName string
  47. Remark string
  48. }
  49. // @Title 获取列表
  50. // @Description get user by token
  51. // @Success 200 {object} []annualaudit.OilAnnualAudit
  52. // @router /list [get]
  53. func (this *AnnualAuditController) GetEntityList() {
  54. //获取分页信息
  55. page := this.GetPageInfoForm()
  56. where := " b.Id is not null "
  57. orderby := "b.Id"
  58. asc := false
  59. Order := this.GetString("Order")
  60. Prop := this.GetString("Prop")
  61. if Order != "" && Prop != "" {
  62. orderby = Prop
  63. if Order == "asc" {
  64. asc = true
  65. }
  66. }
  67. if orderby == "SupplierName" {
  68. orderby = "a.SupplierName"
  69. }
  70. SupplierTypeName := this.GetString("SupplierTypeName")
  71. RecUnitId := this.GetString("RecUnitId")
  72. AccessCardNo := this.GetString("AccessCardNo")
  73. SupplierName := this.GetString("SupplierName")
  74. CreateOn := this.GetString("CreateOn")
  75. if SupplierTypeName != "" {
  76. where = where + " and b.SupplierTypeName like '%" + SupplierTypeName + "%'"
  77. }
  78. if RecUnitId != "" {
  79. where = where + " and b.RecUnitId like '%" + RecUnitId + "%'"
  80. }
  81. if AccessCardNo != "" {
  82. where = where + " and b.AccessCardNo like '%" + AccessCardNo + "%'"
  83. }
  84. if SupplierName != "" {
  85. where = where + " and b.SupplierName like '%" + SupplierName + "%'"
  86. }
  87. if CreateOn != "" {
  88. dates := strings.Split(CreateOn, ",")
  89. if len(dates) == 2 {
  90. minDate := dates[0]
  91. maxDate := dates[1]
  92. where = where + " and b.CreateOn>='" + minDate + "' and b.CreateOn<='" + maxDate + "'"
  93. }
  94. }
  95. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  96. var registerUser register.OilCorporateInfo
  97. // TODO 这里应该从主表取企业信息,增项 年审和信息变更可能会改变企业信用代码(或者在申请通过后同步更新注册表)
  98. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  99. svc.GetEntity(&registerUser, sql)
  100. //企业用户必须加创建人条件
  101. if this.User.IsCompanyUser == 1 {
  102. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  103. } else {
  104. //超级管理员和有查看所有数据权限的用户不加条件
  105. svcPerm := permission.GetPermissionService(utils.DBE)
  106. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.annual.AllRecord")
  107. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  108. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='" + registerUser.CommercialNo + "')"
  109. }
  110. }
  111. var list []annualaudit.OilAnnualAudit
  112. //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  113. total := svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilAnnualAuditName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  114. var datainfo DataInfo
  115. datainfo.Items = list
  116. datainfo.CurrentItemCount = total
  117. datainfo.PageIndex = page.CurrentPage
  118. datainfo.ItemsPerPage = page.Size
  119. this.Data["json"] = &datainfo
  120. this.ServeJSON()
  121. }
  122. // @Title 获取审批列表
  123. // @Description get user by token
  124. // @Success 200 {object} []annualaudit.OilAnnualAudit
  125. // @router /mytasks [get]
  126. func (this *AnnualAuditController) GetMyTaskEntityList() {
  127. //获取分页信息
  128. page := this.GetPageInfoForm()
  129. where := " 1=1 "
  130. orderby := "Id"
  131. asc := false
  132. Order := this.GetString("Order")
  133. Prop := this.GetString("Prop")
  134. if Order != "" && Prop != "" {
  135. orderby = Prop
  136. if Order == "asc" {
  137. asc = true
  138. }
  139. }
  140. SupplierTypeName := this.GetString("SupplierTypeName")
  141. RecUnitId := this.GetString("RecUnitId")
  142. AccessCardNo := this.GetString("AccessCardNo")
  143. SupplierName := this.GetString("SupplierName")
  144. CreateOn := this.GetString("CreateOn")
  145. if SupplierTypeName != "" {
  146. where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'"
  147. }
  148. if RecUnitId != "" {
  149. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  150. }
  151. if AccessCardNo != "" {
  152. where = where + " and AccessCardNo like '%" + AccessCardNo + "%'"
  153. }
  154. if SupplierName != "" {
  155. where = where + " and SupplierName like '%" + SupplierName + "%'"
  156. }
  157. if CreateOn != "" {
  158. dates := strings.Split(CreateOn, ",")
  159. if len(dates) == 2 {
  160. minDate := dates[0]
  161. maxDate := dates[1]
  162. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  163. }
  164. }
  165. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  166. var list []annualaudit.OilAnnualAudit
  167. //找出待办任务
  168. actisvc := workflow.GetActivitiService(utils.DBE)
  169. certIdList := actisvc.GetMyTasks(workflow.OIL_AUDIT_APPLY, this.User.Id)
  170. annuIdarr := strings.Split(certIdList, ",")
  171. for i, item := range annuIdarr {
  172. idx := strings.Index(item, "-")
  173. if idx >= 0 {
  174. annuIdarr[i] = strings.Split(item, "-")[0]
  175. }
  176. }
  177. certIdList = strings.Join(annuIdarr, ",")
  178. var total int64 = 0
  179. if certIdList != "" {
  180. where += " and Id in (" + certIdList + ")"
  181. //根据部门查询待办任务
  182. where += " and Status > 0 "
  183. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  184. //total := svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  185. }
  186. var datainfo DataInfo
  187. datainfo.Items = list
  188. datainfo.CurrentItemCount = total
  189. datainfo.PageIndex = page.CurrentPage
  190. datainfo.ItemsPerPage = page.Size
  191. this.Data["json"] = &datainfo
  192. this.ServeJSON()
  193. }
  194. // @Title 获取年审企业名称
  195. // @Description 获取实体
  196. // @Success 200 {object} annualaudit.OilAnnualAudit
  197. // @router /supplierlist [get]
  198. func (this *AnnualAuditController) GetSupplierList() {
  199. code := this.GetString("code")
  200. svc := infochange.GetInfoChangeService(utils.DBE)
  201. var supplierlist []annualaudit.Suppliername
  202. where := "1=1"
  203. //企业用户必须加创建人条件
  204. if this.User.IsCompanyUser == 1 {
  205. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  206. }
  207. //else {
  208. // //超级管理员和有查看所有数据权限的用户不加条件
  209. // svcPerm := permission.GetPermissionService(utils.DBE)
  210. // isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
  211. // if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  212. // where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  213. // }
  214. //}
  215. if code != "" {
  216. where = where + " and b.SupplierTypeCode='" + code + "' "
  217. }
  218. where = where + " and b.Status='" + suppliercert.STORE_STATUS + "' "
  219. supplierlist = svc.GetSupplierList(""+OilSupplierName, where)
  220. var datainfo DataInfo
  221. datainfo.Items = supplierlist
  222. this.Data["json"] = &datainfo
  223. this.ServeJSON()
  224. }
  225. // @Title 获取字典列表
  226. // @Description get user by token
  227. // @Success 200 {object} map[string]interface{}
  228. // @router /dictlist [get]
  229. func (this *AnnualAuditController) GetDictList() {
  230. dictList := make(map[string]interface{})
  231. dictSvc := items.GetItemsService(utils.DBE)
  232. userSvc := baseUser.GetBaseUserService(utils.DBE)
  233. areaJsonSvc := areajson.GetAreaJsonService(utils.DBE)
  234. //customerSvc := svccustomer.GetCustomerService(utils.DBE)
  235. dictList["UnitRelation"] = dictSvc.GetKeyValueItems("UnitRelation")
  236. dictList["CompanyType"] = dictSvc.GetKeyValueItems("CompanyType")
  237. var userEntity userRole.Base_User
  238. userSvc.GetEntityById(this.User.Id, &userEntity)
  239. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid)
  240. dictList["GaodeMapChinaAreas"] = areaJsonSvc.GetGaodeMapChinaAreas()
  241. //获取我创建的所有公司
  242. var list []supplier.OilSupplier
  243. if this.User.IsCompanyUser == 1 {
  244. svcSupplier := supplier.GetOilSupplierService(utils.DBE)
  245. supplierWhere := " CreateUserId = '" + this.User.Id + "'"
  246. svcSupplier.GetEntitysByWhere(OilSupplierName, supplierWhere, &list)
  247. dictList["CompanyNames"] = list
  248. } else { //二级单位不用获取
  249. dictList["CompanyNames"] = list
  250. }
  251. // 部门
  252. orgsvc := organize.GetOrganizeService(utils.DBE)
  253. dictList["Organizes"] = orgsvc.GetCollectionDetailviewlist("'" + this.User.AccCode + "'")
  254. //获得有专业审核接收权限的人员
  255. var users1 []userRole.Base_RoleList
  256. var auditWorkflow1 auditsetting.Base_OilAuditSetting
  257. rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  258. rsvc.GetAuditStepRoleEntity(OilAuditSettingName, "100000172", workflow.PROF_RECE, &auditWorkflow1)
  259. users1 = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow1.RoleId), "")
  260. dictList["Receive"] = users1
  261. //获得有专业审核权限的人员
  262. var users []userRole.Base_RoleList
  263. var auditWorkflow auditsetting.Base_OilAuditSetting
  264. rsvc.GetAuditStepRoleEntity(OilAuditSettingName, "100000172", workflow.PROF_AUDIT, &auditWorkflow)
  265. users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), "")
  266. dictList["ProfAudit"] = users
  267. var datainfo DataInfo
  268. datainfo.Items = dictList
  269. this.Data["json"] = &datainfo
  270. this.ServeJSON()
  271. }
  272. // @Title 获取实体
  273. // @Description 获取实体
  274. // @Success 200 {object} annualaudit.OilAnnualAudit
  275. // @router /get/:id [get]
  276. func (this *AnnualAuditController) GetEntity() {
  277. Id := this.Ctx.Input.Param(":id")
  278. var model annualaudit.OilAnnualAudit
  279. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  280. svc.GetEntityByIdBytbl(""+OilAnnualAuditName, Id, &model)
  281. this.Data["json"] = &model
  282. this.ServeJSON()
  283. }
  284. // @Title 获取公司信息
  285. // @Description 根据创建用户Id和增项类别号获取公司信息
  286. // @Success 200 {object}
  287. // @router /getsupplier [get]
  288. func (this *AnnualAuditController) GetSupplier() {
  289. SuppTypeCode := this.GetString("SuppTypeCode")
  290. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  291. where := "1=1 "
  292. if SuppTypeCode != "" {
  293. where = " WHERE b.Id is NOT NULL AND a.SupplierTypeCode = '" + SuppTypeCode + "' and (a.InFlag='1' or a.InFlag='2')"
  294. } else {
  295. where = " WHERE b.Id is NOT NULL AND (a.InFlag='1' or a.InFlag='2')"
  296. }
  297. var registerUser register.OilCorporateInfo
  298. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  299. svc.GetEntity(&registerUser, sql)
  300. //企业用户必须加创建人条件
  301. if this.User.IsCompanyUser == 1 {
  302. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or b.CommercialNo='" + registerUser.CommercialNo + "')"
  303. //if this.User.IsCompanyUser == 1 {
  304. // where = where + " and b.CreateUserId = '" + this.User.Id + "'"
  305. }
  306. sqlStr := "SELECT b.Id AS SupplierId, a.Id AS SupplierCertId, b.SupplierName AS SupplierName FROM OilSupplierCert a LEFT JOIN OilSupplier b ON a.SupplierId = b.Id "
  307. sqlStr = sqlStr + where
  308. model, _ := svc.DBE.QueryString(sqlStr)
  309. this.Data["json"] = &model
  310. this.ServeJSON()
  311. }
  312. // @Title 获取公司信息(信息变更专用)
  313. // @Description 根据创建用户Id和增项类别号获取公司信息
  314. // @Success 200 {object}
  315. // @router /getsupplierforchange [get]
  316. func (this *AnnualAuditController) GetSupplierForChange() {
  317. SuppTypeCode := this.GetString("SuppTypeCode")
  318. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  319. where := "1=1 "
  320. if SuppTypeCode != "" {
  321. where = " WHERE b.Id is NOT NULL AND a.SupplierTypeCode = '" + SuppTypeCode + "' and (a.InFlag='1' or a.InFlag='2' or a.Status='8')"
  322. } else {
  323. where = " WHERE b.Id is NOT NULL AND (a.InFlag='1' or a.InFlag='2' or a.Status='8')"
  324. }
  325. var registerUser register.OilCorporateInfo
  326. sql := " UserName='" + this.User.Username + "' and CheckStatus = 11 "
  327. svc.GetEntity(&registerUser, sql)
  328. //企业用户必须加创建人条件
  329. if this.User.IsCompanyUser == 1 {
  330. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or b.CommercialNo='" + registerUser.CommercialNo + "')"
  331. //if this.User.IsCompanyUser == 1 {
  332. // where = where + " and b.CreateUserId = '" + this.User.Id + "'"
  333. }
  334. sqlStr := "SELECT b.Id AS SupplierId, a.Id AS SupplierCertId, b.SupplierName AS SupplierName FROM OilSupplierCert a LEFT JOIN OilSupplier b ON a.SupplierId = b.Id "
  335. sqlStr = sqlStr + where
  336. model, _ := svc.DBE.QueryString(sqlStr)
  337. this.Data["json"] = &model
  338. this.ServeJSON()
  339. }
  340. // @Title 添加
  341. // @Description 直接新增年审
  342. // @Success 200 {object} controllers.Request
  343. // @router /adddirect [post]
  344. func (this *AnnualAuditController) AddEntityDirect() {
  345. var model annualaudit.OilAnnualAudit
  346. var errInfo ErrorDataInfo
  347. var jsonBlob = this.Ctx.Input.RequestBody
  348. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  349. json.Unmarshal(jsonBlob, &model)
  350. supWhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = '" + model.SupplierTypeName + "' and b.Status = '8' "
  351. supSvc := supplier.GetOilSupplierService(utils.DBE)
  352. var list []supplier.OilSupplierView
  353. supSvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supWhere)
  354. var supplierModel supplier.OilSupplierView
  355. supplierModel = list[0]
  356. model.AccessCardNo = supplierModel.AccessCardNo
  357. model.RecUnitId = supplierModel.RecUnitId
  358. model.CerId, _ = strconv.Atoi(supplierModel.CertId)
  359. model.ApplyTime = supplierModel.ApplyTime
  360. model.Status = "0"
  361. model.Step = 1
  362. model.BackReason = supplierModel.BackReason
  363. model.CreateOn = time.Now()
  364. model.CreateBy = this.User.Realname
  365. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  366. //添加一条年审记录
  367. _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
  368. if err == nil {
  369. //新增
  370. errInfo.Message = "添加成功!"
  371. errInfo.Code = 0
  372. errInfo.Item = model.Id
  373. this.Data["json"] = &errInfo
  374. this.ServeJSON()
  375. } else {
  376. errInfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  377. errInfo.Code = -1
  378. this.Data["json"] = &errInfo
  379. this.ServeJSON()
  380. }
  381. }
  382. // @Title 修改实体
  383. // @Description 修改实体
  384. // @Success 200 {object} controllers.Request
  385. // @router /suppupdate/:id/:type/:instyle [post]
  386. func (this *AnnualAuditController) UpdateSuppEntity() {
  387. id := this.Ctx.Input.Param(":id")
  388. typeCode := this.Ctx.Input.Param(":type")
  389. instyle := this.Ctx.Input.Param(":instyle")
  390. var errinfo ErrorInfo
  391. if id == "" {
  392. errinfo.Message = "操作失败!请求信息不完整"
  393. errinfo.Code = -2
  394. this.Data["json"] = &errinfo
  395. this.ServeJSON()
  396. return
  397. }
  398. var model supplier.OilSupplier
  399. var jsonBlob = this.Ctx.Input.RequestBody
  400. json.Unmarshal(jsonBlob, &model)
  401. var list []supplier.OilSupplierView
  402. service := supplier.GetOilSupplierService(utils.DBE)
  403. service.CheckUpdateRepeatApplyInfo(OilSupplierName, OilSupplierCertName, typeCode, strconv.Itoa(model.Id), model.SupplierName, model.CommercialNo, model.OrganCode, model.BankAccount, model.CompanyUrl, &list)
  404. if len(list) > 0 {
  405. errinfo.Message = "修改失败! 已存在相关企业的信息,或与其他企业信息重复"
  406. errinfo.Code = -1
  407. this.Data["json"] = &errinfo
  408. this.ServeJSON()
  409. return
  410. }
  411. svc := supplier.GetOilSupplierService(utils.DBE)
  412. model.ModifiedOn = time.Now()
  413. model.ModifiedBy = this.User.Realname
  414. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  415. //判断基本信息是否可修改
  416. //updateCols := svc.GetUpdateCols(OilSupplierCertName, typeCode, model.Id)
  417. updateCols := []string{
  418. "SupplierName",
  419. "OilCertificateNo",
  420. "Grade",
  421. "MgrUnit",
  422. "OperType",
  423. "Country",
  424. "MaunAgent",
  425. "ConstructTeam",
  426. "CommercialNo",
  427. "OrganCode",
  428. "CountryTaxNo",
  429. "LocalTaxNo",
  430. "Address",
  431. "Province",
  432. "City",
  433. "Street",
  434. "HouseNo",
  435. "ZipCode",
  436. "QualitySystemCert",
  437. "ProductQualityCert",
  438. "MaunLicense",
  439. "QualifCert",
  440. "QualifCertLevel",
  441. "SafetyLicense",
  442. "TechServiceLic",
  443. "TJInNotify",
  444. "SpecIndustryCert",
  445. "LegalPerson",
  446. "CategoryCode",
  447. "CategoryName",
  448. "RegCapital",
  449. "Currency",
  450. "ContactName",
  451. "CompanyType",
  452. "SetupTime",
  453. "DepositBank",
  454. "BankAccount",
  455. "EMail",
  456. "BusinessScope",
  457. "BankCreditRating",
  458. "Mobile",
  459. "Telphone",
  460. "Fax",
  461. "CompanyTel",
  462. "QQ",
  463. "CompanyUrl",
  464. "SpecSupplier",
  465. "SpecTypeCode",
  466. "SpecTypeName",
  467. /*"WorkerTotal",
  468. "ContractNum ",
  469. "UniversityNum",
  470. "TechnicalNum",
  471. "AboveProfNum",
  472. "MiddleProfNum",
  473. "NationalRegNum",
  474. "NationalCertTotal",
  475. "DesignerTotal",
  476. "SkillerTotal",*/
  477. "Remark",
  478. "IsDelete",
  479. "CreateOn",
  480. "CreateUserId",
  481. "CreateBy",
  482. "ModifiedOn",
  483. "ModifiedUserId",
  484. "ModifiedBy",
  485. "LinkAddress",
  486. "LinkProvince",
  487. "LinkCity",
  488. "LinkStreet",
  489. "LinkHouseNo",
  490. "LinkZipCode",
  491. "HseTraining",
  492. "CredentialFlag",
  493. "SupplierCertificate",
  494. "PACNumber",
  495. }
  496. err := svc.UpdateEntityBytbl(OilSupplierName, id, &model, updateCols)
  497. if err == nil {
  498. if instyle != "" {
  499. svc.DBE.Exec("update OilSupplierCert set Instyle=" + instyle + " where SupplierId=" + id + " and SupplierTypeCode=" + typeCode + "")
  500. }
  501. errinfo.Message = "修改成功!"
  502. errinfo.Code = 0
  503. this.Data["json"] = &errinfo
  504. this.ServeJSON()
  505. } else {
  506. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  507. errinfo.Code = -1
  508. this.Data["json"] = &errinfo
  509. this.ServeJSON()
  510. }
  511. }
  512. // @Title 添加
  513. // @Description 新增年审
  514. // @Success 200 {object} controllers.Request
  515. // @router /add [post]
  516. func (this *AnnualAuditController) AddEntity() {
  517. var model annualaudit.OilAnnualAudit
  518. var errInfo ErrorDataInfo
  519. var jsonBlob = this.Ctx.Input.RequestBody
  520. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  521. //firstAudit := this.GetString("firstAudit")
  522. json.Unmarshal(jsonBlob, &model)
  523. where := "SupplierId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName + " and (Status < 8 or Status in ('9','10'))"
  524. var auditEntity []annualaudit.OilAnnualAudit
  525. svc.GetEntitysByWhere(""+OilAnnualAuditName, where, &auditEntity)
  526. if len(auditEntity) >= 1 {
  527. errInfo.Message = "今年已提交年审,请勿重复提交!"
  528. errInfo.Code = -1
  529. this.Data["json"] = &errInfo
  530. this.ServeJSON()
  531. return
  532. }
  533. supWhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = '" + model.SupplierTypeName + "' and (b.Status = '8' or b.Status = '11' "
  534. supSvc := supplier.GetOilSupplierService(utils.DBE)
  535. var list []supplier.OilSupplierView
  536. total := supSvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supWhere)
  537. if total == 0 {
  538. //errInfo.Message = "请先提交准入申请再提交年审!"
  539. errInfo.Message = "请先提交准入,准入申请通过后,才可申请年审!"
  540. errInfo.Code = -1
  541. this.Data["json"] = &errInfo
  542. this.ServeJSON()
  543. return
  544. }
  545. var supplierModel supplier.OilSupplierView
  546. supplierModel = list[0]
  547. if supplierModel.InFlag == "3" {
  548. errInfo.Message = "超过两年未年审,您已无法提交!"
  549. errInfo.Code = -1
  550. this.Data["json"] = &errInfo
  551. this.ServeJSON()
  552. return
  553. }
  554. applyTime := supplierModel.ApplyTime
  555. subTime := this.getTimeSub(applyTime, time.Now())
  556. leftTime := subTime - 3
  557. if subTime > 3 {
  558. errInfo.Message = "还不到年审时间!请" + utils.ToStr(leftTime) + "个月后再来申请"
  559. errInfo.Code = -3
  560. this.Data["json"] = &errInfo
  561. this.ServeJSON()
  562. return
  563. }
  564. model.AccessCardNo = supplierModel.AccessCardNo
  565. model.RecUnitId = supplierModel.RecUnitId
  566. model.CerId, _ = strconv.Atoi(supplierModel.CertId)
  567. model.ApplyTime = supplierModel.ApplyTime
  568. model.Status = "0"
  569. model.Step = 1
  570. model.BackReason = supplierModel.BackReason
  571. model.CreateOn = time.Now()
  572. model.CreateBy = this.User.Realname
  573. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  574. //添加一条年审记录
  575. _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
  576. if err == nil {
  577. //新增
  578. errInfo.Message = "添加成功!"
  579. errInfo.Code = 0
  580. errInfo.Item = model.Id
  581. this.Data["json"] = &errInfo
  582. this.ServeJSON()
  583. } else {
  584. errInfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  585. errInfo.Code = -1
  586. this.Data["json"] = &errInfo
  587. this.ServeJSON()
  588. }
  589. }
  590. func (this *AnnualAuditController) getTimeSub(t1, t2 time.Time) int {
  591. t1 = time.Date(t1.Year(), t1.Month(), t1.Day(), 0, 0, 0, 0, time.Local)
  592. t2 = time.Date(t2.Year(), t2.Month(), t2.Day(), 0, 0, 0, 0, time.Local)
  593. return int(t1.Sub(t2).Hours() / 24 / 30)
  594. }
  595. // @Title 提交审批
  596. // @Description 提交审批
  597. // @Success 200 {object} controllers.Request
  598. // @router /addauditcomm [post]
  599. func (this *AnnualAuditController) AddAuditEntity() {
  600. var model ComShenHeModel
  601. var errinfo ErrorDataInfo
  602. var jsonBlob = this.Ctx.Input.RequestBody
  603. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  604. annualId := this.GetString("AnnualId")
  605. firstAudit := this.GetString("FirstAuditName")
  606. secondAudit := this.GetString("SecondAudit")
  607. thirdAudit := this.GetString("ThirdAudit")
  608. json.Unmarshal(jsonBlob, &model)
  609. var setting auditsetting.Base_OilAuditSetting
  610. var userlist []userRole.Base_User
  611. usvc := userRole.GetUserService(utils.DBE)
  612. where := ""
  613. if this.User.IsCompanyUser == 1 {
  614. if model.SupplierTypeName == "01" {
  615. where = "AuditStepCode='" + workflow.SUB_OFFICE_WZ + "'"
  616. } else if model.SupplierTypeName == "02" {
  617. where = "AuditStepCode='" + workflow.SUB_OFFICE_JS + "'"
  618. } else if model.SupplierTypeName == "03" {
  619. where = "AuditStepCode='" + workflow.SUB_OFFICE_JF + "'"
  620. }
  621. usvc.GetEntity(&setting, where)
  622. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  623. tempstr := strings.Join(ids, ",")
  624. uids := strings.Replace(tempstr, "uid_", "", -1)
  625. uids = strings.Trim(uids, ",")
  626. if uids != "" {
  627. where := "Id in (" + uids + ")" + " and UnitId=" + firstAudit
  628. usvc.GetEntities(&userlist, where)
  629. }
  630. userIds := ""
  631. for _, tmpUser := range userlist {
  632. userIds += strconv.Itoa(tmpUser.Id) + ","
  633. }
  634. firstAudit = strings.Trim(userIds, ",")
  635. }
  636. //where := "CerId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName
  637. var auditentity annualaudit.OilAnnualAudit
  638. svc.GetEntityById(annualId, &auditentity)
  639. historworkflowid := auditentity.WorkflowId
  640. svcActiviti := workflow.GetActivitiService(utils.DBE)
  641. statusint, _ := strconv.Atoi(auditentity.Status)
  642. var ActiComplete workflow.ActiCompleteVM
  643. var auditmodel annualaudit.OilAnnualAudit
  644. result := strconv.Itoa(this.User.IsCompanyUser)
  645. //重新工作流
  646. if statusint < 0 {
  647. businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(auditentity.AuditIndex)
  648. processInstanceId := svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, result, auditentity.SupplierTypeName, auditentity.SupplierName)
  649. ActiComplete.BusinessKey = businessKey
  650. auditmodel.WorkflowId = processInstanceId
  651. auditmodel.BusinessKey = businessKey
  652. } else {
  653. auditmodel.WorkflowId = auditentity.WorkflowId
  654. ActiComplete.BusinessKey = auditentity.BusinessKey
  655. auditmodel.BusinessKey = auditentity.BusinessKey
  656. }
  657. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  658. ActiComplete.UserNames = firstAudit
  659. ActiComplete.UserId = this.User.Id
  660. ActiComplete.Result = result
  661. ActiComplete.Remarks = model.Remark
  662. ActiComplete.CallbackUrl = ""
  663. //提交给二级单位初审
  664. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  665. if statusint < 0 {
  666. // 存储审批历史
  667. var audithistoryentity audithistory.Base_AuditHistory
  668. audithistoryentity.EntityId, _ = strconv.Atoi(annualId)
  669. audithistoryentity.WorkflowId = historworkflowid
  670. audithistoryentity.Process = workflow.OIL_AUDIT_APPLY
  671. audithistoryentity.BusinessKey = auditentity.BusinessKey
  672. audithistoryentity.Type = model.SupplierTypeName
  673. audithistoryentity.BackStep = utils.ToStr(auditentity.Status)
  674. audithistoryentity.Index = auditentity.AuditIndex
  675. audithistoryentity.CreateOn = time.Now()
  676. audithistoryentity.CreateBy = this.User.Realname
  677. audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  678. svc.InsertEntity(audithistoryentity)
  679. }
  680. if this.User.IsCompanyUser == 1 {
  681. auditmodel.Status = suppliercert.FEN_TRIAL_STATUS //二级单位分办
  682. } else {
  683. auditmodel.Status = suppliercert.FIRST_TRIAL_STATUS
  684. }
  685. auditmodel.FenbanAudit, _ = strconv.Atoi(firstAudit)
  686. auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
  687. auditmodel.SecondAudit, _ = strconv.Atoi(secondAudit)
  688. auditmodel.ThirdAudit, _ = strconv.Atoi(thirdAudit)
  689. cols := []string{
  690. "Id",
  691. "WorkflowId",
  692. "FenbanAudit",
  693. "FirstAudit",
  694. "SecondAudit",
  695. "ThirdAudit",
  696. "Status",
  697. "BusinessKey",
  698. }
  699. if receiveVal == "true" {
  700. _, err := svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
  701. if err == nil {
  702. //新增
  703. errinfo.Message = "提交成功!"
  704. errinfo.Code = 0
  705. errinfo.Item = auditmodel.Status
  706. this.Data["json"] = &errinfo
  707. this.ServeJSON()
  708. } else {
  709. errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error())
  710. errinfo.Code = -1
  711. this.Data["json"] = &errinfo
  712. this.ServeJSON()
  713. }
  714. } else {
  715. errinfo.Message = "工作流异常,请联系管理员!"
  716. errinfo.Code = -1
  717. this.Data["json"] = &errinfo
  718. this.ServeJSON()
  719. }
  720. }
  721. // @Title 企业用户提交按钮 --启动工作流
  722. // @Description 企业用户提交按钮
  723. // @Success 200 {object} controllers.Request
  724. // @router /company-audit/:id [post]
  725. func (this *AnnualAuditController) CompanyAuditEntity() {
  726. annualId := this.Ctx.Input.Param(":id")
  727. unitId := this.GetString("UnitId")
  728. // typeCode := this.GetString("TypeCode")
  729. AuditRemark := this.GetString("AuditRemark")
  730. var errinfo ErrorDataInfo
  731. defer func() { //finally处理失败的异常
  732. if err := recover(); err != nil {
  733. errinfo.Message = err.(string)
  734. errinfo.Code = -1
  735. this.Data["json"] = &errinfo
  736. this.ServeJSON()
  737. } else {
  738. //返回正确结果
  739. errinfo.Message = "提交成功"
  740. errinfo.Code = 0
  741. this.Data["json"] = &errinfo
  742. this.ServeJSON()
  743. }
  744. }()
  745. if this.User.IsCompanyUser == 0 {
  746. // 0二级单位; 1企业用户
  747. panic("非企业用户,请用分办功能提交!")
  748. }
  749. //取出准入申请表
  750. srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
  751. var annualEntity annualaudit.OilAnnualAudit
  752. srv.GetEntityById(annualId, &annualEntity)
  753. //srv.IsSupplierCertCanSubmit(strconv.Itoa(supplierCertEntity.Id), certId) TODO 参数检查
  754. if this.User.Realname != annualEntity.CreateBy {
  755. panic("请联系申请创建人:" + annualEntity.CreateBy + " 予以提交,或删除该申请后重新创建再提交!")
  756. }
  757. //取出企业主表
  758. supplierSvc := supplier.GetOilSupplierService(utils.DBE)
  759. var supplierEntity supplier.OilSupplier
  760. //检查是否可提交
  761. supplierSvc.GetEntityById(annualEntity.SupplierId, &supplierEntity)
  762. status, _ := strconv.Atoi(annualEntity.Status)
  763. if status > 0 {
  764. panic("工作流已经启动,请刷新重试!")
  765. }
  766. supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  767. var supplierCertEntity suppliercert.OilSupplierCert
  768. supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
  769. stepCode := workflow.GetWorkFlowStepCode(supplierCertEntity.SupplierTypeCode) // TODO 年审的准入方式
  770. auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
  771. approverIds := auditSettingService.GetApproverIdsByStepCodeAndUnitId(stepCode, unitId)
  772. if approverIds == "" {
  773. panic("该分办单位未配置审批人")
  774. }
  775. svcActiviti := workflow.GetActivitiService(utils.DBE)
  776. //启动工作流
  777. businessKey := annualEntity.BusinessKey
  778. processInstanceId := annualEntity.WorkflowId
  779. // 如果被驳回,不再新启工作流
  780. if processInstanceId == "" {
  781. businessKey = annualId + "-" + strconv.Itoa(annualEntity.AuditIndex)
  782. processInstanceId = svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, "1", annualEntity.SupplierTypeName, supplierEntity.SupplierName)
  783. if len(processInstanceId) <= 0 {
  784. panic("工作流启动失败!")
  785. }
  786. annualEntity.AuditIndex += 1
  787. }
  788. // 将启动和工作流,选择的初审和复审人员保存下来
  789. cols := []string{
  790. "Id",
  791. "WorkflowId",
  792. "BusinessKey",
  793. "ProcessKey",
  794. "CommitComId",
  795. "AuditIndex",
  796. }
  797. annualEntity.ProcessKey = workflow.OIL_AUDIT_APPLY
  798. annualEntity.BusinessKey = businessKey
  799. annualEntity.WorkflowId = processInstanceId
  800. annualEntity.CommitComId = unitId
  801. srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
  802. var ActiComplete workflow.ActiCompleteVM
  803. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  804. ActiComplete.BusinessKey = businessKey
  805. ActiComplete.UserId = this.User.Id
  806. ActiComplete.Result = "1" //提交给二级单位分办
  807. ActiComplete.Remarks = AuditRemark
  808. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  809. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  810. if receiveVal != "true" {
  811. log.Println("工作流异常, 业务ID:"+annualEntity.BusinessKey+", 流程ID:"+annualEntity.WorkflowId, " 工作流传参: ", ActiComplete, receiveVal)
  812. panic("任务已审批,请刷新!")
  813. }
  814. // 入库成功 记录快照
  815. supplierLogService := supplierlog.GetSupplierLogService(utils.DBE)
  816. sourceId, _ := strconv.Atoi(annualId)
  817. supplierLogService.SaveSupplierLogForAnnual(annualEntity.SupplierId, sourceId) // 年审
  818. }
  819. // @Title 二级单位分办提交审批
  820. // @Description 提交审批
  821. // @Success 200 {object} controllers.Request
  822. // @router /unit-audit/:id [post]
  823. func (this *AnnualAuditController) SeparateUnitSubmitAuditEntity() {
  824. annualId := this.Ctx.Input.Param(":id")
  825. firstAudit := this.GetString("firstAudit")
  826. secondAudit := this.GetString("SecondAudit")
  827. auditRemark := this.GetString("AuditRemark")
  828. userId := this.User.Id
  829. var baseUserInfo userRole.Base_User
  830. userService := userRole.GetUserService(utils.DBE)
  831. userService.GetEntityById(userId, &baseUserInfo)
  832. unitId := baseUserInfo.UnitId
  833. var errinfo ErrorDataInfo
  834. defer func() { //finally处理失败的异常
  835. if err := recover(); err != nil {
  836. errinfo.Message = err.(string)
  837. errinfo.Code = -1
  838. this.Data["json"] = &errinfo
  839. this.ServeJSON()
  840. } else {
  841. //返回正确结果
  842. errinfo.Message = "审核提交成功"
  843. errinfo.Code = 0
  844. this.Data["json"] = &errinfo
  845. this.ServeJSON()
  846. }
  847. }()
  848. if firstAudit == "" || secondAudit == "" {
  849. panic("请选择审批人")
  850. }
  851. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  852. var auditEntity annualaudit.OilAnnualAudit
  853. svc.GetEntityById(annualId, &auditEntity)
  854. var supplierEntity supplier.OilSupplier
  855. svc.GetEntityById(auditEntity.SupplierId, &supplierEntity)
  856. if this.User.Realname != auditEntity.CreateBy {
  857. panic("请联系申请创建人:" + auditEntity.CreateBy + " 予以提交,或删除该申请后重新创建再提交!")
  858. }
  859. svcActiviti := workflow.GetActivitiService(utils.DBE)
  860. //启动工作流
  861. businessKey := auditEntity.BusinessKey
  862. processInstanceId := auditEntity.WorkflowId
  863. // 如果被驳回,不再新启工作流
  864. if processInstanceId == "" {
  865. businessKey = annualId + "-" + strconv.Itoa(auditEntity.AuditIndex)
  866. processInstanceId = svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, "1", auditEntity.SupplierTypeName, supplierEntity.SupplierName)
  867. if len(processInstanceId) <= 0 {
  868. panic("工作流启动失败!")
  869. }
  870. auditEntity.AuditIndex += 1
  871. }
  872. // 将启动和工作流,选择的初审和复审人员保存下来
  873. cols := []string{
  874. "Id",
  875. "FirstAudit",
  876. "SecondAudit",
  877. "WorkflowId",
  878. "BusinessKey",
  879. "ProcessKey",
  880. "CommitComId",
  881. "AuditIndex",
  882. }
  883. auditEntity.ProcessKey = workflow.OIL_AUDIT_APPLY
  884. auditEntity.BusinessKey = businessKey
  885. auditEntity.WorkflowId = processInstanceId
  886. auditEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  887. auditEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
  888. auditEntity.CommitComId = strconv.Itoa(unitId)
  889. svc.UpdateEntityByIdCols(annualId, auditEntity, cols)
  890. var ActiComplete workflow.ActiCompleteVM
  891. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  892. ActiComplete.BusinessKey = auditEntity.BusinessKey
  893. ActiComplete.UserId = this.User.Id // 当前审批操作人员
  894. //ActiComplete.UserNames = secondAudit // 当前审批操作人员
  895. ActiComplete.Result = "2" //分办提交给二级单位初审
  896. ActiComplete.Remarks = auditRemark
  897. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  898. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  899. if receiveVal != "true" {
  900. log.Println("工作流异常, 业务ID:"+auditEntity.BusinessKey+", 流程ID:"+auditEntity.WorkflowId, " 工作流传参: ", ActiComplete, receiveVal)
  901. panic("任务已审批,请刷新!")
  902. }
  903. // 入库成功 记录快照
  904. supplierLogService := supplierlog.GetSupplierLogService(utils.DBE)
  905. sourceId, _ := strconv.Atoi(annualId)
  906. supplierLogService.SaveSupplierLogForAnnual(auditEntity.SupplierId, sourceId) // 年审
  907. }
  908. // @Title 二级单位分办 --审批
  909. // @Description 二级分办
  910. // @Success 200 {object} controllers.Request
  911. // @router /separate-audit/:id [post]
  912. func (this *AnnualAuditController) SeparateAuditEntity() {
  913. annualId := this.Ctx.Input.Param(":id")
  914. Result := this.GetString("Result")
  915. firstAudit := this.GetString("FirstAudit")
  916. secondAudit := this.GetString("SecondAudit")
  917. // typeCode := this.GetString("TypeCode")
  918. AuditRemark := this.GetString("AuditRemark")
  919. var errinfo ErrorDataInfo
  920. defer func() { //finally处理失败的异常
  921. if err := recover(); err != nil {
  922. errinfo.Message = err.(string)
  923. errinfo.Code = -1
  924. this.Data["json"] = &errinfo
  925. this.ServeJSON()
  926. } else {
  927. //返回正确结果
  928. errinfo.Message = "审核提交成功"
  929. errinfo.Code = 0
  930. this.Data["json"] = &errinfo
  931. this.ServeJSON()
  932. }
  933. }()
  934. // 取出准入表信息
  935. srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
  936. var annualEntity annualaudit.OilAnnualAudit
  937. srv.GetEntityById(annualId, &annualEntity)
  938. if Result == "1" {
  939. if firstAudit == "" || secondAudit == "" {
  940. panic("请选择审批人")
  941. }
  942. // 将选择的初审和复审人员保存下来
  943. cols := []string{
  944. "FirstAudit",
  945. "SecondAudit",
  946. "thirdAudit",
  947. }
  948. annualEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
  949. annualEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
  950. srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
  951. }
  952. svcActiviti := workflow.GetActivitiService(utils.DBE)
  953. var ActiComplete workflow.ActiCompleteVM
  954. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  955. ActiComplete.BusinessKey = annualEntity.BusinessKey
  956. ActiComplete.UserId = this.User.Id // 审批人员
  957. // ActiComplete.UserNames = secondAudit // 初审人员
  958. ActiComplete.Result = Result //分办完成后只向前走
  959. ActiComplete.Remarks = AuditRemark
  960. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  961. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  962. if receiveVal != "true" {
  963. log.Print("工作流异常, 业务ID:"+annualEntity.BusinessKey+", 流程ID:"+annualEntity.WorkflowId, " 工作流传参: ", ActiComplete, receiveVal)
  964. panic("任务已审批,请刷新!")
  965. }
  966. }
  967. // @Title 分办之后的各级审批 --审批 包含:二级单位初审、复审、企业法规处审核
  968. // @Description 分办之后的各级审批
  969. // @Success 200 {object} controllers.Request
  970. // @router /common-audit/:id [post]
  971. func (this *AnnualAuditController) CommonAuditEntity() {
  972. annualId := this.Ctx.Input.Param(":id")
  973. result := this.GetString("result")
  974. AuditRemark := this.GetString("AuditRemark")
  975. var errinfo ErrorDataInfo
  976. defer func() { //finally处理失败的异常
  977. if err := recover(); err != nil {
  978. errinfo.Message = err.(string)
  979. errinfo.Code = -1
  980. this.Data["json"] = &errinfo
  981. this.ServeJSON()
  982. } else {
  983. //返回正确结果
  984. errinfo.Message = "审核提交成功"
  985. errinfo.Code = 0
  986. this.Data["json"] = &errinfo
  987. this.ServeJSON()
  988. }
  989. }()
  990. //取出准入表信息
  991. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  992. var annualEntity annualaudit.OilAnnualAudit
  993. svc.GetEntityById(annualId, &annualEntity)
  994. svcActiviti := workflow.GetActivitiService(utils.DBE)
  995. var ActiComplete workflow.ActiCompleteVM
  996. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  997. ActiComplete.BusinessKey = annualEntity.BusinessKey
  998. ActiComplete.UserId = this.User.Id //审批人员
  999. ActiComplete.Result = result //前台审批[同意、不同意]
  1000. ActiComplete.Remarks = AuditRemark
  1001. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  1002. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1003. if receiveVal != "true" {
  1004. log.Println("工作流异常, 业务ID:"+annualEntity.BusinessKey+", 流程ID:"+annualEntity.WorkflowId, " 工作流传参: ", ActiComplete, receiveVal)
  1005. panic("任务已审批,请刷新!")
  1006. }
  1007. }
  1008. // @Title 确认是否入库
  1009. // @Description 确认是否入库
  1010. // @Success 200 {object} controllers.Request
  1011. // @router /update-is-storage/:id [post]
  1012. func (this *AnnualAuditController) UpdateIsStorage() {
  1013. id := this.Ctx.Input.Param(":id")
  1014. status := this.GetString("Status")
  1015. //PACNumber := this.GetString("PACNumber")
  1016. //SupplierId := this.GetString("SupplierId")
  1017. var errinfo ErrorInfo
  1018. if id == "" {
  1019. errinfo.Message = "操作失败!请求信息不完整"
  1020. errinfo.Code = -2
  1021. this.Data["json"] = &errinfo
  1022. this.ServeJSON()
  1023. return
  1024. }
  1025. defer func() { //finally处理失败的异常
  1026. if err := recover(); err != nil {
  1027. errinfo.Message = err.(string)
  1028. errinfo.Code = -1
  1029. this.Data["json"] = &errinfo
  1030. this.ServeJSON()
  1031. } else {
  1032. //返回正确结果
  1033. if status == "1" {
  1034. errinfo.Message = "入库成功"
  1035. } else {
  1036. errinfo.Message = "退回成功"
  1037. }
  1038. errinfo.Code = 0
  1039. this.Data["json"] = &errinfo
  1040. this.ServeJSON()
  1041. }
  1042. }()
  1043. var annualEntity annualaudit.OilAnnualAudit
  1044. annualSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1045. annualSrv.GetEntityById(id, &annualEntity)
  1046. //var supplierEntity supplier.OilSupplier
  1047. //srv := supplier.GetOilSupplierService(utils.DBE)
  1048. //srv.GetEntityById(SupplierId, &supplierEntity)
  1049. //supplierEntity.PACNumber = PACNumber
  1050. //srvCols := []string{"PACNumber"}
  1051. //srv.UpdateEntityByIdCols(SupplierId, &supplierEntity, srvCols)
  1052. AuditRemark := ""
  1053. fmt.Println("年审审批入库传入状态:", status)
  1054. if status == "1" {
  1055. AuditRemark = "审批通过已入库。"
  1056. } else {
  1057. status = "0"
  1058. AuditRemark = "入库退回。"
  1059. }
  1060. svcActiviti := workflow.GetActivitiService(utils.DBE)
  1061. var ActiComplete workflow.ActiCompleteVM
  1062. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  1063. ActiComplete.BusinessKey = annualEntity.BusinessKey
  1064. ActiComplete.UserId = this.User.Id //审批人员
  1065. ActiComplete.Result = status //前台审批[同意、不同意]
  1066. ActiComplete.Remarks = AuditRemark
  1067. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  1068. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1069. if receiveVal != "true" {
  1070. log.Println("工作流异常, 业务ID:"+annualEntity.BusinessKey+", 流程ID:"+annualEntity.WorkflowId, " 工作流传参: ", ActiComplete, receiveVal)
  1071. panic("任务已审批,请刷新!")
  1072. }
  1073. }
  1074. // @Title 删除单条信息
  1075. // @Description
  1076. // @Success 200 {object} ErrorInfo
  1077. // @Failure 403 :id 为空
  1078. // @router /delete/:Id [delete]
  1079. func (this *AnnualAuditController) DeleteEntity() {
  1080. Id := this.Ctx.Input.Param(":Id")
  1081. var errinfo ErrorInfo
  1082. if Id == "" {
  1083. errinfo.Message = "操作失败!请求信息不完整"
  1084. errinfo.Code = -2
  1085. this.Data["json"] = &errinfo
  1086. this.ServeJSON()
  1087. return
  1088. }
  1089. var model annualaudit.OilAnnualAudit
  1090. var entityempty annualaudit.OilAnnualAudit
  1091. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1092. opdesc := "删除-" + Id
  1093. // 删除变更的资质
  1094. wherefile := "ParentId=" + Id
  1095. svc.DeleteEntityBytbl(OilAnnualChangeDetailName, wherefile)
  1096. err := svc.DeleteOperationAndWriteLogBytbl(""+OilAnnualAuditName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, "", "钻井日报")
  1097. if err == nil {
  1098. activitiService := workflow.GetActivitiService(utils.DBE)
  1099. var deleteProcessVM workflow.DeleteProcessVM
  1100. if model.WorkflowId != "" && model.WorkflowId != "0" {
  1101. deleteProcessVM.ProcessInstanceId = model.WorkflowId
  1102. deleteProcessVM.DeleteReason = "年审申请审批未通过后,被申请人删除"
  1103. activitiService.DeleteComplete(deleteProcessVM)
  1104. }
  1105. errinfo.Message = "删除成功"
  1106. errinfo.Code = 0
  1107. this.Data["json"] = &errinfo
  1108. this.ServeJSON()
  1109. } else {
  1110. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  1111. errinfo.Code = -1
  1112. this.Data["json"] = &errinfo
  1113. this.ServeJSON()
  1114. }
  1115. }
  1116. // @Title 审核
  1117. // @Description 审核
  1118. // @Success 200 {object} controllers.Request
  1119. // @router /auditcallback [get]
  1120. func (this *AnnualAuditController) AuditCallback() {
  1121. result := this.GetString("ret")
  1122. bussinsid := this.GetString("busid")
  1123. status := this.GetString("status")
  1124. annualId := this.GetString("annualId")
  1125. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1126. var entityempty annualaudit.OilAnnualAudit
  1127. var err error
  1128. var errinfo ErrorInfo
  1129. var cols []string = []string{"Status"}
  1130. entityempty.Status = status
  1131. err = svc.UpdateEntityBytbl(OilAnnualAuditName, annualId, &entityempty, cols)
  1132. if err != nil {
  1133. errinfo.Message = "审核错误!"
  1134. errinfo.Code = -1
  1135. this.Data["json"] = &errinfo
  1136. this.ServeJSON()
  1137. }
  1138. fmt.Println(result, status, annualId, bussinsid)
  1139. }
  1140. // @Title 审核
  1141. // @Description 审核
  1142. // @Success 200 {object} controllers.Request
  1143. // @router /auditfirst [put]
  1144. func (this *AnnualAuditController) AnnualAudit() {
  1145. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1146. var jsonblob = this.Ctx.Input.RequestBody
  1147. var dataother ShenHeModel
  1148. var errinfo ErrorInfo
  1149. json.Unmarshal(jsonblob, &dataother)
  1150. ProfAudit := this.GetString("ProfAudit")
  1151. firstAudit := this.GetString("FirstAudit")
  1152. secondAudit := this.GetString("SecondAudit")
  1153. thirdAudit := this.GetString("ThirdAudit")
  1154. var list annualaudit.OilAnnualAudit
  1155. where := " Id = '" + strconv.Itoa(dataother.AnnualId) + "'"
  1156. svc.GetEntityByWhere(""+OilAnnualAuditName, where, &list)
  1157. var supplierEntity supplier.OilSupplier
  1158. wheresup := "Id=" + strconv.Itoa(list.SupplierId)
  1159. svc.GetEntity(&supplierEntity, wheresup)
  1160. var certEntity suppliercert.OilSupplierCert
  1161. wherecert := "Id=" + strconv.Itoa(list.CerId)
  1162. svc.GetEntity(&certEntity, wherecert)
  1163. svcActiviti := workflow.GetActivitiService(utils.DBE)
  1164. //审核状态判断进行的操作
  1165. step := 2
  1166. status := ""
  1167. backstatus := "0"
  1168. var userIds string
  1169. if list.Status == suppliercert.FEN_TRIAL_STATUS {
  1170. userIds = firstAudit
  1171. status = suppliercert.FIRST_TRIAL_STATUS
  1172. step = 2
  1173. backstatus = suppliercert.NO_FEN_TRIAL_STATUS
  1174. if dataother.SuccessStatus == 1 {
  1175. list.FirstAudit, _ = strconv.Atoi(firstAudit)
  1176. list.SecondAudit, _ = strconv.Atoi(secondAudit)
  1177. list.ThirdAudit, _ = strconv.Atoi(thirdAudit)
  1178. cols := []string{
  1179. "FirstAudit",
  1180. "SecondAudit",
  1181. "ThirdAudit",
  1182. }
  1183. svc.UpdateEntityByIdCols(dataother.AnnualId, list, cols)
  1184. }
  1185. }
  1186. if list.Status == suppliercert.DRAFT_STATUS && this.User.IsCompanyUser == 1 {
  1187. userIds = utils.ToStr(list.SecondAudit)
  1188. status = suppliercert.SECOND_TRIAL_STATUS
  1189. step = 2
  1190. backstatus = suppliercert.NOPASS_STATUS
  1191. }
  1192. if list.Status == suppliercert.FIRST_TRIAL_STATUS {
  1193. userIds = utils.ToStr(list.SecondAudit)
  1194. status = suppliercert.SECOND_TRIAL_STATUS
  1195. step = 2
  1196. backstatus = suppliercert.NOPASS_STATUS
  1197. } else if list.Status == suppliercert.SECOND_TRIAL_STATUS {
  1198. status = suppliercert.CENT_AUDIT_STATUS
  1199. step = 2
  1200. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  1201. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  1202. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  1203. var userlist []userRole.Base_User
  1204. var setting auditsetting.Base_OilAuditSetting
  1205. usvc := userRole.GetUserService(utils.DBE)
  1206. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  1207. usvc.GetEntity(&setting, where)
  1208. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  1209. tempstr := strings.Join(ids, ",")
  1210. uids := strings.Replace(tempstr, "uid_", "", -1)
  1211. uids = strings.Trim(uids, ",")
  1212. if uids != "" {
  1213. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  1214. usvc.GetEntities(&userlist, where)
  1215. }
  1216. for _, tmpUser := range userlist {
  1217. userIds += strconv.Itoa(tmpUser.Id) + ","
  1218. }
  1219. userIds = strings.Trim(userIds, ",")
  1220. } else if list.Status == suppliercert.THIRD_TRIAL_STATUS {
  1221. userIds = ProfAudit
  1222. status = suppliercert.PROF_AUDIT_STATUS
  1223. step = 2
  1224. backstatus = suppliercert.NO_THIRD_TRIAL_STATUS
  1225. } else if list.Status == suppliercert.PROF_AUDIT_STATUS {
  1226. status = suppliercert.PAYING_AUDIT_STATUS
  1227. step = 3
  1228. backstatus = suppliercert.NO_PROF_AUDIT_STATUS
  1229. } else if list.Status == suppliercert.CENT_AUDIT_STATUS {
  1230. status = suppliercert.PAYING_AUDIT_STATUS
  1231. step = 3
  1232. backstatus = suppliercert.NO_CENT_AUDIT_STATUS
  1233. }
  1234. var ActiComplete workflow.ActiCompleteVM
  1235. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  1236. ActiComplete.BusinessKey = list.BusinessKey
  1237. ActiComplete.UserNames = userIds
  1238. ActiComplete.UserId = this.User.Id
  1239. ActiComplete.Remarks = dataother.AuditorRemark
  1240. ActiComplete.CallbackUrl = ""
  1241. if dataother.SuccessStatus == 1 {
  1242. ActiComplete.Result = "1"
  1243. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1244. var auditmodel annualaudit.OilAnnualAudit
  1245. auditmodel.Status = status
  1246. oldaplydate := list.ApplyTime
  1247. if list.Status == suppliercert.CENT_AUDIT_STATUS {
  1248. if certEntity.InStyle == suppliercert.PINGSHEN || certEntity.InStyle == suppliercert.ERJIWUZI {
  1249. var certmodel suppliercert.OilSupplierCert
  1250. certmodel.AuditDate = time.Now()
  1251. certcols := []string{
  1252. "Id",
  1253. //"ApplyTime",
  1254. "AuditDate",
  1255. }
  1256. svc.UpdateEntityByIdCols(list.CerId, certmodel, certcols)
  1257. paysvc := paymentinfo.GetPaymentService(utils.DBE)
  1258. var Amount float64
  1259. asvc := oilcostmanage.GetOilCostManageService(utils.DBE)
  1260. Amount = asvc.GetAmount("ANNUAL", list.SupplierTypeName)
  1261. var payinfo paymentinfo.OilPaymentInfo
  1262. payinfo.SupplierId = list.SupplierId
  1263. payinfo.SrcId = list.Id
  1264. payinfo.SupplierCertId = list.CerId
  1265. payinfo.USCCode = supplierEntity.CommercialNo
  1266. payinfo.SupplierName = supplierEntity.SupplierName
  1267. payinfo.PayType = "2"
  1268. payinfo.IsPay = "0"
  1269. payinfo.IsInvoice = "0"
  1270. payinfo.Amount = strconv.FormatFloat(Amount, 'E', -1, 64)
  1271. payinfo.CreateUserId = list.CreateUserId
  1272. payinfo.CreateBy = list.CreateBy
  1273. payinfo.CreateOn = time.Now()
  1274. paysvc.InsertEntity(&payinfo)
  1275. //发短信
  1276. toMobile := supplierEntity.Mobile
  1277. bFlag := ""
  1278. if list.SupplierTypeName == "01" {
  1279. bFlag = "物资类"
  1280. } else if list.SupplierTypeName == "02" {
  1281. bFlag = "基建类"
  1282. } else {
  1283. bFlag = "服务类"
  1284. }
  1285. msg := "您的" + bFlag + "年审审核通过,请及时确认信息并交费!"
  1286. msgService := msg2.GetMsgService(utils.DBE)
  1287. msgService.HandleMsg(toMobile, msg, "4-1", list.CreateBy, supplierEntity.ContactName, strconv.Itoa(list.CreateUserId), this.User.Username)
  1288. } else {
  1289. auditmodel.Status = suppliercert.ALL_PASE_STATUS
  1290. }
  1291. var qualdetail []annualaudit.OilAnnualChangeDetail
  1292. where1 := "SupplierId = " + utils.ToStr(list.SupplierId) + " and ParentId=" + strconv.Itoa(list.Id)
  1293. svc.GetEntities(&qualdetail, where1)
  1294. if len(qualdetail) > 0 {
  1295. for i := 0; i < len(qualdetail); i++ {
  1296. var supfilemodel supplierfile.OilSupplierFile
  1297. supfilemodel.FileName = qualdetail[i].FileName
  1298. supfilemodel.FileUrl = qualdetail[i].FileUrl
  1299. supfilemodel.EffectDate = qualdetail[i].EffectDate
  1300. svc.UpdateEntityBytbl(OilSupplierFileName, qualdetail[i].FileId, &supfilemodel, []string{"FileName", "FileUrl", "EffectDate"})
  1301. }
  1302. }
  1303. var infoitems []infochange.OilAnnualChangeItem
  1304. where := "SupplierId = " + utils.ToStr(supplierEntity.Id) + " and InfoId = " + utils.ToStr(list.Id)
  1305. svc.GetEntities(&infoitems, where)
  1306. this.updatesupplier(OilSupplierName, supplierEntity.Id, infoitems)
  1307. } else {
  1308. auditmodel.ApplyTime = oldaplydate
  1309. }
  1310. auditmodel.Step = step
  1311. if receiveVal == "true" {
  1312. cols := []string{
  1313. "Id",
  1314. "Status",
  1315. "Step",
  1316. //"ApplyTime",
  1317. }
  1318. svc.UpdateEntityByIdCols(dataother.AnnualId, auditmodel, cols)
  1319. //paysvc.AddPaymentinfo(list.SupplierId, list.Id, Amount, "2")
  1320. errinfo.Message = "提交成功!"
  1321. errinfo.Code = 0
  1322. this.Data["json"] = &errinfo
  1323. this.ServeJSON()
  1324. } else {
  1325. errinfo.Message = "工作流异常,请联系管理员!"
  1326. errinfo.Code = -1
  1327. this.Data["json"] = &errinfo
  1328. this.ServeJSON()
  1329. return
  1330. }
  1331. } else {
  1332. ActiComplete.Result = "0"
  1333. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  1334. if receiveVal == "true" {
  1335. if list.Status == suppliercert.PROF_AUDIT_STATUS {
  1336. list.Status = suppliercert.NO_CENT_AUDIT_STATUS
  1337. list.AuditIndex = list.AuditIndex + 1
  1338. } else {
  1339. list.Status = backstatus
  1340. list.AuditIndex = list.AuditIndex + 1
  1341. }
  1342. list.Step = 1
  1343. cols := []string{
  1344. "Status",
  1345. "Step",
  1346. "AuditIndex",
  1347. }
  1348. _, err := svc.UpdateEntityByIdCols(dataother.AnnualId, list, cols)
  1349. toMobile := supplierEntity.Mobile
  1350. bFlag := ""
  1351. if list.SupplierTypeName == "01" {
  1352. bFlag = "物资类"
  1353. } else if list.SupplierTypeName == "02" {
  1354. bFlag = "基建类"
  1355. } else {
  1356. bFlag = "服务类"
  1357. }
  1358. msg := "您的" + bFlag + "年审审核未通过,请及时查看!"
  1359. msgService := msg2.GetMsgService(utils.DBE)
  1360. msgService.HandleMsg(toMobile, msg, "4-1", list.CreateBy, supplierEntity.ContactName, strconv.Itoa(list.CreateUserId), this.User.Username)
  1361. if err == nil {
  1362. errinfo.Message = "提交成功!"
  1363. errinfo.Code = 0
  1364. this.Data["json"] = &errinfo
  1365. this.ServeJSON()
  1366. } else {
  1367. errinfo.Message = "提交失败!"
  1368. errinfo.Code = -1
  1369. this.Data["json"] = &errinfo
  1370. this.ServeJSON()
  1371. }
  1372. } else {
  1373. errinfo.Message = "工作流异常,请联系管理员!"
  1374. errinfo.Code = -1
  1375. this.Data["json"] = &errinfo
  1376. this.ServeJSON()
  1377. return
  1378. }
  1379. }
  1380. }
  1381. // @Title 获取实体
  1382. // @Description 获取实体
  1383. // @Success 200 {object} supplier.OilSupplier
  1384. // @router /getchangelist/:id [get]
  1385. func (this *AnnualAuditController) GetChangeEntity() {
  1386. Id := this.Ctx.Input.Param(":id")
  1387. InfoId := this.GetString("InfomainId")
  1388. var models [2]supplier.OilSupplier
  1389. var model supplier.OilSupplier
  1390. var enumModel supplier.OilSupplier
  1391. svc := supplier.GetOilSupplierService(utils.DBE)
  1392. svc.GetEntityByIdBytbl(OilSupplierName, Id, &model)
  1393. models[0] = model
  1394. var infoitems []infochange.OilAnnualChangeItem
  1395. where := " SupplierId = " + Id + " and InfoId =" + InfoId
  1396. where = where + " and ChangeStatus = 0"
  1397. svc.GetEntitysByWhere(OilAnnualChangeItemName, where, &infoitems)
  1398. tmpModel := &model
  1399. enumModel = *tmpModel
  1400. immumodel := reflect.ValueOf(&enumModel)
  1401. elem := immumodel.Elem()
  1402. if len(infoitems) == 0 {
  1403. models[1] = enumModel
  1404. this.Data["json"] = &models
  1405. this.ServeJSON()
  1406. return
  1407. } else {
  1408. for _, info := range infoitems {
  1409. fmt.Println(info.SelectItem)
  1410. fmt.Println(";;;;;;;;;", elem.FieldByName(info.SelectItem).Type().String())
  1411. if elem.FieldByName(info.SelectItem).Type().String() == "int64" {
  1412. intchangeinfo, _ := strconv.ParseInt(info.ChangeInfo, 10, 64)
  1413. elem.FieldByName(info.SelectItem).SetInt(intchangeinfo)
  1414. } else if elem.FieldByName(info.SelectItem).Type().String() == "float64" {
  1415. floatchangeinfo, _ := strconv.ParseFloat(info.ChangeInfo, 64)
  1416. elem.FieldByName(info.SelectItem).SetFloat(floatchangeinfo)
  1417. } else if elem.FieldByName(info.SelectItem).Type().String() == "time.Time" {
  1418. t, _ := time.Parse("2006-01-02", info.ChangeInfo[0:10])
  1419. elem.FieldByName(info.SelectItem).Set(reflect.ValueOf(t))
  1420. } else {
  1421. elem.FieldByName(info.SelectItem).SetString(info.ChangeInfo)
  1422. }
  1423. }
  1424. models[1] = enumModel
  1425. this.Data["json"] = &models
  1426. this.ServeJSON()
  1427. }
  1428. }
  1429. // @Title 添加
  1430. // @Description 新增
  1431. // @Success 200 {object} controllers.Request
  1432. // @router /addinfochangeitemch [post]
  1433. func (this *AnnualAuditController) AddInfoChangeItemCh() {
  1434. var model InfoChangeItemsAll
  1435. var jsonBlob = this.Ctx.Input.RequestBody
  1436. svc := infochange.GetInfoChangeService(utils.DBE)
  1437. json.Unmarshal(jsonBlob, &model)
  1438. var err error
  1439. where := " SupplierId = " + model.SupplierId
  1440. where = where + " and InfoId = " + model.MInfoId
  1441. var deleteEntity infochange.OilAnnualChangeItem
  1442. delMainId, _ := strconv.Atoi(model.MInfoId)
  1443. deleteEntity.InfoId = delMainId
  1444. svc.DBE.Delete(deleteEntity)
  1445. var infoitementitys []infochange.OilAnnualChangeItem
  1446. for i := 0; i < len(model.InfochangeForm); i++ {
  1447. var infoitementity infochange.OilAnnualChangeItem
  1448. infoitementity.SelectItem = model.InfochangeForm[i].SelectItem
  1449. infoitementity.SelectItemName = model.InfochangeForm[i].SelectItemName
  1450. infoitementity.ChangeInfo = model.InfochangeForm[i].ChangeInfo
  1451. infoitementity.BeChangeInfo = model.InfochangeForm[i].BeChangeInfo
  1452. infoitementity.ChangeStatus = 0
  1453. infoitementity.SupplierId, _ = strconv.Atoi(model.SupplierId)
  1454. infoitementity.InfoId, _ = strconv.Atoi(model.MInfoId)
  1455. infoitementity.CreateOn = time.Now()
  1456. infoitementity.CreateBy = this.User.Realname
  1457. infoitementity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  1458. infoitementitys = append(infoitementitys, infoitementity)
  1459. }
  1460. _, err = svc.InsertEntityBytbl(""+OilAnnualChangeItemName, &infoitementitys)
  1461. var errinfo ErrorDataInfo
  1462. if err == nil {
  1463. //新增
  1464. errinfo.Message = "添加成功!"
  1465. errinfo.Code = 0
  1466. //errinfo.Item = model.Id
  1467. this.Data["json"] = &errinfo
  1468. this.ServeJSON()
  1469. } else {
  1470. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  1471. errinfo.Code = -1
  1472. this.Data["json"] = &errinfo
  1473. this.ServeJSON()
  1474. }
  1475. }
  1476. // @Title 获取变更项
  1477. // @Description 获取实体
  1478. // @Success 200 {object} annualaudit.OilAnnualAudit
  1479. // @router /auditget/:id [get]
  1480. func (this *AnnualAuditController) GetEntityThen() {
  1481. InfoId := this.Ctx.Input.Param(":id")
  1482. var model []infochange.OilAnnualChangeItem
  1483. svc := infochange.GetInfoChangeService(utils.DBE)
  1484. where := " InfoId = " + InfoId
  1485. svc.GetEntitysByWhere(OilAnnualChangeItemName, where, &model)
  1486. var datainfo DataInfo
  1487. datainfo.Items = model
  1488. this.Data["json"] = &datainfo
  1489. this.ServeJSON()
  1490. }
  1491. //更新供方信息表
  1492. func (this *AnnualAuditController) updatesupplier(supname string, suppid int, infoitems []infochange.OilAnnualChangeItem) error {
  1493. svc := infochange.GetInfoChangeService(utils.DBE)
  1494. var err error
  1495. if len(infoitems) > 0 {
  1496. for i := 0; i < len(infoitems); i++ {
  1497. //var cols []string
  1498. //cols = append(cols, infoitems[i].SelectItem)
  1499. where := " Id = " + utils.ToStr(suppid)
  1500. var sql string
  1501. sql = `UPDATE ` + supname + ` set ` + infoitems[i].SelectItem + ` = '` + infoitems[i].ChangeInfo + `' where ` + where
  1502. _, err = svc.DBE.Exec(sql)
  1503. //err = svc.UpdateEntityBytbl(OilSupplierName, suppid, &supmodel, cols)
  1504. }
  1505. }
  1506. return err
  1507. }
  1508. // @Title 资质文件
  1509. // @Description get user by token
  1510. // @Success 200 {object} models.Userblood
  1511. // @router /filelist [get]
  1512. func (this *AnnualAuditController) FileList() {
  1513. page := this.GetPageInfoForm()
  1514. var list []qualchange.OilQualChangeDetail1
  1515. svc := qualchange.GetQualChangeService(utils.DBE)
  1516. where := " 1=1 and a.IsDelete = 0"
  1517. orderby := "a.SupplierTypeCode"
  1518. asc := true
  1519. Order := this.GetString("Order")
  1520. Prop := this.GetString("Prop")
  1521. if Order != "" && Prop != "" {
  1522. orderby = Prop
  1523. if Order == "asc" {
  1524. asc = true
  1525. }
  1526. }
  1527. SupplierId := this.GetString("SupplierId")
  1528. MInfoId := this.GetString("MInfoId")
  1529. if SupplierId != "" {
  1530. where = where + " and a.SupplierId = '" + SupplierId + "'"
  1531. }
  1532. SupplierTypeCode := this.GetString("SupplierTypeCode")
  1533. if SupplierTypeCode != "" {
  1534. where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')"
  1535. }
  1536. var total int64
  1537. AuditStatus := this.GetString("Status")
  1538. if AuditStatus == "8" {
  1539. total = svc.GetQualPagingEntitiesStatus(OilSupplierFileName, OilAnnualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId)
  1540. } else {
  1541. total = svc.GetQualPagingEntities(OilSupplierFileName, OilAnnualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId)
  1542. }
  1543. var datainfo DataInfo
  1544. datainfo.Items = list
  1545. datainfo.CurrentItemCount = total
  1546. this.Data["json"] = &datainfo
  1547. this.ServeJSON()
  1548. }
  1549. // @Title 添加资金
  1550. // @Description 添加资金
  1551. // @Success 200 {object}
  1552. // @router /addqualchange/:id [post]
  1553. func (this *AnnualAuditController) AddQualChange() {
  1554. id := this.Ctx.Input.Param(":id")
  1555. var errinfo ErrorInfo
  1556. if id == "" {
  1557. errinfo.Message = "操作失败!请求信息不完整"
  1558. errinfo.Code = -2
  1559. this.Data["json"] = &errinfo
  1560. this.ServeJSON()
  1561. return
  1562. }
  1563. var model annualaudit.OilAnnualChangeDetail
  1564. var jsonblob = this.Ctx.Input.RequestBody
  1565. json.Unmarshal(jsonblob, &model)
  1566. svc := qualchange.GetQualChangeService(utils.DBE)
  1567. var supplierfile supplierfile.OilSupplierFile
  1568. where := "SupplierId = '" + strconv.Itoa(model.SupplierId) + "' and NeedFileType='" + model.NeedFileType + "'"
  1569. has := svc.GetEntity(&supplierfile, where)
  1570. var tableHeader tableheader.BaseTableheader
  1571. where1 := "Name = '" + model.NeedFileType + "'"
  1572. svc.GetEntityByWhere(BaseTableHeader, where1, &tableHeader)
  1573. if has {
  1574. errinfo.Message = "操作失败!该资质已添加"
  1575. errinfo.Code = -1
  1576. this.Data["json"] = &errinfo
  1577. this.ServeJSON()
  1578. return
  1579. }
  1580. supplierfile.SupplierId = model.SupplierId
  1581. supplierfile.SupplierTypeCode = model.SupplierTypeCode
  1582. supplierfile.IsManuf = tableHeader.IsManuf
  1583. supplierfile.NeedFileType = model.NeedFileType
  1584. supplierfile.FileType = 1
  1585. supplierfile.SupType = 4
  1586. supplierfile.CreateOn = time.Now()
  1587. supplierfile.CreateUserId, _ = strconv.Atoi(this.User.Id)
  1588. supplierfile.CreateBy = this.User.Realname
  1589. supplierfile.FileUrl = strings.Trim(model.FileUrl, "$")
  1590. supplierfile.FileName = strings.Trim(model.FileName, "$")
  1591. supplierfile.EffectDate = model.EffectDate
  1592. supplierfile.OtherRemark = model.Remark
  1593. svc.InsertEntity(&supplierfile)
  1594. model.ParentId, _ = strconv.Atoi(id)
  1595. model.FileId = supplierfile.Id
  1596. model.FileUrl = strings.Trim(model.FileUrl, "$")
  1597. model.FileName = strings.Trim(model.FileName, "$")
  1598. var err error
  1599. var qualdetaimodel []annualaudit.OilAnnualChangeDetail
  1600. qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(supplierfile.Id) + " and ParentId=" + id
  1601. svc.GetEntitysByWhere(OilAnnualChangeDetailName, qdwhere, &qualdetaimodel)
  1602. if len(qualdetaimodel) == 0 {
  1603. model.CreateOn = time.Now()
  1604. model.CreateBy = this.User.Realname
  1605. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  1606. _, err = svc.InsertEntityBytbl(OilAnnualChangeDetailName, &model)
  1607. } else {
  1608. err = svc.UpdateEntityBywheretbl(OilAnnualChangeDetailName, &model, []string{"OldEffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere)
  1609. }
  1610. if err == nil {
  1611. errinfo.Message = "操作成功!"
  1612. errinfo.Code = 0
  1613. this.Data["json"] = &errinfo
  1614. this.ServeJSON()
  1615. } else {
  1616. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  1617. errinfo.Code = -1
  1618. this.Data["json"] = &errinfo
  1619. this.ServeJSON()
  1620. }
  1621. }
  1622. // @Title 资质文件变更上传
  1623. // @Description 更新文件上传
  1624. // @Param id path string true
  1625. // @Success 200 {object}
  1626. // @router /editqualchange/:id [put]
  1627. func (this *AnnualAuditController) EditQualChange() {
  1628. id := this.Ctx.Input.Param(":id")
  1629. var errinfo ErrorInfo
  1630. if id == "" {
  1631. errinfo.Message = "操作失败!请求信息不完整"
  1632. errinfo.Code = -2
  1633. this.Data["json"] = &errinfo
  1634. this.ServeJSON()
  1635. return
  1636. }
  1637. var model annualaudit.OilAnnualChangeDetail
  1638. var jsonblob = this.Ctx.Input.RequestBody
  1639. svc := qualchange.GetQualChangeService(utils.DBE)
  1640. json.Unmarshal(jsonblob, &model)
  1641. model.FileUrl = strings.Trim(model.FileUrl, "$")
  1642. model.FileName = strings.Trim(model.FileName, "$")
  1643. model.OldFileUrl = strings.Trim(model.OldFileUrl, "$")
  1644. model.OldFileName = strings.Trim(model.OldFileName, "$")
  1645. var supplierfile supplierfile.OilSupplierFile
  1646. svc.GetEntityByIdBytbl(OilSupplierFileName, model.Id, &supplierfile)
  1647. if supplierfile.FileUrl == "" {
  1648. //区别 更新前和更新后文件
  1649. supplierfile.FileUrl = strings.Trim(model.FileUrl, "$")
  1650. supplierfile.FileName = strings.Trim(model.FileName, "$")
  1651. supplierfile.EffectDate = model.EffectDate
  1652. }
  1653. supplierfile.ModifiedOn = time.Now()
  1654. supplierfile.ModifiedUserId, _ = strconv.Atoi(this.User.Id)
  1655. supplierfile.ModifiedBy = this.User.Realname
  1656. supplierfile.OtherRemark = model.Remark
  1657. svc.UpdateEntityBywheretbl(OilSupplierFileName, &supplierfile, []string{"EffectDate", "FileUrl", "FileName", "ModifiedOn", "ModifiedUserId", "ModifiedBy", "OtherRemark"}, "Id = "+strconv.Itoa(model.Id))
  1658. var err error
  1659. var entity annualaudit.OilAnnualChangeDetail
  1660. var qualdetaimodel []annualaudit.OilAnnualChangeDetail
  1661. var mainentirt qualchange.OilQualChangeMain
  1662. var qualmain []qualchange.OilQualChangeMain
  1663. qmwhere := " SupplierId = " + utils.ToStr(model.SupplierId)
  1664. svc.GetEntitysByWhere(OilQualChangeMainName, qmwhere, &qualmain)
  1665. mainentirt.Status = "0"
  1666. mainentirt.Step = 1
  1667. err = svc.UpdateEntityBywheretbl(OilQualChangeMainName, &mainentirt, []string{"SupplierCertId", "Status", "Step"}, qmwhere)
  1668. qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(model.Id) + " and ParentId=" + id
  1669. svc.GetEntitysByWhere(OilAnnualChangeDetailName, qdwhere, &qualdetaimodel)
  1670. entity = model
  1671. entity.Id = 0
  1672. entity.ParentId, _ = strconv.Atoi(id)
  1673. entity.FileId = model.Id
  1674. if len(qualdetaimodel) == 0 {
  1675. entity.CreateOn = time.Now()
  1676. entity.CreateBy = this.User.Realname
  1677. entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  1678. _, err = svc.InsertEntityBytbl(OilAnnualChangeDetailName, &entity)
  1679. } else {
  1680. err = svc.UpdateEntityBywheretbl(OilAnnualChangeDetailName, &entity, []string{"EffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere)
  1681. }
  1682. if err == nil {
  1683. errinfo.Message = "操作成功!"
  1684. errinfo.Code = 0
  1685. this.Data["json"] = &errinfo
  1686. this.ServeJSON()
  1687. } else {
  1688. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  1689. errinfo.Code = -1
  1690. this.Data["json"] = &errinfo
  1691. this.ServeJSON()
  1692. }
  1693. }
  1694. // @Title 删除新上传的资质
  1695. // @Description
  1696. // @Success 200 {object} ErrorInfo
  1697. // @Failure 403 :id 为空
  1698. // @router /deletenewfile/:Id [delete]
  1699. func (this *AnnualAuditController) DeleteNewFile() {
  1700. Id := this.Ctx.Input.Param(":Id")
  1701. var errinfo ErrorInfo
  1702. if Id == "" {
  1703. errinfo.Message = "操作失败!请求信息不完整"
  1704. errinfo.Code = -2
  1705. this.Data["json"] = &errinfo
  1706. this.ServeJSON()
  1707. return
  1708. }
  1709. svc := infochange.GetInfoChangeService(utils.DBE)
  1710. where := "FileId=" + Id
  1711. err := svc.DeleteEntityBytbl(OilAnnualChangeDetailName, where)
  1712. if err == nil {
  1713. errinfo.Message = "删除成功"
  1714. errinfo.Code = 0
  1715. this.Data["json"] = &errinfo
  1716. this.ServeJSON()
  1717. } else {
  1718. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  1719. errinfo.Code = -1
  1720. this.Data["json"] = &errinfo
  1721. this.ServeJSON()
  1722. }
  1723. }
  1724. // @Title 删除添加的资质
  1725. // @Description
  1726. // @Success 200 {object} ErrorInfo
  1727. // @Failure 403 :id 为空
  1728. // @router /deleteaddfile/:Id [delete]
  1729. func (this *AnnualAuditController) DeleteAddFile() {
  1730. Id := this.Ctx.Input.Param(":Id")
  1731. var errinfo ErrorInfo
  1732. if Id == "" {
  1733. errinfo.Message = "操作失败!请求信息不完整"
  1734. errinfo.Code = -2
  1735. this.Data["json"] = &errinfo
  1736. this.ServeJSON()
  1737. return
  1738. }
  1739. svc := infochange.GetInfoChangeService(utils.DBE)
  1740. var file supplierfile.OilSupplierFile
  1741. has1 := svc.GetEntity(&file, "Id="+Id)
  1742. if !has1 {
  1743. errinfo.Message = "删除失败"
  1744. errinfo.Code = -1
  1745. this.Data["json"] = &errinfo
  1746. this.ServeJSON()
  1747. return
  1748. }
  1749. // 如果有正在进行中的流程,不允许删除任何资质
  1750. var certList []suppliercert.OilSupplierCert
  1751. svc.GetEntitysByWhere(OilSupplierCertName, "Status > 0 and Status < 8 and SupplierId = "+strconv.Itoa(file.SupplierId), &certList)
  1752. var appendList suppliercertappend.OilSupplierCertAppend
  1753. svc.GetEntityByWhere(OilSupplierCertAppendName, "Status > 0 and Status < 8 and SupplierId = "+strconv.Itoa(file.SupplierId), &appendList)
  1754. var infoList infochange.OilInfoChange
  1755. svc.GetEntityByWhere(OilInfoChangeName, "Status > 0 and Status < 8 and SupplierId = "+strconv.Itoa(file.SupplierId), &infoList)
  1756. if len(certList) > 0 || appendList.Id > 0 || infoList.Id > 0 {
  1757. errinfo.Message = "有正在审核中的流程,不允许删除任何资质"
  1758. errinfo.Code = -1
  1759. this.Data["json"] = &errinfo
  1760. this.ServeJSON()
  1761. return
  1762. }
  1763. where := "FileId=" + Id
  1764. err := svc.DeleteEntityBytbl(OilAnnualChangeDetailName, where)
  1765. where1 := "Id=" + Id
  1766. err = svc.DeleteEntityBytbl(OilSupplierFileName, where1)
  1767. if err == nil {
  1768. errinfo.Message = "删除成功"
  1769. errinfo.Code = 0
  1770. this.Data["json"] = &errinfo
  1771. this.ServeJSON()
  1772. } else {
  1773. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  1774. errinfo.Code = -1
  1775. this.Data["json"] = &errinfo
  1776. this.ServeJSON()
  1777. }
  1778. }
  1779. // @Title 添加资质
  1780. // @Description 添加资质
  1781. // @Success 200 {object}
  1782. // @router /addqualchange/:id [post]
  1783. func (this *AnnualAuditController) AddAppChange() {
  1784. id := this.Ctx.Input.Param(":id")
  1785. var errinfo ErrorInfo
  1786. if id == "" {
  1787. errinfo.Message = "操作失败!请求信息不完整"
  1788. errinfo.Code = -2
  1789. this.Data["json"] = &errinfo
  1790. this.ServeJSON()
  1791. return
  1792. }
  1793. var model annualaudit.OilAnnualChangeDetail
  1794. var jsonblob = this.Ctx.Input.RequestBody
  1795. json.Unmarshal(jsonblob, &model)
  1796. svc := qualchange.GetQualChangeService(utils.DBE)
  1797. var file supplierfile.OilSupplierFile
  1798. where := "SupplierId = '" + strconv.Itoa(model.SupplierId) + "' and NeedFileType='" + model.NeedFileType + "'"
  1799. has := svc.GetEntity(&file, where)
  1800. var tableHeader tableheader.BaseTableheader
  1801. where1 := "Name = '" + model.NeedFileType + "'"
  1802. svc.GetEntityByWhere(BaseTableHeader, where1, &tableHeader)
  1803. if has {
  1804. errinfo.Message = "操作失败!该资质已添加"
  1805. errinfo.Code = -1
  1806. this.Data["json"] = &errinfo
  1807. this.ServeJSON()
  1808. return
  1809. }
  1810. file.SupplierId = model.SupplierId
  1811. file.SupplierTypeCode = model.SupplierTypeCode
  1812. file.IsManuf = tableHeader.IsManuf
  1813. file.NeedFileType = model.NeedFileType
  1814. file.FileType = 0
  1815. file.SupType = 2
  1816. file.CreateOn = time.Now()
  1817. file.CreateUserId, _ = strconv.Atoi(this.User.Id)
  1818. file.CreateBy = this.User.Realname
  1819. file.FileUrl = strings.Trim(model.FileUrl, "$")
  1820. file.FileName = strings.Trim(model.FileName, "$")
  1821. file.EffectDate = model.EffectDate
  1822. file.OtherRemark = model.Remark
  1823. svc.InsertEntity(&file)
  1824. model.ParentId, _ = strconv.Atoi(id)
  1825. model.FileId = file.Id
  1826. model.FileUrl = strings.Trim(model.FileUrl, "$")
  1827. model.FileName = strings.Trim(model.FileName, "$")
  1828. var err error
  1829. var qualdetaimodel []annualaudit.OilAnnualChangeDetail
  1830. qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(file.Id) + " and ParentId=" + id
  1831. svc.GetEntitysByWhere(OilAnnualChangeDetailName, qdwhere, &qualdetaimodel)
  1832. if len(qualdetaimodel) == 0 {
  1833. model.CreateOn = time.Now()
  1834. model.CreateBy = this.User.Realname
  1835. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  1836. _, err = svc.InsertEntityBytbl(OilAnnualChangeDetailName, &model)
  1837. } else {
  1838. err = svc.UpdateEntityBywheretbl(OilAnnualChangeDetailName, &model, []string{"OldEffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere)
  1839. }
  1840. if err == nil {
  1841. errinfo.Message = "操作成功!"
  1842. errinfo.Code = 0
  1843. this.Data["json"] = &errinfo
  1844. this.ServeJSON()
  1845. } else {
  1846. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  1847. errinfo.Code = -1
  1848. this.Data["json"] = &errinfo
  1849. this.ServeJSON()
  1850. }
  1851. }
  1852. // @Title 交费用户确认交费
  1853. // @Description 交费用户确认交费
  1854. // @Success 200 {object} controllers.Request
  1855. // @router /update-pay-status/:id [post]
  1856. func (this *AnnualAuditController) UpdatePayStatus() {
  1857. annualId := this.Ctx.Input.Param(":id")
  1858. var errinfo ErrorInfo
  1859. if annualId == "" {
  1860. errinfo.Message = "操作失败!请求信息不完整"
  1861. errinfo.Code = -2
  1862. this.Data["json"] = &errinfo
  1863. this.ServeJSON()
  1864. return
  1865. }
  1866. annualAuditSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
  1867. var annualAuditEntity annualaudit.OilAnnualAudit
  1868. annualAuditSrv.GetEntityById(annualId, &annualAuditEntity)
  1869. paySrv := paymentinfo.GetPaymentService(utils.DBE)
  1870. var paymentInfoEntities []paymentinfo.OilPaymentInfo
  1871. err := paySrv.GetPaymentInfoBySrcId(annualId, "2", &paymentInfoEntities)
  1872. if err != nil {
  1873. errinfo.Message = "未知错误,请稍后再试!"
  1874. errinfo.Code = -1
  1875. this.Data["json"] = &errinfo
  1876. this.ServeJSON()
  1877. }
  1878. if len(paymentInfoEntities) == 1 {
  1879. for _, item := range paymentInfoEntities {
  1880. if item.IsPay == "1" {
  1881. errinfo.Message = "已确认交费!请耐心等待"
  1882. errinfo.Code = -1
  1883. this.Data["json"] = &errinfo
  1884. this.ServeJSON()
  1885. }
  1886. if item.IsPay == "2" {
  1887. errinfo.Message = "已交费!请勿重复操作!"
  1888. errinfo.Code = -1
  1889. this.Data["json"] = &errinfo
  1890. this.ServeJSON()
  1891. }
  1892. }
  1893. }
  1894. sql := "UPDATE OilPaymentInfo SET IsPay ='1' where SrcId=" + annualId
  1895. annualAuditSrv.DBE.Exec(sql)
  1896. errinfo.Message = "确认交费成功!"
  1897. errinfo.Code = 0
  1898. this.Data["json"] = &errinfo
  1899. this.ServeJSON()
  1900. }