paymentinfo.go 40 KB

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