annualaudit.go 65 KB

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