Pārlūkot izejas kodu

'单个企业年度评价汇总'

Yikoo 4 gadi atpakaļ
vecāks
revīzija
a365e56fc8

+ 33 - 0
src/dashoo.cn/backend/api/business/oilcontract/contractSumScore/contractSumScoreService.go

@@ -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
+}

+ 19 - 0
src/dashoo.cn/backend/api/controllers/oilcontract/contractSumScore.go

@@ -199,7 +199,26 @@ func (this *OilContractSumScoreController) GetComputeEntityList() {
 	this.Data["json"] = &datainfo
 	this.ServeJSON()
 }
+// @Title 获取核算实体
+// @Description get user by token
+// @Success 200 {object} []contractSumScore.OilContractSumScore
+// @router /compute-entity/:id [get]
+func (this *OilContractSumScoreController) GetComputeEntity(){
+	Id := this.Ctx.Input.Param(":id")
+	where := " contract.SupplierId = " + Id
+	where = where + " and review.Status='8' "
+	// 今年的汇总
+	year := strconv.Itoa(time.Now().Year())
+	month := "01"
+	day := "01"
+	where = where + " and review.CreateOn>='" + year + "-" + month + "-" + day + "' "
+	svc := contractSumScore.GetOilContractSumScoreService(utils.DBE)
+	var entity contractSumScore.OilContractComputeSumScoreVo
+	entity = svc.GetComputeEntityBytbl( where)
 
+	this.Data["json"] = &entity
+	this.ServeJSON()
+}
 // @Title 获取字典列表
 // @Description get user by token
 // @Success 200 {object} map[string]interface{}