2
3

annualaudit.go 65 KB

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