| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046 |
- package oilsupplier
- import (
- "dashoo.cn/backend/api/business/auditsetting"
- "dashoo.cn/backend/api/business/invoiceinfo"
- "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
- "dashoo.cn/backend/api/business/oilsupplier/infochange"
- "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/business3/parameter"
- "dashoo.cn/business3/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/business3/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")
- IsInvoice := this.GetString("IsInvoice")
- if IsPay != "" {
- if IsPay == "0" {
- where = where + " and (p.IsPay = '" + IsPay + "' or p.IsPay = '1') "
- } else {
- where = where + " and p.IsPay = '" + IsPay + "'"
- }
- }
- if IsInvoice != "" {
- where = where + " and c.IsInvoice = '" + IsInvoice + "'"
- }
- 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-copy [post]
- func (this *PaymentInfoController) ReceiveMoneyBillListCopy() {
- 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)
- supplierId := 0
- srcids := ""
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- for _, payItem := range paymentInfos {
- supplierId = payItem.SupplierId
- srcids = srcids + "," + strconv.Itoa(payItem.Id)
- 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)
- //TODO: 改成交费步骤完成,到下一步
- //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
- certentity.IsPay = 1
- cols := []string{
- "Status",
- "Step",
- "IsPay",
- }
- 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)
- }
- }
- // 待开发票
- var suppentity supplier.OilSupplier
- where := "Id=" + strconv.Itoa(supplierId)
- svc.GetEntity(&suppentity, where)
- var ivinfo invoiceinfo.OilInvoiceInfo
- ivinfo.SrcIds = strings.Trim(srcids, ",")
- ivinfo.Amount = billParams.ReceiveAmount
- ivinfo.BankSerialNum = billParams.BankSerialNum
- ivinfo.IsInvoice = "0"
- ivinfo.SupplierId = supplierId
- ivinfo.SupplierName = suppentity.SupplierName
- ivinfo.CommercialNo = suppentity.CommercialNo
- ivinfo.Address = suppentity.Address
- ivinfo.BankAccount = suppentity.BankAccount
- ivinfo.DepositBank = suppentity.DepositBank
- ivinfo.Email = suppentity.EMail
- ivinfo.CreateOn = time.Now()
- svc.InsertEntity(&ivinfo)
- usvc := userRole.GetUserService(utils.DBE)
- paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
- financeRoleId := paramSvc.GetBaseparameterMessage("", "paramset", "FinanceRoleId")
- ids := usvc.GetUserIdsByRoleId(financeRoleId)
- tempstr := strings.Join(ids, ",")
- uids := strings.Replace(tempstr, "uid_", "", -1)
- uids = strings.Trim(uids, ",")
- businessKey := strconv.Itoa(ivinfo.Id)
- result := "1"
- processInstanceId := svcActiviti.StartProcess2(workflow.OIL_SUPPLIER_VERIFY, businessKey, uids, result, "04", suppentity.SupplierName)
- ivinfo.WorkflowId = processInstanceId
- cols := []string{"WorkflowId"}
- svc.UpdateEntityByIdCols(ivinfo.Id, &ivinfo, cols)
- //记录对账日志
- 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-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 += "PayDate='" + t.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)
- supplierId := 0
- srcIds := ""
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- for _, payItem := range paymentInfos {
- supplierId = payItem.SupplierId
- srcIds = srcIds + "," + strconv.Itoa(payItem.Id)
- if payItem.PayType == "1" { //准入申请
- //取出准入表信息
- certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
- var supplierCertEntity suppliercert.OilSupplierCert
- certSrv.GetEntityById(payItem.SrcId, &supplierCertEntity)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY
- ActiComplete.BusinessKey = supplierCertEntity.BusinessKey
- ActiComplete.UserId = strconv.Itoa(supplierCertEntity.CreateUserId)
- ActiComplete.Result = "1"
- ActiComplete.Remarks = "交费成功。"
- ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
- fmt.Println("进入协程!" + payItem.PayType)
- go func() {
- res := svcActiviti.TaskComplete(ActiComplete)
- if res != "true" {
- fmt.Println("工作流异常,请联系管理员!" + res)
- //panic("工作流异常,请联系管理员!" + res)
- }
- fmt.Println("协程!" + payItem.PayType)
- }()
- } else if payItem.PayType == "2" { //年审
- //取出年审表信息
- annualSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
- var annualEntity annualaudit.OilAnnualAudit
- annualSrv.GetEntityById(payItem.SrcId, &annualEntity)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
- ActiComplete.BusinessKey = annualEntity.BusinessKey
- ActiComplete.UserId = strconv.Itoa(annualEntity.CreateUserId)
- ActiComplete.Result = "1"
- ActiComplete.Remarks = "交费成功。"
- ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
- fmt.Println("进入协程!" + payItem.PayType)
- go func() {
- res := svcActiviti.TaskComplete(ActiComplete)
- if res != "true" {
- fmt.Println("工作流异常,请联系管理员!" + res)
- //panic("工作流异常,请联系管理员!" + res)
- }
- fmt.Println("协程!" + payItem.PayType)
- }()
- } else if payItem.PayType == "3" { //增项
- //取出增项表信息
- appendSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- var appendEntity suppliercertappend.OilSupplierCertAppend
- appendSrv.GetEntityById(payItem.SrcId, &appendEntity)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_ENUSER_APPEND_APPLY
- ActiComplete.BusinessKey = appendEntity.BusinessKey
- ActiComplete.UserId = strconv.Itoa(appendEntity.CreateUserId)
- ActiComplete.Result = "1"
- ActiComplete.Remarks = "交费成功。"
- ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
- fmt.Println("进入协程!" + payItem.PayType)
- go func() {
- res := svcActiviti.TaskComplete(ActiComplete)
- if res != "true" {
- fmt.Println("工作流异常,请联系管理员!" + res)
- //panic("工作流异常,请联系管理员!" + res)
- }
- fmt.Println("协程!" + payItem.PayType)
- }()
- } else if payItem.PayType == "7" { // 信息变更
- //取出信息变更表信息
- infoSrv := infochange.GetInfoChangeService(utils.DBE)
- var infoChangeEntity infochange.OilInfoChange
- infoSrv.GetEntityById(payItem.SrcId, &infoChangeEntity)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE
- ActiComplete.BusinessKey = infoChangeEntity.BusinessKey
- ActiComplete.UserId = strconv.Itoa(infoChangeEntity.CreateUserId)
- ActiComplete.Result = "1"
- ActiComplete.Remarks = "交费成功。"
- ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
- fmt.Println("进入协程!" + payItem.PayType)
- go func() {
- res := svcActiviti.TaskComplete(ActiComplete)
- if res != "true" {
- fmt.Println("工作流异常,请联系管理员!" + res)
- //panic("工作流异常,请联系管理员!" + res)
- }
- fmt.Println("协程!" + payItem.PayType)
- }()
- }
- }
- // 待开发票记录
- var suppentity supplier.OilSupplier
- where := "Id=" + strconv.Itoa(supplierId)
- svc.GetEntity(&suppentity, where)
- var invoiceInfo invoiceinfo.OilInvoiceInfo
- invoiceInfo.SrcIds = strings.Trim(srcIds, ",")
- invoiceInfo.Amount = billParams.ReceiveAmount
- invoiceInfo.BankSerialNum = billParams.BankSerialNum
- invoiceInfo.IsInvoice = "0"
- invoiceInfo.SupplierId = supplierId
- invoiceInfo.SupplierName = suppentity.SupplierName
- invoiceInfo.CommercialNo = suppentity.CommercialNo
- invoiceInfo.Address = suppentity.Address
- invoiceInfo.BankAccount = suppentity.BankAccount
- invoiceInfo.DepositBank = suppentity.DepositBank
- invoiceInfo.Email = suppentity.EMail
- invoiceInfo.CreateOn = time.Now()
- svc.InsertEntity(&invoiceInfo)
- userSvc := userRole.GetUserService(utils.DBE)
- paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
- financeRoleId := paramSvc.GetBaseparameterMessage("", "paramset", "FinanceRoleId")
- ids := userSvc.GetUserIdsByRoleId(financeRoleId)
- tempStr := strings.Join(ids, ",")
- uids := strings.Replace(tempStr, "uid_", "", -1)
- uids = strings.Trim(uids, ",")
- businessKey := strconv.Itoa(invoiceInfo.Id)
- result := "1"
- processInstanceId := svcActiviti.StartProcess2(workflow.OIL_SUPPLIER_VERIFY, businessKey, uids, result, "04", suppentity.SupplierName)
- invoiceInfo.WorkflowId = processInstanceId
- cols := []string{"WorkflowId"}
- svc.UpdateEntityByIdCols(invoiceInfo.Id, &invoiceInfo, cols)
- //记录对账日志
- 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.VerifyDate
- svc.UpdateEntityByIdCols(id, &payinfo, cols)
- }
- }
- var errinfo ErrorInfo
- errinfo.Message = "对账完成!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- // @Title 获取权限
- // @Description
- // @Success 200 {object} controllers.Request
- // @router /ispermission [get]
- func (this *PaymentInfoController) IsPermission() {
- dictList := make(map[string]interface{})
- svcPerm := permission.GetPermissionService(utils.DBE)
- isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.CanEdit")
- isAdd := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.PaymentInfo.IsAdd")
- dictList["IsEdit"] = isauth
- dictList["IsAdd"] = isAdd
- var errinfo ErrorDataInfo
- errinfo.Code = 0
- errinfo.Item = dictList
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
|