product_plan_dto.go 2.3 KB
package dto

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

type ProductPlanDto struct {
	// 生产计划ID
	ProductPlanId int `json:"productPlanId,omitempty"`
	// 批号
	BatchNumber string `json:"batchNumber,omitempty"`
	// 生产日期
	ProductDate string `json:"productDate,omitempty"`
	// 车间
	//*domain.Workshop
	// 车间ID
	WorkshopId int `json:"workshopId,omitempty"`
	// 车间名称
	WorkshopName string `json:"workshopName,omitempty"`
	// 上班班次 1:全天  2:白班 4:中班  8:夜班
	WorkOn int `json:"workOn,omitempty"`
	// 上班班次描述
	WorkOnDescription string `json:"workOnDescription"`
	// 机台 (A、B、C、D 区分机器大小)
	Machine string `json:"machine"`
	// 产品ID
	ProductId int `json:"productId,omitempty"`
	// 计划的产品名称
	PlanProductName string `json:"planProductName,omitempty"`
	// 投入量规格 默认份
	DevotedUnit string `json:"devotedUnit" `
	// 计划投入
	*domain.UnitQuantity
	// 计划状态 (1:上线 2:下线  默认下线)
	PlanStatus int `json:"planStatus,omitempty"`
	// 工作位置
	//WorkStation *WorkStation `json:"workStation,omitempty"`
	// 总产能
	TotalProduct float64 `json:"totalProduct"`
	// 备注
	Remark string `json:"remark,omitempty"`
	// 组织名称
	OrgName string `json:"orgName"`
	// 权限标识 (当前登录组织匹配为true,否则false)
	AuthFlag bool `json:"authFlag"`
}

func (d *ProductPlanDto) LoadDto(m *domain.ProductPlan, orgId int) *ProductPlanDto {
	d.ProductPlanId = m.ProductPlanId
	d.BatchNumber = m.BatchNumber
	d.ProductDate = m.ProductDate.Format("2006-01-02")
	d.WorkshopId = m.Workshop.WorkshopId
	d.WorkshopName = m.Workshop.WorkshopName
	d.WorkOn = m.WorkOn

	d.Machine = m.Machine
	d.PlanProductName = m.PlanProductName
	d.UnitQuantity = m.PlanDevoted
	d.DevotedUnit = "份"
	if m.Ext.ProductPlanExt != nil {
		d.DevotedUnit = m.Ext.ProductPlanExt.DevotedUnit
		d.ProductId = m.Ext.ProductPlanExt.ProductId
	}
	d.PlanStatus = m.PlanStatus
	d.TotalProduct = 0
	d.Remark = m.Remark
	d.AuthFlag = domain.CheckOrgAuth(orgId, m.OrgId)
	if m.Ext != nil {
		d.OrgName = m.Ext.OrgName
	}
	workOnDesc := domain.WorkOnDescription(m.WorkOn)
	d.WorkOnDescription = strings.Join(workOnDesc, ",")
	return d
}