|
|
@@ -203,7 +203,7 @@ func (s *OilContractSumScoreService) GetSumListEntitiesWithOrderBytbl(entitiesPt
|
|
|
var sql string
|
|
|
sql = `select contract.Id,contract.SupplierId,contract.SupplierName,contract.Amount, `
|
|
|
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) Result1, `
|
|
|
- sql += ` sum(case when items.Type = 2 AND items.Value = 1 then 1 else 0 end) Result2 `
|
|
|
+ sql += ` min(case when items.Type = 2 AND items.Value = 0 then 0 else 1 end) Result2 `
|
|
|
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 `
|
|
|
@@ -285,3 +285,51 @@ func (s *OilContractSumScoreService) GetSum(entitiesPtr interface{}, where strin
|
|
|
|
|
|
s.DBE.SQL(sql).Get(entitiesPtr)
|
|
|
}
|
|
|
+
|
|
|
+func (s *OilContractSumScoreService) GetMinValue(entitiesPtr interface{}, where string) {
|
|
|
+ // 优秀、合格分数值从配置中取
|
|
|
+ var paramEntityList []baseparameter.Base_Parameter
|
|
|
+ paramsSvc := baseparameter.GetBaseparameterService(utils.DBE)
|
|
|
+ paramEntityList = paramsSvc.GetBaseparameterbyid("GFGL1", "paramset")
|
|
|
+ good := "80"
|
|
|
+ pass := "60"
|
|
|
+ for _, i := range paramEntityList {
|
|
|
+ if i.Parametercode == "yearEvaGood" {
|
|
|
+ good = i.Parametercontent
|
|
|
+ }
|
|
|
+ if i.Parametercode == "yearEvaPass" {
|
|
|
+ pass = i.Parametercontent
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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) < ` + pass + ` 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) < ` + good + ` 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(entitiesPtr)
|
|
|
+}
|