paymentinfo.go 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/auditsetting"
  4. "dashoo.cn/backend/api/business/invoiceinfo"
  5. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  6. "dashoo.cn/backend/api/business/oilsupplier/infochange"
  7. "dashoo.cn/backend/api/business/oilsupplier/paymentbankinfo"
  8. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
  9. "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
  10. "dashoo.cn/backend/api/business/oilsupplier/supplierfile"
  11. "dashoo.cn/backend/api/business/register"
  12. "dashoo.cn/backend/api/business/workflow"
  13. "dashoo.cn/business3/parameter"
  14. "dashoo.cn/business3/userRole"
  15. "encoding/json"
  16. "fmt"
  17. "strconv"
  18. "strings"
  19. "time"
  20. "dashoo.cn/backend/api/business/bankapi"
  21. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  22. "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
  23. "dashoo.cn/backend/api/business/paymentinfo"
  24. . "dashoo.cn/backend/api/controllers"
  25. "dashoo.cn/business3/permission"
  26. "dashoo.cn/utils"
  27. //"wayne-master/src/backend/util/integer"
  28. )
  29. type PaymentInfoController struct {
  30. BaseController
  31. }
  32. // @Title 获取列表
  33. // @Description get user by token
  34. // @Success 200 {object} []paymentinfo.PaymentinfoList
  35. // @router /list [get]
  36. func (this *PaymentInfoController) GetEntityList() {
  37. //获取分页信息
  38. page := this.GetPageInfoForm()
  39. orderby := "p.Id"
  40. where := " 1=1 "
  41. asc := " DESC"
  42. SupplierTypeCode := this.GetString("SupplierTypeCode")
  43. SupplierName := this.GetString("SupplierName")
  44. IsPay := this.GetString("IsPay")
  45. IsInvoice := this.GetString("IsInvoice")
  46. if IsPay != "" {
  47. if IsPay == "0" {
  48. where = where + " and (p.IsPay = '" + IsPay + "' or p.IsPay = '1') "
  49. } else {
  50. where = where + " and p.IsPay = '" + IsPay + "'"
  51. }
  52. }
  53. if IsInvoice != "" {
  54. where = where + " and c.IsInvoice = '" + IsInvoice + "'"
  55. }
  56. if SupplierTypeCode != "" {
  57. where = where + " and c.SupplierTypeCode like '%" + SupplierTypeCode + "%'"
  58. }
  59. if SupplierName != "" {
  60. where = where + " and s.SupplierName like '%" + SupplierName + "%'"
  61. }
  62. //svc := suppliercert.GetOilSupplierCertService(utils.DBE)
  63. //var list []suppliercert.OilSupplierCert
  64. svcPerm := permission.GetPermissionService(utils.DBE)
  65. var registerUser register.OilCorporateInfo
  66. sql := " UserName='" + this.User.Username + "'"
  67. svcPerm.GetEntity(&registerUser, sql)
  68. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.AllRecord")
  69. if !svcPerm.IsAdmin(this.User.Id) && !isauth {
  70. where = where + " and (p.CreateUserId = '" + this.User.Id + "' or s.CommercialNo='" + registerUser.CommercialNo + "') "
  71. }
  72. var paylist []paymentinfo.PaymentinfoList
  73. svc := paymentinfo.GetPaymentService(utils.DBE)
  74. total := svc.GetPaymentinfoList(page.CurrentPage, page.Size, orderby, asc, &paylist, where)
  75. //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  76. var datainfo DataInfo
  77. datainfo.Items = paylist
  78. datainfo.CurrentItemCount = total
  79. datainfo.PageIndex = page.CurrentPage
  80. datainfo.ItemsPerPage = page.Size
  81. this.Data["json"] = &datainfo
  82. this.ServeJSON()
  83. }
  84. // @Title 获取列表
  85. // @Description get user by token
  86. // @Success 200 {object} []paymentinfo.PaymentinfoList
  87. // @router /get-bill-list [post]
  88. func (this *PaymentInfoController) GetBillList() {
  89. var icbcBillQueryParam bankapi.ICBCBillQueryParam
  90. var jsonBlob = this.Ctx.Input.RequestBody
  91. json.Unmarshal(jsonBlob, &icbcBillQueryParam)
  92. var supplierEntity supplier.OilSupplier
  93. supplierSvc := supplier.GetOilSupplierService(utils.DBE)
  94. supplierWhere := "1=1 and CommercialNo='" + icbcBillQueryParam.CommercialNo + "'" // IsPay=1
  95. supplierSvc.DBE.Where(supplierWhere).Get(&supplierEntity)
  96. var billList []paymentinfo.OilPaymentInfo
  97. billWhere := "1=1 and IsPay='1' and SupplierId='" + strconv.Itoa(supplierEntity.Id) + "'"
  98. svc := paymentinfo.GetPaymentService(utils.DBE)
  99. svc.DBE.Where(billWhere).OrderBy("Id DESC").Find(&billList)
  100. //获取分页信息
  101. //page := this.GetPageInfoForm()
  102. var datainfo DataInfo
  103. datainfo.Items = billList
  104. //datainfo.CurrentItemCount = integer.Int2Int64(len(billList))
  105. // datainfo.CurrentItemCount = 10
  106. datainfo.CurrentItemCount = int64(len(billList))
  107. datainfo.PageIndex = 1
  108. datainfo.ItemsPerPage = 1000
  109. this.Data["json"] = &datainfo
  110. this.ServeJSON()
  111. }
  112. // @Title 获取实体
  113. // @Description 获取实体
  114. // @Success 200 {object} paymentinfo.PaymentinfoList
  115. // @router /get/:id [get]
  116. func (this *PaymentInfoController) GetEntity() {
  117. Id := this.Ctx.Input.Param(":id")
  118. var model []paymentinfo.PaymentinfoList
  119. svc := paymentinfo.GetPaymentService(utils.DBE)
  120. svc.GetPaymentinfoById(Id, &model)
  121. this.Data["json"] = &model[0]
  122. this.ServeJSON()
  123. }
  124. // @Title 修改实体
  125. // @Description 修改实体
  126. // @Param body body paymentinfo.Paymentinfo
  127. // @Success 200 {object} controllers.Request
  128. // @router /update/:id [post]
  129. func (this *PaymentInfoController) UpdateEntity() {
  130. id := this.Ctx.Input.Param(":id")
  131. var errinfo ErrorInfo
  132. if id == "" {
  133. errinfo.Message = "操作失败!请求信息不完整"
  134. errinfo.Code = -2
  135. this.Data["json"] = &errinfo
  136. this.ServeJSON()
  137. return
  138. }
  139. var model paymentinfo.OilPaymentInfo
  140. svc := paymentinfo.GetPaymentService(utils.DBE)
  141. var jsonBlob = this.Ctx.Input.RequestBody
  142. json.Unmarshal(jsonBlob, &model)
  143. model.ModifiedOn = time.Now()
  144. model.ModifiedBy = this.User.Realname
  145. model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  146. cols := []string{
  147. "IsPay",
  148. "PayMode",
  149. "PayDate",
  150. "BankSerialNum",
  151. "BankName",
  152. "Remark",
  153. "ModifiedOn",
  154. "ModifiedUserId",
  155. "ModifiedBy",
  156. }
  157. _, err := svc.UpdateEntityByIdCols(id, &model, cols)
  158. if model.IsPay == "2" {
  159. var certentity suppliercert.OilSupplierCert
  160. certentity.Status = suppliercert.STOREING_STATUS
  161. certentity.Step = 5
  162. cols = []string{
  163. "Status",
  164. "Step",
  165. }
  166. _, err = svc.UpdateEntityByIdCols(strconv.Itoa(model.SupplierCertId), &certentity, cols)
  167. }
  168. if err == nil {
  169. errinfo.Message = "修改成功!"
  170. errinfo.Code = 0
  171. this.Data["json"] = &errinfo
  172. this.ServeJSON()
  173. } else {
  174. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  175. errinfo.Code = -1
  176. this.Data["json"] = &errinfo
  177. this.ServeJSON()
  178. }
  179. }
  180. // @Title 修改金额
  181. // @Description 修改实体
  182. // @Param body body paymentinfo.Paymentinfo
  183. // @Success 200 {object} controllers.Request
  184. // @router /updateAmount/:id [post]
  185. func (this *PaymentInfoController) UpdateAmount() {
  186. id := this.Ctx.Input.Param(":id")
  187. var errinfo ErrorInfo
  188. if id == "" {
  189. errinfo.Message = "操作失败!请求信息不完整"
  190. errinfo.Code = -2
  191. this.Data["json"] = &errinfo
  192. this.ServeJSON()
  193. return
  194. }
  195. var model paymentinfo.OilPaymentInfo
  196. svc := paymentinfo.GetPaymentService(utils.DBE)
  197. var jsonBlob = this.Ctx.Input.RequestBody
  198. json.Unmarshal(jsonBlob, &model)
  199. cols := []string{
  200. "Amount",
  201. }
  202. _, err := svc.UpdateEntityByIdCols(id, &model, cols)
  203. if err == nil {
  204. errinfo.Message = "修改成功!"
  205. errinfo.Code = 0
  206. this.Data["json"] = &errinfo
  207. this.ServeJSON()
  208. } else {
  209. errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
  210. errinfo.Code = -1
  211. this.Data["json"] = &errinfo
  212. this.ServeJSON()
  213. }
  214. }
  215. type BillInfoSure struct {
  216. SupplierEntity supplier.OilSupplier
  217. DataInfos [2]DataInfo
  218. AmountList [2]float64
  219. }
  220. // @Title 获取实体
  221. // @Description 获取实体
  222. // @Success 200 {object} BillInfoSure
  223. // @router /getbillinfo [get]
  224. func (this *PaymentInfoController) GetBillInfo() {
  225. regSvc := register.GetOilCorporateInfoService(utils.DBE)
  226. supplierSvc := supplier.GetOilSupplierService(utils.DBE)
  227. commercialNo := this.GetString("commercialNo")
  228. fmt.Println(commercialNo)
  229. if this.User.IsCompanyUser == 1 {
  230. var corporateInfo register.OilCorporateInfo
  231. regSvc.GetEntity(&corporateInfo, "UserId='"+this.User.Id+"'")
  232. commercialNo = corporateInfo.CommercialNo
  233. }
  234. var supplierEntity supplier.OilSupplier
  235. supplierSvc.GetEntity(&supplierEntity, "CommercialNo='"+commercialNo+"'")
  236. billInfoSure := new(BillInfoSure)
  237. billInfoSure.SupplierEntity = supplierEntity
  238. page := this.GetPageInfoForm()
  239. orderby := "p.Id"
  240. where := "p.SupplierId='" + strconv.Itoa(supplierEntity.Id) + "' and p.IsPay='0' "
  241. var paylist []paymentinfo.PaymentinfoList
  242. svc := paymentinfo.GetPaymentService(utils.DBE)
  243. total := svc.GetPaymentinfoList(page.CurrentPage, page.Size, orderby, " ASC", &paylist, where)
  244. //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  245. var datainfo DataInfo
  246. datainfo.Items = paylist
  247. datainfo.CurrentItemCount = total
  248. datainfo.PageIndex = page.CurrentPage
  249. datainfo.ItemsPerPage = page.Size
  250. amount1 := 0.0
  251. for _, payItem := range paylist {
  252. tmpAmount, _ := strconv.ParseFloat(payItem.Amount, 64)
  253. amount1 += tmpAmount
  254. }
  255. orderby2 := "p.Id"
  256. where2 := "p.SupplierId='" + strconv.Itoa(supplierEntity.Id) + "' and p.IsPay='1' "
  257. var paylist2 []paymentinfo.PaymentinfoList
  258. svc2 := paymentinfo.GetPaymentService(utils.DBE)
  259. total2 := svc2.GetPaymentinfoList(page.CurrentPage, page.Size, orderby2, " ASC", &paylist2, where2)
  260. //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
  261. var datainfo2 DataInfo
  262. datainfo2.Items = paylist2
  263. datainfo2.CurrentItemCount = total2
  264. datainfo2.PageIndex = page.CurrentPage
  265. datainfo2.ItemsPerPage = page.Size
  266. amount2 := 0.0
  267. for _, payItem := range paylist2 {
  268. tmpAmount, _ := strconv.ParseFloat(payItem.Amount, 64)
  269. amount2 += tmpAmount
  270. }
  271. billInfoSure.DataInfos[0] = datainfo
  272. billInfoSure.DataInfos[1] = datainfo2
  273. billInfoSure.AmountList[0] = amount1
  274. billInfoSure.AmountList[1] = amount2
  275. this.Data["json"] = &billInfoSure
  276. this.ServeJSON()
  277. }
  278. type BillSure struct {
  279. Ids string `json:"ids"`
  280. }
  281. // @Title 确认缴费单
  282. // @Description 确认缴费单
  283. // @Success 200 {object} controllers.Request
  284. // @router /bill-sure [post]
  285. func (this *PaymentInfoController) SureEntity() {
  286. svc := paymentinfo.GetPaymentService(utils.DBE)
  287. var billSure BillSure
  288. var jsonBlob = this.Ctx.Input.RequestBody
  289. json.Unmarshal(jsonBlob, &billSure)
  290. strIds := strings.Trim(billSure.Ids, ",")
  291. sql := "update OilPaymentInfo set IsPay = 1, "
  292. sql += "SureBatchNo='" + strconv.FormatInt(time.Now().UnixNano(), 10) + "', "
  293. sql += "ModifiedOn='" + time.Now().Format("2006-01-02 15:04:05") + "', "
  294. sql += "ModifiedBy='" + this.User.Realname + "', "
  295. sql += "ModifiedUserId='" + this.User.Id + "' "
  296. sql += " where id in (" + strIds + ") and IsPay = 0"
  297. svc.DBE.Query(sql)
  298. var errinfo ErrorInfo
  299. errinfo.Message = "修改成功!"
  300. errinfo.Code = 0
  301. this.Data["json"] = &errinfo
  302. this.ServeJSON()
  303. }
  304. // @Title 确认缴费单--回调
  305. // @Description 确认缴费单
  306. // @Success 200 {object} controllers.Request
  307. // @router /receive-money-bill-list-copy [post]
  308. func (this *PaymentInfoController) ReceiveMoneyBillListCopy() {
  309. var errinfo ErrorInfo
  310. svc := paymentinfo.GetPaymentService(utils.DBE)
  311. var billParams bankapi.BillReceiveMoneyParams
  312. var jsonBlob = this.Ctx.Input.RequestBody
  313. json.Unmarshal(jsonBlob, &billParams)
  314. //已有的银行流水号说明是重复调用,将被丢弃
  315. cntWhere := " 1= 1 and BankSerialNum = '" + billParams.BankSerialNum + "' "
  316. var paymentInfoCnt []paymentinfo.OilPaymentInfo
  317. svc.GetEntities(&paymentInfoCnt, cntWhere)
  318. if paymentInfoCnt != nil && len(paymentInfoCnt) > 0 {
  319. errinfo.Message = "重复调用"
  320. errinfo.Code = -1
  321. this.Data["json"] = &errinfo
  322. this.ServeJSON()
  323. return
  324. }
  325. strIds := strings.Trim(billParams.Ids, ",")
  326. sqlList := "id in (" + strIds + ") and IsPay = '1'"
  327. var paymentInfos []paymentinfo.OilPaymentInfo
  328. svc.GetEntities(&paymentInfos, sqlList)
  329. t := time.Now()
  330. sql := "update OilPaymentInfo set IsPay = '2', "
  331. sql += "BankName='" + billParams.BankName + "', "
  332. sql += "BankSerialNum='" + billParams.BankSerialNum + "', "
  333. sql += "PayDate='" + billParams.PayDate.Format("2006-01-02 15:04:05") + "', "
  334. sql += "PayMode='" + billParams.PayMode + "', "
  335. sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
  336. sql += "ModifiedBy='" + this.User.Realname + "', "
  337. sql += "ModifiedUserId='" + this.User.Id + "' "
  338. sql += " where Id in (" + strIds + ") and IsPay = '1'"
  339. svc.DBE.Query(sql)
  340. supplierId := 0
  341. srcids := ""
  342. svcActiviti := workflow.GetActivitiService(utils.DBE)
  343. for _, payItem := range paymentInfos {
  344. supplierId = payItem.SupplierId
  345. srcids = srcids + "," + strconv.Itoa(payItem.Id)
  346. if payItem.PayType == "1" { //准入
  347. var cert suppliercert.OilSupplierCert
  348. svc.GetEntityById(payItem.SupplierCertId, &cert)
  349. /*svcActiviti := workflow.GetActivitiService(utils.DBE)
  350. businessKey := strconv.Itoa(payItem.SupplierCertId)
  351. result := "1"*/
  352. userIds := ""
  353. var userlist []userRole.Base_User
  354. var setting auditsetting.Base_OilAuditSetting
  355. usvc := userRole.GetUserService(utils.DBE)
  356. where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
  357. svc.GetEntity(&setting, where)
  358. ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
  359. tempstr := strings.Join(ids, ",")
  360. uids := strings.Replace(tempstr, "uid_", "", -1)
  361. uids = strings.Trim(uids, ",")
  362. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  363. topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
  364. if uids != "" {
  365. where := "Id in (" + uids + ")" + " and UnitId=" + topid
  366. paramSvc.GetEntities(&userlist, where)
  367. }
  368. for _, tmpUser := range userlist {
  369. userIds += strconv.Itoa(tmpUser.Id) + "," //strconv.FormatInt(tmpUser.Id, 10) + ","
  370. }
  371. userIds = strings.Trim(userIds, ",")
  372. // processInstanceId := svcActiviti.StartProcess2(workflow.OIL_SUPPLIER_INSTORE, businessKey, userIds, result, cert.SupplierTypeCode, payItem.SupplierName)
  373. //TODO: 改成交费步骤完成,到下一步
  374. //var ActiComplete workflow.ActiCompleteVM
  375. //ActiComplete.ProcessKey = workflow.OIL_SUPPLIER_INSTORE
  376. //ActiComplete.BusinessKey = businessKey
  377. //ActiComplete.UserNames = userIds
  378. //ActiComplete.UserId = this.User.Id
  379. //ActiComplete.Result = "1"
  380. //ActiComplete.Remarks = ""
  381. //ActiComplete.CallbackUrl = ""
  382. //
  383. //res := svcActiviti.TaskComplete(ActiComplete)
  384. //fmt.Println(res)
  385. /* var activity oilactivity.OilActivity
  386. activity.EntityId = payItem.SupplierCertId
  387. activity.ActType = oilactivity.STORAGE
  388. activity.WorkflowId = processInstanceId
  389. activity.BusinessKey = businessKey
  390. activity.ProcessKey = workflow.OIL_SUPPLIER_INSTORE
  391. activity.CreateOn = time.Now()
  392. svc.InsertEntityBytbl(OilActivityName, &activity) */
  393. var certentity suppliercert.OilSupplierCert
  394. certentity.Status = suppliercert.STOREING_STATUS
  395. certentity.Step = 5
  396. certentity.IsPay = 1
  397. cols := []string{
  398. "Status",
  399. "Step",
  400. "IsPay",
  401. }
  402. svc.UpdateEntityByIdCols(strconv.Itoa(payItem.SupplierCertId), &certentity, cols)
  403. } else if payItem.PayType == "2" { //年审
  404. //TODO: 修改年审时间
  405. annuasvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  406. var annualentities []annualaudit.OilAnnualAudit
  407. annwhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and CerId = " + utils.ToStr(payItem.SupplierCertId) + " and Status = '6'"
  408. svc.GetEntitysByWhere(OilAnnualAuditName, annwhere, &annualentities)
  409. if len(annualentities) > 0 {
  410. //更新年审表时间
  411. var annmodel annualaudit.OilAnnualAudit
  412. annmodel.Status = suppliercert.ALL_PASE_STATUS
  413. annmodel.ApplyTime = annualentities[0].ApplyTime.AddDate(1, 0, 0)
  414. annuasvc.UpdateEntityBywheretbl(OilAnnualAuditName, &annmodel, []string{"ApplyTime", "Status"}, annwhere)
  415. //更新准入表时间
  416. var certmodel suppliercert.OilSupplierCert
  417. certmodel.ApplyTime = annualentities[0].ApplyTime.AddDate(1, 0, 0)
  418. certmodel.InFlag = "1"
  419. svc.UpdateEntityByIdCols(strconv.Itoa(payItem.SupplierCertId), &certmodel, []string{"ApplyTime", "InFlag"})
  420. }
  421. } else if payItem.PayType == "3" { //增项
  422. appsvc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  423. //更新准入项表
  424. appendwhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and SupplierCertId = " + utils.ToStr(payItem.SupplierCertId) + " and Type = '2'"
  425. var appendsubmodel suppliercertsub.OilSupplierCertSub
  426. appendsubmodel.Type = "3"
  427. appsvc.UpdateEntityBywheretbl(OilSupplierCertSubName, &appendsubmodel, []string{"Type"}, appendwhere)
  428. //更新资质表
  429. appendfilewhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and SupType = 2"
  430. var appendsubfilemodel supplierfile.OilSupplierFile
  431. appendsubfilemodel.SupType = 3
  432. appsvc.UpdateEntityBywheretbl(OilSupplierCertSubName, &appendsubfilemodel, []string{"SupType"}, appendfilewhere)
  433. //更新增项表
  434. appdwhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and SupplierCertId = " + utils.ToStr(payItem.SupplierCertId) + " and Status = '6'"
  435. var appendmodel suppliercertappend.OilSupplierCertAppend
  436. appendmodel.Status = suppliercert.ALL_PASE_STATUS
  437. appsvc.UpdateEntityBywheretbl(OilSupplierCertAppendName, &appendmodel, []string{"Status"}, appdwhere)
  438. }
  439. }
  440. // 待开发票
  441. var suppentity supplier.OilSupplier
  442. where := "Id=" + strconv.Itoa(supplierId)
  443. svc.GetEntity(&suppentity, where)
  444. var ivinfo invoiceinfo.OilInvoiceInfo
  445. ivinfo.SrcIds = strings.Trim(srcids, ",")
  446. ivinfo.Amount = billParams.ReceiveAmount
  447. ivinfo.BankSerialNum = billParams.BankSerialNum
  448. ivinfo.IsInvoice = "0"
  449. ivinfo.SupplierId = supplierId
  450. ivinfo.SupplierName = suppentity.SupplierName
  451. ivinfo.CommercialNo = suppentity.CommercialNo
  452. ivinfo.Address = suppentity.Address
  453. ivinfo.BankAccount = suppentity.BankAccount
  454. ivinfo.DepositBank = suppentity.DepositBank
  455. ivinfo.Email = suppentity.EMail
  456. ivinfo.CreateOn = time.Now()
  457. svc.InsertEntity(&ivinfo)
  458. usvc := userRole.GetUserService(utils.DBE)
  459. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  460. financeRoleId := paramSvc.GetBaseparameterMessage("", "paramset", "FinanceRoleId")
  461. ids := usvc.GetUserIdsByRoleId(financeRoleId)
  462. tempstr := strings.Join(ids, ",")
  463. uids := strings.Replace(tempstr, "uid_", "", -1)
  464. uids = strings.Trim(uids, ",")
  465. businessKey := strconv.Itoa(ivinfo.Id)
  466. result := "1"
  467. processInstanceId := svcActiviti.StartProcess2(workflow.OIL_SUPPLIER_VERIFY, businessKey, uids, result, "04", suppentity.SupplierName)
  468. ivinfo.WorkflowId = processInstanceId
  469. cols := []string{"WorkflowId"}
  470. svc.UpdateEntityByIdCols(ivinfo.Id, &ivinfo, cols)
  471. //记录对账日志
  472. paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
  473. paymentBankInfo.BillIds = billParams.Ids
  474. paymentBankInfo.PayMode = billParams.PayMode
  475. paymentBankInfo.PayDate = billParams.PayDate
  476. paymentBankInfo.BankSerialNum = billParams.BankSerialNum
  477. paymentBankInfo.ReceiveAmount = billParams.ReceiveAmount
  478. paymentBankInfo.BankName = billParams.BankName
  479. paymentBankInfo.CreateUserId = 0
  480. paymentBankInfo.CreateOn = time.Now()
  481. paymentBankInfo.ModifiedUserId = 0
  482. paymentBankInfo.ModifiedOn = time.Now()
  483. paymentBankInfo.WriteInType = "1" //初次回调
  484. payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
  485. payBankSvc.InsertEntity(paymentBankInfo)
  486. errinfo.Message = "修改成功!"
  487. errinfo.Code = 0
  488. this.Data["json"] = &errinfo
  489. this.ServeJSON()
  490. }
  491. // @Title 确认缴费单--回调
  492. // @Description 确认缴费单
  493. // @Success 200 {object} controllers.Request
  494. // @router /receive-money-bill-list [post]
  495. func (this *PaymentInfoController) ReceiveMoneyBillList() {
  496. var errInfo ErrorInfo
  497. svc := paymentinfo.GetPaymentService(utils.DBE)
  498. var billParams bankapi.BillReceiveMoneyParams
  499. var jsonBlob = this.Ctx.Input.RequestBody
  500. json.Unmarshal(jsonBlob, &billParams)
  501. //已有的银行流水号说明是重复调用,将被丢弃
  502. cntWhere := " 1= 1 and BankSerialNum = '" + billParams.BankSerialNum + "' "
  503. var paymentInfoCnt []paymentinfo.OilPaymentInfo
  504. svc.GetEntities(&paymentInfoCnt, cntWhere)
  505. if paymentInfoCnt != nil && len(paymentInfoCnt) > 0 {
  506. errInfo.Message = "重复调用"
  507. errInfo.Code = -1
  508. this.Data["json"] = &errInfo
  509. this.ServeJSON()
  510. return
  511. }
  512. strIds := strings.Trim(billParams.Ids, ",")
  513. sqlList := "id in (" + strIds + ") and IsPay = '1'"
  514. var paymentInfos []paymentinfo.OilPaymentInfo
  515. svc.GetEntities(&paymentInfos, sqlList)
  516. t := time.Now()
  517. sql := "update OilPaymentInfo set IsPay = '2', "
  518. sql += "BankName='" + billParams.BankName + "', "
  519. sql += "BankSerialNum='" + billParams.BankSerialNum + "', "
  520. //sql += "PayDate='" + billParams.PayDate.Format("2006-01-02 15:04:05") + "', "
  521. sql += "PayDate='" + t.Format("2006-01-02 15:04:05") + "', "
  522. sql += "PayMode='" + billParams.PayMode + "', "
  523. sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
  524. sql += "ModifiedBy='" + this.User.Realname + "', "
  525. sql += "ModifiedUserId='" + this.User.Id + "' "
  526. sql += " where Id in (" + strIds + ") and IsPay = '1'"
  527. svc.DBE.Query(sql)
  528. supplierId := 0
  529. srcIds := ""
  530. svcActiviti := workflow.GetActivitiService(utils.DBE)
  531. for _, payItem := range paymentInfos {
  532. supplierId = payItem.SupplierId
  533. srcIds = srcIds + "," + strconv.Itoa(payItem.Id)
  534. if payItem.PayType == "1" { //准入申请
  535. //取出准入表信息
  536. certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
  537. var supplierCertEntity suppliercert.OilSupplierCert
  538. certSrv.GetEntityById(payItem.SrcId, &supplierCertEntity)
  539. var ActiComplete workflow.ActiCompleteVM
  540. ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY
  541. ActiComplete.BusinessKey = supplierCertEntity.BusinessKey
  542. ActiComplete.UserId = strconv.Itoa(supplierCertEntity.CreateUserId)
  543. ActiComplete.Result = "1"
  544. ActiComplete.Remarks = "交费成功。"
  545. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  546. fmt.Println("进入协程!" + payItem.PayType)
  547. go func() {
  548. res := svcActiviti.TaskComplete(ActiComplete)
  549. if res != "true" {
  550. fmt.Println("工作流异常,请联系管理员!" + res)
  551. //panic("工作流异常,请联系管理员!" + res)
  552. }
  553. fmt.Println("协程!" + payItem.PayType)
  554. }()
  555. } else if payItem.PayType == "2" { //年审
  556. //取出年审表信息
  557. annualSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
  558. var annualEntity annualaudit.OilAnnualAudit
  559. annualSrv.GetEntityById(payItem.SrcId, &annualEntity)
  560. var ActiComplete workflow.ActiCompleteVM
  561. ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
  562. ActiComplete.BusinessKey = annualEntity.BusinessKey
  563. ActiComplete.UserId = strconv.Itoa(annualEntity.CreateUserId)
  564. ActiComplete.Result = "1"
  565. ActiComplete.Remarks = "交费成功。"
  566. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  567. fmt.Println("进入协程!" + payItem.PayType)
  568. go func() {
  569. res := svcActiviti.TaskComplete(ActiComplete)
  570. if res != "true" {
  571. fmt.Println("工作流异常,请联系管理员!" + res)
  572. //panic("工作流异常,请联系管理员!" + res)
  573. }
  574. fmt.Println("协程!" + payItem.PayType)
  575. }()
  576. } else if payItem.PayType == "3" { //增项
  577. //取出增项表信息
  578. appendSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  579. var appendEntity suppliercertappend.OilSupplierCertAppend
  580. appendSrv.GetEntityById(payItem.SrcId, &appendEntity)
  581. var ActiComplete workflow.ActiCompleteVM
  582. ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
  583. ActiComplete.BusinessKey = appendEntity.BusinessKey
  584. ActiComplete.UserId = strconv.Itoa(appendEntity.CreateUserId)
  585. ActiComplete.Result = "1"
  586. ActiComplete.Remarks = "交费成功。"
  587. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  588. fmt.Println("进入协程!" + payItem.PayType)
  589. go func() {
  590. res := svcActiviti.TaskComplete(ActiComplete)
  591. if res != "true" {
  592. fmt.Println("工作流异常,请联系管理员!" + res)
  593. //panic("工作流异常,请联系管理员!" + res)
  594. }
  595. fmt.Println("协程!" + payItem.PayType)
  596. }()
  597. } else if payItem.PayType == "7" { // 信息变更
  598. //取出信息变更表信息
  599. infoSrv := infochange.GetInfoChangeService(utils.DBE)
  600. var infoChangeEntity infochange.OilInfoChange
  601. infoSrv.GetEntityById(payItem.SrcId, &infoChangeEntity)
  602. var ActiComplete workflow.ActiCompleteVM
  603. ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE
  604. ActiComplete.BusinessKey = infoChangeEntity.BusinessKey
  605. ActiComplete.UserId = strconv.Itoa(infoChangeEntity.CreateUserId)
  606. ActiComplete.Result = "1"
  607. ActiComplete.Remarks = "交费成功。"
  608. ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
  609. fmt.Println("进入协程!" + payItem.PayType)
  610. go func() {
  611. res := svcActiviti.TaskComplete(ActiComplete)
  612. if res != "true" {
  613. fmt.Println("工作流异常,请联系管理员!" + res)
  614. //panic("工作流异常,请联系管理员!" + res)
  615. }
  616. fmt.Println("协程!" + payItem.PayType)
  617. }()
  618. }
  619. }
  620. // 待开发票记录
  621. var suppentity supplier.OilSupplier
  622. where := "Id=" + strconv.Itoa(supplierId)
  623. svc.GetEntity(&suppentity, where)
  624. var invoiceInfo invoiceinfo.OilInvoiceInfo
  625. invoiceInfo.SrcIds = strings.Trim(srcIds, ",")
  626. invoiceInfo.Amount = billParams.ReceiveAmount
  627. invoiceInfo.BankSerialNum = billParams.BankSerialNum
  628. invoiceInfo.IsInvoice = "0"
  629. invoiceInfo.SupplierId = supplierId
  630. invoiceInfo.SupplierName = suppentity.SupplierName
  631. invoiceInfo.CommercialNo = suppentity.CommercialNo
  632. invoiceInfo.Address = suppentity.Address
  633. invoiceInfo.BankAccount = suppentity.BankAccount
  634. invoiceInfo.DepositBank = suppentity.DepositBank
  635. invoiceInfo.Email = suppentity.EMail
  636. invoiceInfo.CreateOn = time.Now()
  637. svc.InsertEntity(&invoiceInfo)
  638. userSvc := userRole.GetUserService(utils.DBE)
  639. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  640. financeRoleId := paramSvc.GetBaseparameterMessage("", "paramset", "FinanceRoleId")
  641. ids := userSvc.GetUserIdsByRoleId(financeRoleId)
  642. tempStr := strings.Join(ids, ",")
  643. uids := strings.Replace(tempStr, "uid_", "", -1)
  644. uids = strings.Trim(uids, ",")
  645. businessKey := strconv.Itoa(invoiceInfo.Id)
  646. result := "1"
  647. processInstanceId := svcActiviti.StartProcess2(workflow.OIL_SUPPLIER_VERIFY, businessKey, uids, result, "04", suppentity.SupplierName)
  648. invoiceInfo.WorkflowId = processInstanceId
  649. cols := []string{"WorkflowId"}
  650. svc.UpdateEntityByIdCols(invoiceInfo.Id, &invoiceInfo, cols)
  651. //记录对账日志
  652. paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
  653. paymentBankInfo.BillIds = billParams.Ids
  654. paymentBankInfo.PayMode = billParams.PayMode
  655. paymentBankInfo.PayDate = billParams.PayDate
  656. paymentBankInfo.BankSerialNum = billParams.BankSerialNum
  657. paymentBankInfo.ReceiveAmount = billParams.ReceiveAmount
  658. paymentBankInfo.BankName = billParams.BankName
  659. paymentBankInfo.CreateUserId = 0
  660. paymentBankInfo.CreateOn = time.Now()
  661. paymentBankInfo.ModifiedUserId = 0
  662. paymentBankInfo.ModifiedOn = time.Now()
  663. paymentBankInfo.WriteInType = "1" //初次回调
  664. payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
  665. payBankSvc.InsertEntity(paymentBankInfo)
  666. errInfo.Message = "修改成功!"
  667. errInfo.Code = 0
  668. this.Data["json"] = &errInfo
  669. this.ServeJSON()
  670. }
  671. // @Title 对账后有未更改状态的,再次确认缴费单--回调
  672. // @Description 确认缴费单
  673. // @Success 200 {object} controllers.Request
  674. // @router /receive-money-again-list [post]
  675. func (this *PaymentInfoController) ReceiveMoneyAgainList() {
  676. var errinfo ErrorInfo
  677. svc := paymentinfo.GetPaymentService(utils.DBE)
  678. var billParams []bankapi.BillReceiveMoneyAgainParams
  679. var jsonBlob = this.Ctx.Input.RequestBody
  680. json.Unmarshal(jsonBlob, &billParams)
  681. for _, billItem := range billParams {
  682. t := time.Now()
  683. sql := "update OilPaymentInfo set IsPay = 2, "
  684. sql += "BankName='" + billItem.BankName + "', "
  685. sql += "BankSerialNum='" + billItem.BankSerialNum + "', "
  686. sql += "PayDate='" + billItem.PayDate.Format("2006-01-02 15:04:05") + "', "
  687. sql += "PayMode='" + billItem.PayMode + "', "
  688. sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
  689. sql += "ModifiedBy='" + this.User.Realname + "', "
  690. sql += "ModifiedUserId='" + this.User.Id + "' "
  691. sql += " where id = " + billItem.BillId + " and IsPay = '1'"
  692. svc.DBE.Query(sql)
  693. strIds := strings.Trim(billItem.BillId, ",")
  694. sqlList := " 1=1 and Id in (" + strIds + ") and IsPay = '1'"
  695. var paymentInfo paymentinfo.OilPaymentInfo
  696. utils.DBE.Find(&paymentInfo, sqlList)
  697. if paymentInfo.PayType == "1" { //准入
  698. var certentity suppliercert.OilSupplierCert
  699. certentity.Status = suppliercert.STOREING_STATUS
  700. certentity.Step = 5
  701. cols := []string{
  702. "Status",
  703. "Step",
  704. }
  705. svc.UpdateEntityByIdCols(strconv.Itoa(paymentInfo.SupplierCertId), &certentity, cols)
  706. } else if paymentInfo.PayType == "2" { //年审
  707. //TODO: 修改年审时间
  708. } else if paymentInfo.PayType == "3" { //增项
  709. }
  710. //记录对账日志
  711. paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
  712. paymentBankInfo.BillIds = billItem.BillId
  713. paymentBankInfo.PayMode = billItem.PayMode
  714. paymentBankInfo.PayDate = billItem.PayDate
  715. paymentBankInfo.BankSerialNum = billItem.BankSerialNum
  716. paymentBankInfo.ReceiveAmount = billItem.ReceiveAmount
  717. paymentBankInfo.BankName = billItem.BankName
  718. paymentBankInfo.CreateUserId = 0
  719. paymentBankInfo.CreateOn = time.Now()
  720. paymentBankInfo.ModifiedUserId = 0
  721. paymentBankInfo.ModifiedOn = time.Now()
  722. paymentBankInfo.WriteInType = "2" //对账发现未修改成功时的回调
  723. payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
  724. payBankSvc.InsertEntity(paymentBankInfo)
  725. }
  726. errinfo.Message = "修改成功!"
  727. errinfo.Code = 0
  728. this.Data["json"] = &errinfo
  729. this.ServeJSON()
  730. }
  731. // @Title 对账
  732. // @Description 对账
  733. // @Success 200 {object} controllers.Request
  734. // @router /check-money-list [post]
  735. func (this *PaymentInfoController) CheckMoneyList() {
  736. svc := paymentinfo.GetPaymentService(utils.DBE)
  737. var checkMoneyParams bankapi.BillCheckMoneyParams
  738. var jsonBlob = this.Ctx.Input.RequestBody
  739. json.Unmarshal(jsonBlob, &checkMoneyParams)
  740. checkRet := new(bankapi.BillCheckMoneyRet)
  741. paymentWhere := "1=1 and IsPay='2' "
  742. paymentWhere += " and PayDate >= '" + checkMoneyParams.StartTime.Format("2006-01-02 15:04:05") + "'"
  743. paymentWhere += " and PayDate <= '" + checkMoneyParams.EndTime.Format("2006-01-02 15:04:05") + "'"
  744. svc.GetEntities(&(checkRet.PaymentInfos), paymentWhere)
  745. bankWhere := "1=1"
  746. bankWhere += " and PayDate >= '" + checkMoneyParams.StartTime.Format("2006-01-02 15:04:05") + "'"
  747. bankWhere += " and PayDate <= '" + checkMoneyParams.EndTime.Format("2006-01-02 15:04:05") + "'"
  748. svc.GetEntities(&(checkRet.PaymentBankInfos), bankWhere)
  749. var datainfo DataInfo
  750. datainfo.Items = checkRet
  751. this.Data["json"] = &datainfo
  752. this.ServeJSON()
  753. }
  754. // @Title 删除单条信息
  755. // @Description
  756. // @Success 200 {object} ErrorInfo
  757. // @Failure 403 :id 为空
  758. // @router /delete/:Id [delete]
  759. func (this *PaymentInfoController) DeleteEntity() {
  760. Id := this.Ctx.Input.Param(":Id")
  761. var errinfo ErrorInfo
  762. if Id == "" {
  763. errinfo.Message = "操作失败!请求信息不完整"
  764. errinfo.Code = -2
  765. this.Data["json"] = &errinfo
  766. this.ServeJSON()
  767. return
  768. }
  769. var emptyModel paymentinfo.OilPaymentInfo
  770. var model paymentinfo.OilPaymentInfo
  771. svc := paymentinfo.GetPaymentService(utils.DBE)
  772. svc.GetEntityById(Id, &model)
  773. // where := "Id=" + Id
  774. // err := svc.DeleteEntityBytbl(OilPaymentInfoName, where)
  775. err := svc.DeleteEntityAndBackup(Id, &model, &emptyModel, utils.ToStr(this.User.Id), this.User.Username)
  776. if err != nil {
  777. errinfo.Message = "删除失败!"
  778. errinfo.Code = -1
  779. this.Data["json"] = &errinfo
  780. this.ServeJSON()
  781. return
  782. }
  783. if err == nil {
  784. var cert suppliercert.OilSupplierCert
  785. cert.Status = suppliercert.STOREING_STATUS
  786. cols := []string{"Status"}
  787. where := "Id=" + strconv.Itoa(model.SupplierCertId)
  788. svc.UpdateEntityBywheretbl(OilSupplierCertName, &cert, cols, where)
  789. errinfo.Message = "删除成功"
  790. errinfo.Code = 0
  791. this.Data["json"] = &errinfo
  792. this.ServeJSON()
  793. } else {
  794. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  795. errinfo.Code = -1
  796. this.Data["json"] = &errinfo
  797. this.ServeJSON()
  798. }
  799. }
  800. // @Title 修改金额
  801. // @Description 修改实体
  802. // @Param body body paymentinfo.Paymentinfo
  803. // @Success 200 {object} controllers.Request
  804. // @router /addpayinfo [post]
  805. func (this *PaymentInfoController) AddPayInfo() {
  806. supplierId := this.GetString("SupplierId")
  807. payType := this.GetString("PayType")
  808. amount := this.GetString("Amount")
  809. supplierTypeCode := this.GetString("SupplierTypeCode")
  810. var supp supplier.OilSupplier
  811. svc := paymentinfo.GetPaymentService(utils.DBE)
  812. has := svc.GetEntityById(supplierId, &supp)
  813. var errinfo ErrorInfo
  814. if !has {
  815. errinfo.Message = "没有相关企业信息!"
  816. errinfo.Code = -2
  817. this.Data["json"] = &errinfo
  818. this.ServeJSON()
  819. return
  820. }
  821. var cert []suppliercert.OilSupplierCert
  822. wherec := "SupplierId=" + supplierId + " and SupplierTypeCode='" + supplierTypeCode + "'"
  823. svc.GetEntities(&cert, wherec)
  824. if cert == nil {
  825. errinfo.Message = "没有相关企业信息!"
  826. errinfo.Code = -2
  827. this.Data["json"] = &errinfo
  828. this.ServeJSON()
  829. return
  830. }
  831. where := "SupplierId=" + strconv.Itoa(supp.Id) + " and USCCode='" + supp.CommercialNo + "' and PayType='" + payType + "' and SupplierCertId=" + strconv.Itoa(cert[0].Id)
  832. var model1 paymentinfo.OilPaymentInfo
  833. has = svc.GetEntity(&model1, where)
  834. if has {
  835. errinfo.Message = "已经存在相关交费记录,不能重复添加!"
  836. errinfo.Code = -2
  837. this.Data["json"] = &errinfo
  838. this.ServeJSON()
  839. return
  840. }
  841. var model paymentinfo.OilPaymentInfo
  842. model.SupplierId, _ = strconv.Atoi(supplierId)
  843. model.SupplierCertId = cert[0].Id
  844. model.SupplierName = supp.SupplierName
  845. model.USCCode = supp.CommercialNo
  846. model.PayType = payType
  847. model.IsPay = "0"
  848. model.Amount = amount
  849. model.CreateOn = time.Now()
  850. model.CreateBy = this.User.Realname
  851. model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  852. _, err := svc.InsertEntity(&model)
  853. if err == nil {
  854. errinfo.Message = "添加成功!"
  855. errinfo.Code = 0
  856. this.Data["json"] = &errinfo
  857. this.ServeJSON()
  858. } else {
  859. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  860. errinfo.Code = -1
  861. this.Data["json"] = &errinfo
  862. this.ServeJSON()
  863. }
  864. }
  865. // @Title 获取字典列表
  866. // @Description get user by token
  867. // @Success 200 {object} map[string]interface{}
  868. // @router /dictlist [get]
  869. func (this *PaymentInfoController) GetDictList() {
  870. dictList := make(map[string]interface{})
  871. svcPerm := permission.GetPermissionService(utils.DBE)
  872. isallowdel := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.CanDelete")
  873. dictList["IsAllowDel"] = isallowdel
  874. var datainfo DataInfo
  875. datainfo.Items = dictList
  876. this.Data["json"] = &datainfo
  877. this.ServeJSON()
  878. }
  879. // @Title 银行对账单
  880. // @Description 银行对账单
  881. // @Success 200 {object} controllers.Request
  882. // @router /receive-verify-bill-list [post]
  883. func (this *PaymentInfoController) ReceiveVerifyBillList() {
  884. var VerifyBills []paymentinfo.OilVerifyBill
  885. var jsonBlob = this.Ctx.Input.RequestBody
  886. json.Unmarshal(jsonBlob, &VerifyBills)
  887. fmt.Println(VerifyBills)
  888. svc := paymentinfo.GetPaymentService(utils.DBE)
  889. for _, item := range VerifyBills {
  890. var Oilverifybill paymentinfo.OilVerifyBill
  891. Oilverifybill.BillIds = strings.Trim(item.BillIds, ",")
  892. Oilverifybill.BankSerialNum = item.BankSerialNum
  893. Oilverifybill.ReceiveAmount = item.ReceiveAmount
  894. Oilverifybill.VerifyDate = item.VerifyDate
  895. Oilverifybill.PayDate = item.PayDate
  896. Oilverifybill.CreateOn = time.Now()
  897. svc.InsertEntity(&Oilverifybill)
  898. ids := strings.Split(item.BillIds, ",")
  899. for _, id := range ids {
  900. var payinfo paymentinfo.OilPaymentInfo
  901. //where := "Id= " + id + " and BankSerialNum='" + item.BankSerialNum +"'" + " and IsPay='2'"
  902. //has := svc.GetEntity(&payinfo, where)
  903. cols := []string{"IsPay", "IsVerify", "VerifyDate", "BankSerialNum"}
  904. payinfo.IsPay = "2"
  905. payinfo.IsVerify = "1"
  906. payinfo.BankSerialNum = item.BankSerialNum
  907. payinfo.VerifyDate = item.VerifyDate
  908. svc.UpdateEntityByIdCols(id, &payinfo, cols)
  909. }
  910. }
  911. var errinfo ErrorInfo
  912. errinfo.Message = "对账完成!"
  913. errinfo.Code = 0
  914. this.Data["json"] = &errinfo
  915. this.ServeJSON()
  916. }
  917. // @Title 获取权限
  918. // @Description
  919. // @Success 200 {object} controllers.Request
  920. // @router /ispermission [get]
  921. func (this *PaymentInfoController) IsPermission() {
  922. dictList := make(map[string]interface{})
  923. svcPerm := permission.GetPermissionService(utils.DBE)
  924. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.CanEdit")
  925. isAdd := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.IsAdd")
  926. dictList["IsEdit"] = isauth
  927. dictList["IsAdd"] = isAdd
  928. var errinfo ErrorDataInfo
  929. errinfo.Code = 0
  930. errinfo.Item = dictList
  931. this.Data["json"] = &errinfo
  932. this.ServeJSON()
  933. }