Geen omschrijving
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

master_company.go 7.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package tables
  2. import (
  3. "time"
  4. "git.x2erp.com/qdy/go-db/sqldef"
  5. )
  6. func init() {
  7. sqldef.AddRegistration(func(r *sqldef.Registry) {
  8. tb := sqldef.NewTable("master_company", "公司主数据表 - 存储法人实体信息,用于结算和管理").
  9. ChineseName("公司主数据表").Aliases("公司主数据").
  10. ChineseName("公司主数据表").
  11. Aliases("公司表", "法人表").
  12. ID("id", 50).NotNull().Comment("公司ID").ChineseName("公司标识").Aliases("公司ID", "ID").End().
  13. String("type", 30).NotNull().Default("'SUBSIDIARY'").Comment("公司类型: SUPPLIER供应商/SUBSIDIARY子公司/AGENT代理商/WHOLESALER批发商/GROUP集团/FRANCHISEE加盟商/CUSTOMER客户/LOGISTICS物流商").ChineseName("公司类型").Aliases("类型", "公司类别").End().
  14. String("code", 50).NotNull().Comment("公司编码").ChineseName("公司编码").Aliases("编码", "公司代码").End().
  15. String("name", 200).NotNull().Comment("公司名称").ChineseName("公司名称").Aliases("名称", "公司名").End().
  16. String("short_name", 100).Comment("公司简称").ChineseName("公司简称").Aliases("公司缩写").End().
  17. String("english_name", 100).Comment("英文名称").ChineseName("英文名称").Aliases("英文名", "英文公司名").End().
  18. String("parent_id", 100).Comment("上级公司ID").ChineseName("上级公司标识").Aliases("上级公司ID", "母公司ID").End().
  19. Int("level").Comment("公司层级 1:集团 2:子公司 3:分公司").ChineseName("公司层级").Aliases("层级", "公司级别").End().
  20. String("tax_id", 100).Comment("税号/统一社会信用代码").ChineseName("税号").Aliases("统一信用代码", "税务编号").End().
  21. String("legal_representative", 100).Comment("法定代表人").ChineseName("法定代表人").Aliases("法人代表", "法人").End().
  22. String("contact_person", 100).Comment("联系人").ChineseName("联系人").Aliases("联系人员", "对接人").End().
  23. String("contact_phone", 100).Comment("联系电话").ChineseName("联系电话").End().
  24. String("email", 100).Comment("邮箱").ChineseName("邮箱").Aliases("电子邮件", "电邮").End().
  25. String("address", 100).Comment("公司地址").ChineseName("公司地址").Aliases("办公地址").End().
  26. String("bank_name", 100).Comment("开户银行").ChineseName("开户银行").Aliases("银行", "银行名称").End().
  27. String("bank_account", 100).Comment("银行账号").ChineseName("银行账号").Aliases("账号", "银行账户").End().
  28. String("account_holder", 100).Comment("账户持有人").ChineseName("账户持有人").Aliases("持卡人", "账户所有人").End().
  29. String("status", 100).Comment("状态 ACTIVE/INACTIVE").ChineseName("状态").Aliases("公司状态", "状态标识").End().
  30. Bool("is_active").Comment("是否激活").ChineseName("是否激活").Aliases("激活状态", "有效状态").End().
  31. Text("remark").Comment("备注").ChineseName("备注").Aliases("说明", "注释").End().
  32. JSON("extra_properties").Comment("扩展属性JSON").ChineseName("扩展属性").Aliases("附加属性", "扩展信息").End().
  33. DateTime("created_at").NotNull().Default("CURRENT_TIMESTAMP").Comment("创建时间").ChineseName("创建时间").Aliases("创建时间戳").End().
  34. DateTime("updated_at").NotNull().Default("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").Comment("更新时间").ChineseName("更新时间").Aliases("更新时间戳").End()
  35. tb.AddUniqueIndex("idx_code", "code")
  36. tb.AddIndex("idx_type", "type")
  37. tb.AddIndex("idx_parent_id", "parent_id")
  38. tb.AddIndex("idx_status", "status")
  39. tb.AddIndex("idx_level", "level")
  40. tb.AddIndex("idx_tax_id", "tax_id")
  41. r.RegisterTable(tb.Build())
  42. })
  43. }
  44. type MasterCompany struct {
  45. ID string `gorm:"column:id;type:varchar(50);not null;primaryKey;comment:公司ID"`
  46. Type string `gorm:"column:type;type:varchar(30);not null;default:SUBSIDIARY;comment:公司类型: SUPPLIER供应商/SUBSIDIARY子公司/AGENT代理商/WHOLESALER批发商/GROUP集团/FRANCHISEE加盟商/CUSTOMER客户/LOGISTICS物流商"`
  47. Code string `gorm:"column:code;type:varchar(50);not null;comment:公司编码"`
  48. Name string `gorm:"column:name;type:varchar(200);not null;comment:公司名称"`
  49. ShortName string `gorm:"column:short_name;type:varchar(100);comment:公司简称"`
  50. EnglishName string `gorm:"column:english_name;type:varchar(200);comment:英文名称"`
  51. ParentID string `gorm:"column:parent_id;type:varchar(50);comment:上级公司ID"`
  52. Level int32 `gorm:"column:level;type:int;comment:公司层级 1:集团 2:子公司 3:分公司"`
  53. TaxID string `gorm:"column:tax_id;type:varchar(30);comment:税号/统一社会信用代码"`
  54. LegalRepresentative string `gorm:"column:legal_representative;type:varchar(50);comment:法定代表人"`
  55. ContactPerson string `gorm:"column:contact_person;type:varchar(50);comment:联系人"`
  56. ContactPhone string `gorm:"column:contact_phone;type:varchar(20);comment:联系电话"`
  57. Email string `gorm:"column:email;type:varchar(100);comment:邮箱"`
  58. Address string `gorm:"column:address;type:varchar(500);comment:公司地址"`
  59. BankName string `gorm:"column:bank_name;type:varchar(100);comment:开户银行"`
  60. BankAccount string `gorm:"column:bank_account;type:varchar(50);comment:银行账号"`
  61. AccountHolder string `gorm:"column:account_holder;type:varchar(100);comment:账户持有人"`
  62. Status string `gorm:"column:status;type:varchar(20);comment:状态 ACTIVE/INACTIVE"`
  63. IsActive bool `gorm:"column:is_active;type:bool;comment:是否激活"`
  64. Remark string `gorm:"column:remark;type:text;comment:备注"`
  65. ExtraProperties string `gorm:"column:extra_properties;type:json;comment:扩展属性JSON"`
  66. CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP;comment:创建时间"`
  67. UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:更新时间"`
  68. }
  69. type MasterCompanyDB struct {
  70. ID string `db:"id" json:"id"`
  71. Type string `db:"type" json:"type"`
  72. Code string `db:"code" json:"code"`
  73. Name string `db:"name" json:"name"`
  74. ShortName string `db:"short_name" json:"shortName"`
  75. EnglishName string `db:"english_name" json:"englishName"`
  76. ParentID string `db:"parent_id" json:"parentID"`
  77. Level int32 `db:"level" json:"level"`
  78. TaxID string `db:"tax_id" json:"taxID"`
  79. LegalRepresentative string `db:"legal_representative" json:"legalRepresentative"`
  80. ContactPerson string `db:"contact_person" json:"contactPerson"`
  81. ContactPhone string `db:"contact_phone" json:"contactPhone"`
  82. Email string `db:"email" json:"email"`
  83. Address string `db:"address" json:"address"`
  84. BankName string `db:"bank_name" json:"bankName"`
  85. BankAccount string `db:"bank_account" json:"bankAccount"`
  86. AccountHolder string `db:"account_holder" json:"accountHolder"`
  87. Status string `db:"status" json:"status"`
  88. IsActive bool `db:"is_active" json:"isActive"`
  89. Remark string `db:"remark" json:"remark"`
  90. ExtraProperties string `db:"extra_properties" json:"extraProperties"`
  91. CreatedAt time.Time `db:"created_at" json:"createdAt"`
  92. UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
  93. }
  94. func (MasterCompany) TableName() string {
  95. return "master_company"
  96. }