Przeglądaj źródła

后:结算金额做为基数加权平均计算

dubch 4 lat temu
rodzic
commit
af6820ed81

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

@@ -136,6 +136,7 @@ type OilContractSumScoreResult struct {
 	SupplierId    int       `json:"SupplierId"`
 	SupplierName  string    `json:"SupplierName"`
 	Amount 		  string    `json:"Amount"`
+	IsYearMoney   string    `json:"IsYearMoney"`
 	Result1 	  string    `json:"Result1"`
 	Result2 	  string    `json:"Result2"`
 }

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

@@ -201,7 +201,7 @@ func (s *OilContractSumScoreService) GetComputeEntity1(entitiesPtr interface{},
 func (s *OilContractSumScoreService) GetSumListEntitiesWithOrderBytbl(entitiesPtr interface{}, where string) {
 
 	var sql string
-	sql = `select contract.Id,contract.SupplierId,contract.SupplierName,contract.Amount, `
+	sql = `select contract.Id,contract.SupplierId,contract.SupplierName,contract.Amount,contract.IsYearMoney, `
 	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 += ` min(case when items.Type = 2 AND items.Value = 0 then 0 else 1 end)  Result2  `
 	sql += ` from ` + controllers.OilContractReviewName + ` review `

+ 6 - 2
src/dashoo.cn/backend/api/controllers/oilcontract/contractSumScore.go

@@ -400,7 +400,7 @@ func (this *OilContractSumScoreController) GetResultEntity() {
 	isResult := "1"
 	if len(list) > 0 {
 		for _, value := range list {
-			amount, _ := strconv.ParseFloat(value.Amount, 64)
+			amount, _ := strconv.ParseFloat(value.IsYearMoney, 64)
 			result, _ := strconv.ParseFloat(value.Result1, 64)
 			sum += amount * result
 			amountSum += amount
@@ -410,7 +410,11 @@ func (this *OilContractSumScoreController) GetResultEntity() {
 		}
 	}
 	var result Result
-	result.Result1 = fmt.Sprintf("%.2f", sum/amountSum)
+	if sum == 0 {
+		result.Result1 = "0.00"
+	} else {
+		result.Result1 = fmt.Sprintf("%.2f", sum/amountSum)
+	}
 	result.Result2 = isResult
 	this.Data["json"] = &result
 	this.ServeJSON()