Browse Source

20230629

v2_dev
超级管理员 2 years ago
parent
commit
7fdd2ad5d3
  1. 36
      api/version1/personnelapi/controll.go
  2. 14
      api/version1/personnelapi/kingdeecont.go
  3. 173
      api/version1/personnelapi/kingdeeempty.go
  4. 2
      api/version1/personnelapi/kingdeenew.go
  5. 47
      api/version1/personnelapi/staff.go
  6. 6
      api/version1/personnelapi/type.go
  7. 1
      apirouter/personnel/people.go
  8. 61
      models/hrmodels/emp_onb_res.go
  9. 59
      models/hrmodels/kingdee_emptype.go
  10. 62
      models/hrmodels/user_emp_onb_res.go
  11. 227
      overall/overallhandle/overall_handle.go
  12. 13
      overall/overallhandle/type.go

36
api/version1/personnelapi/controll.go

@ -248,6 +248,24 @@ func changeTypeToInt(emp string) int {
return 15 return 15
case "员工初始化": case "员工初始化":
return 16 return 16
case "擅自离职":
return 17
case "即辞即走":
return 18
case "组织调整":
return 19
case "辞退":
return 20
case "跨公司借调调出":
return 21
case "跨公司借调调入":
return 22
case "培训期间离职":
return 23
case "合同到期":
return 24
case "实习结束":
return 25
default: default:
return 1 return 1
} }
@ -286,6 +304,24 @@ func changeTypeToStr(emp int) string {
return "返聘" return "返聘"
case 16: case 16:
return "员工初始化" return "员工初始化"
case 17:
return "擅自离职"
case 18:
return "即辞即走"
case 19:
return "组织调整"
case 20:
return "辞退"
case 21:
return "跨公司借调调出"
case 22:
return "跨公司借调调入"
case 23:
return "培训期间离职"
case 24:
return "合同到期"
case 25:
return "实习结束"
default: default:
return "预入职" return "预入职"
} }

14
api/version1/personnelapi/kingdeecont.go

