product_calendar_dto.go 1.9 KB
package dto

import (
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/utils"
)

type ProductCalendarDto struct {
	// 工厂日历ID
	ProductCalendarId int `json:"productCalendarId,omitempty"`
	// 企业id
	//CompanyId int `json:"companyId,omitempty"`
	// 组织ID
	//OrgId int `json:"orgId,omitempty"`
	// 工作位置
	*domain.WorkStation
	// 上班班次 1:全天  2:白班 4:中班  8:夜班
	WorkOn int `json:"workOn,omitempty"`
	// 日历选择
	CalendarSelected []int `json:"calendarSelected,omitempty"`
	// 上岗时间
	InWorkAt string `json:"inWorkAt,omitempty"`
	// 下岗时间
	OutWorkAt string `json:"outWorkAt,omitempty"`
	// 休息时间 (单位 h)
	BreakTime float64 `json:"breakTime"`
	// 工时 (单位 h)
	WorkTime float64 `json:"workTime"`
	// 已选择日历
	//CalendarSelectedString string `json:"calendarSelectedString,omitempty"`
	// 组织名称
	OrgName string `json:"orgName"`
	// 权限标识 (当前登录组织匹配为true,否则false)
	AuthFlag bool `json:"authFlag"`
	// 休息时间周期列表
	BreakTimePeriods []*domain.ProductCalendarBreakTimePeriod `json:"breakTimePeriods"`
	// 累计休息时间 (单位 h)
	TotalBreakTime float64 `json:"totalBreakTime"`
}

func (d *ProductCalendarDto) LoadDto(m *domain.ProductCalendar, orgId int) *ProductCalendarDto {
	d.ProductCalendarId = m.ProductCalendarId
	d.WorkStation = m.WorkStation
	d.WorkOn = m.WorkOn
	d.CalendarSelected = utils.ToArrayInt(m.CalendarSelected)
	d.InWorkAt = m.InWorkAt
	d.OutWorkAt = m.OutWorkAt
	d.BreakTime = m.BreakTime
	d.WorkTime = m.WorkTime
	//d.CalendarSelectedString = strings.Join(m.CalendarSelected, "/")
	d.AuthFlag = domain.CheckOrgAuth(orgId, m.OrgId)
	if m.Ext != nil {
		d.OrgName = m.Ext.OrgName
	}
	d.BreakTimePeriods = m.BreakTimePeriods
	for _, v := range d.BreakTimePeriods {
		d.TotalBreakTime += v.BreakTime
	}
	return d
}