approve
This commit is contained in:
parent
c8634d17f9
commit
74c4076714
|
@ -1,5 +1,25 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/smbrave/goutil"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
"gitlab.batiao8.com/open/gosdk/qyweixin"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (ac *ApprovalCheckin) From(d *qyweixin.ApproveDetail) {
|
||||||
|
value := strings.SplitN(d.GetValue("补卡"), ",", 3)
|
||||||
|
ac.SpNo = d.SpNo
|
||||||
|
ac.Username = d.GetUserid()
|
||||||
|
ac.ApplyTime = goutil.TimeToDateTime(d.ApplyTime)
|
||||||
|
ac.CheckinRemark = d.GetValue("补卡事由")
|
||||||
|
ac.CheckinDate = goutil.TimeToDate(cast.ToInt64(value[0]))
|
||||||
|
ac.Month = time.Unix(cast.ToInt64(value[0]), 0).Format("200601")
|
||||||
|
ac.CheckinTime = goutil.TimeToDateTime(cast.ToInt64(value[1]))
|
||||||
|
ac.CheckinType = value[2]
|
||||||
|
}
|
||||||
|
|
||||||
type ApprovalCheckin struct {
|
type ApprovalCheckin struct {
|
||||||
Id int64
|
Id int64
|
||||||
Username string
|
Username string
|
||||||
|
|
|
@ -1,5 +1,12 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/smbrave/goutil"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
"gitlab.batiao8.com/open/gosdk/qyweixin"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ApprovalRefundStatusCreated = 1
|
ApprovalRefundStatusCreated = 1
|
||||||
ApprovalRefundStatusPayed = 2
|
ApprovalRefundStatusPayed = 2
|
||||||
|
@ -26,3 +33,16 @@ type ApprovalRefund struct {
|
||||||
CreateTime int64
|
CreateTime int64
|
||||||
UpdateTime int64
|
UpdateTime int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (refund *ApprovalRefund) From(d *qyweixin.ApproveDetail) {
|
||||||
|
refund.SpNo = d.SpNo
|
||||||
|
refund.Username = d.GetUserid()
|
||||||
|
refund.ApplyTime = goutil.TimeToDateTime(d.ApplyTime)
|
||||||
|
refund.Status = ApprovalRefundStatusCreated
|
||||||
|
refund.RefundType = d.GetValue("报销类型")
|
||||||
|
refundTime := cast.ToInt64(d.GetValue("发生时间"))
|
||||||
|
refund.Month = time.Unix(refundTime, 0).Format("200601")
|
||||||
|
refund.RefundDate = goutil.TimeToDateTime(refundTime)
|
||||||
|
refund.RefundAmount = cast.ToFloat64(d.GetValue("报销费用"))
|
||||||
|
refund.RefundRemark = d.GetValue("报销说明")
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/smbrave/goutil"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
"gitlab.batiao8.com/open/gosdk/qyweixin"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
var ()
|
var ()
|
||||||
|
|
||||||
type ApprovalVacation struct {
|
type ApprovalVacation struct {
|
||||||
|
@ -17,3 +25,19 @@ type ApprovalVacation struct {
|
||||||
CreateTime int64
|
CreateTime int64
|
||||||
UpdateTime int64
|
UpdateTime int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (vacation *ApprovalVacation) From(d *qyweixin.ApproveDetail) {
|
||||||
|
vacation.SpNo = d.SpNo
|
||||||
|
vacation.Username = d.GetUserid()
|
||||||
|
vacation.ApplyTime = goutil.TimeToDateTime(d.ApplyTime)
|
||||||
|
|
||||||
|
fields := strings.SplitN(d.GetValue("请假类型"), ",", 4)
|
||||||
|
dTime := cast.ToInt64(fields[1])
|
||||||
|
vacation.VacationType = fields[0]
|
||||||
|
vacation.VacationDate = goutil.TimeToDate(dTime)
|
||||||
|
vacation.VacationStartTime = goutil.TimeToDateTime(cast.ToInt64(fields[1]))
|
||||||
|
vacation.VacationEndTime = goutil.TimeToDateTime(cast.ToInt64(fields[2]))
|
||||||
|
vacation.VacationDuration = float64(cast.ToInt64(fields[3])) / float64(3600*8)
|
||||||
|
vacation.VacationRemark = d.GetValue("请假事由")
|
||||||
|
vacation.Month = time.Unix(dTime, 0).Format("200601")
|
||||||
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import (
|
||||||
"enterprise/common/dao"
|
"enterprise/common/dao"
|
||||||
"enterprise/common/global"
|
"enterprise/common/global"
|
||||||
"enterprise/common/model"
|
"enterprise/common/model"
|
||||||
"enterprise/common/weixin"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
"github.com/smbrave/goutil"
|
"github.com/smbrave/goutil"
|
||||||
|
@ -23,13 +22,17 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Approve struct {
|
type Approve struct {
|
||||||
approveClient *weixin.QyWeixinApprove
|
approveClient *qyweixin.AppApprove
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Approve) Reply(msg message.MixMessage) *message.Reply {
|
func (b *Approve) Reply(msg message.MixMessage) *message.Reply {
|
||||||
if b.approveClient == nil {
|
if b.approveClient == nil {
|
||||||
cfg := config.GetConfig()
|
cfg := config.GetConfig()
|
||||||
b.approveClient = weixin.NewQyWeixinApprove(cfg.QyWeixin.Corpid, cfg.QyWeixin.ApproveSecret, cfg.QyWeixin.ApproveAgent)
|
b.approveClient = qyweixin.NewAppApprove(&qyweixin.AppConfig{
|
||||||
|
Corpid: cfg.QyWeixin.Corpid,
|
||||||
|
Secret: cfg.QyWeixin.ApproveSecret,
|
||||||
|
Agent: cfg.QyWeixin.ApproveAgent,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
go b.handle(&msg)
|
go b.handle(&msg)
|
||||||
return &message.Reply{message.MsgTypeText, message.NewText("")}
|
return &message.Reply{message.MsgTypeText, message.NewText("")}
|
||||||
|
@ -74,8 +77,9 @@ func (a *Approve) handleApprovalChange(msg *message.MixMessage) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Approve) handleVacation(detail *weixin.ApproveDetail) {
|
func (a *Approve) handleVacation(detail *qyweixin.ApproveDetail) {
|
||||||
newData := detail.ToVacation()
|
newData := new(model.ApprovalVacation)
|
||||||
|
newData.From(detail)
|
||||||
dbDao := dao.NewApprovalVacationDao()
|
dbDao := dao.NewApprovalVacationDao()
|
||||||
|
|
||||||
old, err := dbDao.GetBySpNo(detail.SpNo)
|
old, err := dbDao.GetBySpNo(detail.SpNo)
|
||||||
|
@ -97,8 +101,9 @@ func (a *Approve) handleVacation(detail *weixin.ApproveDetail) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Approve) handleCheckin(detail *weixin.ApproveDetail) {
|
func (a *Approve) handleCheckin(detail *qyweixin.ApproveDetail) {
|
||||||
newData := detail.ToCheckin()
|
newData := new(model.ApprovalCheckin)
|
||||||
|
newData.From(detail)
|
||||||
dbDao := dao.NewApprovalCheckinDao()
|
dbDao := dao.NewApprovalCheckinDao()
|
||||||
|
|
||||||
old, err := dbDao.GetBySpNo(detail.SpNo)
|
old, err := dbDao.GetBySpNo(detail.SpNo)
|
||||||
|
@ -119,8 +124,9 @@ func (a *Approve) handleCheckin(detail *weixin.ApproveDetail) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (a *Approve) handleRefund(detail *weixin.ApproveDetail) {
|
func (a *Approve) handleRefund(detail *qyweixin.ApproveDetail) {
|
||||||
newData := detail.ToRefund()
|
newData := new(model.ApprovalRefund)
|
||||||
|
newData.From(detail)
|
||||||
dbDao := dao.NewApprovalRefundDao()
|
dbDao := dao.NewApprovalRefundDao()
|
||||||
|
|
||||||
old, err := dbDao.GetBySpNo(detail.SpNo)
|
old, err := dbDao.GetBySpNo(detail.SpNo)
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
package service
|
|
||||||
|
|
||||||
import (
|
|
||||||
"enterprise/common/weixin"
|
|
||||||
"fmt"
|
|
||||||
log "github.com/sirupsen/logrus"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestApprove_Reply(t *testing.T) {
|
|
||||||
|
|
||||||
approveClient := weixin.NewQyWeixinApprove("ww43c49db2e88a17f8", "xJOClC5V2pPon1azgrAzf5kq1TB72xZ3ScR7O5G3lQo", "3010040")
|
|
||||||
fmt.Println("1")
|
|
||||||
detail, err := approveClient.GetDetail("202308130004")
|
|
||||||
fmt.Println("1")
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error:%s", err.Error())
|
|
||||||
}
|
|
||||||
fmt.Println("1")
|
|
||||||
|
|
||||||
for _, content := range detail.ApplyData.Contents {
|
|
||||||
|
|
||||||
var value string
|
|
||||||
if content.Control == "Selector" {
|
|
||||||
value = content.Value.Selector.Options[0].Value[0].Text
|
|
||||||
} else if content.Control == "Text" || content.Control == "Textarea" {
|
|
||||||
value = content.Value.Text
|
|
||||||
} else if content.Control == "Date" {
|
|
||||||
value = content.Value.Date.Timestamp
|
|
||||||
} else if content.Control == "Money" {
|
|
||||||
value = content.Value.NewMoney
|
|
||||||
} else if content.Control == "File" {
|
|
||||||
value = content.Value.Files[0].FileId
|
|
||||||
}
|
|
||||||
fmt.Println(content.Title[0].Text, value)
|
|
||||||
|
|
||||||
}
|
|
||||||
fmt.Println("2")
|
|
||||||
}
|
|
Loading…
Reference in New Issue