material_group_dto.go 1.5 KB
package dto

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

type MaterialGroupDto struct {
	// 物料分组ID
	ProductMaterialGroupId int `json:"id"`
	// 企业id
	//CompanyId int `json:"companyId"`
	// 组织ID
	//OrgId int `json:"orgId"`
	// 父级ID
	Pid int `json:"pid"`
	// 路径 (不使用,如果父级改变的话,子级的Path要做更新)
	//Path string `json:"path"`
	// 物料分组名称
	MaterialGroupName string `json:"materialGroupName"`
	// 物料分组编码
	MaterialGroupNumber string `json:"materialGroupNumber"`
}

func (d *MaterialGroupDto) LoadDto(m *domain.ProductMaterialGroup, orgId int) *MaterialGroupDto {
	d.ProductMaterialGroupId = m.ProductMaterialGroupId
	d.Pid = m.Pid
	d.MaterialGroupName = m.MaterialGroupName
	d.MaterialGroupNumber = m.MaterialGroupNumber
	return d
}

func (productMaterialGroup *MaterialGroupDto) PID() string {
	return fmt.Sprintf("%d", productMaterialGroup.Pid)
}
func (productMaterialGroup *MaterialGroupDto) ID() string {
	return fmt.Sprintf("%d", productMaterialGroup.ProductMaterialGroupId)
}

type MaterialGroupDtos []*MaterialGroupDto

func (tree MaterialGroupDtos) Len() int {
	return len(tree)
}

func (tree MaterialGroupDtos) Less(i, j int) bool {
	if tree[i].Pid < tree[j].Pid {
		return true
	}
	if tree[i].Pid == tree[j].Pid {
		return tree[i].ProductMaterialGroupId < tree[j].ProductMaterialGroupId
	}
	return false
}

func (tree MaterialGroupDtos) Swap(i, j int) {
	tree[i], tree[j] = tree[j], tree[i]
}