初始
This commit is contained in:
		
							
								
								
									
										406
									
								
								internal/app/wxApplet/logic/busAskforleave/bus_askforleave.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										406
									
								
								internal/app/wxApplet/logic/busAskforleave/bus_askforleave.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,406 @@
 | 
			
		||||
// ==========================================================================
 | 
			
		||||
// GFast自动生成logic操作代码。
 | 
			
		||||
// 生成日期:2025-03-27 14:14:25
 | 
			
		||||
// 生成路径: internal/app/wxApplet/logic/bus_askforleave.go
 | 
			
		||||
// 生成人:gfast
 | 
			
		||||
// desc:请假
 | 
			
		||||
// company:云南奇讯科技有限公司
 | 
			
		||||
// ==========================================================================
 | 
			
		||||
 | 
			
		||||
package logic
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"github.com/gogf/gf/v2/database/gdb"
 | 
			
		||||
	"github.com/gogf/gf/v2/frame/g"
 | 
			
		||||
	"github.com/gogf/gf/v2/os/gtime"
 | 
			
		||||
	"github.com/gogf/gf/v2/util/gconv"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/internal/app/system/consts"
 | 
			
		||||
	sysDao "github.com/tiger1103/gfast/v3/internal/app/system/dao"
 | 
			
		||||
	logic "github.com/tiger1103/gfast/v3/internal/app/system/logic/busReissueACard"
 | 
			
		||||
	ct "github.com/tiger1103/gfast/v3/internal/app/system/logic/context"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/internal/app/wxApplet/dao"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/internal/app/wxApplet/model"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/internal/app/wxApplet/model/do"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/internal/app/wxApplet/service"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/library/liberr"
 | 
			
		||||
	"github.com/tiger1103/gfast/v3/third/todo"
 | 
			
		||||
	"strconv"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	service.RegisterBusAskforleave(New())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func New() *sBusAskforleave {
 | 
			
		||||
	return &sBusAskforleave{}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type sBusAskforleave struct{}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) AppBzzAskForLeaveUpdate(ctx context.Context, req *wxApplet.AppBzzAskForLeaveUpdateReq) (err error) {
 | 
			
		||||
	err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
 | 
			
		||||
		err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
			// 获取当前数据的班组,然后根据班组获取到班组长的openid
 | 
			
		||||
			var aCard model.BusAskforleaveInfoRes
 | 
			
		||||
			err := dao.BusAskforleave.Ctx(ctx).WherePri(req.Id).Fields("id,openid,team_id,project_id").Scan(&aCard)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
			fields, err := dao.SysProjectTeamMember.Ctx(ctx).
 | 
			
		||||
				Where("team_id", aCard.TeamId).
 | 
			
		||||
				Where("post_id", 10).
 | 
			
		||||
				Fields("openid").Value()
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
			if fields.String() == "" {
 | 
			
		||||
				err = errors.New("变更失败,申请人所在的班组未设置班组长")
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			UpdateG2 := g.Map{"ganger": fields, "ganger_opinion": req.GangerOpinion, "ganger_explain": req.GangerExplain, "ganger_time": gtime.Now()}
 | 
			
		||||
			if req.GangerOpinion == "3" {
 | 
			
		||||
				UpdateG2["attendance_id"] = nil
 | 
			
		||||
			}
 | 
			
		||||
			// 变更班组长对补卡的状态,并且填写班组长的openid
 | 
			
		||||
			_, err = dao.BusAskforleave.Ctx(ctx).OmitEmpty().WherePri(req.Id).Update(UpdateG2)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err, "变更班组长失败")
 | 
			
		||||
			// 标记特定的待办任务为已处理
 | 
			
		||||
			err = todo.MarkTaskAsProcessed(int(req.Id))
 | 
			
		||||
			// 然后将数据提交给管理员操作
 | 
			
		||||
			ids, err := logic.GetAdministrator(ctx, aCard.ProjectId)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
			if len(ids) == 0 {
 | 
			
		||||
				liberr.ErrIsNil(ctx, errors.New("当前项目暂无后台管理人员可以进行审批,需要联系管理人员解决!"))
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			var listReissueReminder []todo.ReissueReminder
 | 
			
		||||
			for i := range ids {
 | 
			
		||||
				listReissueReminder = append(listReissueReminder, todo.ReissueReminder{
 | 
			
		||||
					UserID:    strconv.Itoa(int(ids[i])),
 | 
			
		||||
					Role:      0,
 | 
			
		||||
					ProjectID: int(aCard.ProjectId),
 | 
			
		||||
					CreatorID: aCard.Openid,
 | 
			
		||||
					TargetID:  int(aCard.Id),
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
			err = todo.CreateAttendanceApprovalGroup(listReissueReminder, todo.ApprovalReminder)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
		})
 | 
			
		||||
		return err
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) AppAskForLeaveInfo(ctx context.Context, req *wxApplet.AppAskForLeaveInfoReq) (res *wxApplet.AppAskForLeaveInfoRes, err error) {
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		err = dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
 | 
			
		||||
			LeftJoin(dao.BusConstructionUser.Table(), "b", "b.openid = a.openid").
 | 
			
		||||
			Fields("a.*,b.user_name").
 | 
			
		||||
			Where("a."+dao.BusAskforleave.Columns().Id, req.Id).
 | 
			
		||||
			Scan(&res)
 | 
			
		||||
		// 获取班组长的名称和管理员名称
 | 
			
		||||
		if res.Ganger != "" {
 | 
			
		||||
			var busUser *model.BusConstructionUserInfoRes
 | 
			
		||||
			err = dao.BusConstructionUser.Ctx(ctx).Where(dao.BusConstructionUser.Columns().Openid, res.Ganger).Fields("user_name").Scan(&busUser)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
			res.GangerName = busUser.UserName
 | 
			
		||||
		}
 | 
			
		||||
		if res.Manager != "" {
 | 
			
		||||
			var busUser *model.BusConstructionUserInfoRes
 | 
			
		||||
			err = sysDao.SysUser.Ctx(ctx).Where(sysDao.SysUser.Columns().Id, res.Manager).Fields("user_nickname").Scan(&busUser)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
			res.ManagerName = busUser.UserName
 | 
			
		||||
		}
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "获取信息失败")
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) AppAskForLeaveListPage(ctx context.Context, req *wxApplet.AppAskForLeaveListPageReq) (listRes *wxApplet.AppAskForLeaveListPageRes, err error) {
 | 
			
		||||
	listRes = new(wxApplet.AppAskForLeaveListPageRes)
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		m := dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
 | 
			
		||||
			LeftJoin(dao.BusConstructionUser.Table(), "b", "b.openid = a.openid")
 | 
			
		||||
		if req.Openid != "" {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().Openid+" = ?", req.Openid)
 | 
			
		||||
		}
 | 
			
		||||
		if req.ProjectId != "" {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().ProjectId+" = ?", gconv.Int64(req.ProjectId))
 | 
			
		||||
		}
 | 
			
		||||
		if req.TeamId != "" {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().TeamId+" = ?", gconv.Int64(req.TeamId))
 | 
			
		||||
		}
 | 
			
		||||
		if len(req.DateRange) != 0 {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().CreatedAt+" >=? AND "+"a."+dao.BusAskforleave.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
 | 
			
		||||
		}
 | 
			
		||||
		listRes.Total, err = m.Count()
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "获取总行数失败")
 | 
			
		||||
		if req.PageNum == 0 {
 | 
			
		||||
			req.PageNum = 1
 | 
			
		||||
		}
 | 
			
		||||
		listRes.CurrentPage = req.PageNum
 | 
			
		||||
		if req.PageSize == 0 {
 | 
			
		||||
			req.PageSize = consts.PageSize
 | 
			
		||||
		}
 | 
			
		||||
		order := "id desc"
 | 
			
		||||
		if req.OrderBy != "" {
 | 
			
		||||
			order = req.OrderBy
 | 
			
		||||
		}
 | 
			
		||||
		var res []*model.BusAskforleaveListAppRes
 | 
			
		||||
		err = m.Fields("a.*,b.user_name").Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "获取数据失败")
 | 
			
		||||
		listRes.List = res
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) AppAskForLeaveAdd(ctx context.Context, req *wxApplet.AppAskForLeaveAddReq) (err error) {
 | 
			
		||||
	err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
 | 
			
		||||
		err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
			// 1、根据openid获取到当前小程序用户所在班组的班组长
 | 
			
		||||
			var busUser *model.BusConstructionUserInfoRes
 | 
			
		||||
			err := dao.BusConstructionUser.Ctx(ctx).Where(dao.BusConstructionUser.Columns().Openid, req.Openid).Fields("project_id,team_id").Scan(&busUser)
 | 
			
		||||
			liberr.ErrIsNil(ctx, err, "添加失败")
 | 
			
		||||
			if busUser == nil || busUser.TeamId == 0 {
 | 
			
		||||
				liberr.ErrIsNil(ctx, err, "请先加入班组!")
 | 
			
		||||
			}
 | 
			
		||||
			//2、获取项目名称、班组名称
 | 
			
		||||
			columnsP := sysDao.SysProject.Columns()
 | 
			
		||||
			valueP, projectNameErr := sysDao.SysProject.Ctx(ctx).Where(columnsP.Id, busUser.ProjectId).Fields(columnsP.ProjectName).Value()
 | 
			
		||||
			liberr.ErrIsNil(ctx, projectNameErr, "获取项目失败")
 | 
			
		||||
			columnsT := dao.SysProjectTeam.Columns()
 | 
			
		||||
			valueT, teamNameErr := dao.SysProjectTeam.Ctx(ctx).Where(columnsT.Id, busUser.TeamId).Fields(columnsT.Name).Value()
 | 
			
		||||
			liberr.ErrIsNil(ctx, teamNameErr, "获取班组失败")
 | 
			
		||||
			// 判断当前请假的时间是否重复请假
 | 
			
		||||
			count, err := dao.BusAskforleave.Ctx(ctx).
 | 
			
		||||
				Where(dao.BusAskforleave.Columns().ProjectId, busUser.ProjectId).
 | 
			
		||||
				Where(dao.BusAskforleave.Columns().Openid, req.Openid).
 | 
			
		||||
				Where("("+
 | 
			
		||||
					"DATE_FORMAT(start_time,'%Y-%m-%d') BETWEEN DATE_FORMAT(?,'%Y-%m-%d') AND DATE_FORMAT(?,'%Y-%m-%d')"+
 | 
			
		||||
					" or "+
 | 
			
		||||
					"DATE_FORMAT(end_time,'%Y-%m-%d') BETWEEN DATE_FORMAT(?,'%Y-%m-%d') AND DATE_FORMAT(?,'%Y-%m-%d')"+
 | 
			
		||||
					")", req.StartTime, req.EndTime, req.StartTime, req.EndTime).Count()
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
			if count > 0 {
 | 
			
		||||
				liberr.ErrIsNil(ctx, errors.New("当前请假时间重复"))
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			//3、插入请假数据
 | 
			
		||||
			info, err := dao.BusAskforleave.Ctx(ctx).Insert(do.BusAskforleave{
 | 
			
		||||
				ProjectId:   busUser.ProjectId,
 | 
			
		||||
				ProjectName: valueP.String(),
 | 
			
		||||
				TeamId:      busUser.TeamId,
 | 
			
		||||
				TeamName:    valueT.String(),
 | 
			
		||||
				StartTime:   req.StartTime,
 | 
			
		||||
				EndTime:     req.EndTime,
 | 
			
		||||
				Argument:    req.Argument,
 | 
			
		||||
				Openid:      req.Openid,
 | 
			
		||||
				CreateBy:    ct.New().GetLoginUser(ctx).Id,
 | 
			
		||||
			})
 | 
			
		||||
			liberr.ErrIsNil(ctx, err, "添加失败")
 | 
			
		||||
			//4、发送审批
 | 
			
		||||
			keyId, _ := info.LastInsertId()
 | 
			
		||||
			openidVal, err := dao.SysProjectTeamMember.Ctx(ctx).
 | 
			
		||||
				Where(dao.SysProjectTeamMember.Columns().TeamId, busUser.TeamId).
 | 
			
		||||
				Where(dao.SysProjectTeamMember.Columns().PostId, 10).
 | 
			
		||||
				Fields(dao.SysProjectTeamMember.Columns().Openid).Value()
 | 
			
		||||
			if openidVal.String() == "" || err != nil {
 | 
			
		||||
				liberr.ErrIsNil(ctx, errors.New("当前班组未发现班组长职位"))
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			var listReissueReminder []todo.ReissueReminder
 | 
			
		||||
 | 
			
		||||
			listReissueReminder = append(listReissueReminder, todo.ReissueReminder{
 | 
			
		||||
				UserID:    openidVal.String(),
 | 
			
		||||
				Role:      1,
 | 
			
		||||
				ProjectID: int(busUser.ProjectId),
 | 
			
		||||
				CreatorID: req.Openid,
 | 
			
		||||
				TargetID:  int(keyId),
 | 
			
		||||
			})
 | 
			
		||||
			err = todo.CreateAttendanceApprovalGroup(listReissueReminder, todo.ApprovalReminder)
 | 
			
		||||
			//err = todo.CreateAskForLeaveReminder(openidVal.String(), int(busUser.ProjectId), req.Openid, int(keyId))
 | 
			
		||||
			liberr.ErrIsNil(ctx, err)
 | 
			
		||||
		})
 | 
			
		||||
		return err
 | 
			
		||||
	})
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) List(ctx context.Context, req *wxApplet.BusAskforleaveSearchReq) (listRes *wxApplet.BusAskforleaveSearchRes, err error) {
 | 
			
		||||
	listRes = new(wxApplet.BusAskforleaveSearchRes)
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		values, err2 := dao.BusConstructionUser.Ctx(ctx).Where("user_name like ?", "%"+req.Name+"%").Fields("openid").Array()
 | 
			
		||||
		liberr.ErrIsNil(ctx, err2)
 | 
			
		||||
		m := dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
 | 
			
		||||
			LeftJoin("bus_construction_user", "b", "a.openid=b.openid").
 | 
			
		||||
			//LeftJoin("sys_project", "c", "c.id=b.project_id").
 | 
			
		||||
			//LeftJoin("sys_project_team", "d", "d.id=b.team_id").
 | 
			
		||||
			Fields("a.*,b.user_name")
 | 
			
		||||
		if req.Name != "" {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().Openid+" in (?)", values)
 | 
			
		||||
		}
 | 
			
		||||
		if req.ProjectId > 0 {
 | 
			
		||||
			m = m.Where("a.project_id", req.ProjectId)
 | 
			
		||||
		}
 | 
			
		||||
		if req.TeamId > 0 {
 | 
			
		||||
			m = m.Where("a.team_id", req.TeamId)
 | 
			
		||||
		}
 | 
			
		||||
		if req.ManagerOpinion != "" {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().ManagerOpinion+" = ?", req.ManagerOpinion)
 | 
			
		||||
		}
 | 
			
		||||
		if len(req.LeaveDateRange) != 0 {
 | 
			
		||||
			m = m.Where("date(a.start_time) <= ? AND date(a.end_time) >= ?", req.LeaveDateRange[0], req.LeaveDateRange[1])
 | 
			
		||||
		}
 | 
			
		||||
		if len(req.DateRange) != 0 {
 | 
			
		||||
			m = m.Where("a."+dao.BusAskforleave.Columns().CreatedAt+" >=? AND "+"a."+dao.BusAskforleave.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
 | 
			
		||||
		}
 | 
			
		||||
		array, err := m.Array()
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "获取总行数失败")
 | 
			
		||||
		listRes.Total = len(array)
 | 
			
		||||
		if req.PageNum == 0 {
 | 
			
		||||
			req.PageNum = 1
 | 
			
		||||
		}
 | 
			
		||||
		listRes.CurrentPage = req.PageNum
 | 
			
		||||
		if req.PageSize == 0 {
 | 
			
		||||
			req.PageSize = consts.PageSize
 | 
			
		||||
		}
 | 
			
		||||
		order := "id desc"
 | 
			
		||||
		if req.OrderBy != "" {
 | 
			
		||||
			order = req.OrderBy
 | 
			
		||||
		}
 | 
			
		||||
		var res []*model.BusAskforleaveInfoRes
 | 
			
		||||
		err = m.Fields(wxApplet.BusAskforleaveSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "获取数据失败")
 | 
			
		||||
		listRes.List = make([]*model.BusAskforleaveListRes, len(res))
 | 
			
		||||
		for k, v := range res {
 | 
			
		||||
			cardMode := ""
 | 
			
		||||
			cardNumber := ""
 | 
			
		||||
			if v.GangerOpinion == "1" && v.ManagerOpinion == "1" {
 | 
			
		||||
				cardMode = "待审核"
 | 
			
		||||
				cardNumber = "1"
 | 
			
		||||
			}
 | 
			
		||||
			if v.GangerOpinion == "2" || v.ManagerOpinion == "2" {
 | 
			
		||||
				cardMode = "审核中"
 | 
			
		||||
				cardNumber = "2"
 | 
			
		||||
			}
 | 
			
		||||
			if v.GangerOpinion == "3" || v.ManagerOpinion == "3" {
 | 
			
		||||
				cardMode = "已拒绝"
 | 
			
		||||
				cardNumber = "3"
 | 
			
		||||
			}
 | 
			
		||||
			if v.GangerOpinion == "2" && v.ManagerOpinion == "2" {
 | 
			
		||||
				cardMode = "已同意"
 | 
			
		||||
				cardNumber = "4"
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			listRes.List[k] = &model.BusAskforleaveListRes{
 | 
			
		||||
				Id:             v.Id,
 | 
			
		||||
				ProjectId:      v.ProjectId,
 | 
			
		||||
				ProjectName:    v.ProjectName,
 | 
			
		||||
				TeamId:         v.TeamId,
 | 
			
		||||
				TeamName:       v.TeamName,
 | 
			
		||||
				StartTime:      v.StartTime,
 | 
			
		||||
				EndTime:        v.EndTime,
 | 
			
		||||
				Argument:       v.Argument,
 | 
			
		||||
				Ganger:         v.Ganger,
 | 
			
		||||
				GangerOpinion:  v.GangerOpinion,
 | 
			
		||||
				GangerExplain:  v.GangerExplain,
 | 
			
		||||
				GangerTime:     v.GangerTime,
 | 
			
		||||
				Manager:        v.Manager,
 | 
			
		||||
				ManagerOpinion: v.ManagerOpinion,
 | 
			
		||||
				ManagerExplain: v.ManagerExplain,
 | 
			
		||||
				ManagerTime:    v.ManagerTime,
 | 
			
		||||
				CreateBy:       v.CreateBy,
 | 
			
		||||
				UpdateBy:       v.UpdateBy,
 | 
			
		||||
				CreatedAt:      v.CreatedAt,
 | 
			
		||||
				Remark:         v.Remark,
 | 
			
		||||
				CardMode:       cardMode,
 | 
			
		||||
				CardNumber:     cardNumber,
 | 
			
		||||
				UserName:       v.UserName,
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) GetById(ctx context.Context, id int64) (res *model.BusAskforleaveInfoRes, err error) {
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		err = dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
 | 
			
		||||
			LeftJoin("bus_construction_user", "b", "a.openid=b.openid").
 | 
			
		||||
			Fields("a.*,b.user_name").
 | 
			
		||||
			Where("a."+dao.BusAskforleave.Columns().Id, id).Scan(&res)
 | 
			
		||||
		if res != nil {
 | 
			
		||||
			cardMode := ""
 | 
			
		||||
			cardNumber := ""
 | 
			
		||||
			if res.GangerOpinion == "1" && res.ManagerOpinion == "1" {
 | 
			
		||||
				cardMode = "待审核"
 | 
			
		||||
				cardNumber = "1"
 | 
			
		||||
			}
 | 
			
		||||
			if res.GangerOpinion == "2" || res.ManagerOpinion == "2" {
 | 
			
		||||
				cardMode = "审核中"
 | 
			
		||||
				cardNumber = "2"
 | 
			
		||||
			}
 | 
			
		||||
			if res.GangerOpinion == "3" || res.ManagerOpinion == "3" {
 | 
			
		||||
				cardMode = "已拒绝"
 | 
			
		||||
				cardNumber = "3"
 | 
			
		||||
			}
 | 
			
		||||
			if res.GangerOpinion == "2" && res.ManagerOpinion == "2" {
 | 
			
		||||
				cardMode = "已同意"
 | 
			
		||||
				cardNumber = "4"
 | 
			
		||||
			}
 | 
			
		||||
			res.CardMode = cardMode
 | 
			
		||||
			res.CardNumber = cardNumber
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "获取信息失败")
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) Add(ctx context.Context, req *wxApplet.BusAskforleaveAddReq) (err error) {
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		_, err = dao.BusAskforleave.Ctx(ctx).Insert(do.BusAskforleave{
 | 
			
		||||
			ProjectId:      req.ProjectId,
 | 
			
		||||
			ProjectName:    req.ProjectName,
 | 
			
		||||
			TeamId:         req.TeamId,
 | 
			
		||||
			TeamName:       req.TeamName,
 | 
			
		||||
			StartTime:      req.StartTime,
 | 
			
		||||
			EndTime:        req.EndTime,
 | 
			
		||||
			Argument:       req.Argument,
 | 
			
		||||
			Ganger:         req.Ganger,
 | 
			
		||||
			GangerOpinion:  req.GangerOpinion,
 | 
			
		||||
			GangerExplain:  req.GangerExplain,
 | 
			
		||||
			GangerTime:     req.GangerTime,
 | 
			
		||||
			Manager:        req.Manager,
 | 
			
		||||
			ManagerOpinion: req.ManagerOpinion,
 | 
			
		||||
			ManagerExplain: req.ManagerExplain,
 | 
			
		||||
			ManagerTime:    req.ManagerTime,
 | 
			
		||||
			CreateBy:       req.CreateBy,
 | 
			
		||||
			UpdateBy:       req.UpdateBy,
 | 
			
		||||
			Remark:         req.Remark,
 | 
			
		||||
		})
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "添加失败")
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) Edit(ctx context.Context, req *wxApplet.BusAskforleaveEditReq) (err error) {
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		_, err = dao.BusAskforleave.Ctx(ctx).WherePri(req.Id).Update(do.BusAskforleave{
 | 
			
		||||
			ManagerOpinion: req.ManagerOpinion,
 | 
			
		||||
			ManagerExplain: req.ManagerExplain,
 | 
			
		||||
			UpdateBy:       ct.New().GetLoginUser(ctx).Id,
 | 
			
		||||
		})
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "修改失败")
 | 
			
		||||
		//批量同意
 | 
			
		||||
		err2 := todo.MarkTasksAsProcessedByUUID(req.Id)
 | 
			
		||||
		liberr.ErrIsNil(ctx, err2)
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *sBusAskforleave) Delete(ctx context.Context, ids []int64) (err error) {
 | 
			
		||||
	err = g.Try(ctx, func(ctx context.Context) {
 | 
			
		||||
		_, err = dao.BusAskforleave.Ctx(ctx).Delete(dao.BusAskforleave.Columns().Id+" in (?)", ids)
 | 
			
		||||
		liberr.ErrIsNil(ctx, err, "删除失败")
 | 
			
		||||
	})
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user