enterprise/common/model/staff_salary.go

69 lines
1.7 KiB
Go
Raw Normal View History

2023-09-01 20:01:30 +08:00
package model
2024-11-04 23:00:55 +08:00
import (
"encoding/json"
butil "enterprise/base/util"
2025-03-04 23:14:09 +08:00
"github.com/smbrave/goutil"
2024-11-04 23:00:55 +08:00
"github.com/spf13/cast"
"strings"
)
2024-04-02 13:54:39 +08:00
2023-09-01 20:01:30 +08:00
type StaffSalary struct {
2025-03-04 23:14:09 +08:00
Id int64
CorpId int64
UserId int64
2025-03-06 17:45:28 +08:00
Username string
2025-03-04 23:14:09 +08:00
Month string
Salary float64
AttendSalary float64
TargetSalary float64
AwardSalary float64
OtherSalary float64
ShouldDay int
AttendDay float64
HolidayDay float64
SocialDeduct float64
HouseDeduct float64
PersonalDeduct float64
OtherDeduct float64
CreateTime int64
UpdateTime int64
Extra string
Comment string
2023-09-01 20:01:30 +08:00
}
2024-04-02 13:54:39 +08:00
2025-03-04 23:14:09 +08:00
func (s *StaffSalary) GetShouldSalary() float64 {
return butil.FloatCut(s.AttendSalary + s.TargetSalary + s.AwardSalary + s.OtherSalary)
}
2024-04-02 13:54:39 +08:00
func (s *StaffSalary) GetRealSalary() float64 {
2025-03-04 23:14:09 +08:00
return butil.FloatCut(s.AttendSalary + s.TargetSalary + s.AwardSalary + s.OtherSalary -
s.SocialDeduct - s.HouseDeduct - s.PersonalDeduct - s.OtherDeduct)
2024-11-04 23:00:55 +08:00
}
2025-03-04 23:14:09 +08:00
func (s *StaffSalary) SetExtra(key string, value interface{}) {
var extra map[string]interface{}
json.Unmarshal([]byte(s.Extra), &extra)
extra[key] = value
s.Extra = goutil.EncodeJSON(extra)
2024-11-04 23:00:55 +08:00
}
type StaffSalarySort []*StaffSalary
func (s StaffSalarySort) Len() int {
return len(s)
}
func (s StaffSalarySort) Less(i, j int) bool {
var iExtra map[string]string
var jExtra map[string]string
2025-03-04 23:14:09 +08:00
2024-11-04 23:00:55 +08:00
json.Unmarshal([]byte(s[i].Extra), &iExtra)
json.Unmarshal([]byte(s[j].Extra), &jExtra)
return cast.ToInt64(strings.ReplaceAll(iExtra["entryDate"], "-", "")) < cast.ToInt64(strings.ReplaceAll(jExtra["entryDate"], "-", ""))
}
func (s StaffSalarySort) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
2024-04-02 13:54:39 +08:00
}