...
|
...
|
@@ -53,6 +53,49 @@ func (d *RewardSumaryDao) SeachRewardSummaryDay(companyId int, orgId int, record |
|
|
tx := d.transactionContext.PgTx
|
|
|
var result []RewardSummaryDay
|
|
|
_, err := tx.Query(&result, sqlStr, companyId, orgId, recordDate)
|
|
|
|
|
|
for i := range result {
|
|
|
switch result[i].AccidentResult1 {
|
|
|
case "1":
|
|
|
result[i].AccidentResult1 = "功"
|
|
|
case "0":
|
|
|
result[i].AccidentResult1 = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].AccidentResult1 = "过"
|
|
|
}
|
|
|
switch result[i].AccidentResult2 {
|
|
|
case "1":
|
|
|
result[i].AccidentResult2 = "功"
|
|
|
case "0":
|
|
|
result[i].AccidentResult2 = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].AccidentResult2 = "过"
|
|
|
}
|
|
|
switch result[i].AccidentResult3 {
|
|
|
case "1":
|
|
|
result[i].AccidentResult3 = "功"
|
|
|
case "0":
|
|
|
result[i].AccidentResult3 = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].AccidentResult3 = "过"
|
|
|
}
|
|
|
switch result[i].UpToStandardResult {
|
|
|
case "1":
|
|
|
result[i].UpToStandardResult = "功"
|
|
|
case "0":
|
|
|
result[i].UpToStandardResult = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].UpToStandardResult = "过"
|
|
|
}
|
|
|
switch result[i].YieldResult {
|
|
|
case "1":
|
|
|
result[i].YieldResult = "功"
|
|
|
case "0":
|
|
|
result[i].YieldResult = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].YieldResult = "过"
|
|
|
}
|
|
|
}
|
|
|
return result, err
|
|
|
}
|
|
|
|
...
|
...
|
@@ -68,20 +111,61 @@ type RewardSummaryYield struct { |
|
|
|
|
|
// 功过看板-产效
|
|
|
func (d *RewardSumaryDao) SeachRewardSummaryYield(companyId int, orgId int, recordDate string) ([]RewardSummaryYield, error) {
|
|
|
sqlStr := `SELECT
|
|
|
record_date_str,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userName' as worker_name,
|
|
|
yield_result,
|
|
|
yield,
|
|
|
'24' as yield_max
|
|
|
// sqlStr := `SELECT
|
|
|
// record_date_str,
|
|
|
// work_station->>'sectionName' as section_name,
|
|
|
// worker->>'userName' as worker_name,
|
|
|
// yield_result,
|
|
|
// yield,
|
|
|
// '24' as yield_max
|
|
|
// FROM manufacture."reward_summary"
|
|
|
// WHERE company_id=?
|
|
|
// and org_id=?
|
|
|
// and record_date_str=?`
|
|
|
|
|
|
sqlStr := `with
|
|
|
t1 as( SELECT
|
|
|
max(yield) as yield_max,
|
|
|
work_station->>'sectionId' AS section_id,
|
|
|
worker->>'userId' as worker_id
|
|
|
FROM manufacture."reward_summary"
|
|
|
WHERE company_id=?
|
|
|
and org_id=?
|
|
|
and record_date_str=?`
|
|
|
WHERE company_id=? and org_id=?
|
|
|
GROUP BY section_id,worker_id
|
|
|
),
|
|
|
t2 as (SELECT
|
|
|
record_date_str,
|
|
|
work_station->>'sectionId' AS section_id,
|
|
|
worker->>'userId' as worker_id,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userName' as worker_name,
|
|
|
yield_result,
|
|
|
yield
|
|
|
FROM manufacture."reward_summary"
|
|
|
WHERE company_id=? and org_id=?
|
|
|
and record_date_str=?
|
|
|
)
|
|
|
SELECT t2.record_date_str,t2.section_name,t2.worker_name,
|
|
|
t2.yield_result,t2.yield,t1.yield_max
|
|
|
FROM t2
|
|
|
JOIN t1 on t2.section_id=t1.section_id AND t2.worker_id=t2.worker_id`
|
|
|
|
|
|
tx := d.transactionContext.PgTx
|
|
|
var result []RewardSummaryYield
|
|
|
_, err := tx.Query(&result, sqlStr, companyId, orgId, recordDate)
|
|
|
params := []interface{}{
|
|
|
companyId, orgId,
|
|
|
companyId, orgId, recordDate,
|
|
|
}
|
|
|
_, err := tx.Query(&result, sqlStr, params...)
|
|
|
for i := range result {
|
|
|
switch result[i].YieldResult {
|
|
|
case "1":
|
|
|
result[i].YieldResult = "功"
|
|
|
case "0":
|
|
|
result[i].YieldResult = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].YieldResult = "过"
|
|
|
}
|
|
|
}
|
|
|
return result, err
|
|
|
|
|
|
}
|
...
|
...
|
@@ -98,35 +182,77 @@ type RewardSummaryUpToStandard struct { |
|
|
|
|
|
// 功过看板-合格率
|
|
|
func (d *RewardSumaryDao) SeachRewardUpToStandard(companyId int, orgId int, recordDate string) ([]RewardSummaryUpToStandard, error) {
|
|
|
sqlStr := `SELECT
|
|
|
record_date_str,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userName' as worker_name,
|
|
|
up_to_standard_result,
|
|
|
up_to_standard,
|
|
|
'90' as up_to_standard_max
|
|
|
// sqlStr := `SELECT
|
|
|
// record_date_str,
|
|
|
// work_station->>'sectionName' as section_name,
|
|
|
// worker->>'userName' as worker_name,
|
|
|
// up_to_standard_result,
|
|
|
// up_to_standard,
|
|
|
// '90' as up_to_standard_max
|
|
|
// FROM manufacture."reward_summary"
|
|
|
// WHERE company_id=23
|
|
|
// and org_id=487
|
|
|
// and record_date_str='2022-10-29'`
|
|
|
sqlStr := `with
|
|
|
t1 as( SELECT
|
|
|
max(up_to_standard) as up_to_standard_max,
|
|
|
work_station->>'sectionId' AS section_id,
|
|
|
worker->>'userId' as worker_id
|
|
|
FROM manufacture."reward_summary"
|
|
|
WHERE company_id=23
|
|
|
and org_id=487
|
|
|
and record_date_str='2022-10-29'`
|
|
|
WHERE company_id=? and org_id=?
|
|
|
GROUP BY section_id,worker_id
|
|
|
),
|
|
|
t2 as (SELECT
|
|
|
record_date_str,
|
|
|
work_station->>'sectionId' AS section_id,
|
|
|
worker->>'userId' as worker_id,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userName' as worker_name,
|
|
|
up_to_standard_result,
|
|
|
up_to_standard
|
|
|
FROM manufacture."reward_summary"
|
|
|
WHERE company_id=? and org_id=?
|
|
|
and record_date_str=?
|
|
|
)
|
|
|
SELECT t2.record_date_str,t2.section_name,t2.worker_name,
|
|
|
t2.up_to_standard_result,t2.up_to_standard,t1.up_to_standard_max
|
|
|
FROM t2
|
|
|
JOIN t1 on t2.section_id=t1.section_id AND t2.worker_id=t2.worker_id`
|
|
|
tx := d.transactionContext.PgTx
|
|
|
var result []RewardSummaryUpToStandard
|
|
|
_, err := tx.Query(&result, sqlStr, companyId, orgId, recordDate)
|
|
|
params := []interface{}{
|
|
|
companyId, orgId,
|
|
|
companyId, orgId, recordDate,
|
|
|
}
|
|
|
_, err := tx.Query(&result, sqlStr, params...)
|
|
|
for i := range result {
|
|
|
switch result[i].UpToStandardResult {
|
|
|
case "1":
|
|
|
result[i].UpToStandardResult = "功"
|
|
|
case "0":
|
|
|
result[i].UpToStandardResult = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].UpToStandardResult = "过"
|
|
|
}
|
|
|
}
|
|
|
return result, err
|
|
|
}
|
|
|
|
|
|
// 功过看板-异常
|
|
|
type RewardAccident struct {
|
|
|
Id string `json:"id"`
|
|
|
RecordDateStr string `json:"record_date_str"`
|
|
|
SectionName string `json:"sectionName"` //工段名称
|
|
|
WorkerName string `json:"workerName"` //员工名称
|
|
|
SummaryResult string `json:"summaryResult"` //奖惩结果
|
|
|
YieldResult string `json:"yieldResult"` //产效功过结果
|
|
|
UpToStandardResult string `json:"upToStandardResult"` //合格率功过结果
|
|
|
AccidentResult1 string `json:"accidentResult1"` //质量事故功过结果
|
|
|
AccidentResult2 string `json:"accidentResul2"` //安全事故功过结果
|
|
|
AccidentResult3 string `json:"accidentResul3"` //异物 功过结果
|
|
|
Id string `json:"id"`
|
|
|
RecordDateStr string `json:"record_date_str"`
|
|
|
SectionName string `json:"sectionName"` //工段名称
|
|
|
WorkerName string `json:"workerName"` //员工名称
|
|
|
AccidentAmount1 string `json:"accidentAmount1"` //质量事故损失金额
|
|
|
AccidentNum1 string `json:"accidentNum1"` //质量事故次数
|
|
|
AccidentResult1 string `json:"accidentResult1"` //质量事故功过结果
|
|
|
AccidentAmount2 string `json:"accidentAmount2"` //安全事故 损失金额
|
|
|
AccidentResult2 string `json:"accidentResul2"` //安全事故功过结果
|
|
|
AccidentNum2 string `json:"accidentNum2"` //安全事故 次数
|
|
|
AccidentNum3 string `json:"accidentNum3"` //金属异物 次数
|
|
|
AccidentNum4 string `json:"accidentNum4"` //非属异物事故次数
|
|
|
AccidentResult3 string `json:"accidentResul3"` //异物 功过结果
|
|
|
}
|
|
|
|
|
|
// 功过看板-异常
|
...
|
...
|
@@ -135,9 +261,9 @@ func (d *RewardSumaryDao) SeachRewardAccident(companyId int, orgId int, recordDa |
|
|
"id",record_date_str,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userName' as worker_name,
|
|
|
up_to_standard_result,
|
|
|
up_to_standard,
|
|
|
'90' as up_to_standard_max
|
|
|
accident_num1,accident_amount1,accident_result1,
|
|
|
accident_num2,accident_amount2,accident_result2,
|
|
|
accident_num3,accident_num4,accident_result3
|
|
|
FROM manufacture."reward_summary"
|
|
|
WHERE company_id=?
|
|
|
and org_id=?
|
...
|
...
|
@@ -145,10 +271,37 @@ func (d *RewardSumaryDao) SeachRewardAccident(companyId int, orgId int, recordDa |
|
|
tx := d.transactionContext.PgTx
|
|
|
var result []RewardAccident
|
|
|
_, err := tx.Query(&result, sqlStr, companyId, orgId, recordDate)
|
|
|
|
|
|
for i := range result {
|
|
|
switch result[i].AccidentResult1 {
|
|
|
case "1":
|
|
|
result[i].AccidentResult1 = "功"
|
|
|
case "0":
|
|
|
result[i].AccidentResult1 = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].AccidentResult1 = "过"
|
|
|
}
|
|
|
switch result[i].AccidentResult2 {
|
|
|
case "1":
|
|
|
result[i].AccidentResult2 = "功"
|
|
|
case "0":
|
|
|
result[i].AccidentResult2 = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].AccidentResult2 = "过"
|
|
|
}
|
|
|
switch result[i].AccidentResult3 {
|
|
|
case "1":
|
|
|
result[i].AccidentResult3 = "功"
|
|
|
case "0":
|
|
|
result[i].AccidentResult3 = "不奖不惩"
|
|
|
case "-1":
|
|
|
result[i].AccidentResult3 = "过"
|
|
|
}
|
|
|
}
|
|
|
return result, err
|
|
|
}
|
|
|
|
|
|
// 功过看板-异常
|
|
|
// 功过看板-月榜
|
|
|
type RewardSummaryMonth struct {
|
|
|
SectionId string `json:"sectionId"` //工段名称
|
|
|
SectionName string `json:"sectionName"` //工段名称
|
...
|
...
|
@@ -170,32 +323,35 @@ type RewardSummaryMonth struct { |
|
|
|
|
|
// 功过看板-月榜
|
|
|
func (d *RewardSumaryDao) SeachRewardSummaryMonth(companyId int, orgId int, recordMonth string) ([]RewardSummaryMonth, error) {
|
|
|
sqlStr := `SELECT
|
|
|
work_station->>'sectionId' AS section_id,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userId' as worker_id,
|
|
|
worker->>'userName' as worker_name,
|
|
|
count(accident_num1) as accident_num1,
|
|
|
count(accident_num2) as accident_num2,
|
|
|
count(accident_num3) as accident_num3,
|
|
|
count(accident_num4) as accident_num4,
|
|
|
count(accident_amount1) as accident_amount1,
|
|
|
count(accident_amount2) as accident_amount2,
|
|
|
'12' as yield_avg,
|
|
|
'13' as yield_max,
|
|
|
'-39' as amount_fine,
|
|
|
'25' as amount_reward,
|
|
|
'-14' as amount_final,
|
|
|
'12' as up_to_standard,
|
|
|
FROM manufacture.reward_summary
|
|
|
WHERE company_id=?
|
|
|
and org_id=?
|
|
|
and record_month_str=?
|
|
|
GROUP BY
|
|
|
worker->>'userId' ,
|
|
|
worker->>'userName' ,
|
|
|
work_station->>'sectionId',
|
|
|
work_station->>'sectionName' `
|
|
|
sqlStr := `
|
|
|
SELECT
|
|
|
work_station->>'sectionId' AS section_id,
|
|
|
work_station->>'sectionName' as section_name,
|
|
|
worker->>'userId' as worker_id,
|
|
|
worker->>'userName' as worker_name,
|
|
|
sum(accident_num1) as accident_num1,
|
|
|
sum(accident_num2) as accident_num2,
|
|
|
sum(accident_num3) as accident_num3,
|
|
|
sum(accident_num4) as accident_num4,
|
|
|
sum(accident_amount1) as accident_amount1,
|
|
|
sum(accident_amount2) as accident_amount2,
|
|
|
CAST(sum(summary_result) as decimal(10,2)) as amount_final,
|
|
|
CAST(
|
|
|
sum(CASE WHEN summary_result<0 THEN summary_result ELSE 0 END) as decimal(10,2)
|
|
|
) as amount_fine,
|
|
|
CAST(
|
|
|
sum(CASE WHEN summary_result>0 THEN summary_result ELSE 0 END) as decimal(10,2)
|
|
|
) as amount_reward,
|
|
|
max(yield) as yield_max,
|
|
|
CAST(avg(yield) as decimal(10,2)) as yield_avg,
|
|
|
CAST(avg(up_to_standard) as decimal(10,2) ) as up_to_standard
|
|
|
FROM manufacture.reward_summary
|
|
|
WHERE company_id=?
|
|
|
and org_id=?
|
|
|
and record_month_str=?
|
|
|
GROUP BY section_id,worker_id,worker_name,section_name
|
|
|
;
|
|
|
`
|
|
|
tx := d.transactionContext.PgTx
|
|
|
var result []RewardSummaryMonth
|
|
|
_, err := tx.Query(&result, sqlStr, companyId, orgId, recordMonth)
|
...
|
...
|
|