Преглед изворни кода

feature(计费): 已出账单结算接口实现

likai пре 4 година
родитељ
комит
ec84fa779b

+ 9 - 9
dao/account/internal/settle_account_bill.go

@@ -46,9 +46,9 @@ type settleAccountBillColumns struct {
 	MainUser                string // 主用户
 	AccountId               string // 经费账号Id
 	PaymentDueDate          string // 付款截止日期
-	SettlementDateUserId    string // 结算人Id
-	SettlementDateUser      string // 结算人
-	SettlementDate          string // 结算时间
+	SettleUserId            string // 结算人Id
+	SettleUser              string // 结算人
+	SettleDate              string // 结算时间
 	DeductMoneyUserId       string // 扣款人Id
 	DeductMoneyUser         string // 扣款人
 	DeductMoneyDate         string // 扣款时间
@@ -85,9 +85,9 @@ var (
 			MainUser:               "MainUser",
 			AccountId:              "AccountId",
 			PaymentDueDate:         "PaymentDueDate",
-			SettlementDateUserId:   "SettlementDateUserId",
-			SettlementDateUser:     "SettlementDateUser",
-			SettlementDate:         "SettlementDate",
+			SettleUserId:           "SettleUserId",
+			SettleUser:             "SettleUser",
+			SettleDate:             "SettleDate",
 			DeductMoneyUserId:      "DeductMoneyUserId",
 			DeductMoneyUser:        "DeductMoneyUser",
 			DeductMoneyDate:        "DeductMoneyDate",
@@ -126,9 +126,9 @@ func NewSettleAccountBillDao(tenant string) SettleAccountBillDao {
 			MainUser:               "MainUser",
 			AccountId:              "AccountId",
 			PaymentDueDate:         "PaymentDueDate",
-			SettlementDateUserId:   "SettlementDateUserId",
-			SettlementDateUser:     "SettlementDateUser",
-			SettlementDate:         "SettlementDate",
+			SettleUserId:           "SettleUserId",
+			SettleUser:             "SettleUser",
+			SettleDate:             "SettleDate",
 			DeductMoneyUserId:      "DeductMoneyUserId",
 			DeductMoneyUser:        "DeductMoneyUser",
 			DeductMoneyDate:        "DeductMoneyDate",

+ 24 - 0
handler/settle_account_bill.go

@@ -7,6 +7,7 @@ import (
 	"dashoo.cn/micro_libary/myerrors"
 	"github.com/gogf/gf/frame/g"
 	"lims_adapter/model"
+	accountModel "lims_adapter/model/account"
 	service "lims_adapter/service/settle_account_bill"
 )
 
@@ -34,4 +35,27 @@ func (a *SettleAccountBillController) SettleAccountBillList(ctx context.Context,
 	rsp.Msg = msg
 	rsp.Data = g.Map{"total": total, "list": list}
 	return nil
+}
+
+// 结算明细(未出账单)结算
+func (a *SettleAccountMainController) SettleAccountBill(ctx context.Context, req *accountModel.AccountBillSettleReq, rsp *comm_def.CommonMsg) error {
+	tenant, err := micro_srv.GetTenant(ctx)
+	if err != nil {
+		return err
+	}
+	user, err := micro_srv.GetUserInfo(ctx)
+	if err != nil {
+		return err
+	}
+	g.Log().Info("Received SettleAccountBillController.SettleAccountBill request @ " + tenant)
+
+	var errors = service.NewService(tenant).Settle(*req, user)
+	_, err, code, msg := myerrors.CheckError(errors)
+	if err != nil {
+		return err
+	}
+
+	rsp.Code = code
+	rsp.Msg = msg
+	return nil
 }

+ 3 - 3
model/account/internal/settle_account_bill.go

@@ -30,9 +30,9 @@ type SettleAccountBill struct {
 	MainUser               string      `orm:"MainUser"               json:"main_user"`                // 主用户
 	AccountId              int         `orm:"AccountId"              json:"account_id"`               // 经费账号Id
 	PaymentDueDate         *gtime.Time `orm:"PaymentDueDate"         json:"payment_due_date"`         // 付款截止日期
-	SettlementDateUserId   int         `orm:"SettlementDateUserId"   json:"settlement_date_user_id"`  // 结算人Id
-	SettlementDateUser     int         `orm:"SettlementDateUser"     json:"settlement_date_user"`     // 结算人
-	SettlementDate         *gtime.Time `orm:"SettlementDate"         json:"settlement_date"`          // 结算时间
+	SettleUserId           int         `orm:"SettleUserId"           json:"settle_user_id"`           // 结算人Id
+	SettleUser             int         `orm:"SettleUser"             json:"settle_user"`              // 结算人
+	SettleDate             *gtime.Time `orm:"SettleDate"             json:"settle_date"`              // 结算时间
 	DeductMoneyUserId      int         `orm:"DeductMoneyUserId"      json:"deduct_money_user_id"`     // 扣款人Id
 	DeductMoneyUser        int         `orm:"DeductMoneyUser"        json:"deduct_money_user"`        // 扣款人
 	DeductMoneyDate        *gtime.Time `orm:"DeductMoneyDate"        json:"deduct_money_date"`        // 扣款时间

+ 6 - 0
model/account/settle_account_bill.go

@@ -16,4 +16,10 @@ type SettleAccountBill internal.SettleAccountBill
 type SettleAccountBillReq struct {
 	MainUserId  int `json:"mainUserId"`
 	Status      string `json:"status"`
+}
+
+type AccountBillSettleReq struct {
+	BillId  int `json:"billId"`
+	AccountId  int `json:"accountId"`
+	Amount  float64 `json:"amount"`
 }

+ 30 - 0
service/settle_account_bill/settle_account_bill.go

@@ -1,7 +1,10 @@
 package settle_account_bill
 
 import (
+	"dashoo.cn/micro_libary/request"
+	"errors"
 	"fmt"
+	"github.com/gogf/gf/os/gtime"
 	"github.com/gogf/gf/util/gconv"
 	"lims_adapter/dao/account"
 	"lims_adapter/model"
@@ -62,3 +65,30 @@ func (s Service)  List(req model.ListReq) ([]accountModel.SettleAccountBill, int
 
 	return list, total, nil
 }
+
+// 结算
+func (s Service) Settle(req accountModel.AccountBillSettleReq, user request.UserInfo) error {
+	if req.BillId == 0 || req.Amount == 0 {
+		return errors.New("参数缺失")
+	}
+
+	tx, err := s.Dao.DB.Begin()
+	if err != nil {
+		return err
+	}
+
+
+	_, err = tx.Update("settle_account_bill", fmt.Sprintf("Status='2',SettleUserId='%v',SettleUser='%v',SettleDate='%v'", user.Id, user.RealName, gtime.Now()), fmt.Sprintf("Id='%v'", req.BillId))
+	if err != nil {
+		tx.Rollback()
+		return err
+	}
+
+	_, err = tx.Update("base_account", fmt.Sprintf("Surplus=Surplus-%v,Available=Available-%v", req.Amount, req.Amount), fmt.Sprintf("Id='%v'", req.Amount))
+	if err != nil {
+		tx.Rollback()
+		return err
+	}
+
+	return tx.Commit()
+}

+ 1 - 0
service/settle_account_main/settle_account_main.go

@@ -78,6 +78,7 @@ func (s Service) List(req model.ListReq) ([]accountModel.SettleAccountMain, int,
 	return list, total, nil
 }
 
+// 确认
 func (s Service) Confirm(req accountModel.AccountMainConfirmReq, user request.UserInfo) error {
 	if req.MainId == 0 {
 		return errors.New("参数缺失")