From b94bef381946e22fd1038f24e6d9de911d194640 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期三, 31 七月 2024 23:33:48 +0800
Subject: [PATCH] 功能修改,工资计算调整,通过前端配置公式进行计算

---
 models/payroll_production_weavers.go |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/models/payroll_production_weavers.go b/models/payroll_production_weavers.go
index 9698f75..b865685 100644
--- a/models/payroll_production_weavers.go
+++ b/models/payroll_production_weavers.go
@@ -16,6 +16,7 @@
 		WorkType       WorkTypeManage `json:"workType" gorm:"foreignKey:WorkTypeID;references:ID"`
 		WorkerID       string         `json:"workerId" gorm:"size:200;not null;comment:鍛樺伐ID"` //鍛樺伐ID
 		Worker         Worker         `json:"worker" gorm:"foreignKey:WorkerID;references:ID"`
+		WorkshopId     uint           `json:"workshopId" gorm:"type:int(11);comment:杞﹂棿Id"`
 		WorkshopNumber string         `json:"workshopNumber" gorm:"size:255;not null;comment:杞﹂棿缂栧彿"` // 杞﹂棿缂栧彿
 		GroupNumber    int            `json:"groupNumber" gorm:"size:11;not null;comment:缁勫埆"`       // 缁勫埆
 		CarNumbers     string         `json:"carNumbers"  gorm:"size:255;not null;comment:杞﹀彴鍙�"`     // 杞﹀彴鍙�
@@ -40,7 +41,7 @@
 )
 
 func (slf PayrollProductionWeavers) TableName() string {
-	return "silk_payroll_production_employee"
+	return "silk_payroll_production_weavers"
 }
 
 // NewPayrollProductionWeaversSearch 鍛樺伐姣忓ぉ鐨勪骇閲忕粺璁�
@@ -320,3 +321,25 @@
 
 	return records, nil
 }
+
+type WeaversAmount struct {
+	WorkerID           string          `json:"workerID"`
+	SilkQuantity       decimal.Decimal `json:"silkQuantity"`       // 涓濋噺
+	SilkTotalAmount    decimal.Decimal `json:"silkTotalAmount"`    // 涓濋噺鎬讳环
+	BadSilkQuantity    decimal.Decimal `json:"badSilkQuantity"`    // 閲庣氦鏁伴噺
+	BadSilkTotalAmount decimal.Decimal `json:"badSilkTotalAmount"` // 閲庣氦鎬讳环
+	FinishTotalAmount  decimal.Decimal `json:"finishTotalAmount"`  // 鎴愬搧閲戦
+}
+
+// FindWeaversAmount 鎸¤溅宸ユ湀宸ヨ祫
+func (slf *PayrollProductionWeaversSearch) FindWeaversAmount(monthly string) ([]*WeaversAmount, error) {
+	var (
+		records = make([]*WeaversAmount, 0)
+		db      = slf.Orm.Table(slf.TableName())
+	)
+	db.Select("worker_id, sum(silk_quantity) as silk_quantity, sum(silk_total_amount) as silk_total_amount, sum(bad_silk_quantity) as bad_silk_quantity, sum(bad_silk_total_amount) as bad_silk_total_amount, sum(finish_total_amount) as finish_total_amount").
+		Where("cycle like ?", monthly+"%").
+		Group("worker_id")
+
+	return records, db.Find(&records).Error
+}

--
Gitblit v1.8.0