|
|
@@ -138,3 +138,36 @@ func (s *OilContractSumScoreService) GetSumListEntitiesWithOrderBytbl(entitiesPt
|
|
|
|
|
|
s.DBE.SQL(sql).Find(entitiesPtr)
|
|
|
}
|
|
|
+
|
|
|
+func (s *OilContractSumScoreService) GetComputeEntityBytbl(where string) OilContractComputeSumScoreVo{
|
|
|
+ var model OilContractComputeSumScoreVo
|
|
|
+ var sql string
|
|
|
+ sql = `select YEAR(NOW()) as Year,contract.ContractClass,contract.SupplierId,contract.SupplierName,count(review.id) as count, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B1, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B2, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B3, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B4, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B5, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B6, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B7, `
|
|
|
+ sql += ` sum(case when items.SequenceNo in ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end ) B8, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('1') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score1, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('2') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score2, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('3') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score3, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('4') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score4, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('5') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score5, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('6') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score6, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('7') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score7, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('8') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score8, `
|
|
|
+ sql += ` ROUND(sum(case when items.SequenceNo in ('9') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type =1 then 1 else 0 end),2) Score9, `
|
|
|
+ sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type = 1 then 1 else 0 end),2) Score, `
|
|
|
+ sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type = 1 then 1 else 0 end),2) <60 then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in ('1') AND items.Type = 1 then 1 else 0 end),2) <80 then 2 else 1 end as Evaluate `
|
|
|
+ sql += ` from ` + controllers.OilContractReviewName + ` review `
|
|
|
+ sql += ` left join ` + controllers.OilContractName + ` contract on review.ContractId=contract.id `
|
|
|
+ sql += ` left join ` + controllers.OilContractEvaluationItemsName + ` items on items.ContentReviewId=review.id and items.LevelCode=1 `
|
|
|
+ sql += ` where ` + where
|
|
|
+ sql += ` group by contract.SupplierId,contract.SupplierName `
|
|
|
+
|
|
|
+ s.DBE.SQL(sql).Get(&model)
|
|
|
+ return model
|
|
|
+}
|