Browse Source

feature(结算): 未出账单结算状态逻辑实现

likai 4 years ago
parent
commit
3704fd4f40

+ 46 - 15
dao/account/internal/settle_account_main.go

@@ -59,6 +59,10 @@ type settleAccountMainColumns struct {
 	UpdateUserId       string // 更新者ID
 	UpdateBy           string // 更新者
 	UpdateOn           string // 更新时间
+	VerificationUserId      string // 确认人Id
+	VerificationUser        string // 确认人
+	VerificationDate        string // 确认时间
+	AccountStatus           string // 结算状态 0未结算 1已结算
 }
 
 var (
@@ -102,6 +106,10 @@ var (
 			UpdateUserId:      "UpdateUserId",
 			UpdateBy:          "UpdateBy",
 			UpdateOn:          "UpdateOn",
+			VerificationUserId:     "VerificationUserId",
+			VerificationUser:       "VerificationUser",
+			VerificationDate:       "VerificationDate",
+			AccountStatus:          "AccountStatus",
 		},
 	}
 )
@@ -113,21 +121,44 @@ func NewSettleAccountMainDao(tenant string) SettleAccountMainDao {
 		DB:    g.DB(tenant),
 		Table: "settle_account_main",
 		Columns: settleAccountMainColumns{
-			Id:            "Id",
-			BillId:        "BillId",
-			AppointId:     "AppointId",
-			AppointUserId: "AppointUserId",
-			AppointUser:   "AppointUser",
-			MainUserId:    "MainUserId",
-			MainUser:      "MainUser",
-			FeeType:       "FeeType",
-			SettleStatus:  "SettleStatus",
-			TotalPrice:    "TotalPrice",
-			SettleTime:    "SettleTime",
-			CreateUserId:  "CreateUserId",
-			CreateBy:      "CreateBy",
-			CreateOn:      "CreateOn",
-			DeletedAt:     "DeletedAt",
+			Id:                "Id",
+			BillId:            "BillId",
+			AppointId:         "AppointId",
+			AppointUserId:     "AppointUserId",
+			AppointUser:       "AppointUser",
+			MainUserId:        "MainUserId",
+			MainUser:          "MainUser",
+			FeeType:           "FeeType",
+			SettleStatus:      "SettleStatus",
+			TotalPrice:        "TotalPrice",
+			SettleTime:        "SettleTime",
+			CreateUserId:      "CreateUserId",
+			CreateBy:          "CreateBy",
+			CreateOn:          "CreateOn",
+			DeletedAt:         "DeletedAt",
+			AttachUserId:      "AttachUserId",
+			AttachUser:        "AttachUser",
+			Status:            "Status",
+			AppointStartDate:  "AppointStartDate",
+			AppointEndDate:    "AppointEndDate",
+			ActualStartDate:   "ActualStartDate",
+			ActualEndDate:     "ActualEndDate",
+			ActualMachineHour: "ActualMachineHour",
+			InstrumentId:      "InstrumentId",
+			InstrumentCode:    "InstrumentCode",
+			InstrumentName:    "InstrumentName",
+			SettleUserId:      "SettleUserId",
+			SettleUser:        "SettleUser",
+			SettleDate:        "SettleDate",
+			FeeTime:           "FeeTime",
+			Remark:            "Remark",
+			UpdateUserId:      "UpdateUserId",
+			UpdateBy:          "UpdateBy",
+			UpdateOn:          "UpdateOn",
+			VerificationUserId:     "VerificationUserId",
+			VerificationUser:       "VerificationUser",
+			VerificationDate:       "VerificationDate",
+			AccountStatus:          "AccountStatus",
 		},
 	}
 	return dao

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

