|
@@ -8,6 +8,7 @@ import (
|
|
|
"time"
|
|
|
|
|
|
"github.com/kataras/iris/v12"
|
|
|
+ "github.com/shopspring/decimal"
|
|
|
"go.mod/comm"
|
|
|
"go.mod/conf"
|
|
|
"go.mod/dao"
|
|
@@ -165,34 +166,44 @@ func (s *qualityService) GetDetail(id int, pid int) viewmodels.QualityDetail {
|
|
|
return data
|
|
|
}
|
|
|
|
|
|
-// 安全概况
|
|
|
+// 质量概况
|
|
|
func (s *qualityService) GetSurvey(projectId int, bidsectionId int) map[string]interface{} {
|
|
|
// 1.获得安全巡检
|
|
|
year := time.Now().Year()
|
|
|
qualityList := s.daoQuality.GetTypeYear(bidsectionId, year)
|
|
|
// 2.初始化
|
|
|
- rectifylist := make([]models.CmQuality, 0)
|
|
|
+ rectifylist := make([]viewmodels.SafeSurveyList, 0)
|
|
|
rectifyTotal := 0
|
|
|
approvalTotal := 0
|
|
|
rectifyedTotal := 0
|
|
|
- // 3.当年数据初始化
|
|
|
- submitData := map[string]float64{
|
|
|
- fmt.Sprintf("%d-01", year): 0,
|
|
|
- fmt.Sprintf("%d-02", year): 0,
|
|
|
- fmt.Sprintf("%d-03", year): 0,
|
|
|
- fmt.Sprintf("%d-04", year): 0,
|
|
|
- fmt.Sprintf("%d-05", year): 0,
|
|
|
- fmt.Sprintf("%d-06", year): 0,
|
|
|
- fmt.Sprintf("%d-07", year): 0,
|
|
|
- fmt.Sprintf("%d-08", year): 0,
|
|
|
- fmt.Sprintf("%d-09", year): 0,
|
|
|
- fmt.Sprintf("%d-10", year): 0,
|
|
|
- fmt.Sprintf("%d-11", year): 0,
|
|
|
- fmt.Sprintf("%d-12", year): 0,
|
|
|
+
|
|
|
+ columnarData := make([]map[string]interface{}, 0)
|
|
|
+ lineData := columnarData
|
|
|
+ for i := 1; i <= 12; i++ {
|
|
|
+ item := map[string]interface{}{
|
|
|
+ "name": "rectifyed",
|
|
|
+ "month": fmt.Sprintf("%d-%02d", year, i),
|
|
|
+ "count": 0,
|
|
|
+ }
|
|
|
+ columnarData = append(columnarData, item)
|
|
|
+ item = map[string]interface{}{
|
|
|
+ "name": "submit",
|
|
|
+ "month": fmt.Sprintf("%d-%02d", year, i),
|
|
|
+ "count": 0,
|
|
|
+ }
|
|
|
+ columnarData = append(columnarData, item)
|
|
|
+ item = map[string]interface{}{
|
|
|
+ "month": fmt.Sprintf("%d-%02d", year, i),
|
|
|
+ "count": 0,
|
|
|
+ }
|
|
|
+ lineData = append(lineData, item)
|
|
|
+
|
|
|
}
|
|
|
- rectifyedData := submitData
|
|
|
+
|
|
|
for _, item := range qualityList {
|
|
|
if item.Status == 2 {
|
|
|
+ id, _ := comm.AesEncrypt(item.Id, conf.SignSecret)
|
|
|
+ item.Id = id
|
|
|
rectifylist = append(rectifylist, item)
|
|
|
rectifyTotal++
|
|
|
}
|
|
@@ -203,11 +214,35 @@ func (s *qualityService) GetSurvey(projectId int, bidsectionId int) map[string]i
|
|
|
rectifyedTotal++
|
|
|
}
|
|
|
|
|
|
- if item.Status == 0 {
|
|
|
- submitData[item.CreateTime.Format(conf.SysTimeformMonth)] = submitData[item.CreateTime.Format(conf.SysTimeformMonth)] + 1
|
|
|
+ for index, columnar := range columnarData {
|
|
|
+ if columnar["month"] == item.CreateTime.Format(conf.SysTimeformMonth) {
|
|
|
+ if item.Status == 0 && columnar["name"] == "rectifyed" {
|
|
|
+ columnarData[index]["count"] = columnarData[index]["count"].(int) + 1
|
|
|
+ }
|
|
|
+ if item.Status == 4 && columnar["name"] == "submit" {
|
|
|
+ columnarData[index]["count"] = columnarData[index]["count"].(int) + 1
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if item.Status == 4 {
|
|
|
- rectifyedData[item.CreateTime.Format(conf.SysTimeformMonth)] = rectifyedData[item.CreateTime.Format(conf.SysTimeformMonth)] + 1
|
|
|
+ }
|
|
|
+
|
|
|
+ for index, line := range lineData {
|
|
|
+ rectifyedCount := 0
|
|
|
+ submitCount := 0
|
|
|
+ for _, columnar := range columnarData {
|
|
|
+ if line["month"] == columnar["month"] {
|
|
|
+ if columnar["name"] == "rectifyed" {
|
|
|
+ rectifyedCount = columnar["count"].(int)
|
|
|
+ }
|
|
|
+ if columnar["name"] == "submit" {
|
|
|
+ submitCount = columnar["count"].(int)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lineData[index]["count"] = 0.00
|
|
|
+ if rectifyedCount != 0 && submitCount != 0 {
|
|
|
+ decimal.DivisionPrecision = 0
|
|
|
+ lineData[index]["count"] = decimal.NewFromFloat(float64(rectifyedCount)).Div(decimal.NewFromFloat(float64(submitCount)))
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -217,8 +252,8 @@ func (s *qualityService) GetSurvey(projectId int, bidsectionId int) map[string]i
|
|
|
"rectifyTotal": rectifyTotal,
|
|
|
"approvalTotal": approvalTotal,
|
|
|
"rectifyedTotal": rectifyedTotal,
|
|
|
- "submitData": submitData,
|
|
|
- "rectifyedData": rectifyedData,
|
|
|
+ "columnarData": columnarData,
|
|
|
+ "lineData": lineData,
|
|
|
}
|
|
|
|
|
|
return surveryData
|