@ -47,7 +47,15 @@ func EditWithinGroupWorkLog(manKeyNum int64, contList []insideHistoryer) {
} }
//批量写入 //批量写入
var creadContList []models.InsideWorkHistory var creadContList []models.InsideWorkHistory
zongLiang := len(contList)
for _, v := range contList { for _, v := range contList {
weiYi := false
if zongLiang == 1 && myCont.EmpType > 11 {
weiYi = true
}
//写入员工入职离职时间
EmployeeOnboardingAndResignation(manKeyNum, v.ChangeType, v.StartTime, weiYi)
WorkShop := myCont.SunMainDeparment WorkShop := myCont.SunMainDeparment
if v.Workshop != "" { if v.Workshop != "" {
var workShopCont models.AdministrativeOrganization var workShopCont models.AdministrativeOrganization
@ -120,6 +128,7 @@ func EditWithinGroupWorkLog(manKeyNum int64, contList []insideHistoryer) {
} }
} }
creadCont.StartTime = startTime //开始日期"` creadCont.StartTime = startTime //开始日期"`
state := 1 state := 1
var endTime int64 var endTime int64
if v.EndTime != "" { if v.EndTime != "" {
@ -136,8 +145,9 @@ func EditWithinGroupWorkLog(manKeyNum int64, contList []insideHistoryer) {
if achangeTypeInted > 12 && achangeTypeInted <= 14 { if achangeTypeInted > 12 && achangeTypeInted <= 14 {
endTime = time.Now().Unix() endTime = time.Now().Unix()
} }
creadCont.EndTime = endTime //结束日期"` creadCont.EndTime = endTime //结束日期"`
creadCont.Team = myCont.TeamId //(1:长白;2:甲;3:乙;4:丙;5:丁)"` creadCont.Team = myCont.TeamId //(1:长白;2:甲;3:乙;4:丙;5:丁)"`
WriteKingKeyWork(v.ChangeType, 2)
creadCont.ChangeType = changeTypeToInt(v.ChangeType) // 变动类型(1:预入职;2:雇佣入职;3:转正;4:晋升;5:降级;6:职等调整;7:调动调入;8:跨公司调动调入;9:借调;10:平调;11:兼职;12:预离职;13:离职;14:退休;15:返聘;16:员工初始化;)"` creadCont.ChangeType = changeTypeToInt(v.ChangeType) // 变动类型(1:预入职;2:雇佣入职;3:转正;4:晋升;5:降级;6:职等调整;7:调动调入;8:跨公司调动调入;9:借调;10:平调;11:兼职;12:预离职;13:离职;14:退休;15:返聘;16:员工初始化;)"`
creadCont.Time = time.Now().Unix() //创建时间"` creadCont.Time = time.Now().Unix() //创建时间"`
creadCont.State = state //状态(1:启用;2:禁用;3:删除)"` creadCont.State = state //状态(1:启用;2:禁用;3:删除)"`

173
api/version1/personnelapi/kingdeeempty.go

@ -0,0 +1,173 @@
package personnelapi
import (
"hr_server/models/hrmodels"
"hr_server/overall"
"hr_server/overall/overallhandle"
"time"
)
/*
*
@ 作者: 秦东
@ 时间: 2023-06-20 14:23:27
@ 功能: 写入金蝶人员状态关键字
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func WriteKingKeyWork(name string, class int) {
var kingdeeCont hrmodels.KingdeeEmptype
err := kingdeeCont.GetCont(map[string]interface{}{"`name`": name, "`leibie`": class}, "`id`")
if err == nil {
return
}
if kingdeeCont.Id != 0 {
return
}
kingdeeCont.Name = name
kingdeeCont.LeiBie = class
kingdeeCont.Time = time.Now().Unix()
overall.CONSTANT_DB_HR.Create(&kingdeeCont)
}
/*
*
@ 作者: 秦东
@ 时间: 2023-06-20 15:05:11
@ 功能: 写入员工入职离职时间
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func EmployeeOnboardingAndResignation(userKey int64, changetype, starttime string, weiYi bool) {
entryList := []string{"预入职", "员工初始化"} //入职关键字
zhuanZheng := []string{"转正"} //转正关键字
depart := []string{"预离职", "离职", "批准辞职", "擅自离职", "即辞即走", "辞退", "培训期间离职"} //离职关键字
contract := []string{"合同到期"} //离职关键字
retire := []string{"退休"} //退休
if starttime != "" {
var manageDate overallhandle.DateTimeTotimes
manageDate.BaisStrToTime(starttime)
where := overallhandle.MapOut()
where["`userid`"] = userKey
if overallhandle.IsInTrue[string](changetype, entryList) {
//新入职
var newEntry hrmodels.UserEmpOnbRes
err := newEntry.GetCont(where, "`entry_time`")
if err != nil {
newEntry.UserId = userKey
newEntry.EntryTime = manageDate.AllTime
if weiYi {
newEntry.LeaveDate = manageDate.AllTime
}
newEntry.Time = time.Now().Unix()
overall.CONSTANT_DB_HR.Create(&newEntry)
} else {
if manageDate.AllTime != newEntry.EntryTime {
editCont := overallhandle.MapOut()
editCont["`entry_time`"] = manageDate.AllTime
if weiYi {
editCont["`leave_date`"] = manageDate.AllTime
}
editCont["`time`"] = time.Now().Unix()
var newEditEntry hrmodels.UserEmpOnbRes
newEditEntry.EiteCont(where, editCont)
}
}
}
if overallhandle.IsInTrue[string](changetype, zhuanZheng) {
//转正
var newZhuanZheng hrmodels.UserEmpOnbRes
err := newZhuanZheng.GetCont(where, "`zhuan_zheng`")
if err != nil {
newZhuanZheng.UserId = userKey
newZhuanZheng.EntryTime = manageDate.AllTime
newZhuanZheng.Time = time.Now().Unix()
overall.CONSTANT_DB_HR.Create(&newZhuanZheng)
} else {
if manageDate.AllTime != newZhuanZheng.EntryTime {
editCont := overallhandle.MapOut()
editCont["`zhuan_zheng`"] = manageDate.AllTime
editCont["`time`"] = time.Now().Unix()
var newEditZhuanZheng hrmodels.UserEmpOnbRes
newEditZhuanZheng.EiteCont(where, editCont)
}
}
}
if overallhandle.IsInTrue[string](changetype, depart) {
//离职
var newDepart hrmodels.UserEmpOnbRes
err := newDepart.GetCont(where, "`leave_date`")
if err != nil {
newDepart.UserId = userKey
newDepart.EntryTime = manageDate.AllTime
newDepart.Time = time.Now().Unix()
overall.CONSTANT_DB_HR.Create(&newDepart)
} else {
if manageDate.AllTime != newDepart.EntryTime {
editCont := overallhandle.MapOut()
editCont["`leave_date`"] = manageDate.AllTime
editCont["`time`"] = time.Now().Unix()
var newEditDepart hrmodels.UserEmpOnbRes
newEditDepart.EiteCont(where, editCont)
}
}
}
if overallhandle.IsInTrue[string](changetype, contract) {
//合同到期
var newContract hrmodels.UserEmpOnbRes
err := newContract.GetCont(where, "`contract_time`")
if err != nil {
newContract.UserId = userKey
newContract.EntryTime = manageDate.AllTime
newContract.Time = time.Now().Unix()
overall.CONSTANT_DB_HR.Create(&newContract)
} else {
if manageDate.AllTime != newContract.EntryTime {
editCont := overallhandle.MapOut()
editCont["`contract_time`"] = manageDate.AllTime
editCont["`time`"] = time.Now().Unix()
var newEditContract hrmodels.UserEmpOnbRes
newEditContract.EiteCont(where, editCont)
}
}
}
if overallhandle.IsInTrue[string](changetype, retire) {
//退休
var newRetire hrmodels.UserEmpOnbRes
err := newRetire.GetCont(where, "`retire_time`")
if err != nil {
newRetire.UserId = userKey
newRetire.EntryTime = manageDate.AllTime
newRetire.Time = time.Now().Unix()
overall.CONSTANT_DB_HR.Create(&newRetire)
} else {
if manageDate.AllTime != newRetire.EntryTime {
editCont := overallhandle.MapOut()
editCont["`retire_time`"] = manageDate.AllTime
editCont["`time`"] = time.Now().Unix()
var newEditRetire hrmodels.UserEmpOnbRes
newEditRetire.EiteCont(where, editCont)
}
}
}
}
}

2
api/version1/personnelapi/kingdeenew.go

@ -122,6 +122,7 @@ func eidtAddManContJinDie(perArcInfo models.PersonArchives, manCont addKingdeePe
// if empTypeErr != nil { // if empTypeErr != nil {
// empType = 1 // empType = 1
// } // }
WriteKingKeyWork(manCont.EmpType, 1)
empType := EmptypeToInt(manCont.EmpType) empType := EmptypeToInt(manCont.EmpType)
// fmt.Printf("manCont.EmpType------------1-------->%v\n", empType) // fmt.Printf("manCont.EmpType------------1-------->%v\n", empType)
if empType != perArcInfo.EmpType { if empType != perArcInfo.EmpType {
@ -339,6 +340,7 @@ func newAddManContJinDie(oldSchool models.WorkMan, manCont addKingdeePersonneles
// empType = 1 // empType = 1
// } // }
// manMainCont.EmpType = empType // manMainCont.EmpType = empType
WriteKingKeyWork(manCont.EmpType, 1)
manMainCont.EmpType = EmptypeToInt(manCont.EmpType) manMainCont.EmpType = EmptypeToInt(manCont.EmpType)
manMainCont.EmpTypeName = manCont.EmpType manMainCont.EmpTypeName = manCont.EmpType

47
api/version1/personnelapi/staff.go

@ -1890,3 +1890,50 @@ func (s *StaffApi) GetPeopleDataIntegrity(c *gin.Context) {
scoreVal = overallhandle.DecimalEs(scoreVal, 2) scoreVal = overallhandle.DecimalEs(scoreVal, 2)
overallhandle.Result(0, scoreVal, c) overallhandle.Result(0, scoreVal, c)
} }
/*
*
@ 作者: 秦东
@ 时间: 2023-06-19 16:47:32
@ 功能: 修改用户头像
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) EditPeopleIcon(c *gin.Context) {
var requestData editUSerIcons
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.Id == 0 {
overallhandle.Result(1, err, c, "未知参数")
return
}
why := overallhandle.MapOut()
why["`id`"] = requestData.Id
var oldCont models.PersonArchives
err = oldCont.GetCont(why, "`id`")
if err != nil {
overallhandle.Result(107, err, c)
return
}
editCont := overallhandle.MapOut()
editCont["icon"] = requestData.IconPath
editCont["eite_time"] = time.Now().Unix()
err = oldCont.EiteCont(why, editCont)
if err != nil {
overallhandle.Result(106, err, c)
return
}
overallhandle.Result(0, err, c)
}

6
api/version1/personnelapi/type.go

@ -575,3 +575,9 @@ type SendOrgAboutPeople struct {
StartTimeStr string `json:"starttimeing"` // StartTimeStr string `json:"starttimeing"` //
EndTimeStr string `json:"endtimeing"` // EndTimeStr string `json:"endtimeing"` //
} }
// 修改头像
type editUSerIcons struct {
Id int64 `json:"id"` //
IconPath string `json:"iconpath"` //
}

1
apirouter/personnel/people.go

@ -24,6 +24,7 @@ func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) {
apiRouter.POST("editpassword", apiHandle.EditPassWord) //修改密码 apiRouter.POST("editpassword", apiHandle.EditPassWord) //修改密码
apiRouter.POST("wechat_give_uscont", apiHandle.WeChatGiveUsCont) //根据微信OpenId获取个人档案 apiRouter.POST("wechat_give_uscont", apiHandle.WeChatGiveUsCont) //根据微信OpenId获取个人档案
apiRouter.POST("edit_us_wechat_openid", apiHandle.EditUsWechatOpenId) //修改员工微信或企业微信UserId apiRouter.POST("edit_us_wechat_openid", apiHandle.EditUsWechatOpenId) //修改员工微信或企业微信UserId
apiRouter.POST("edit_people_icon", apiHandle.EditPeopleIcon) //修改员工微信或企业微信UserId
apiRouter.POST("useraboutorglist", apiHandle.UserAboutOrgList) //行政组织关系 apiRouter.POST("useraboutorglist", apiHandle.UserAboutOrgList) //行政组织关系
//双职工 //双职工

61
models/hrmodels/emp_onb_res.go

@ -0,0 +1,61 @@
package hrmodels
import (
"hr_server/overall"
"strings"
)
// 金蝶人员状态关键字
type EmpOnbRes struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
UserId int64 `json:"userid" gorm:"column:userid;type:bigint(20) unsigned;default:1;not null;comment:员工ID"`
EntryTime int64 `json:"entrytime" gorm:"column:entry_time;type:bigint(20) unsigned;default:1;not null;comment:入职时间"`
LeaveDate int64 `json:"leavedate" gorm:"column:leave_date;type:bigint(20) unsigned;default:1;not null;comment:离职日期"`
ZhuanZheng int64 `json:"zhuanzheng" gorm:"column:zhuan_zheng;type:bigint(20) unsigned;default:1;not null;comment:转正"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:1;not null;comment:时间"`
}
func (EmpOnbRes *EmpOnbRes) TableName() string {
return "emp_onb_res"
}
// 编辑内容
func (cont *EmpOnbRes) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error
return
}
// 获取内容
func (cont *EmpOnbRes) GetCont(whereMap interface{}, field ...string) (err error) {
gormDb := overall.CONSTANT_DB_HR.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}
// 根据条件获取总数
func (cont *EmpOnbRes) CountCont(whereMap interface{}) (countId int64) {
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId)
return
}
// 读取全部信息
func (cont *EmpOnbRes) ContMap(whereMap interface{}, field ...string) (countAry []EmpOnbRes, err error) {
gormDb := overall.CONSTANT_DB_HR.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
err = gormDb.Where(whereMap).Find(&countAry).Error
return
}
// 删除内容
func (cont *EmpOnbRes) DelCont(whereMap interface{}) (err error) {
err = overall.CONSTANT_DB_HR.Where(whereMap).Delete(&cont).Error
return
}

59
models/hrmodels/kingdee_emptype.go

@ -0,0 +1,59 @@
package hrmodels
import (
"hr_server/overall"
"strings"
)
// 金蝶人员状态关键字
type KingdeeEmptype struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:关键字"`
LeiBie int `json:"leibie" gorm:"column:leibie;type:int(1) unsigned;default:1;not null;comment:类别"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:1;not null;comment:时间"`
}
func (KingdeeEmptype *KingdeeEmptype) TableName() string {
return "kingdee_emptype"
}
// 编辑内容
func (cont *KingdeeEmptype) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error
return
}
// 获取内容
func (cont *KingdeeEmptype) GetCont(whereMap interface{}, field ...string) (err error) {
gormDb := overall.CONSTANT_DB_HR.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}
// 根据条件获取总数
func (cont *KingdeeEmptype) CountCont(whereMap interface{}) (countId int64) {
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId)
return
}
// 读取全部信息
func (cont *KingdeeEmptype) ContMap(whereMap interface{}, field ...string) (countAry []KingdeeEmptype, err error) {
gormDb := overall.CONSTANT_DB_HR.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
err = gormDb.Where(whereMap).Find(&countAry).Error
return
}
// 删除内容
func (cont *KingdeeEmptype) DelCont(whereMap interface{}) (err error) {
err = overall.CONSTANT_DB_HR.Where(whereMap).Delete(&cont).Error
return
}

62
models/hrmodels/user_emp_onb_res.go

@ -0,0 +1,62 @@
package hrmodels
import (
"hr_server/overall"
"strings"
)
// 金蝶人员状态关键字
type UserEmpOnbRes struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
UserId int64 `json:"userid" gorm:"column:userid;type:bigint(20) unsigned;default:0;not null;comment:员工ID"`
EntryTime int64 `json:"entrytime" gorm:"column:entry_time;type:bigint(20) unsigned;default:0;not null;comment:入职时间"`
LeaveDate int64 `json:"leavedate" gorm:"column:leave_date;type:bigint(20) unsigned;default:0;not null;comment:离职日期"`
ZhuanZheng int64 `json:"zhuanzheng" gorm:"column:zhuan_zheng;type:bigint(20) unsigned;default:0;not null;comment:转正"`
RetireTime int64 `json:"retiretime" gorm:"column:retire_time;type:bigint(20) unsigned;default:0;not null;comment:退休"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:时间"`
}
func (UserEmpOnbRes *UserEmpOnbRes) TableName() string {
return "user_emp_onb_res"
}
// 编辑内容
func (cont *UserEmpOnbRes) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error
return
}
// 获取内容
func (cont *UserEmpOnbRes) GetCont(whereMap interface{}, field ...string) (err error) {
gormDb := overall.CONSTANT_DB_HR.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}
// 根据条件获取总数
func (cont *UserEmpOnbRes) CountCont(whereMap interface{}) (countId int64) {
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId)
return
}
// 读取全部信息
func (cont *UserEmpOnbRes) ContMap(whereMap interface{}, field ...string) (countAry []UserEmpOnbRes, err error) {
gormDb := overall.CONSTANT_DB_HR.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
err = gormDb.Where(whereMap).Find(&countAry).Error
return
}
// 删除内容
func (cont *UserEmpOnbRes) DelCont(whereMap interface{}) (err error) {
err = overall.CONSTANT_DB_HR.Where(whereMap).Delete(&cont).Error
return
}

227
overall/overallhandle/overall_handle.go

@ -15,6 +15,7 @@ import (
"math/big" "math/big"
"net/http" "net/http"
"strconv" "strconv"
"strings"
"time" "time"
"github.com/mozillazg/go-pinyin" "github.com/mozillazg/go-pinyin"
@ -1057,3 +1058,229 @@ func HestacademicdegreeToInt(hir string) int {
return 0 return 0
} }
} }
// 根据字符串组合时间
/*
#dateTime 日期
*/
func (d *DateTimeTotimes) BaisStrToTime(dateTime string) {
timeStrAry := strings.Split(dateTime, "-")
switch len(timeStrAry) {
case 1:
dateTime = fmt.Sprintf("%v-01-01 12:00:00", dateTime)
case 2:
if len(timeStrAry[1]) < 2 {
dateTime = fmt.Sprintf("%v-0%v-01 12:00:00", timeStrAry[0], timeStrAry[1])
}
case 3:
monthStr := timeStrAry[1]
if len(timeStrAry[1]) < 2 {
monthStr = fmt.Sprintf("0%v", timeStrAry[1])
}
dayAry := strings.Split(timeStrAry[2], " ")
// fmt.Printf("dayAry:%v------>%v\n", dayAry, len(dayAry))
dayStr := dayAry[0]
if len(dayAry[0]) < 2 {
dayStr = fmt.Sprintf("0%v", dayAry[0])
}
if len(dayAry) > 1 {
// fmt.Printf("dayAry[1]:%v------>%v\n", dayAry[1], len(dayAry[1]))
if len(dayAry[1]) > 0 {
Hours := "00"
minutes := "00"
seconds := "00"
hisAry := strings.Split(dayAry[1], ":")
switch len(hisAry) {
case 1:
if len(hisAry[0]) < 2 {
Hours = fmt.Sprintf("0%v", hisAry[0])
} else {
Hours = hisAry[0]
}
case 2:
if len(hisAry[0]) < 2 {
Hours = fmt.Sprintf("0%v", hisAry[0])
} else {
Hours = hisAry[0]
}
if len(hisAry[1]) < 2 {
minutes = fmt.Sprintf("0%v", hisAry[1])
} else {
minutes = hisAry[1]
}
case 3:
if len(hisAry[0]) < 2 {
Hours = fmt.Sprintf("0%v", hisAry[0])
} else {
Hours = hisAry[0]
}
if len(hisAry[1]) < 2 {
minutes = fmt.Sprintf("0%v", hisAry[1])
} else {
minutes = hisAry[1]
}
if len(hisAry[2]) < 2 {
seconds = fmt.Sprintf("0%v", hisAry[2])
} else {
seconds = hisAry[2]
}
default:
}
dayStr = fmt.Sprintf("%v %v:%v:%v", dayStr, Hours, minutes, seconds)
}
}
// dayStr := timeStrAry[2]
// if len(timeStrAry[2]) < 2 {
// dayStr = fmt.Sprintf("0%v", timeStrAry[2])
// }
dateTime = fmt.Sprintf("%v-%v-%v", timeStrAry[0], monthStr, dayStr)
default:
}
fmt.Printf("dateTime:%v---1--->%v\n", dateTime, len(dateTime))
orgTime, orgTimeErr := DateToTimeStamp(fmt.Sprintf("%v-01-01 12:00:00", dateTime))
if orgTimeErr {
d.AllTime = orgTime
d.Years = strconv.FormatInt(ComputingTime(orgTime, 1), 10)
d.Quarter = strconv.FormatInt(ComputingTime(orgTime, 2), 10)
d.Months = strconv.FormatInt(ComputingTime(orgTime, 3), 10)
d.Week = strconv.FormatInt(ComputingTime(orgTime, 4), 10)
d.Days = strconv.FormatInt(ComputingTime(orgTime, 5), 10)
d.Hours = strconv.FormatInt(ComputingTime(orgTime, 7), 10)
d.Minutes = strconv.FormatInt(ComputingTime(orgTime, 8), 10)
d.Second = strconv.FormatInt(ComputingTime(orgTime, 9), 10)
} else {
orgTime, orgTimeErr = DateToTimeStamp(fmt.Sprintf("%v-01 12:00:00", dateTime))
if orgTimeErr {
d.AllTime = orgTime
d.Years = strconv.FormatInt(ComputingTime(orgTime, 1), 10)
d.Quarter = strconv.FormatInt(ComputingTime(orgTime, 2), 10)
d.Months = strconv.FormatInt(ComputingTime(orgTime, 3), 10)
d.Week = strconv.FormatInt(ComputingTime(orgTime, 4), 10)
d.Days = strconv.FormatInt(ComputingTime(orgTime, 5), 10)
d.Hours = strconv.FormatInt(ComputingTime(orgTime, 7), 10)
d.Minutes = strconv.FormatInt(ComputingTime(orgTime, 8), 10)
d.Second = strconv.FormatInt(ComputingTime(orgTime, 9), 10)
fmt.Printf("dateTime:%v---2--->%v--->%v\n", orgTime, d.AllTime, d.Quarter)
} else {
orgTime, orgTimeErr = DateToTimeStamp(fmt.Sprintf("%v 12:00:00", dateTime))
if orgTimeErr {
d.AllTime = orgTime
d.Years = strconv.FormatInt(ComputingTime(orgTime, 1), 10)
d.Quarter = strconv.FormatInt(ComputingTime(orgTime, 2), 10)
d.Months = strconv.FormatInt(ComputingTime(orgTime, 3), 10)
d.Week = strconv.FormatInt(ComputingTime(orgTime, 4), 10)
d.Days = strconv.FormatInt(ComputingTime(orgTime, 5), 10)
d.Hours = strconv.FormatInt(ComputingTime(orgTime, 7), 10)
d.Minutes = strconv.FormatInt(ComputingTime(orgTime, 8), 10)
d.Second = strconv.FormatInt(ComputingTime(orgTime, 9), 10)
} else {
orgTime, orgTimeErr = DateToTimeStamp(fmt.Sprintf("%v:00:00", dateTime))
if orgTimeErr {
d.AllTime = orgTime
d.Years = strconv.FormatInt(ComputingTime(orgTime, 1), 10)
d.Quarter = strconv.FormatInt(ComputingTime(orgTime, 2), 10)
d.Months = strconv.FormatInt(ComputingTime(orgTime, 3), 10)
d.Week = strconv.FormatInt(ComputingTime(orgTime, 4), 10)
d.Days = strconv.FormatInt(ComputingTime(orgTime, 5), 10)
d.Hours = strconv.FormatInt(ComputingTime(orgTime, 7), 10)
d.Minutes = strconv.FormatInt(ComputingTime(orgTime, 8), 10)
d.Second = strconv.FormatInt(ComputingTime(orgTime, 9), 10)
} else {
orgTime, orgTimeErr = DateToTimeStamp(fmt.Sprintf("%v:00", dateTime))
if orgTimeErr {
d.AllTime = orgTime
d.Years = strconv.FormatInt(ComputingTime(orgTime, 1), 10)
d.Quarter = strconv.FormatInt(ComputingTime(orgTime, 2), 10)
d.Months = strconv.FormatInt(ComputingTime(orgTime, 3), 10)
d.Week = strconv.FormatInt(ComputingTime(orgTime, 4), 10)
d.Days = strconv.FormatInt(ComputingTime(orgTime, 5), 10)
d.Hours = strconv.FormatInt(ComputingTime(orgTime, 7), 10)
d.Minutes = strconv.FormatInt(ComputingTime(orgTime, 8), 10)
d.Second = strconv.FormatInt(ComputingTime(orgTime, 9), 10)
} else {
orgTime, orgTimeErr = DateToTimeStamp(dateTime)
if orgTimeErr {
d.AllTime = orgTime
d.Years = strconv.FormatInt(ComputingTime(orgTime, 1), 10)
d.Quarter = strconv.FormatInt(ComputingTime(orgTime, 2), 10)
d.Months = strconv.FormatInt(ComputingTime(orgTime, 3), 10)
d.Week = strconv.FormatInt(ComputingTime(orgTime, 4), 10)
d.Days = strconv.FormatInt(ComputingTime(orgTime, 5), 10)
d.Hours = strconv.FormatInt(ComputingTime(orgTime, 7), 10)
d.Minutes = strconv.FormatInt(ComputingTime(orgTime, 8), 10)
d.Second = strconv.FormatInt(ComputingTime(orgTime, 9), 10)
}
}
}
}
}
}
}
func DateToTimeStampOld(dataStr string) (timeStamp int64) {
tmp := "2006-01-02 15:04:05"
res, _ := time.ParseInLocation(tmp, dataStr, time.Local)
timeStamp = res.Unix()
return
}
// 时间计算(年、季、月、周、日、时、分、秒)
func ComputingTime(timeStamp int64, timeType int) (timeDataInt int64) {
var timeData string = "1"
switch timeType {
case 1:
timeData = time.Unix(timeStamp, 0).Format("2006") //年
case 2:
dayMonth := time.Unix(timeStamp, 0).Format("01") //季度
datMonthFloat, datMonthFloatErr := strconv.ParseFloat(dayMonth, 10)
if datMonthFloatErr == nil {
timeData = strconv.FormatFloat(math.Ceil(datMonthFloat/3), 'f', -1, 64)
} else {
timeData = "1"
}
case 3:
timeData = time.Unix(timeStamp, 0).Format("01") //月份
case 4: //当前日期为本月第几周
monthFirstDayStr := DateToTimeStampOld(UnixTimeToDay(timeStamp, 15) + "-01 00:00:00") //获取指定月第一天时间戳
dayTime := time.Unix(monthFirstDayStr, 0)
dayOfWeek := int(dayTime.Weekday()) //获取本月第一天是周几
if dayOfWeek == 0 {
dayOfWeek = 7
}
dayNumber, dayNumberErr := strconv.ParseInt(UnixTimeToDay(timeStamp, 18), 10, 64) //获取今天是几号
if dayNumberErr != nil {
dayNumber = 1
}
daysAndWeeksDiff := dayNumber - (8 - int64(dayOfWeek))
if daysAndWeeksDiff <= 0 {
timeData = "1"
} else {
daysAndWeeksDiffFlot, daysAndWeeksDiffFloatErr := strconv.ParseFloat(strconv.FormatInt(daysAndWeeksDiff, 10), 10)
if daysAndWeeksDiffFloatErr == nil {
daysWeeksDiffVal := math.Ceil(daysAndWeeksDiffFlot/7) + 1
timeData = strconv.FormatFloat(daysWeeksDiffVal, 'f', -1, 64)
} else {
timeData = "1"
}
}
case 5:
timeData = time.Unix(timeStamp, 0).Format("02") //天
case 7:
timeData = time.Unix(timeStamp, 0).Format("15") //时
case 8:
timeData = time.Unix(timeStamp, 0).Format("04") //分
case 9:
timeData = time.Unix(timeStamp, 0).Format("05") //秒
default:
timeData = "0"
}
timeDataInt, timeDataIntErr := strconv.ParseInt(timeData, 10, 64)
if timeDataIntErr != nil {
timeDataInt = 0
return
}
return
}

13
overall/overallhandle/type.go

@ -87,3 +87,16 @@ type EditState struct {
type GetParentAllOrg struct { type GetParentAllOrg struct {
OrgList []models.AdministrativeOrganization `json:"org_list` //行政组织列表 OrgList []models.AdministrativeOrganization `json:"org_list` //行政组织列表
} }
// 时间转换
type DateTimeTotimes struct {
Years string `json:"years"`
Quarter string `json:"quarter"`
Months string `json:"months"`
Week string `json:"week"`
Days string `json:"days"`
Hours string `json:"hours"`
Minutes string `json:"minutes"`
Second string `json:"second"`
AllTime int64 `json:"alltime"`
}

Loading…
Cancel
Save