@@ -19,9 +19,9 @@ type SettleAccountBill struct {
 	Status                 string      `orm:"Status"                 json:"status"`                   // 账单状态 0未确认 1已确认 2已结算 3已扣款
 	ActualVerificationDate *gtime.Time `orm:"ActualVerificationDate" json:"actual_verification_date"` // 实际核销时间
 	ActualVerificationUser int         `orm:"ActualVerificationUser" json:"actual_verification_user"` // 实际核销人
-	VerificationUserId     int         `orm:"VerificationUserId"     json:"verification_user_id"`     // 核销人Id
-	VerificationUser       string         `orm:"VerificationUser"       json:"verification_user"`        // 核销
-	VerificationDate       *gtime.Time `orm:"VerificationDate"       json:"verification_date"`        // 完成核销时间
+	VerificationUserId     int         `orm:"VerificationUserId"     json:"verification_user_id"`     // 账单确认人Id
+	VerificationUser       string      `orm:"VerificationUser"       json:"verification_user"`        // 账单确认
+	VerificationDate       *gtime.Time `orm:"VerificationDate"       json:"verification_date"`        // 账单确认时间
 	CreateUserId           int         `orm:"CreateUserId"           json:"create_user_id"`           //
 	CreateBy               string      `orm:"CreateBy"               json:"create_by"`                //
 	CreateOn               *gtime.Time `orm:"CreateOn"               json:"create_on"`                //
@@ -31,10 +31,10 @@ type SettleAccountBill struct {
 	AccountId              int         `orm:"AccountId"              json:"account_id"`               // 经费账号Id
 	PaymentDueDate         *gtime.Time `orm:"PaymentDueDate"         json:"payment_due_date"`         // 付款截止日期
 	SettleUserId           int         `orm:"SettleUserId"           json:"settle_user_id"`           // 结算人Id
-	SettleUser             string         `orm:"SettleUser"             json:"settle_user"`              // 结算人
+	SettleUser             string      `orm:"SettleUser"             json:"settle_user"`              // 结算人
 	SettleDate             *gtime.Time `orm:"SettleDate"             json:"settle_date"`              // 结算时间
 	DeductMoneyUserId      int         `orm:"DeductMoneyUserId"      json:"deduct_money_user_id"`     // 扣款人Id
-	DeductMoneyUser        string         `orm:"DeductMoneyUser"        json:"deduct_money_user"`        // 扣款人
+	DeductMoneyUser        string      `orm:"DeductMoneyUser"        json:"deduct_money_user"`        // 扣款人
 	DeductMoneyDate        *gtime.Time `orm:"DeductMoneyDate"        json:"deduct_money_date"`        // 扣款时间
 	Remark                 string      `orm:"Remark"                 json:"remark"`                   // 备注
 	UpdateUserId           int         `orm:"UpdateUserId"           json:"update_user_id"`           // 更新者ID

+ 7 - 3
model/account/internal/settle_account_main.go

@@ -36,12 +36,16 @@ type SettleAccountMain struct {
 	InstrumentId      int         `orm:"InstrumentId"      json:"instrument_id"`       // 仪器Id
 	InstrumentCode    string      `orm:"InstrumentCode"    json:"instrument_code"`     // 仪器编号
 	InstrumentName    string      `orm:"InstrumentName"    json:"instrument_name"`     // 仪器名称
-	SettleUserId      int         `orm:"SettleUserId"      json:"settle_user_id"`      // 确认人Id
-	SettleUser        string         `orm:"SettleUser"        json:"settle_user"`         // 确认
-	SettleDate        *gtime.Time `orm:"SettleDate"        json:"settle_date"`         // 确认时间
+	SettleUserId      int         `orm:"SettleUserId"      json:"settle_user_id"`      // 结算人Id
+	SettleUser        string      `orm:"SettleUser"        json:"settle_user"`         // 结算
+	SettleDate        *gtime.Time `orm:"SettleDate"        json:"settle_date"`         // 结算时间
 	FeeTime           int         `orm:"FeeTime"           json:"fee_time"`            // 计费时间
 	Remark            string      `orm:"Remark"            json:"remark"`              // 备注
 	UpdateUserId      int         `orm:"UpdateUserId"      json:"update_user_id"`      // 更新者ID
 	UpdateBy          string      `orm:"UpdateBy"          json:"update_by"`           // 更新者
 	UpdateOn          *gtime.Time `orm:"UpdateOn"          json:"update_on"`           // 更新时间
+	VerificationUserId     int         `orm:"VerificationUserId"     json:"verification_user_id"`     // 账单确认人Id
+	VerificationUser       string      `orm:"VerificationUser"       json:"verification_user"`        // 账单确认人
+	VerificationDate       *gtime.Time `orm:"VerificationDate"       json:"verification_date"`        // 账单确认时间
+	AccountStatus      string      `orm:"AccountStatus"      json:"account_status"`       // 结算状态 0未结算 1已结算
 }

+ 6 - 0
service/settle_account_bill/settle_account_bill.go

@@ -101,6 +101,12 @@ func (s Service) Settle(req accountModel.AccountBillSettleReq, user request.User
 		return err
 	}
 
+	_, err = tx.Update("settle_account_main", fmt.Sprintf("AccountStatus='1',SettleUserId='%v',SettleUser='%v',SettleDate='%v'", user.Id, user.RealName, gtime.Now()), fmt.Sprintf("BillId='%v'", req.BillId))
+	if err != nil {
+		tx.Rollback()
+		return err
+	}
+
 	_, err = tx.Update("base_account", fmt.Sprintf("Surplus=Surplus-%v", req.Amount), fmt.Sprintf("Id='%v'", req.Amount))
 	if err != nil {
 		tx.Rollback()

+ 4 - 1
service/settle_account_main/settle_account_main.go

@@ -125,6 +125,9 @@ func (s Service) Add(req accountModel.AccountMainAddReq, user request.UserInfo)
 	span := req.Main.ActualEndDate.Sub(req.Main.ActualStartDate)
 	req.Main.FeeTime = int(math.Ceil(span.Minutes()))
 	req.Main.ActualMachineHour = req.Main.FeeTime
+	req.Main.Status = "0"
+	req.Main.SettleStatus = "0"
+	req.Main.AccountStatus = "0"
 
 	// 获取账户
 	result1, err := s.Dao.DB.Model("base_account").Where(fmt.Sprintf("MainUserId='%v'", req.Main.MainUserId)).Order("Advance ASC").FindOne()
@@ -194,7 +197,7 @@ func (s Service) Confirm(req accountModel.AccountMainConfirmReq, user request.Us
 		return errors.New("参数缺失")
 	}
 
-	_, err := s.Dao.M.Update(fmt.Sprintf("SettleStatus='1',SettleUserId='%v',SettleUser='%v',SettleDate='%v'", user.Id, user.RealName, gtime.Now()), fmt.Sprintf("Id='%v'", req.MainId))
+	_, err := s.Dao.M.Update(fmt.Sprintf("SettleStatus='1',VerificationUserId='%v',VerificationUser='%v',VerificationDate='%v'", user.Id, user.RealName, gtime.Now()), fmt.Sprintf("Id='%v'", req.MainId))
 	return err
 }