| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784 |
- package oilsupplier
- import (
- "dashoo.cn/backend/api/business/auditsetting"
- "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
- "dashoo.cn/backend/api/business/oilsupplier/oilactivity"
- "dashoo.cn/backend/api/business/oilsupplier/paymentbankinfo"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
- "dashoo.cn/backend/api/business/oilsupplier/supplierfile"
- "dashoo.cn/backend/api/business/register"
- "dashoo.cn/backend/api/business/workflow"
- "dashoo.cn/business2/parameter"
- "dashoo.cn/business2/userRole"
- "encoding/json"
- "fmt"
- "strconv"
- "strings"
- "time"
- "dashoo.cn/backend/api/business/bankapi"
- "dashoo.cn/backend/api/business/oilsupplier/supplier"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
- "dashoo.cn/backend/api/business/paymentinfo"
- . "dashoo.cn/backend/api/controllers"
- "dashoo.cn/business2/permission"
- "dashoo.cn/utils"
- //"wayne-master/src/backend/util/integer"
- )
- type PaymentInfoController struct {
- BaseController
- }
- // @Title 获取列表
- // @Description get user by token
- // @Success 200 {object} []paymentinfo.PaymentinfoList
- // @router /list [get]
- func (this *PaymentInfoController) GetEntityList() {
- //获取分页信息
- page := this.GetPageInfoForm()
- orderby := "p.Id"
- where := " 1=1 "
- asc := " DESC"
- SupplierTypeCode := this.GetString("SupplierTypeCode")
- SupplierName := this.GetString("SupplierName")
- IsPay := this.GetString("IsPay")
- if IsPay != "" {
- if IsPay == "0" {
- where = where + " and (p.IsPay = '" + IsPay + "' or p.IsPay = '1') "
- } else {
- where = where + " and p.IsPay = '" + IsPay + "'"
- }
- }
- if SupplierTypeCode != "" {
- where = where + " and c.SupplierTypeCode like '%" + SupplierTypeCode + "%'"
- }
- if SupplierName != "" {
- where = where + " and s.SupplierName like '%" + SupplierName + "%'"
- }
- //svc := suppliercert.GetOilSupplierCertService(utils.DBE)
- //var list []suppliercert.OilSupplierCert
- svcPerm := permission.GetPermissionService(utils.DBE)
- var registerUser register.OilCorporateInfo
- sql := " UserName='" + this.User.Username + "'"
- svcPerm.GetEntity(®isterUser, sql)
- isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.AllRecord")
- if !svcPerm.IsAdmin(this.User.Id) && !isauth {
- where = where + " and (p.CreateUserId = '" + this.User.Id + "' or s.CommercialNo='" + registerUser.CommercialNo + "') "
- }
- var paylist []paymentinfo.PaymentinfoList
- svc := paymentinfo.GetPaymentService(utils.DBE)
- total := svc.GetPaymentinfoList(page.CurrentPage, page.Size, orderby, asc, &paylist, where)
- //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
- var datainfo DataInfo
- datainfo.Items = paylist
- datainfo.CurrentItemCount = total
- datainfo.PageIndex = page.CurrentPage
- datainfo.ItemsPerPage = page.Size
- this.Data["json"] = &datainfo
- this.ServeJSON()
- }
- // @Title 获取列表
- // @Description get user by token
- // @Success 200 {object} []paymentinfo.PaymentinfoList
- // @router /get-bill-list [post]
- func (this *PaymentInfoController) GetBillList() {
- var icbcBillQueryParam bankapi.ICBCBillQueryParam
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &icbcBillQueryParam)
- var supplierEntity supplier.OilSupplier
- supplierSvc := supplier.GetOilSupplierService(utils.DBE)
- supplierWhere := "1=1 and CommercialNo='" + icbcBillQueryParam.CommercialNo + "'" // IsPay=1
- supplierSvc.DBE.Where(supplierWhere).Get(&supplierEntity)
- var billList []paymentinfo.OilPaymentInfo
- billWhere := "1=1 and IsPay='1' and SupplierId='" + strconv.Itoa(supplierEntity.Id) + "'"
- svc := paymentinfo.GetPaymentService(utils.DBE)
- svc.DBE.Where(billWhere).OrderBy("Id DESC").Find(&billList)
- //获取分页信息
- //page := this.GetPageInfoForm()
- var datainfo DataInfo
- datainfo.Items = billList
- //datainfo.CurrentItemCount = integer.Int2Int64(len(billList))
- // datainfo.CurrentItemCount = 10
- datainfo.CurrentItemCount = int64(len(billList))
- datainfo.PageIndex = 1
- datainfo.ItemsPerPage = 1000
- this.Data["json"] = &datainfo
- this.ServeJSON()
- }
- // @Title 获取实体
- // @Description 获取实体
- // @Success 200 {object} paymentinfo.PaymentinfoList
- // @router /get/:id [get]
- func (this *PaymentInfoController) GetEntity() {
- Id := this.Ctx.Input.Param(":id")
- var model []paymentinfo.PaymentinfoList
- svc := paymentinfo.GetPaymentService(utils.DBE)
- svc.GetPaymentinfoById(Id, &model)
- this.Data["json"] = &model[0]
- this.ServeJSON()
- }
- // @Title 修改实体
- // @Description 修改实体
- // @Param body body paymentinfo.Paymentinfo
- // @Success 200 {object} controllers.Request
- // @router /update/:id [post]
- func (this *PaymentInfoController) UpdateEntity() {
- id := this.Ctx.Input.Param(":id")
- var errinfo ErrorInfo
- if id == "" {
- errinfo.Message = "操作失败!请求信息不完整"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- var model paymentinfo.OilPaymentInfo
- svc := paymentinfo.GetPaymentService(utils.DBE)
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &model)
- model.ModifiedOn = time.Now()
- model.ModifiedBy = this.User.Realname
- model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
- cols := []string{
- "IsPay",
- "PayMode",
- "PayDate",
- "BankSerialNum",
- "BankName",
- "Remark",
- "ModifiedOn",
- "ModifiedUserId",
- "ModifiedBy",
- }
- _, err := svc.UpdateEntityByIdCols(id, &model, cols)
- if model.IsPay == "2" {
- var certentity suppliercert.OilSupplierCert
- certentity.Status = suppliercert.STOREING_STATUS
- certentity.Step = 5
- cols = []string{
- "Status",
- "Step",
- }
- _, err = svc.UpdateEntityByIdCols(strconv.Itoa(model.SupplierCertId), &certentity, cols)
- }
- if err == nil {
- errinfo.Message = "修改成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- } else {
- errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- }
- // @Title 修改金额
- // @Description 修改实体
- // @Param body body paymentinfo.Paymentinfo
- // @Success 200 {object} controllers.Request
- // @router /updateAmount/:id [post]
- func (this *PaymentInfoController) UpdateAmount() {
- id := this.Ctx.Input.Param(":id")
- var errinfo ErrorInfo
- if id == "" {
- errinfo.Message = "操作失败!请求信息不完整"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- var model paymentinfo.OilPaymentInfo
- svc := paymentinfo.GetPaymentService(utils.DBE)
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &model)
- cols := []string{
- "Amount",
- }
- _, err := svc.UpdateEntityByIdCols(id, &model, cols)
- if err == nil {
- errinfo.Message = "修改成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- } else {
- errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- }
- type BillInfoSure struct {
- SupplierEntity supplier.OilSupplier
- DataInfos [2]DataInfo
- AmountList [2]float64
- }
- // @Title 获取实体
- // @Description 获取实体
- // @Success 200 {object} BillInfoSure
- // @router /getbillinfo [get]
- func (this *PaymentInfoController) GetBillInfo() {
- regSvc := register.GetOilCorporateInfoService(utils.DBE)
- supplierSvc := supplier.GetOilSupplierService(utils.DBE)
- commercialNo := this.GetString("commercialNo")
- fmt.Println(commercialNo)
- if this.User.IsCompanyUser == 1 {
- var corporateInfo register.OilCorporateInfo
- regSvc.GetEntity(&corporateInfo, "UserId='"+this.User.Id+"'")
- commercialNo = corporateInfo.CommercialNo
- }
- var supplierEntity supplier.OilSupplier
- supplierSvc.GetEntity(&supplierEntity, "CommercialNo='"+commercialNo+"'")
- billInfoSure := new(BillInfoSure)
- billInfoSure.SupplierEntity = supplierEntity
- page := this.GetPageInfoForm()
- orderby := "p.Id"
- where := "p.SupplierId='" + strconv.Itoa(supplierEntity.Id) + "' and p.IsPay='0' "
- var paylist []paymentinfo.PaymentinfoList
- svc := paymentinfo.GetPaymentService(utils.DBE)
- total := svc.GetPaymentinfoList(page.CurrentPage, page.Size, orderby, " ASC", &paylist, where)
- //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
- var datainfo DataInfo
- datainfo.Items = paylist
- datainfo.CurrentItemCount = total
- datainfo.PageIndex = page.CurrentPage
- datainfo.ItemsPerPage = page.Size
- amount1 := 0.0
- for _, payItem := range paylist {
- tmpAmount, _ := strconv.ParseFloat(payItem.Amount, 64)
- amount1 += tmpAmount
- }
- orderby2 := "p.Id"
- where2 := "p.SupplierId='" + strconv.Itoa(supplierEntity.Id) + "' and p.IsPay='1' "
- var paylist2 []paymentinfo.PaymentinfoList
- svc2 := paymentinfo.GetPaymentService(utils.DBE)
- total2 := svc2.GetPaymentinfoList(page.CurrentPage, page.Size, orderby2, " ASC", &paylist2, where2)
- //total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
- var datainfo2 DataInfo
- datainfo2.Items = paylist2
- datainfo2.CurrentItemCount = total2
- datainfo2.PageIndex = page.CurrentPage
- datainfo2.ItemsPerPage = page.Size
- amount2 := 0.0
- for _, payItem := range paylist2 {
- tmpAmount, _ := strconv.ParseFloat(payItem.Amount, 64)
- amount2 += tmpAmount
- }
- billInfoSure.DataInfos[0] = datainfo
- billInfoSure.DataInfos[1] = datainfo2
- billInfoSure.AmountList[0] = amount1
- billInfoSure.AmountList[1] = amount2
- this.Data["json"] = &billInfoSure
- this.ServeJSON()
- }
- type BillSure struct {
- Ids string `json:"ids"`
- }
- // @Title 确认缴费单
- // @Description 确认缴费单
- // @Success 200 {object} controllers.Request
- // @router /bill-sure [post]
- func (this *PaymentInfoController) SureEntity() {
- svc := paymentinfo.GetPaymentService(utils.DBE)
- var billSure BillSure
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &billSure)
- strIds := strings.Trim(billSure.Ids, ",")
- sql := "update OilPaymentInfo set IsPay = 1, "
- sql += "SureBatchNo='" + strconv.FormatInt(time.Now().UnixNano(), 10) + "', "
- sql += "ModifiedOn='" + time.Now().Format("2006-01-02 15:04:05") + "', "
- sql += "ModifiedBy='" + this.User.Realname + "', "
- sql += "ModifiedUserId='" + this.User.Id + "' "
- sql += " where id in (" + strIds + ") and IsPay = 0"
- svc.DBE.Query(sql)
- var errinfo ErrorInfo
- errinfo.Message = "修改成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- // @Title 确认缴费单--回调
- // @Description 确认缴费单
- // @Success 200 {object} controllers.Request
- // @router /receive-money-bill-list [post]
- func (this *PaymentInfoController) ReceiveMoneyBillList() {
- var errinfo ErrorInfo
- svc := paymentinfo.GetPaymentService(utils.DBE)
- var billParams bankapi.BillReceiveMoneyParams
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &billParams)
- //已有的银行流水号说明是重复调用,将被丢弃
- cntWhere := " 1= 1 and BankSerialNum = '" + billParams.BankSerialNum + "' "
- var paymentInfoCnt []paymentinfo.OilPaymentInfo
- svc.GetEntities(&paymentInfoCnt, cntWhere)
- if paymentInfoCnt != nil && len(paymentInfoCnt) > 0 {
- errinfo.Message = "重复调用"
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- strIds := strings.Trim(billParams.Ids, ",")
- sqlList := "id in (" + strIds + ") and IsPay = '1'"
- var paymentInfos []paymentinfo.OilPaymentInfo
- svc.GetEntities(&paymentInfos, sqlList)
- t := time.Now()
- sql := "update OilPaymentInfo set IsPay = '2', "
- sql += "BankName='" + billParams.BankName + "', "
- sql += "BankSerialNum='" + billParams.BankSerialNum + "', "
- sql += "PayDate='" + billParams.PayDate.Format("2006-01-02 15:04:05") + "', "
- sql += "PayMode='" + billParams.PayMode + "', "
- sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
- sql += "ModifiedBy='" + this.User.Realname + "', "
- sql += "ModifiedUserId='" + this.User.Id + "' "
- sql += " where Id in (" + strIds + ") and IsPay = '1'"
- svc.DBE.Query(sql)
- for _, payItem := range paymentInfos {
- if payItem.PayType == "1" { //准入
- var cert suppliercert.OilSupplierCert
- svc.GetEntityById(payItem.SupplierCertId,&cert)
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- businessKey := strconv.Itoa(payItem.SupplierCertId)
- result := "1"
- userIds := ""
- var userlist []userRole.Base_User
- var setting auditsetting.Base_OilAuditSetting
- usvc := userRole.GetUserService(utils.DBE)
- where := "AuditStepCode='" + workflow.PROF_REGULATION + "'"
- svc.GetEntity(&setting, where)
- ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
- tempstr := strings.Join(ids, ",")
- uids := strings.Replace(tempstr, "uid_", "", -1)
- uids = strings.Trim(uids, ",")
- paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
- topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT")
- if uids != "" {
- where := "Id in (" + uids + ")" + " and UnitId=" + topid
- paramSvc.GetEntities(&userlist, where)
- }
- for _, tmpUser := range userlist {
- userIds += strconv.Itoa(tmpUser.Id) + "," //strconv.FormatInt(tmpUser.Id, 10) + ","
- }
- userIds = strings.Trim(userIds, ",")
- processInstanceId := svcActiviti.StartProcess2(workflow.OIL_SUPPLIER_INSTORE, businessKey, userIds, result, cert.SupplierTypeCode, payItem.SupplierName)
- //var ActiComplete workflow.ActiCompleteVM
- //ActiComplete.ProcessKey = workflow.OIL_SUPPLIER_INSTORE
- //ActiComplete.BusinessKey = businessKey
- //ActiComplete.UserNames = userIds
- //ActiComplete.UserId = this.User.Id
- //ActiComplete.Result = "1"
- //ActiComplete.Remarks = ""
- //ActiComplete.CallbackUrl = ""
- //
- //res := svcActiviti.TaskComplete(ActiComplete)
- //fmt.Println(res)
- var activity oilactivity.OilActivity
- activity.EntityId = payItem.SupplierCertId
- activity.ActType = oilactivity.STORAGE
- activity.WorkflowId = processInstanceId
- activity.BusinessKey = businessKey
- activity.ProcessKey = workflow.OIL_SUPPLIER_INSTORE
- activity.CreateOn = time.Now()
- svc.InsertEntityBytbl(OilActivityName, &activity)
- var certentity suppliercert.OilSupplierCert
- certentity.Status = suppliercert.STOREING_STATUS
- certentity.Step = 5
- cols := []string{
- "Status",
- "Step",
- }
- svc.UpdateEntityByIdCols(strconv.Itoa(payItem.SupplierCertId), &certentity, cols)
- } else if payItem.PayType == "2" { //年审
- //TODO: 修改年审时间
- annuasvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
- var annualentities []annualaudit.OilAnnualAudit
- annwhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and CerId = " + utils.ToStr(payItem.SupplierCertId) + " and Status = '6'"
- svc.GetEntitysByWhere(OilAnnualAuditName, annwhere, &annualentities)
- if len(annualentities) > 0 {
- //更新年审表时间
- var annmodel annualaudit.OilAnnualAudit
- annmodel.Status = suppliercert.ALL_PASE_STATUS
- annmodel.ApplyTime = annualentities[0].ApplyTime.AddDate(1, 0, 0)
- annuasvc.UpdateEntityBywheretbl(OilAnnualAuditName, &annmodel, []string{"ApplyTime", "Status"}, annwhere)
- //更新准入表时间
- var certmodel suppliercert.OilSupplierCert
- certmodel.ApplyTime = annualentities[0].ApplyTime.AddDate(1, 0, 0)
- certmodel.InFlag = "1"
- svc.UpdateEntityByIdCols(strconv.Itoa(payItem.SupplierCertId), &certmodel, []string{"ApplyTime", "InFlag"})
- }
- } else if payItem.PayType == "3" { //增项
- appsvc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- //更新准入项表
- appendwhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and SupplierCertId = " + utils.ToStr(payItem.SupplierCertId) + " and Type = '2'"
- var appendsubmodel suppliercertsub.OilSupplierCertSub
- appendsubmodel.Type = "3"
- appsvc.UpdateEntityBywheretbl(OilSupplierCertSubName, &appendsubmodel, []string{"Type"}, appendwhere)
- //更新资质表
- appendfilewhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and SupType = 2"
- var appendsubfilemodel supplierfile.OilSupplierFile
- appendsubfilemodel.SupType = 3
- appsvc.UpdateEntityBywheretbl(OilSupplierCertSubName, &appendsubfilemodel, []string{"SupType"}, appendfilewhere)
- //更新增项表
- appdwhere := " SupplierId = " + utils.ToStr(payItem.SupplierId) + " and SupplierCertId = " + utils.ToStr(payItem.SupplierCertId) + " and Status = '6'"
- var appendmodel suppliercertappend.OilSupplierCertAppend
- appendmodel.Status = suppliercert.ALL_PASE_STATUS
- appsvc.UpdateEntityBywheretbl(OilSupplierCertAppendName, &appendmodel, []string{"Status"}, appdwhere)
- }
- }
- //记录对账日志
- paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
- paymentBankInfo.BillIds = billParams.Ids
- paymentBankInfo.PayMode = billParams.PayMode
- paymentBankInfo.PayDate = billParams.PayDate
- paymentBankInfo.BankSerialNum = billParams.BankSerialNum
- paymentBankInfo.ReceiveAmount = billParams.ReceiveAmount
- paymentBankInfo.BankName = billParams.BankName
- paymentBankInfo.CreateUserId = 0
- paymentBankInfo.CreateOn = time.Now()
- paymentBankInfo.ModifiedUserId = 0
- paymentBankInfo.ModifiedOn = time.Now()
- paymentBankInfo.WriteInType = "1" //初次回调
- payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
- payBankSvc.InsertEntity(paymentBankInfo)
- errinfo.Message = "修改成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- // @Title 对账后有未更改状态的,再次确认缴费单--回调
- // @Description 确认缴费单
- // @Success 200 {object} controllers.Request
- // @router /receive-money-again-list [post]
- func (this *PaymentInfoController) ReceiveMoneyAgainList() {
- var errinfo ErrorInfo
- svc := paymentinfo.GetPaymentService(utils.DBE)
- var billParams []bankapi.BillReceiveMoneyAgainParams
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &billParams)
- for _, billItem := range billParams {
- t := time.Now()
- sql := "update OilPaymentInfo set IsPay = 2, "
- sql += "BankName='" + billItem.BankName + "', "
- sql += "BankSerialNum='" + billItem.BankSerialNum + "', "
- sql += "PayDate='" + billItem.PayDate.Format("2006-01-02 15:04:05") + "', "
- sql += "PayMode='" + billItem.PayMode + "', "
- sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
- sql += "ModifiedBy='" + this.User.Realname + "', "
- sql += "ModifiedUserId='" + this.User.Id + "' "
- sql += " where id = " + billItem.BillId + " and IsPay = '1'"
- svc.DBE.Query(sql)
- strIds := strings.Trim(billItem.BillId, ",")
- sqlList := " 1=1 and Id in (" + strIds + ") and IsPay = '1'"
- var paymentInfo paymentinfo.OilPaymentInfo
- utils.DBE.Find(&paymentInfo, sqlList)
- if paymentInfo.PayType == "1" { //准入
- var certentity suppliercert.OilSupplierCert
- certentity.Status = suppliercert.STOREING_STATUS
- certentity.Step = 5
- cols := []string{
- "Status",
- "Step",
- }
- svc.UpdateEntityByIdCols(strconv.Itoa(paymentInfo.SupplierCertId), &certentity, cols)
- } else if paymentInfo.PayType == "2" { //年审
- //TODO: 修改年审时间
- } else if paymentInfo.PayType == "3" { //增项
- }
- //记录对账日志
- paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
- paymentBankInfo.BillIds = billItem.BillId
- paymentBankInfo.PayMode = billItem.PayMode
- paymentBankInfo.PayDate = billItem.PayDate
- paymentBankInfo.BankSerialNum = billItem.BankSerialNum
- paymentBankInfo.ReceiveAmount = billItem.ReceiveAmount
- paymentBankInfo.BankName = billItem.BankName
- paymentBankInfo.CreateUserId = 0
- paymentBankInfo.CreateOn = time.Now()
- paymentBankInfo.ModifiedUserId = 0
- paymentBankInfo.ModifiedOn = time.Now()
- paymentBankInfo.WriteInType = "2" //对账发现未修改成功时的回调
- payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
- payBankSvc.InsertEntity(paymentBankInfo)
- }
- errinfo.Message = "修改成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- // @Title 对账
- // @Description 对账
- // @Success 200 {object} controllers.Request
- // @router /check-money-list [post]
- func (this *PaymentInfoController) CheckMoneyList() {
- svc := paymentinfo.GetPaymentService(utils.DBE)
- var checkMoneyParams bankapi.BillCheckMoneyParams
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &checkMoneyParams)
- checkRet := new(bankapi.BillCheckMoneyRet)
- paymentWhere := "1=1 and IsPay='2' "
- paymentWhere += " and PayDate >= '" + checkMoneyParams.StartTime.Format("2006-01-02 15:04:05") + "'"
- paymentWhere += " and PayDate <= '" + checkMoneyParams.EndTime.Format("2006-01-02 15:04:05") + "'"
- svc.GetEntities(&(checkRet.PaymentInfos), paymentWhere)
- bankWhere := "1=1"
- bankWhere += " and PayDate >= '" + checkMoneyParams.StartTime.Format("2006-01-02 15:04:05") + "'"
- bankWhere += " and PayDate <= '" + checkMoneyParams.EndTime.Format("2006-01-02 15:04:05") + "'"
- svc.GetEntities(&(checkRet.PaymentBankInfos), bankWhere)
- var datainfo DataInfo
- datainfo.Items = checkRet
- this.Data["json"] = &datainfo
- this.ServeJSON()
- }
- // @Title 删除单条信息
- // @Description
- // @Success 200 {object} ErrorInfo
- // @Failure 403 :id 为空
- // @router /delete/:Id [delete]
- func (this *PaymentInfoController) DeleteEntity() {
- Id := this.Ctx.Input.Param(":Id")
- var errinfo ErrorInfo
- if Id == "" {
- errinfo.Message = "操作失败!请求信息不完整"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- var emptyModel paymentinfo.OilPaymentInfo
- var model paymentinfo.OilPaymentInfo
- svc := paymentinfo.GetPaymentService(utils.DBE)
- svc.GetEntityById(Id, &model)
- // where := "Id=" + Id
- // err := svc.DeleteEntityBytbl(OilPaymentInfoName, where)
- err := svc.DeleteEntityAndBackup(Id, &model, &emptyModel, utils.ToStr(this.User.Id), this.User.Username)
- if err != nil {
- errinfo.Message = "删除失败!"
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- if err == nil {
- var cert suppliercert.OilSupplierCert
- cert.Status = suppliercert.STOREING_STATUS
- cols := []string{"Status"}
- where := "Id=" + strconv.Itoa(model.SupplierCertId)
- svc.UpdateEntityBywheretbl(OilSupplierCertName, &cert, cols, where)
- errinfo.Message = "删除成功"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- } else {
- errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- }
- // @Title 修改金额
- // @Description 修改实体
- // @Param body body paymentinfo.Paymentinfo
- // @Success 200 {object} controllers.Request
- // @router /addpayinfo [post]
- func (this *PaymentInfoController) AddPayInfo() {
- supplierId := this.GetString("SupplierId")
- payType := this.GetString("PayType")
- amount := this.GetString("Amount")
- supplierTypeCode := this.GetString("SupplierTypeCode")
- var supp supplier.OilSupplier
- svc := paymentinfo.GetPaymentService(utils.DBE)
- has := svc.GetEntityById(supplierId, &supp)
- var errinfo ErrorInfo
- if !has {
- errinfo.Message = "没有相关企业信息!"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- var cert []suppliercert.OilSupplierCert
- wherec := "SupplierId=" + supplierId + " and SupplierTypeCode='" + supplierTypeCode + "'"
- svc.GetEntities(&cert, wherec)
- if cert == nil {
- errinfo.Message = "没有相关企业信息!"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- where := "SupplierId=" + strconv.Itoa(supp.Id) + " and USCCode='" + supp.CommercialNo + "' and PayType='" + payType + "' and SupplierCertId=" + strconv.Itoa(cert[0].Id)
- var model1 paymentinfo.OilPaymentInfo
- has = svc.GetEntity(&model1, where)
- if has {
- errinfo.Message = "已经存在相关交费记录,不能重复添加!"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- var model paymentinfo.OilPaymentInfo
- model.SupplierId,_ = strconv.Atoi(supplierId)
- model.SupplierCertId = cert[0].Id
- model.SupplierName = supp.SupplierName
- model.USCCode = supp.CommercialNo
- model.PayType = payType
- model.IsPay = "0"
- model.Amount = amount
- model.CreateOn = time.Now()
- model.CreateBy = this.User.Realname
- model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
- _,err := svc.InsertEntity(&model)
- if err == nil {
- errinfo.Message = "添加成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- } else {
- errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- }
- // @Title 获取字典列表
- // @Description get user by token
- // @Success 200 {object} map[string]interface{}
- // @router /dictlist [get]
- func (this *PaymentInfoController) GetDictList() {
- dictList := make(map[string]interface{})
- svcPerm := permission.GetPermissionService(utils.DBE)
- isallowdel := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.CanDelete")
- dictList["IsAllowDel"] = isallowdel
- var datainfo DataInfo
- datainfo.Items = dictList
- this.Data["json"] = &datainfo
- this.ServeJSON()
- }
- // @Title 银行对账单
- // @Description 银行对账单
- // @Success 200 {object} controllers.Request
- // @router /receive-verify-bill-list [post]
- func (this *PaymentInfoController) ReceiveVerifyBillList() {
- var VerifyBills []paymentinfo.OilVerifyBill
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &VerifyBills)
- fmt.Println(VerifyBills)
- svc := paymentinfo.GetPaymentService(utils.DBE)
- for _,item := range VerifyBills {
- var Oilverifybill paymentinfo.OilVerifyBill
- Oilverifybill.BillIds = strings.Trim(item.BillIds, ",")
- Oilverifybill.BankSerialNum = item.BankSerialNum
- Oilverifybill.ReceiveAmount = item.ReceiveAmount
- Oilverifybill.VerifyDate = item.VerifyDate
- Oilverifybill.PayDate = item.PayDate
- Oilverifybill.CreateOn = time.Now()
- svc.InsertEntity(&Oilverifybill)
- ids := strings.Split(item.BillIds, ",")
- for _,id := range ids {
- var payinfo paymentinfo.OilPaymentInfo
- //where := "Id= " + id + " and BankSerialNum='" + item.BankSerialNum +"'" + " and IsPay='2'"
- //has := svc.GetEntity(&payinfo, where)
- cols := []string{"IsPay", "IsVerify", "VerifyDate", "BankSerialNum"}
- payinfo.IsPay = "2"
- payinfo.IsVerify = "1"
- payinfo.BankSerialNum = item.BankSerialNum
- payinfo.VerifyDate = item.PayDate
- svc.UpdateEntityByIdCols(id, &payinfo, cols)
- }
- }
- var errinfo ErrorInfo
- errinfo.Message = "对账完成!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
|