zhangqian
2023-12-07 f0650a3cfc0da9941fdfddfcf89110d5985ae87b
model/dashboard.go
@@ -25,6 +25,7 @@
      PlanProductionAmount         int   //计划加工数
      RealExternalProductionAmount int   //实际外加工数
      RealProductionAmount         int   //实际生产数
      WorkOrderFinishRate          int   //近一周工单完成率
      DeviceLoadData            string         //设备负荷对比分析
      DeviceLoad                []*CommonStats `gorm:"-"` //设备负荷对比分析
@@ -34,8 +35,6 @@
      OrderFinishRate           []*CommonStats `gorm:"-"` //订单完成比率
      PersonnelProductivityData string         //人员生产效率
      PersonnelProductivity     []*CommonStats `gorm:"-"` //人员生产效率
      PersonnelSkillPercentData string         //人员技能占比
      PersonnelSkillPercent     []*CommonStats `gorm:"-"` //人员技能占比
      WorkerTypeStatsData       string         //人员工种分析
      WorkerTypeStats           []*CommonStats `gorm:"-"` //人员工种分析
@@ -53,21 +52,23 @@
   }
   WorkshopStats struct {
      Name      string
      Total     int64
      Qualified int64
      Defective int
      Percent   int
      Name      string //车间名称
      Total     int64  //生产总数
      Qualified int64  //正品数量
      Defective int    //次品数量
      Percent   int    //正品率
   }
   WorkOrderStats struct {
      Number       string //编号
      Product      string //产品
      Scale        string //规格
      PlanTime     string //计划时间
      Percent      int    //完成进度
      procedureNum int    //工序数量
      DelayDays    int    //延期天数
      Number                 string //编号
      Product                string //产品
      Scale                  string //规格
      Amount                 int64  //生产数量
      PlanTime               string //计划时间
      DelayDays              int    //延期天数
      ProcedureNum           int    //工序数量
      FinishProcedureNum     int    //已完成工序数量
      ProcessingProcedureNum int    //进行中工序数量
   }
   DashboardSearch struct {
@@ -92,7 +93,6 @@
   var materialRequirement []*CommonStats
   var orderFinishRate []*CommonStats
   var personnelProductivity []*CommonStats
   var personnelSkillPercent []*CommonStats
   var workerTypeStats []*CommonStats
   var workshopStats []*WorkshopStats
   var workOrderStats []*WorkOrderStats
@@ -100,41 +100,44 @@
   if slf.DeviceLoadData != "" {
      if err = json.Unmarshal([]byte(slf.DeviceLoadData), &deviceLoad); err == nil {
         slf.DeviceLoad = deviceLoad
         slf.DeviceLoadData = ""
      }
   }
   if slf.MaterialRequirementData != "" {
      if err = json.Unmarshal([]byte(slf.MaterialRequirementData), &materialRequirement); err == nil {
         slf.MaterialRequirement = materialRequirement
         slf.MaterialRequirementData = ""
      }
   }
   if slf.OrderFinishRateData != "" {
      if err = json.Unmarshal([]byte(slf.OrderFinishRateData), &orderFinishRate); err == nil {
         slf.OrderFinishRate = orderFinishRate
         slf.OrderFinishRateData = ""
      }
   }
   if slf.PersonnelProductivityData != "" {
      if err = json.Unmarshal([]byte(slf.PersonnelProductivityData), &personnelProductivity); err == nil {
         slf.PersonnelProductivity = personnelProductivity
         slf.PersonnelProductivityData = ""
      }
   }
   if slf.PersonnelSkillPercentData != "" {
      if err = json.Unmarshal([]byte(slf.PersonnelSkillPercentData), &personnelSkillPercent); err == nil {
         slf.PersonnelSkillPercent = personnelSkillPercent
      }
   }
   if slf.WorkerTypeStatsData != "" {
      if err = json.Unmarshal([]byte(slf.WorkerTypeStatsData), &workerTypeStats); err == nil {
         slf.WorkerTypeStats = workerTypeStats
         slf.WorkerTypeStatsData = ""
      }
   }
   if slf.WorkshopStatsData != "" {
      if err = json.Unmarshal([]byte(slf.WorkshopStatsData), &workshopStats); err == nil {
         slf.WorkshopStats = workshopStats
         slf.WorkshopStatsData = ""
      }
   }
   if slf.WorkOrderStatsData != "" {
      if err = json.Unmarshal([]byte(slf.WorkOrderStatsData), &workOrderStats); err == nil {
         slf.WorkOrderStats = workOrderStats
         slf.WorkOrderStatsData = ""
      }
   }
   return nil
@@ -229,10 +232,10 @@
   return nil
}
func (slf *DashboardSearch) Updates(record *Dashboard) error {
func (slf *DashboardSearch) Save(record *Dashboard) error {
   var db = slf.build()
   if err := db.Updates(record).Error; err != nil {
   if err := db.Save(record).Error; err != nil {
      return fmt.Errorf("save err: %v, record: %+v", err, record)
   }