2
3

annualaudit.go 63 KB

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