wangpengfei
2023-08-11 493ad64a1f17ceeb70ec834162a0ad3572d28d69
model/serviceOrder.go
@@ -5,6 +5,7 @@
   "aps_crm/pkg/mysqlx"
   "errors"
   "fmt"
   "github.com/shopspring/decimal"
   "gorm.io/gorm"
   "gorm.io/gorm/clause"
)
@@ -12,45 +13,46 @@
type (
   // ServiceOrder 服务单
   ServiceOrder struct {
      Id              int           `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
      ServiceNumber   string        `gorm:"column:service_number;type:varchar(255);not null;default:'';comment:'服务单编号'" json:"serviceNumber"` // 服务单编号
      ClientId        int           `gorm:"column:client_id;type:int;not null;default:0;comment:'客户id'" json:"clientId"`                      // 客户id
      Client          Client        `gorm:"foreignKey:ClientId"`
      ContractId      int           `gorm:"column:contract_id;type:int;not null;default:0;comment:'合同id'" json:"contractId"` // 合同id
      Contract        Contract      `gorm:"foreignKey:ContractId"`
      OrderId         int           `gorm:"column:order_id;type:int;not null;default:0;comment:'销售订单id'" json:"orderId"` // 销售订单id
      OrderManage     OrderManage   `gorm:"foreignKey:OrderId"`
      Subject         string        `gorm:"column:subject;type:varchar(255);not null;default:'';comment:'主题'" json:"subject"` // 主题
      ProductId       int           `gorm:"column:product_id;type:int;not null;default:0;comment:'产品id'" json:"productId"`    // 产品id
      Product         Product       `gorm:"foreignKey:ProductId"`
      ServiceTypeId   int           `gorm:"column:service_type_id;type:int;not null;default:0;comment:'服务方式id'" json:"serviceTypeId"` // 服务方式id
      ServiceType     ServiceType   `gorm:"foreignKey:ServiceTypeId"`
      ServiceManId    int           `gorm:"column:service_man_id;type:int;not null;default:0;comment:'服务人员'" json:"serviceManId"` // 服务人员
      ContactId       int           `gorm:"linkman_id" json:"contactId"`                                                          // 联系人id
      Contact         Contact       `gorm:"foreignKey:ContactId"`
      Address         string        `gorm:"column:address;type:varchar(255);not null;default:'';comment:'上门地址'" json:"address"`           // 上门地址
      PriorityLevelId int           `gorm:"column:priority_level_id;type:int;not null;default:0;comment:'优先级别id'" json:"priorityLevelId"` // 优先级别id
      PriorityLevel   PriorityLevel `gorm:"foreignKey:PriorityLevelId"`
      AppointmentTime string        `gorm:"appointment_time" json:"appointmentTime"`                                                // 预约上门时间
      SaleChanceId    int           `gorm:"column:sale_chance_id;type:int;not null;default:0;comment:'销售机会id'" json:"saleChanceId"` // 销售机会id
      SaleChance      SaleChance    `gorm:"foreignKey:SaleChanceId"`
      FaultTypeId     int           `gorm:"column:severity_id;type:int;not null;default:0;comment:'故障类别id'" json:"faultTypeId"` // 故障类别id
      FaultType       FaultType     `gorm:"foreignKey:FaultTypeId"`
      SeverityId      int           `gorm:"column:severity_id;type:int;not null;default:0;comment:'严重程度id'" json:"severity"` // 严重程度id
      Severity        Severity      `gorm:"foreignKey:SeverityId"`
      Status          int           `gorm:"status" json:"status"`                                                                        // 处理状态
      ExpectTime      string        `gorm:"column:expect_time;type:varchar(255);not null;default:'';comment:'希望处理时间'" json:"expectTime"` // 希望处理时间
      RealTime        string        `gorm:"column:real_time;type:varchar(255);not null;default:'';comment:'实际处理时间'" json:"realTime"`     // 实际处理时间
      CarFare         float64       `gorm:"car_fare" json:"carFare"`                                                                     // 交通费
      ChargeAmount    float64       `gorm:"charge_amount" json:"chargeAmount"`                                                           // 收费金额
      TimeSpentId     int           `gorm:"column:time_spent_id;type:int;not null;default:0;comment:'花费时间'" json:"timeSpentId"`          // 花费时间
      TimeSpent       TimeSpent     `gorm:"foreignKey:TimeSpentId"`
      FaqId           int           `gorm:"column:problem_id;type:int;not null;default:0;comment:'常见问题id'" json:"faqId"` // 常见问题id
      Faq             Faq           `gorm:"foreignKey:FaqId"`
      ProblemDesc     string        `gorm:"column:subject;type:varchar(255);not null;default:'';comment:'主题'problem_desc" json:"problemDesc"`  // 问题描述
      Solution        string        `gorm:"column:solution;type:varchar(255);not null;default:'';comment:'解决方法'" json:"solution"`              // 解决方法
      SolutionRemark  string        `gorm:"column:solution_remark;type:varchar(255);not null;default:'';comment:'内部备注'" json:"solutionRemark"` // 内部备注
      Remark          string        `gorm:"column:remark;type:varchar(255);not null;default:'';comment:'备注'" json:"remark"`                    // 备注
      Id                   int                `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
      ServiceNumber        string             `gorm:"column:service_number;type:varchar(255);not null;default:'';comment:服务单编号" json:"serviceNumber"` // 服务单编号
      ClientId             int                `gorm:"column:client_id;type:int;not null;default:0;comment:客户id" json:"clientId"`                      // 客户id
      Client               Client             `gorm:"foreignKey:ClientId"`
      ContractId           int                `gorm:"column:contract_id;type:int;not null;default:0;comment:合同id" json:"contractId"` // 合同id
      Contract             Contract           `gorm:"foreignKey:ContractId"`
      OrderId              int                `gorm:"column:order_id;type:int;not null;default:0;comment:销售订单id" json:"orderId"` // 销售订单id
      OrderManage          OrderManage        `gorm:"foreignKey:OrderId"`
      Subject              string             `gorm:"column:subject;type:varchar(255);not null;default:'';comment:主题" json:"subject"` // 主题
      ProductId            int                `gorm:"column:product_id;type:int;not null;default:0;comment:产品id" json:"productId"`    // 产品id
      Product              Product            `gorm:"foreignKey:ProductId"`
      ServiceTypeId        int                `gorm:"column:service_type_id;type:int;not null;default:0;comment:服务方式id" json:"serviceTypeId"` // 服务方式id
      ServiceType          ServiceType        `gorm:"foreignKey:ServiceTypeId"`
      ServiceManId         int                `gorm:"column:service_man_id;type:int;not null;default:0;comment:服务人员" json:"serviceManId"` // 服务人员
      ContactId            int                `gorm:"linkman_id" json:"contactId"`                                                        // 联系人id
      Contact              Contact            `gorm:"foreignKey:ContactId"`
      Address              string             `gorm:"column:address;type:varchar(255);not null;default:'';comment:上门地址" json:"address"`           // 上门地址
      PriorityLevelId      int                `gorm:"column:priority_level_id;type:int;not null;default:0;comment:优先级别id" json:"priorityLevelId"` // 优先级别id
      PriorityLevel        PriorityLevel      `gorm:"foreignKey:PriorityLevelId"`
      AppointmentTime      string             `gorm:"appointment_time" json:"appointmentTime"`                                              // 预约上门时间
      SaleChanceId         int                `gorm:"column:sale_chance_id;type:int;not null;default:0;comment:销售机会id" json:"saleChanceId"` // 销售机会id
      SaleChance           SaleChance         `gorm:"foreignKey:SaleChanceId"`
      FaultTypeId          int                `gorm:"column:severity_id;type:int;not null;default:0;comment:故障类别id" json:"faultTypeId"` // 故障类别id
      FaultType            FaultType          `gorm:"foreignKey:FaultTypeId"`
      SeverityId           int                `gorm:"column:severity_id;type:int;not null;default:0;comment:严重程度id" json:"severity"` // 严重程度id
      Severity             Severity           `gorm:"foreignKey:SeverityId"`
      ServiceOrderStatusId int                `gorm:"column:service_order_status_id;type:int;not null;default:0;comment:服务单状态id" json:"status"` // 处理状态
      ServiceOrderStatus   ServiceOrderStatus `gorm:"foreignKey:ServiceOrderStatusId"`
      ExpectTime           string             `gorm:"column:expect_time;type:varchar(255);not null;default:'';comment:希望处理时间" json:"expectTime"`          // 希望处理时间
      RealTime             string             `gorm:"column:real_time;type:varchar(255);not null;default:'';comment:实际处理时间" json:"realTime"`              // 实际处理时间
      CarFare              decimal.Decimal    `gorm:"column:car_fare;type:decimal(10,2);not null;default:'0.00';comment:希望处理时间" json:"carFare"`           //交通费                                                                 // 交通费
      ChargeAmount         decimal.Decimal    `gorm:"column:charge_amount;type:decimal(10,2);not null;default:'0.00';comment:希望处理时间" json:"chargeAmount"` //收费金额                                                       // 收费金额
      TimeSpentId          int                `gorm:"column:time_spent_id;type:int;not null;default:0;comment:花费时间" json:"timeSpentId"`                   // 花费时间
      TimeSpent            TimeSpent          `gorm:"foreignKey:TimeSpentId"`
      FaqId                int                `gorm:"column:faq_id;type:int;not null;default:0;comment:常见问题id" json:"faqId"` // 常见问题id
      Faq                  Faq                `gorm:"foreignKey:FaqId"`
      ProblemDesc          string             `gorm:"column:problem_desc;type:varchar(255);not null;default:'';comment:主题" json:"problemDesc"`         // 问题描述
      Solution             string             `gorm:"column:solution;type:varchar(255);not null;default:'';comment:解决方法" json:"solution"`              // 解决方法
      SolutionRemark       string             `gorm:"column:solution_remark;type:varchar(255);not null;default:'';comment:内部备注" json:"solutionRemark"` // 内部备注
      Remark               string             `gorm:"column:remark;type:varchar(255);not null;default:'';comment:备注" json:"remark"`                    // 备注
   }
   // ServiceOrderSearch 服务单搜索条件