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() }