annualaudit.go 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250
  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/suppliercert"
  9. "dashoo.cn/backend/api/business/organize"
  10. "dashoo.cn/backend/api/business/paymentinfo"
  11. "dashoo.cn/backend/api/business/register"
  12. "dashoo.cn/business2/areajson"
  13. "dashoo.cn/business2/items"
  14. "dashoo.cn/business2/permission"
  15. "reflect"
  16. "encoding/json"
  17. "fmt"
  18. "strconv"
  19. "strings"
  20. "time"
  21. "dashoo.cn/backend/api/business/auditsetting"
  22. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  23. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  24. "dashoo.cn/backend/api/business/workflow"
  25. "dashoo.cn/business2/userRole"
  26. . "dashoo.cn/backend/api/controllers"
  27. "dashoo.cn/utils"
  28. )
  29. type AnnualAuditController struct {
  30. BaseController
  31. }
  32. type ShenHeModel struct {
  33. AnnualId int
  34. SuccessStatus int
  35. AuditorRemark string
  36. }
  37. type ComShenHeModel struct {
  38. SupplierId int
  39. SupplierTypeName string
  40. Remark string
  41. }
  42. // @Title 获取列表
  43. // @Description get user by token
  44. // @Success 200 {object} []annualaudit.OilAnnualAudit
  45. // @router /list [get]
  46. func (this *AnnualAuditController) GetEntityList() {
  47. //获取分页信息
  48. page := this.GetPageInfoForm()
  49. where := " b.Id is not null "
  50. orderby := "b.Id"
  51. asc := false
  52. Order := this.GetString("Order")
  53. Prop := this.GetString("Prop")
  54. if Order != "" && Prop != "" {
  55. orderby = Prop
  56. if Order == "asc" {
  57. asc = true
  58. }
  59. }
  60. SupplierTypeName := this.GetString("SupplierTypeName")
  61. RecUnitId := this.GetString("RecUnitId")
  62. AccessCardNo := this.GetString("AccessCardNo")
  63. SupplierName := this.GetString("SupplierName")
  64. CreateOn := this.GetString("CreateOn")
  65. if SupplierTypeName != "" {
  66. where = where + " and b.SupplierTypeName like '%" + SupplierTypeName + "%'"
  67. }
  68. if RecUnitId != "" {
  69. where = where + " and b.RecUnitId like '%" + RecUnitId + "%'"
  70. }
  71. if AccessCardNo != "" {
  72. where = where + " and b.AccessCardNo like '%" + AccessCardNo + "%'"
  73. }
  74. if SupplierName != "" {
  75. where = where + " and b.SupplierName like '%" + SupplierName + "%'"
  76. }
  77. if CreateOn != "" {
  78. dates := strings.Split(CreateOn, ",")
  79. if len(dates) == 2 {
  80. minDate := dates[0]
  81. maxDate := dates[1]
  82. where = where + " and b.CreateOn>='" + minDate + "' and b.CreateOn<='" + maxDate + "'"
  83. }
  84. }
  85. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  86. var registerUser register.OilCorporateInfo
  87. sql := " UserName='" + this.User.Username + "'"
  88. svc.GetEntity(&registerUser,sql)
  89. //企业用户必须加创建人条件
  90. if this.User.IsCompanyUser == 1 {
  91. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='"+registerUser.CommercialNo+"')"
  92. } else {
  93. //超级管理员和有查看所有数据权限的用户不加条件
  94. svcPerm := permission.GetPermissionService(utils.DBE)
  95. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.annual.AllRecord")
  96. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  97. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or a.CommercialNo='"+registerUser.CommercialNo+"')"
  98. }
  99. }
  100. var list []annualaudit.OilAnnualAudit
  101. //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  102. total := svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilAnnualAuditName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  103. var datainfo DataInfo
  104. datainfo.Items = list
  105. datainfo.CurrentItemCount = total
  106. datainfo.PageIndex = page.CurrentPage
  107. datainfo.ItemsPerPage = page.Size
  108. this.Data["json"] = &datainfo
  109. this.ServeJSON()
  110. }
  111. // @Title 获取审批列表
  112. // @Description get user by token
  113. // @Success 200 {object} []annualaudit.OilAnnualAudit
  114. // @router /mytasks [get]
  115. func (this *AnnualAuditController) GetMyTaskEntityList() {
  116. //获取分页信息
  117. page := this.GetPageInfoForm()
  118. where := " 1=1 "
  119. orderby := "Id"
  120. asc := false
  121. Order := this.GetString("Order")
  122. Prop := this.GetString("Prop")
  123. if Order != "" && Prop != "" {
  124. orderby = Prop
  125. if Order == "asc" {
  126. asc = true
  127. }
  128. }
  129. SupplierTypeName := this.GetString("SupplierTypeName")
  130. RecUnitId := this.GetString("RecUnitId")
  131. AccessCardNo := this.GetString("AccessCardNo")
  132. SupplierName := this.GetString("SupplierName")
  133. CreateOn := this.GetString("CreateOn")
  134. if SupplierTypeName != "" {
  135. where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'"
  136. }
  137. if RecUnitId != "" {
  138. where = where + " and RecUnitId like '%" + RecUnitId + "%'"
  139. }
  140. if AccessCardNo != "" {
  141. where = where + " and AccessCardNo like '%" + AccessCardNo + "%'"
  142. }
  143. if SupplierName != "" {
  144. where = where + " and SupplierName like '%" + SupplierName + "%'"
  145. }
  146. if CreateOn != "" {
  147. dates := strings.Split(CreateOn, ",")
  148. if len(dates) == 2 {
  149. minDate := dates[0]
  150. maxDate := dates[1]
  151. where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
  152. }
  153. }
  154. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  155. var list []annualaudit.OilAnnualAudit
  156. //找出待办任务
  157. actisvc := workflow.GetActivitiService(utils.DBE)
  158. certIdList := actisvc.GetMyTasks(workflow.OIL_AUDIT_APPLY, this.User.Id)
  159. annuIdarr := strings.Split(certIdList, ",")
  160. for i, item := range annuIdarr {
  161. idx := strings.Index(item, "-")
  162. if idx >= 0 {
  163. annuIdarr[i] = strings.Split(item, "-")[0]
  164. }
  165. }
  166. certIdList = strings.Join(annuIdarr, ",")
  167. var total int64 = 0
  168. if certIdList != "" {
  169. where += " and Id in (" + certIdList + ")"
  170. //根据部门查询待办任务
  171. where += " and Status > 0 "
  172. total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  173. //total := svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, page.CurrentPage, page.Size, orderby, asc, &list, where)
  174. }
  175. var datainfo DataInfo
  176. datainfo.Items = list
  177. datainfo.CurrentItemCount = total
  178. datainfo.PageIndex = page.CurrentPage
  179. datainfo.ItemsPerPage = page.Size
  180. this.Data["json"] = &datainfo
  181. this.ServeJSON()
  182. }
  183. // @Title 获取年审企业名称
  184. // @Description 获取实体
  185. // @Success 200 {object} annualaudit.OilAnnualAudit
  186. // @router /supplierlist [get]
  187. func (this *AnnualAuditController) GetSupplierList() {
  188. code := this.GetString("code")
  189. svc := infochange.GetInfoChangeService(utils.DBE)
  190. var supplierlist []annualaudit.Suppliername
  191. where := "1=1"
  192. //企业用户必须加创建人条件
  193. if this.User.IsCompanyUser == 1 {
  194. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  195. } else {
  196. //超级管理员和有查看所有数据权限的用户不加条件
  197. svcPerm := permission.GetPermissionService(utils.DBE)
  198. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
  199. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  200. where = where + " and a.CreateUserId = '" + this.User.Id + "'"
  201. }
  202. }
  203. where = where + " and b.SupplierTypeCode='" + code + "' and b.Status='8'"
  204. supplierlist = svc.GetSupplierList(""+OilSupplierName, where)
  205. var datainfo DataInfo
  206. datainfo.Items = supplierlist
  207. this.Data["json"] = &datainfo
  208. this.ServeJSON()
  209. }
  210. // @Title 获取字典列表
  211. // @Description get user by token
  212. // @Success 200 {object} map[string]interface{}
  213. // @router /dictlist [get]
  214. func (this *AnnualAuditController) GetDictList() {
  215. dictList := make(map[string]interface{})
  216. dictSvc := items.GetItemsService(utils.DBE)
  217. userSvc := baseUser.GetBaseUserService(utils.DBE)
  218. areaJsonSvc := areajson.GetAreaJsonService(utils.DBE)
  219. //customerSvc := svccustomer.GetCustomerService(utils.DBE)
  220. dictList["UnitRelation"] = dictSvc.GetKeyValueItems("UnitRelation")
  221. dictList["CompanyType"] = dictSvc.GetKeyValueItems("CompanyType")
  222. var userEntity userRole.Base_User
  223. userSvc.GetEntityById(this.User.Id, &userEntity)
  224. dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid)
  225. dictList["GaodeMapChinaAreas"] = areaJsonSvc.GetGaodeMapChinaAreas()
  226. //获取我创建的所有公司
  227. var list []supplier.OilSupplier
  228. if this.User.IsCompanyUser == 1 {
  229. svcSupplier := supplier.GetOilSupplierService(utils.DBE)
  230. supplierWhere := " CreateUserId = '" + this.User.Id + "'"
  231. svcSupplier.GetEntitysByWhere(OilSupplierName, supplierWhere, &list)
  232. dictList["CompanyNames"] = list
  233. } else { //二级单位不用获取
  234. dictList["CompanyNames"] = list
  235. }
  236. // 部门
  237. orgsvc := organize.GetOrganizeService(utils.DBE)
  238. dictList["Organizes"] = orgsvc.GetCollectionDetailviewlist("'" + this.User.AccCode + "'")
  239. //获得有专业审核接收权限的人员
  240. var users1 []userRole.Base_RoleList
  241. var auditWorkflow1 auditsetting.Base_OilAuditSetting
  242. rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  243. rsvc.GetAuditStepRoleEntity(OilAuditSettingName, "100000172", workflow.PROF_RECE, &auditWorkflow1)
  244. users1 = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow1.RoleId), "")
  245. dictList["Receive"] = users1
  246. //获得有专业审核权限的人员
  247. var users []userRole.Base_RoleList
  248. var auditWorkflow auditsetting.Base_OilAuditSetting
  249. rsvc.GetAuditStepRoleEntity(OilAuditSettingName, "100000172", workflow.PROF_AUDIT, &auditWorkflow)
  250. users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), "")
  251. dictList["ProfAudit"] = users
  252. var datainfo DataInfo
  253. datainfo.Items = dictList
  254. this.Data["json"] = &datainfo
  255. this.ServeJSON()
  256. }
  257. // @Title 获取实体
  258. // @Description 获取实体
  259. // @Success 200 {object} annualaudit.OilAnnualAudit
  260. // @router /get/:id [get]
  261. func (this *AnnualAuditController) GetEntity() {
  262. Id := this.Ctx.Input.Param(":id")
  263. var model annualaudit.OilAnnualAudit
  264. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  265. svc.GetEntityByIdBytbl(""+OilAnnualAuditName, Id, &model)
  266. this.Data["json"] = &model
  267. this.ServeJSON()
  268. }
  269. // @Title 获取公司信息
  270. // @Description 根据创建用户Id和增项类别号获取公司信息
  271. // @Success 200 {object}
  272. // @router /getsupplier [get]
  273. func (this *AnnualAuditController) GetSupplier() {
  274. SuppTypeCode := this.GetString("SuppTypeCode")
  275. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  276. where := "1=1 "
  277. if SuppTypeCode != "" {
  278. where = " WHERE b.Id is NOT NULL AND a.SupplierTypeCode = '" + SuppTypeCode + "' and (a.InFlag='1' or a.InFlag='2')"
  279. }else {
  280. where = " WHERE b.Id is NOT NULL AND (a.InFlag='1' or a.InFlag='2')"
  281. }
  282. var registerUser register.OilCorporateInfo
  283. sql := " UserName='" + this.User.Username + "'"
  284. svc.GetEntity(&registerUser,sql)
  285. //企业用户必须加创建人条件
  286. if this.User.IsCompanyUser == 1 {
  287. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or b.CommercialNo='"+registerUser.CommercialNo+"')"
  288. //if this.User.IsCompanyUser == 1 {
  289. // where = where + " and b.CreateUserId = '" + this.User.Id + "'"
  290. }
  291. 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 "
  292. sqlStr = sqlStr + where
  293. model, _ := svc.DBE.QueryString(sqlStr)
  294. this.Data["json"] = &model
  295. this.ServeJSON()
  296. }
  297. // @Title 获取公司信息(信息变更专用)
  298. // @Description 根据创建用户Id和增项类别号获取公司信息
  299. // @Success 200 {object}
  300. // @router /getsupplierforchange [get]
  301. func (this *AnnualAuditController) GetSupplierForChange() {
  302. SuppTypeCode := this.GetString("SuppTypeCode")
  303. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  304. where := "1=1 "
  305. if SuppTypeCode != "" {
  306. 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')"
  307. }else {
  308. where = " WHERE b.Id is NOT NULL AND (a.InFlag='1' or a.InFlag='2' or a.Status='6' or a.Status='7')"
  309. }
  310. var registerUser register.OilCorporateInfo
  311. sql := " UserName='" + this.User.Username + "'"
  312. svc.GetEntity(&registerUser,sql)
  313. //企业用户必须加创建人条件
  314. if this.User.IsCompanyUser == 1 {
  315. where = where + " and (b.CreateUserId = '" + this.User.Id + "' or b.CommercialNo='"+registerUser.CommercialNo+"')"
  316. //if this.User.IsCompanyUser == 1 {
  317. // where = where + " and b.CreateUserId = '" + this.User.Id + "'"
  318. }
  319. 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 "
  320. sqlStr = sqlStr + where
  321. model, _ := svc.DBE.QueryString(sqlStr)
  322. this.Data["json"] = &model
  323. this.ServeJSON()
  324. }
  325. // @Title 添加
  326. // @Description 直接新增年审
  327. // @Success 200 {object} controllers.Request
  328. // @router /adddirect [post]
  329. func (this *AnnualAuditController) AddEntityDirect() {
  330. var model annualaudit.OilAnnualAudit
  331. var errinfo ErrorDataInfo
  332. var jsonBlob = this.Ctx.Input.RequestBody
  333. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  334. firstAudit := this.GetString("firstAudit")
  335. json.Unmarshal(jsonBlob, &model)
  336. supwhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = '" + model.SupplierTypeName+ "' and b.Status = '8' "
  337. supsvc := supplier.GetOilSupplierService(utils.DBE)
  338. var list []supplier.OilSupplierView
  339. supsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supwhere)
  340. var suppliermodel supplier.OilSupplierView
  341. suppliermodel = list[0]
  342. model.AccessCardNo = suppliermodel.AccessCardNo
  343. model.RecUnitId = suppliermodel.RecUnitId
  344. model.CerId, _ = strconv.Atoi(suppliermodel.CertId)
  345. model.ApplyTime = suppliermodel.ApplyTime
  346. model.Status = "0"
  347. model.Step = 1
  348. model.BackReason = suppliermodel.BackReason
  349. model.CreateOn = time.Now()
  350. model.CreateBy = this.User.Realname
  351. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  352. //添加一条年审记录
  353. _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
  354. annualId := model.Id
  355. svcActiviti := workflow.GetActivitiService(utils.DBE)
  356. //启动工作流
  357. businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(model.AuditIndex)
  358. result := strconv.Itoa(this.User.IsCompanyUser)
  359. processInstanceId := svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, result, model.SupplierTypeName, model.SupplierName)
  360. var auditmodel annualaudit.OilAnnualAudit
  361. auditmodel.WorkflowId = processInstanceId
  362. auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
  363. auditmodel.AuditIndex = model.AuditIndex
  364. auditmodel.BusinessKey = businessKey
  365. cols := []string{
  366. "Id",
  367. "WorkflowId",
  368. "FirstAudit",
  369. "AuditIndex",
  370. "BusinessKey",
  371. }
  372. _, err = svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
  373. if err == nil {
  374. //新增
  375. errinfo.Message = "添加成功!"
  376. errinfo.Code = 0
  377. errinfo.Item = model.Id
  378. this.Data["json"] = &errinfo
  379. this.ServeJSON()
  380. } else {
  381. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  382. errinfo.Code = -1
  383. this.Data["json"] = &errinfo
  384. this.ServeJSON()
  385. }
  386. }
  387. // @Title 修改实体
  388. // @Description 修改实体
  389. // @Success 200 {object} controllers.Request
  390. // @router /suppupdate/:id/:type/:instyle [post]
  391. func (this *AnnualAuditController) UpdateSuppEntity() {
  392. id := this.Ctx.Input.Param(":id")
  393. typeCode := this.Ctx.Input.Param(":type")
  394. instyle := this.Ctx.Input.Param(":instyle")
  395. var errinfo ErrorInfo
  396. if id == "" {
  397. errinfo.Message = "操作失败!请求信息不完整"
  398. errinfo.Code = -2
  399. this.Data["json"] = &errinfo
  400. this.ServeJSON()
  401. return
  402. }
  403. var model supplier.OilSupplier
  404. var jsonBlob = this.Ctx.Input.RequestBody
  405. json.Unmarshal(jsonBlob, &model)
  406. var list []supplier.OilSupplierView
  407. service := supplier.GetOilSupplierService(utils.DBE)
  408. service.CheckUpdateRepeatApplyInfo(OilSupplierName, OilSupplierCertName, typeCode, strconv.Itoa(model.Id), model.SupplierName, model.CommercialNo, model.OrganCode, model.BankAccount, model.CompanyUrl, &list)
  409. if len(list) > 0 {
  410. errinfo.Message = "修改失败! 已存在相关企业的信息,或与其他企业信息重复"
  411. errinfo.Code = -1
  412. this.Data["json"] = &errinfo
  413. this.ServeJSON()
  414. return
  415. }
  416. svc := supplier.GetOilSupplierService(utils.DBE)
  417. model.ModifiedOn = time.Now()
  418. model.ModifiedBy = this.User.Realname
  419. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  420. //判断基本信息是否可修改
  421. //updateCols := svc.GetUpdateCols(OilSupplierCertName, typeCode, model.Id)
  422. updateCols := []string{
  423. "SupplierName",
  424. "OilCertificateNo",
  425. "Grade",
  426. "MgrUnit",
  427. "OperType",
  428. "Country",
  429. "MaunAgent",
  430. "ConstructTeam",
  431. "CommercialNo",
  432. "OrganCode",
  433. "CountryTaxNo",
  434. "LocalTaxNo",
  435. "Address",
  436. "Province",
  437. "City",
  438. "Street",
  439. "HouseNo",
  440. "ZipCode",
  441. "QualitySystemCert",
  442. "ProductQualityCert",
  443. "MaunLicense",
  444. "QualifCert",
  445. "QualifCertLevel",
  446. "SafetyLicense",
  447. "TechServiceLic",
  448. "TJInNotify",
  449. "SpecIndustryCert",
  450. "LegalPerson",
  451. "CategoryCode",
  452. "CategoryName",
  453. "RegCapital",
  454. "Currency",
  455. "ContactName",
  456. "CompanyType",
  457. "SetupTime",
  458. "DepositBank",
  459. "BankAccount",
  460. "EMail",
  461. "BusinessScope",
  462. "BankCreditRating",
  463. "Mobile",
  464. "Telphone",
  465. "Fax",
  466. "CompanyTel",
  467. "QQ",
  468. "CompanyUrl",
  469. "SpecSupplier",
  470. "SpecTypeCode",
  471. "SpecTypeName",
  472. /*"WorkerTotal",
  473. "ContractNum ",
  474. "UniversityNum",
  475. "TechnicalNum",
  476. "AboveProfNum",
  477. "MiddleProfNum",
  478. "NationalRegNum",
  479. "NationalCertTotal",
  480. "DesignerTotal",
  481. "SkillerTotal",*/
  482. "Remark",
  483. "IsDelete",
  484. "CreateOn",
  485. "CreateUserId",
  486. "CreateBy",
  487. "ModifiedOn",
  488. "ModifiedUserId",
  489. "ModifiedBy",
  490. "LinkAddress",
  491. "LinkProvince",
  492. "LinkCity",
  493. "LinkStreet",
  494. "LinkHouseNo",
  495. "LinkZipCode",
  496. "HseTraining",
  497. "CredentialFlag",
  498. "SupplierCertificate",
  499. "PACNumber",
  500. }
  501. err := svc.UpdateEntityBytbl(OilSupplierName, id, &model, updateCols)
  502. if err == nil {
  503. svc.DBE.Exec("update OilSupplierCert set Instyle="+instyle+" where SupplierId="+id+" and SupplierTypeCode="+typeCode+"")
  504. errinfo.Message = "修改成功!"
  505. errinfo.Code = 0
  506. this.Data["json"] = &errinfo
  507. this.ServeJSON()
  508. } else {
  509. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  510. errinfo.Code = -1
  511. this.Data["json"] = &errinfo
  512. this.ServeJSON()
  513. }
  514. }
  515. // @Title 添加
  516. // @Description 新增年审
  517. // @Success 200 {object} controllers.Request
  518. // @router /add [post]
  519. func (this *AnnualAuditController) AddEntity() {
  520. var model annualaudit.OilAnnualAudit
  521. var errinfo ErrorDataInfo
  522. var jsonBlob = this.Ctx.Input.RequestBody
  523. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  524. firstAudit := this.GetString("firstAudit")
  525. json.Unmarshal(jsonBlob, &model)
  526. where := "SupplierId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName + " and Status < 5"
  527. var auditentity []annualaudit.OilAnnualAudit
  528. svc.GetEntitysByWhere(""+OilAnnualAuditName, where, &auditentity)
  529. if len(auditentity) >= 1 {
  530. errinfo.Message = "今年已提交年审,请勿重复提交!"
  531. errinfo.Code = -1
  532. this.Data["json"] = &errinfo
  533. this.ServeJSON()
  534. return
  535. }
  536. supwhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = '" + model.SupplierTypeName+ "' and b.Status = '8' "
  537. supsvc := supplier.GetOilSupplierService(utils.DBE)
  538. var list []supplier.OilSupplierView
  539. total := supsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supwhere)
  540. if total == 0 {
  541. //errinfo.Message = "请先提交准入申请再提交年审!"
  542. errinfo.Message = "请先提交准入,准入申请通过后,才可申请年审!"
  543. errinfo.Code = -1
  544. this.Data["json"] = &errinfo
  545. this.ServeJSON()
  546. return
  547. }
  548. var suppliermodel supplier.OilSupplierView
  549. suppliermodel = list[0]
  550. if suppliermodel.InFlag == "3" {
  551. errinfo.Message = "超过两年未年审,您已无法提交!"
  552. errinfo.Code = -1
  553. this.Data["json"] = &errinfo
  554. this.ServeJSON()
  555. return
  556. }
  557. aplytime := suppliermodel.ApplyTime
  558. subtime := this.getTimeSub(aplytime, time.Now())
  559. lefttime := subtime - 3
  560. if subtime > 3 {
  561. errinfo.Message = "还不到年审时间!请" + utils.ToStr(lefttime) + "个月后再来申请"
  562. errinfo.Code = -3
  563. this.Data["json"] = &errinfo
  564. this.ServeJSON()
  565. return
  566. }
  567. model.AccessCardNo = suppliermodel.AccessCardNo
  568. model.RecUnitId = suppliermodel.RecUnitId
  569. model.CerId, _ = strconv.Atoi(suppliermodel.CertId)
  570. model.ApplyTime = suppliermodel.ApplyTime
  571. model.Status = "0"
  572. model.Step = 1
  573. model.BackReason = suppliermodel.BackReason
  574. model.CreateOn = time.Now()
  575. model.CreateBy = this.User.Realname
  576. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  577. //添加一条年审记录
  578. _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
  579. annualId := model.Id
  580. svcActiviti := workflow.GetActivitiService(utils.DBE)
  581. //启动工作流
  582. businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(model.AuditIndex)
  583. result := strconv.Itoa(this.User.IsCompanyUser)
  584. processInstanceId := svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, result, model.SupplierTypeName, model.SupplierName)
  585. //var ActiComplete workflow.ActiCompleteVM
  586. //ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  587. //ActiComplete.BusinessKey = businessKey
  588. //ActiComplete.UserNames = firstAudit
  589. //ActiComplete.UserId = this.User.Id
  590. //ActiComplete.Result = "1"
  591. //ActiComplete.Remarks = model.Remark
  592. //ActiComplete.CallbackUrl = ""
  593. //提交给二级单位初审
  594. //receiveVal := svcActiviti.TaskComplete(ActiComplete)
  595. var auditmodel annualaudit.OilAnnualAudit
  596. auditmodel.WorkflowId = processInstanceId
  597. auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
  598. auditmodel.AuditIndex = model.AuditIndex
  599. auditmodel.BusinessKey = businessKey
  600. cols := []string{
  601. "Id",
  602. "WorkflowId",
  603. "FirstAudit",
  604. "AuditIndex",
  605. "BusinessKey",
  606. }
  607. //if receiveVal == "true" {
  608. _, err = svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
  609. if err == nil {
  610. //新增
  611. errinfo.Message = "添加成功!"
  612. errinfo.Code = 0
  613. errinfo.Item = model.Id
  614. this.Data["json"] = &errinfo
  615. this.ServeJSON()
  616. } else {
  617. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  618. errinfo.Code = -1
  619. this.Data["json"] = &errinfo
  620. this.ServeJSON()
  621. }
  622. //} else {
  623. // errinfo.Message = "工作流异常,请联系管理员!"
  624. // errinfo.Code = -1
  625. // this.Data["json"] = &errinfo
  626. // this.ServeJSON()
  627. //}
  628. }
  629. func (this *AnnualAuditController) getTimeSub(t1, t2 time.Time) int {
  630. t1 = time.Date(t1.Year(), t1.Month(), t1.Day(), 0, 0, 0, 0, time.Local)
  631. t2 = time.Date(t2.Year(), t2.Month(), t2.Day(), 0, 0, 0, 0, time.Local)
  632. return int(t1.Sub(t2).Hours() / 24 / 30)
  633. }
  634. // @Title 提交审批
  635. // @Description 提交审批
  636. // @Success 200 {object} controllers.Request
  637. // @router /addauditcomm [post]
  638. func (this *AnnualAuditController) AddAuditEntity() {
  639. var model ComShenHeModel
  640. var errinfo ErrorDataInfo
  641. var jsonBlob = this.Ctx.Input.RequestBody
  642. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  643. annualId := this.GetString("AnnualId")
  644. firstAudit := this.GetString("FirstAuditName")
  645. secondAudit := this.GetString("SecondAudit")
  646. thirdAudit := this.GetString("ThirdAudit")
  647. json.Unmarshal(jsonBlob, &model)
  648. var setting auditsetting.Base_OilAuditSetting
  649. var userlist []userRole.Base_User
  650. usvc := userRole.GetUserService(utils.DBE)
  651. where := ""
  652. if this.User.IsCompanyUser == 1 {
  653. if model.SupplierTypeName == "01" {
  654. where = "AuditStepCode='" + workflow.SUB_OFFICE_WZ + "'"
  655. } else if model.SupplierTypeName == "02" {
  656. where = "AuditStepCode='" + workflow.SUB_OFFICE_JS + "'"
  657. } else if model.SupplierTypeName == "03" {
  658. where = "AuditStepCode='" + workflow.SUB_OFFICE_JF + "'"
  659. }
  660. usvc.GetEntity(&setting, where)
  661. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  662. tempstr := strings.Join(ids, ",")
  663. uids := strings.Replace(tempstr, "uid_", "", -1)
  664. uids = strings.Trim(uids, ",")
  665. if uids != "" {
  666. where := "Id in (" + uids + ")" + " and UnitId=" + firstAudit
  667. usvc.GetEntities(&userlist, where)
  668. }
  669. userIds := ""
  670. for _, tmpUser := range userlist {
  671. userIds += strconv.Itoa(tmpUser.Id) + ","
  672. }
  673. firstAudit = strings.Trim(userIds, ",")
  674. }
  675. //where := "CerId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName
  676. var auditentity annualaudit.OilAnnualAudit
  677. svc.GetEntityById(annualId, &auditentity)
  678. historworkflowid := auditentity.WorkflowId
  679. svcActiviti := workflow.GetActivitiService(utils.DBE)
  680. statusint, _ := strconv.Atoi(auditentity.Status)
  681. var ActiComplete workflow.ActiCompleteVM
  682. var auditmodel annualaudit.OilAnnualAudit
  683. result := strconv.Itoa(this.User.IsCompanyUser)
  684. //重新工作流
  685. if statusint < 0 {
  686. businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(auditentity.AuditIndex)
  687. processInstanceId := svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, result, auditentity.SupplierTypeName, auditentity.SupplierName)
  688. ActiComplete.BusinessKey = businessKey
  689. auditmodel.WorkflowId = processInstanceId
  690. auditmodel.BusinessKey = businessKey
  691. } else {
  692. auditmodel.WorkflowId = auditentity.WorkflowId
  693. ActiComplete.BusinessKey = auditentity.BusinessKey
  694. auditmodel.BusinessKey = auditentity.BusinessKey
  695. }
  696. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  697. ActiComplete.UserNames = firstAudit
  698. ActiComplete.UserId = this.User.Id
  699. ActiComplete.Result = result
  700. ActiComplete.Remarks = model.Remark
  701. ActiComplete.CallbackUrl = ""
  702. //提交给二级单位初审
  703. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  704. if statusint < 0 {
  705. // 存储审批历史
  706. var audithistoryentity audithistory.Base_AuditHistory
  707. audithistoryentity.EntityId, _ = strconv.Atoi(annualId)
  708. audithistoryentity.WorkflowId = historworkflowid
  709. audithistoryentity.Process = workflow.OIL_AUDIT_APPLY
  710. audithistoryentity.BusinessKey = auditentity.BusinessKey
  711. audithistoryentity.Type = model.SupplierTypeName
  712. audithistoryentity.BackStep = utils.ToStr(auditentity.Status)
  713. audithistoryentity.Index = auditentity.AuditIndex
  714. audithistoryentity.CreateOn = time.Now()
  715. audithistoryentity.CreateBy = this.User.Realname
  716. audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  717. svc.InsertEntity(audithistoryentity)
  718. }
  719. if this.User.IsCompanyUser == 1 {
  720. auditmodel.Status = suppliercert.FEN_TRIAL_STATUS //二级单位分办
  721. } else {
  722. auditmodel.Status = suppliercert.FIRST_TRIAL_STATUS
  723. }
  724. auditmodel.FenbanAudit,_ = strconv.Atoi(firstAudit)
  725. auditmodel.FirstAudit,_ = strconv.Atoi(firstAudit)
  726. auditmodel.SecondAudit,_ = strconv.Atoi(secondAudit)
  727. auditmodel.ThirdAudit,_ = strconv.Atoi(thirdAudit)
  728. cols := []string{
  729. "Id",
  730. "WorkflowId",
  731. "FenbanAudit",
  732. "FirstAudit",
  733. "SecondAudit",
  734. "ThirdAudit",
  735. "Status",
  736. "BusinessKey",
  737. }
  738. if receiveVal == "true" {
  739. _, err := svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
  740. if err == nil {
  741. //新增
  742. errinfo.Message = "提交成功!"
  743. errinfo.Code = 0
  744. errinfo.Item = auditmodel.Status
  745. this.Data["json"] = &errinfo
  746. this.ServeJSON()
  747. } else {
  748. errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error())
  749. errinfo.Code = -1
  750. this.Data["json"] = &errinfo
  751. this.ServeJSON()
  752. }
  753. } else {
  754. errinfo.Message = "工作流异常,请联系管理员!"
  755. errinfo.Code = -1
  756. this.Data["json"] = &errinfo
  757. this.ServeJSON()
  758. }
  759. }
  760. // @Title 删除单条信息
  761. // @Description
  762. // @Success 200 {object} ErrorInfo
  763. // @Failure 403 :id 为空
  764. // @router /delete/:Id [delete]
  765. func (this *AnnualAuditController) DeleteEntity() {
  766. Id := this.Ctx.Input.Param(":Id")
  767. var errinfo ErrorInfo
  768. if Id == "" {
  769. errinfo.Message = "操作失败!请求信息不完整"
  770. errinfo.Code = -2
  771. this.Data["json"] = &errinfo
  772. this.ServeJSON()
  773. return
  774. }
  775. var model annualaudit.OilAnnualAudit
  776. var entityempty annualaudit.OilAnnualAudit
  777. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  778. opdesc := "删除-" + Id
  779. err := svc.DeleteOperationAndWriteLogBytbl(""+OilAnnualAuditName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, "", "钻井日报")
  780. if err == nil {
  781. errinfo.Message = "删除成功"
  782. errinfo.Code = 0
  783. this.Data["json"] = &errinfo
  784. this.ServeJSON()
  785. } else {
  786. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  787. errinfo.Code = -1
  788. this.Data["json"] = &errinfo
  789. this.ServeJSON()
  790. }
  791. }
  792. // @Title 审核
  793. // @Description 审核
  794. // @Success 200 {object} controllers.Request
  795. // @router /auditcallback [get]
  796. func (this *AnnualAuditController) AuditCallback() {
  797. result := this.GetString("ret")
  798. bussinsid := this.GetString("busid")
  799. status := this.GetString("status")
  800. annualId := this.GetString("annualId")
  801. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  802. var entityempty annualaudit.OilAnnualAudit
  803. var err error
  804. var errinfo ErrorInfo
  805. var cols []string = []string{"Status"}
  806. entityempty.Status = status
  807. err = svc.UpdateEntityBytbl(OilAnnualAuditName, annualId, &entityempty, cols)
  808. if err != nil {
  809. errinfo.Message = "审核错误!"
  810. errinfo.Code = -1
  811. this.Data["json"] = &errinfo
  812. this.ServeJSON()
  813. }
  814. fmt.Println(result, status, annualId, bussinsid)
  815. }
  816. // @Title 审核
  817. // @Description 审核
  818. // @Success 200 {object} controllers.Request
  819. // @router /auditfirst [put]
  820. func (this *AnnualAuditController) AnnualAudit() {
  821. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  822. var jsonblob = this.Ctx.Input.RequestBody
  823. var dataother ShenHeModel
  824. var errinfo ErrorInfo
  825. json.Unmarshal(jsonblob, &dataother)
  826. ProfAudit := this.GetString("ProfAudit")
  827. firstAudit := this.GetString("FirstAudit")
  828. secondAudit := this.GetString("SecondAudit")
  829. thirdAudit := this.GetString("ThirdAudit")
  830. var list annualaudit.OilAnnualAudit
  831. where := " Id = '" + strconv.Itoa(dataother.AnnualId) + "'"
  832. svc.GetEntityByWhere(""+OilAnnualAuditName, where, &list)
  833. var supplierEntity supplier.OilSupplier
  834. wheresup := "Id=" + strconv.Itoa(list.SupplierId)
  835. svc.GetEntity(&supplierEntity, wheresup)
  836. var certEntity suppliercert.OilSupplierCert
  837. wherecert := "Id=" + strconv.Itoa(list.CerId)
  838. svc.GetEntity(&certEntity, wherecert)
  839. svcActiviti := workflow.GetActivitiService(utils.DBE)
  840. //审核状态判断进行的操作
  841. step := 2
  842. status := ""
  843. backstatus := "0"
  844. var userIds string
  845. if list.Status == suppliercert.FEN_TRIAL_STATUS {
  846. userIds = firstAudit
  847. status = suppliercert.FIRST_TRIAL_STATUS
  848. step = 2
  849. backstatus = suppliercert.NO_FEN_TRIAL_STATUS
  850. if dataother.SuccessStatus == 1 {
  851. list.FirstAudit,_ = strconv.Atoi(firstAudit)
  852. list.SecondAudit,_ = strconv.Atoi(secondAudit)
  853. list.ThirdAudit,_ = strconv.Atoi(thirdAudit)
  854. cols := []string{
  855. "FirstAudit",
  856. "SecondAudit",
  857. "ThirdAudit",
  858. }
  859. svc.UpdateEntityByIdCols(dataother.AnnualId, list, cols)
  860. }
  861. }
  862. if list.Status == suppliercert.FIRST_TRIAL_STATUS {
  863. userIds = utils.ToStr(list.SecondAudit)
  864. status = suppliercert.SECOND_TRIAL_STATUS
  865. step = 2
  866. backstatus = suppliercert.NOPASS_STATUS
  867. } else if list.Status == suppliercert.SECOND_TRIAL_STATUS {
  868. status = suppliercert.PAYING_AUDIT_STATUS
  869. step = 2
  870. backstatus = suppliercert.NO_SECOND_TRIAL_STATUS
  871. //svc := organize.GetOrganizeService(utils.DBE)
  872. //unitId := svc.GetMyUnitDepartmentId(strconv.Itoa(list.ThirdAudit))
  873. //var userlist []userRole.Base_User
  874. //var setting auditsetting.Base_OilAuditSetting
  875. //usvc := userRole.GetUserService(utils.DBE)
  876. //where := "AuditStepCode='" + workflow.PROF_RECE + "'"
  877. //svc.GetEntity(&setting, where)
  878. //ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  879. //tempstr := strings.Join(ids, ",")
  880. //uids := strings.Replace(tempstr, "uid_", "", -1)
  881. //uids = strings.Trim(uids, ",")
  882. //if uids != "" {
  883. // where := "Id in (" + uids + ")" + " and UnitId=" + unitId
  884. // svc.GetEntities(&userlist, where)
  885. //}
  886. //
  887. //
  888. //for _, tmpUser := range userlist {
  889. // userIds += strconv.Itoa(tmpUser.Id) + ","//strconv.FormatInt(tmpUser.Id, 10) + ","
  890. //}
  891. //userIds = strings.Trim(userIds, ",")
  892. } else if list.Status == suppliercert.THIRD_TRIAL_STATUS {
  893. userIds = ProfAudit
  894. status = suppliercert.PROF_AUDIT_STATUS
  895. step = 2
  896. backstatus = suppliercert.NO_THIRD_TRIAL_STATUS
  897. } else if list.Status == suppliercert.PROF_AUDIT_STATUS {
  898. status = suppliercert.PAYING_AUDIT_STATUS
  899. step = 3
  900. backstatus = suppliercert.NO_PROF_AUDIT_STATUS
  901. }
  902. var ActiComplete workflow.ActiCompleteVM
  903. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  904. ActiComplete.BusinessKey = list.BusinessKey
  905. ActiComplete.UserNames = userIds
  906. ActiComplete.UserId = this.User.Id
  907. ActiComplete.Remarks = dataother.AuditorRemark
  908. ActiComplete.CallbackUrl = ""
  909. if dataother.SuccessStatus == 1 {
  910. ActiComplete.Result = "1"
  911. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  912. var auditmodel annualaudit.OilAnnualAudit
  913. auditmodel.Status = status
  914. oldaplydate := list.ApplyTime
  915. if list.Status == suppliercert.SECOND_TRIAL_STATUS {
  916. if certEntity.InStyle == "1" {
  917. var certmodel suppliercert.OilSupplierCert
  918. certmodel.AuditDate = time.Now()
  919. certcols := []string{
  920. "Id",
  921. //"ApplyTime",
  922. "AuditDate",
  923. }
  924. svc.UpdateEntityByIdCols(list.CerId, certmodel, certcols)
  925. paysvc := paymentinfo.GetPaymentService(utils.DBE)
  926. var Amount float64
  927. asvc := oilcostmanage.GetOilCostManageService(utils.DBE)
  928. Amount = asvc.GetAmount("APPEND",list.SupplierTypeName)
  929. var payinfo paymentinfo.OilPaymentInfo
  930. payinfo.SupplierId = list.SupplierId
  931. payinfo.SrcId = list.Id
  932. payinfo.SupplierCertId = list.CerId
  933. payinfo.USCCode = supplierEntity.CommercialNo
  934. payinfo.SupplierName = supplierEntity.SupplierName
  935. payinfo.PayType = "2"
  936. payinfo.IsPay = "0"
  937. payinfo.Amount = strconv.FormatFloat(Amount,'E',-1,64)
  938. payinfo.CreateUserId = list.CreateUserId
  939. payinfo.CreateBy = list.CreateBy
  940. payinfo.CreateOn = time.Now()
  941. paysvc.InsertEntity(&payinfo)
  942. //发短信
  943. toMobile := supplierEntity.Mobile
  944. bFlag:=""
  945. if list.SupplierTypeName == "01"{
  946. bFlag="物资类"
  947. }else if list.SupplierTypeName == "02"{
  948. bFlag="基建类"
  949. }else{
  950. bFlag="技术服务类"
  951. }
  952. msg:= "您的"+ bFlag + "年审审核通过,请及时确认交费信息!"
  953. msgService := msg2.GetMsgService(utils.DBE)
  954. msgService.HandleMsg(toMobile,msg,"4-1",list.CreateBy,supplierEntity.ContactName,strconv.Itoa(list.CreateUserId))
  955. } else {
  956. auditmodel.Status = suppliercert.ALL_PASE_STATUS
  957. }
  958. var infoitems []infochange.OilAnnualChangeItem
  959. where := "SupplierId = " + utils.ToStr(supplierEntity.Id) +" and InfoId = " +utils.ToStr(list.Id)
  960. svc.GetEntities(&infoitems, where)
  961. this.updatesupplier(OilSupplierName, supplierEntity.Id, infoitems)
  962. }else {
  963. auditmodel.ApplyTime = oldaplydate
  964. }
  965. auditmodel.Step = step
  966. if receiveVal == "true" {
  967. cols := []string{
  968. "Id",
  969. "Status",
  970. "Step",
  971. //"ApplyTime",
  972. }
  973. svc.UpdateEntityByIdCols(dataother.AnnualId, auditmodel, cols)
  974. //paysvc.AddPaymentinfo(list.SupplierId, list.Id, Amount, "2")
  975. errinfo.Message = "提交成功!"
  976. errinfo.Code = 0
  977. this.Data["json"] = &errinfo
  978. this.ServeJSON()
  979. } else {
  980. errinfo.Message = "工作流异常,请联系管理员!"
  981. errinfo.Code = -1
  982. this.Data["json"] = &errinfo
  983. this.ServeJSON()
  984. return
  985. }
  986. } else {
  987. ActiComplete.Result = "0"
  988. receiveVal := svcActiviti.TaskComplete(ActiComplete)
  989. if receiveVal == "true" {
  990. if list.Status == suppliercert.PROF_AUDIT_STATUS {
  991. list.Status = suppliercert.NO_CENT_AUDIT_STATUS
  992. list.AuditIndex = list.AuditIndex + 1
  993. } else {
  994. list.Status = backstatus
  995. list.AuditIndex = list.AuditIndex + 1
  996. }
  997. list.Step = 1
  998. cols := []string{
  999. "Status",
  1000. "Step",
  1001. "AuditIndex",
  1002. }
  1003. _, err := svc.UpdateEntityByIdCols(dataother.AnnualId, list, cols)
  1004. toMobile := supplierEntity.Mobile
  1005. bFlag:=""
  1006. if list.SupplierTypeName == "01"{
  1007. bFlag="物资类"
  1008. }else if list.SupplierTypeName == "02"{
  1009. bFlag="基建类"
  1010. }else{
  1011. bFlag="技术服务类"
  1012. }
  1013. msg:= "您的"+ bFlag + "年审审核未通过,请及时查看!"
  1014. msgService := msg2.GetMsgService(utils.DBE)
  1015. msgService.HandleMsg(toMobile,msg,"4-1",list.CreateBy,supplierEntity.ContactName,strconv.Itoa(list.CreateUserId))
  1016. if err == nil {
  1017. errinfo.Message = "提交成功!"
  1018. errinfo.Code = 0
  1019. this.Data["json"] = &errinfo
  1020. this.ServeJSON()
  1021. } else {
  1022. errinfo.Message = "提交失败!"
  1023. errinfo.Code = -1
  1024. this.Data["json"] = &errinfo
  1025. this.ServeJSON()
  1026. }
  1027. } else {
  1028. errinfo.Message = "工作流异常,请联系管理员!"
  1029. errinfo.Code = -1
  1030. this.Data["json"] = &errinfo
  1031. this.ServeJSON()
  1032. return
  1033. }
  1034. }
  1035. }
  1036. // @Title 获取实体
  1037. // @Description 获取实体
  1038. // @Success 200 {object} supplier.OilSupplier
  1039. // @router /getchangelist/:id [get]
  1040. func (this *AnnualAuditController) GetChangeEntity() {
  1041. Id := this.Ctx.Input.Param(":id")
  1042. InfoId := this.GetString("InfomainId")
  1043. var models [2]supplier.OilSupplier
  1044. var model supplier.OilSupplier
  1045. var enumModel supplier.OilSupplier
  1046. svc := supplier.GetOilSupplierService(utils.DBE)
  1047. svc.GetEntityByIdBytbl(OilSupplierName, Id, &model)
  1048. models[0] = model
  1049. var infoitems []infochange.OilAnnualChangeItem
  1050. where := " SupplierId = " + Id +" and InfoId ="+InfoId
  1051. where = where + " and ChangeStatus = 0"
  1052. svc.GetEntitysByWhere(OilAnnualChangeItemName, where, &infoitems)
  1053. tmpModel := &model
  1054. enumModel = *tmpModel
  1055. immumodel := reflect.ValueOf(&enumModel)
  1056. elem := immumodel.Elem()
  1057. if len(infoitems) == 0 {
  1058. models[1] = enumModel
  1059. this.Data["json"] = &models
  1060. this.ServeJSON()
  1061. return
  1062. } else {
  1063. for _, info := range infoitems {
  1064. fmt.Println(info.SelectItem)
  1065. fmt.Println(";;;;;;;;;", elem.FieldByName(info.SelectItem).Type().String())
  1066. if elem.FieldByName(info.SelectItem).Type().String() == "int64" {
  1067. intchangeinfo, _ := strconv.ParseInt(info.ChangeInfo, 10, 64)
  1068. elem.FieldByName(info.SelectItem).SetInt(intchangeinfo)
  1069. } else if elem.FieldByName(info.SelectItem).Type().String() == "float64" {
  1070. floatchangeinfo, _ := strconv.ParseFloat(info.ChangeInfo, 64)
  1071. elem.FieldByName(info.SelectItem).SetFloat(floatchangeinfo)
  1072. } else if elem.FieldByName(info.SelectItem).Type().String() == "time.Time" {
  1073. t,_ := time.Parse("2006-01-02", info.ChangeInfo)
  1074. elem.FieldByName(info.SelectItem).Set(reflect.ValueOf(t))
  1075. } else {
  1076. elem.FieldByName(info.SelectItem).SetString(info.ChangeInfo)
  1077. }
  1078. }
  1079. models[1] = enumModel
  1080. this.Data["json"] = &models
  1081. this.ServeJSON()
  1082. }
  1083. }
  1084. // @Title 添加
  1085. // @Description 新增
  1086. // @Success 200 {object} controllers.Request
  1087. // @router /addinfochangeitemch [post]
  1088. func (this *AnnualAuditController) AddInfoChangeItemCh() {
  1089. var model InfoChangeItemsAll
  1090. var jsonBlob = this.Ctx.Input.RequestBody
  1091. svc := infochange.GetInfoChangeService(utils.DBE)
  1092. json.Unmarshal(jsonBlob, &model)
  1093. var err error
  1094. where := " SupplierId = " + model.SupplierId
  1095. where = where + " and InfoId = " + model.MInfoId
  1096. var deleteEntity infochange.OilAnnualChangeItem
  1097. delMainId, _ := strconv.Atoi(model.MInfoId)
  1098. deleteEntity.InfoId = delMainId
  1099. svc.DBE.Delete(deleteEntity)
  1100. var infoitementitys []infochange.OilAnnualChangeItem
  1101. for i := 0; i < len(model.InfochangeForm); i++ {
  1102. var infoitementity infochange.OilAnnualChangeItem
  1103. infoitementity.SelectItem = model.InfochangeForm[i].SelectItem
  1104. infoitementity.SelectItemName = model.InfochangeForm[i].SelectItemName
  1105. infoitementity.ChangeInfo = model.InfochangeForm[i].ChangeInfo
  1106. infoitementity.BeChangeInfo = model.InfochangeForm[i].BeChangeInfo
  1107. infoitementity.ChangeStatus = 0
  1108. infoitementity.SupplierId, _ = strconv.Atoi(model.SupplierId)
  1109. infoitementity.InfoId, _ = strconv.Atoi(model.MInfoId)
  1110. infoitementity.CreateOn = time.Now()
  1111. infoitementity.CreateBy = this.User.Realname
  1112. infoitementity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  1113. infoitementitys = append(infoitementitys, infoitementity)
  1114. }
  1115. _, err = svc.InsertEntityBytbl(""+OilAnnualChangeItemName, &infoitementitys)
  1116. var errinfo ErrorDataInfo
  1117. if err == nil {
  1118. //新增
  1119. errinfo.Message = "添加成功!"
  1120. errinfo.Code = 0
  1121. //errinfo.Item = model.Id
  1122. this.Data["json"] = &errinfo
  1123. this.ServeJSON()
  1124. } else {
  1125. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  1126. errinfo.Code = -1
  1127. this.Data["json"] = &errinfo
  1128. this.ServeJSON()
  1129. }
  1130. }
  1131. // @Title 获取变更项
  1132. // @Description 获取实体
  1133. // @Success 200 {object} annualaudit.OilAnnualAudit
  1134. // @router /auditget/:id [get]
  1135. func (this *AnnualAuditController) GetEntityThen() {
  1136. InfoId := this.Ctx.Input.Param(":id")
  1137. var model []infochange.OilAnnualChangeItem
  1138. svc := infochange.GetInfoChangeService(utils.DBE)
  1139. where := " InfoId = " + InfoId
  1140. svc.GetEntitysByWhere(OilAnnualChangeItemName, where, &model)
  1141. var datainfo DataInfo
  1142. datainfo.Items = model
  1143. this.Data["json"] = &datainfo
  1144. this.ServeJSON()
  1145. }
  1146. //更新供方信息表
  1147. func (this *AnnualAuditController) updatesupplier(supname string, suppid int, infoitems []infochange.OilAnnualChangeItem) error {
  1148. svc := infochange.GetInfoChangeService(utils.DBE)
  1149. var err error
  1150. if len(infoitems) > 0 {
  1151. for i := 0; i < len(infoitems); i++ {
  1152. //var cols []string
  1153. //cols = append(cols, infoitems[i].SelectItem)
  1154. where := " Id = " + utils.ToStr(suppid)
  1155. var sql string
  1156. sql = `UPDATE ` + supname + ` set ` + infoitems[i].SelectItem + ` = '` + infoitems[i].ChangeInfo + `' where ` + where
  1157. _, err = svc.DBE.Exec(sql)
  1158. //err = svc.UpdateEntityBytbl(OilSupplierName, suppid, &supmodel, cols)
  1159. }
  1160. }
  1161. return err
  1162. }