Jelajahi Sumber

合同评价优化

wd 2 tahun lalu
induk
melakukan
20009cb947

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

@@ -166,6 +166,69 @@ func (s *OilContractSumScoreService) GetPagingComputeEntitiesWithOrderBytbl(page
 	}
 	return total
 }
+func (s *OilContractSumScoreService) GetPagingComputeEntitiesWithOrderBytbl2(pageIndex, itemsPerPage int64, orderby string, asc bool, entitiesPtr interface{}, where string, having string, scoreType string, reviewWhere string, supplierWhere string) {
+	// 优秀、合格分数值从配置中取
+	var paramEntityList []baseparameter.Base_Parameter
+	paramsSvc := baseparameter.GetBaseparameterService(utils.DBE)
+	paramEntityList = paramsSvc.GetBaseparameterbyid("GFGL_CONTRACT", "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
+	where1 := ""
+	sql = `select YEAR(NOW()) as Year,contract.ContractClass,s.Id,s.SupplierName,count(review.id) as count, `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + ` then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore1,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('2') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore2,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('3') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore3,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('4') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore4,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('5') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore5,  `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3` + where1 + `  then 1 else 0 end),2) ConditionScore,  `
+
+	if scoreType == "2" {
+		where1 += " AND items.Category = 0 "
+	} else if scoreType == "3" {
+		where1 += " AND (items.Category = 1 or items.Category = 2) "
+	}
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + ` then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score1,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('2') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score2,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('3') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score3,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('4') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score4,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('5') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score5,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('6') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score6,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('7') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score7,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('8') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score8,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('9') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score9,  `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1` + where1 + `  then 1 else 0 end) * 0.75,2) Score,  `
+	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1` + where1 + `  then 1 else 0 end) * 0.75,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) * 0.75,2) < ` + good + ` then 2 else 1 end as Evaluate, `
+	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) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2)) CountScore `
+	sql += ` FROM OilSupplier s `
+	sql += ` LEFT JOIN OilSupplierCert c ON s.id = c.SupplierId `
+	sql += ` left join ` + controllers.OilContractName + ` contract on s.id=contract.SupplierId ` + where
+	sql += ` left join ` + controllers.OilContractReviewName + ` review on review.ContractId=contract.id ` + reviewWhere
+	sql += ` left join ` + controllers.OilContractEvaluationItemsName + ` items on items.ContentReviewId=review.id and items.LevelCode=1 ` + where1
+	sql += ` where 1=1 and c.InFlag != '3' and c.status = '8' ` + supplierWhere
+	sql += ` group by s.id, contract.SupplierId,contract.SupplierName `
+	sql += ` having ` + having
+	if asc {
+		sql += ` order by ` + orderby + ` ASC `
+	} else {
+		sql += ` order by ` + orderby + ` DESC `
+	}
+	if pageIndex != 0 && itemsPerPage != 0 {
+		sql += ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
+	}
+
+	s.DBE.SQL(sql).Find(entitiesPtr)
+}
 func (s *OilContractSumScoreService) GetComputeEntity(entitiesPtr interface{}, where string) {
 	// 优秀、合格分数值从配置中取
 	var paramEntityList []baseparameter.Base_Parameter

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

@@ -977,7 +977,9 @@ func (this *OilContractSumScoreController) DocExport() {
 // @Success	200	{object} controllers.Request
 // @router /exportexcel [get]
 func (this *OilContractSumScoreController) ExcelExport() {
-	where := " 1=1 "
+	where := " "
+	reviewWhere := " "
+	supplierWhere := " "
 	having := " 1=1 "
 	orderby := "contract.SupplierId"
 	asc := false
@@ -996,13 +998,14 @@ func (this *OilContractSumScoreController) ExcelExport() {
 	Evaluate := this.GetString("Evaluate", "")
 
 	if SupplierName != "" {
-		where = where + " and contract.SupplierName like '%" + SupplierName + "%'"
+		supplierWhere = supplierWhere + " and s.SupplierName like '%" + SupplierName + "%'"
 	}
 	if ScoreType == "2" {
-		where = where + " and review.IsBusiness=0 "
+		reviewWhere = reviewWhere + " and review.IsBusiness=0 "
 	}
 	if ContractClass != "" {
 		where = where + " and contract.ContractClass = '" + ContractClass + "'"
+		supplierWhere = supplierWhere + " and c.SupplierTypeCode = '" + ContractClass + "'"
 	}
 
 	// 优秀、合格分数值从配置中取
@@ -1031,7 +1034,7 @@ func (this *OilContractSumScoreController) ExcelExport() {
 	year := strconv.Itoa(time.Now().Year())
 	month := "01"
 	day := "01"
-	where = where + " and review.CreateOn>='" + year + "-" + month + "-" + day + "' "
+	reviewWhere = reviewWhere + " and review.CreateOn>='" + year + "-" + month + "-" + day + "' "
 
 	//if CreateOn != "" {
 	//	dates := strings.Split(CreateOn, ",")
@@ -1043,11 +1046,12 @@ func (this *OilContractSumScoreController) ExcelExport() {
 	//}
 
 	// 审核通过的参与核算
-	where = where + " and review.Status='8' "
+	reviewWhere = reviewWhere + " and review.Status='8' "
 
 	svc := contractSumScore.GetOilContractSumScoreService(utils.DBE)
 	var list []contractSumScore.OilContractComputeSumScoreVo
-	svc.GetPagingComputeEntitiesWithOrderBytbl(0, 0, orderby, asc, &list, where, having, ScoreType)
+	//svc.GetPagingComputeEntitiesWithOrderBytbl(0, 0, orderby, asc, &list, where, having, ScoreType)
+	svc.GetPagingComputeEntitiesWithOrderBytbl2(0, 0, orderby, asc, &list, where, having, ScoreType, reviewWhere, supplierWhere)
 
 
 	//if ContractClass == "02" {

+ 223 - 33
src/dashoo.cn/frontend_web/src/components/oilcontract/contractSelect.vue

@@ -205,7 +205,45 @@
               </div>
             </el-form>
           </el-tab-pane>
-          <el-tab-pane label="专业处室业绩评价" name="3"
+          <el-tab-pane label="基本条件评价" name="3">
+            <el-table highlight-current-row :data="entityListData3.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading3">
+              <el-table-column
+                property="SequenceNo"
+                label="序号"
+                header-align="center"
+                align="center"
+                width="80">
+              </el-table-column>
+              <el-table-column
+                property="Content"
+                header-align="center"
+                label="评价项目">
+              </el-table-column>
+              <el-table-column
+                property="NormalScore"
+                label="标准分值"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.NormalScore }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                property="Score"
+                label="实得分数"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.Score }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+              <div>标准总分:{{ standardConditionNum }}分</div>
+              <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getConditionNumFun() }}分</div>
+            </div>
+          </el-tab-pane>
+          <el-tab-pane label="专业处室业绩评价" name="4"
                        v-if="(Number(formData.Status)>=3||Number(formData.Status)<=-4) && (formData.IsBusiness != 1)">
             <el-form ref="formEvaluation" :model="entityListData1" label-width="0px">
               <el-table highlight-current-row :data="entityListData1.entityList" border height="calc(100vh - 243px)"
@@ -281,7 +319,44 @@
               </div>
             </el-form>
           </el-tab-pane>
-
+          <el-tab-pane label="专业处室基本条件评价" name="5" v-if="(Number(formData.Status)>=3||Number(formData.Status)<=-4) && (formData.IsBusiness != 1)">
+            <el-table highlight-current-row :data="entityListData4.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading4">
+              <el-table-column
+                property="SequenceNo"
+                label="序号"
+                header-align="center"
+                align="center"
+                width="80">
+              </el-table-column>
+              <el-table-column
+                property="Content"
+                header-align="center"
+                label="评价项目">
+              </el-table-column>
+              <el-table-column
+                property="NormalScore"
+                label="标准分值"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.NormalScore }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                property="Score"
+                label="实得分数"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.Score }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+              <div>标准总分:{{ standardConditionNum }}分</div>
+              <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getConditionNumFun1() }}分</div>
+            </div>
+          </el-tab-pane>
           <el-tab-pane label="审批流程" name="6" :disabled="formData.Status==0">
             <el-card class="box-card mycard">
               <div slot="header"
@@ -506,8 +581,7 @@
             </el-form>
           </el-tab-pane>
           <el-tab-pane label="基本条件评价" name="4">
-            <el-table highlight-current-row :data="entityListData3.entityList" border height="calc(100vh - 243px)"
-                      style="width: 100%" v-loading="tableLoading3">
+            <el-table highlight-current-row :data="entityListData3.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading3">
               <el-table-column
                 property="SequenceNo"
                 label="序号"
@@ -521,21 +595,28 @@
                 label="评价项目">
               </el-table-column>
               <el-table-column
-                property="Value"
-                label="是否满足"
+                property="NormalScore"
+                label="标准分值"
                 header-align="center"
-                align="center"
-                width="100">
+                width="120">
                 <template slot-scope="scope">
-                  <el-button size="mini" disabled type="success" v-if="Number(scope.row.Value)>0"
-                             @click="entityListData.entityList[scope.$index].Value=0">是
-                  </el-button>
-                  <el-button size="mini" disabled type="danger" v-else
-                             @click="entityListData.entityList[scope.$index].Value=1">否
-                  </el-button>
+                  <span>{{ scope.row.NormalScore }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                property="Score"
+                label="实得分数"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.Score }}</span>
                 </template>
               </el-table-column>
             </el-table>
+            <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+              <div>标准总分:{{ standardConditionNum }}分</div>
+              <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getConditionNumFun() }}分</div>
+            </div>
           </el-tab-pane>
           <el-tab-pane label="专业处室业绩评价" name="3"
                        v-if="(Number(formData.Status)>=3||Number(formData.Status)<=-4) && (formData.IsBusiness != 1)">
@@ -616,8 +697,7 @@
           <el-tab-pane
             v-if="(Number(formData.Status)>=3||Number(formData.Status)<=-4) && (formData.IsBusiness != 1)"
             label="专业处室基本条件评价" name="5">
-            <el-table highlight-current-row :data="entityListData4.entityList" border height="calc(100vh - 243px)"
-                      style="width: 100%" v-loading="tableLoading4">
+            <el-table highlight-current-row :data="entityListData4.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading4">
               <el-table-column
                 property="SequenceNo"
                 label="序号"
@@ -631,22 +711,28 @@
                 label="评价项目">
               </el-table-column>
               <el-table-column
-                property="Value"
-                label="是否满足"
+                property="NormalScore"
+                label="标准分值"
                 header-align="center"
-                align="center"
-                width="100">
+                width="120">
                 <template slot-scope="scope">
-                  <el-button size="mini" disabled type="success" v-if="Number(scope.row.Value)>0"
-                             @click="entityListData.entityList[scope.$index].Value=0">是
-                  </el-button>
-                  <el-button size="mini" disabled type="danger" v-else
-                             @click="entityListData.entityList[scope.$index].Value=1">否
-                  </el-button>
+                  <span>{{ scope.row.NormalScore }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                property="Score"
+                label="实得分数"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.Score }}</span>
                 </template>
               </el-table-column>
             </el-table>
-
+            <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+              <div>标准总分:{{ standardConditionNum }}分</div>
+              <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getConditionNumFun1() }}分</div>
+            </div>
           </el-tab-pane>
 
           <el-tab-pane label="审批流程" name="6" :disabled="formData.Status==0">
@@ -872,6 +958,44 @@
               </div>
             </el-form>
           </el-tab-pane>
+          <el-tab-pane label="基本条件评价" name="4">
+            <el-table highlight-current-row :data="entityListData3.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading3">
+              <el-table-column
+                property="SequenceNo"
+                label="序号"
+                header-align="center"
+                align="center"
+                width="80">
+              </el-table-column>
+              <el-table-column
+                property="Content"
+                header-align="center"
+                label="评价项目">
+              </el-table-column>
+              <el-table-column
+                property="NormalScore"
+                label="标准分值"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.NormalScore }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                property="Score"
+                label="实得分数"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.Score }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+              <div>标准总分:{{ standardConditionNum }}分</div>
+              <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getConditionNumFun() }}分</div>
+            </div>
+          </el-tab-pane>
           <el-tab-pane label="专业处室业绩评价" name="3"
                        v-if="(Number(formData.Status)>=3||Number(formData.Status)<=-4) && (formData.IsBusiness != 1)">
             <el-form ref="formEvaluation" :model="entityListData1" label-width="0px">
@@ -948,6 +1072,44 @@
               </div>
             </el-form>
           </el-tab-pane>
+          <el-tab-pane label="专业处室基本条件评价" name="5" v-if="(Number(formData.Status)>=3||Number(formData.Status)<=-4) && (formData.IsBusiness != 1)">
+            <el-table highlight-current-row :data="entityListData4.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading4">
+              <el-table-column
+                property="SequenceNo"
+                label="序号"
+                header-align="center"
+                align="center"
+                width="80">
+              </el-table-column>
+              <el-table-column
+                property="Content"
+                header-align="center"
+                label="评价项目">
+              </el-table-column>
+              <el-table-column
+                property="NormalScore"
+                label="标准分值"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.NormalScore }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                property="Score"
+                label="实得分数"
+                header-align="center"
+                width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.Score }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+              <div>标准总分:{{ standardConditionNum }}分</div>
+              <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getConditionNumFun1() }}分</div>
+            </div>
+          </el-tab-pane>
           <el-tab-pane label="审批流程" name="6" :disabled="formData.Status==0">
             <el-card class="box-card mycard">
               <div slot="header"
@@ -1040,6 +1202,32 @@ export default {
         }
         return num
       }
+    },
+    getConditionNumFun: function () {
+      return function () {
+        var num = 0
+        var list = this.entityListData3.entityList
+        for (var index = 0; index < list.length; index++) {
+          // var code = Number(list[index].LevelCode)
+          if (list[index].LevelCode == 1) {
+            num = num + Number(list[index].Score)
+          }
+        }
+        return num
+      }
+    },
+    getConditionNumFun1: function () {
+      return function () {
+        var num = 0
+        var list = this.entityListData4.entityList
+        for (var index = 0; index < list.length; index++) {
+          // var code = Number(list[index].LevelCode)
+          if (list[index].LevelCode == 1) {
+            num = num + Number(list[index].Score)
+          }
+        }
+        return num
+      }
     }
   },
   name: 'contractSelect',
@@ -1130,6 +1318,7 @@ export default {
       checkBUtton: false,
       saveButton: false,
       standardNum: 0, // 标准分数
+      standardConditionNum: 0, // 标准分数
       getNum: 0,// 实得总分
       saveButtonForBusiness: false,
       saveButtonForBusinessAudit: false
@@ -1214,10 +1403,12 @@ export default {
     },
     initReviewItems3 () {
       this.tableLoading3 = true
+      this.standardConditionNum = 0
+
       let data = {
         ContentReviewId: this.ReviewId,
         Category: this.formData.IsBusiness == 1 ? 2 : 0,
-        Type: 2
+        Type: 3
       }
       api.contractEvaluationTree(data, this.$axios).then(res => {
         this.tableLoading3 = false
@@ -1228,6 +1419,7 @@ export default {
             data[index].typeStatus = index
             data[index].Score = data[index].Score === undefined || data[index].Score === '' ? '0' : data[index].Score
             data[index].Category = 1
+            this.standardConditionNum = this.standardConditionNum + parseInt(data[index].NormalScore)
             list.push(data[index])
             if (data[index].Son != null && data[index].Son !== undefined) {
               for (let k = 0; k < data[index].Son.length; k++) {
@@ -1250,7 +1442,7 @@ export default {
       let data = {
         ContentReviewId: this.ReviewId,
         Category: this.formData.IsBusiness == 1 ? 2 : 1,
-        Type: 2
+        Type: 3
       }
       api.contractEvaluationTree(data, this.$axios).then(res => {
         this.tableLoading4 = false
@@ -1389,10 +1581,8 @@ export default {
         this.entrydetail.process = data.ProcessKey
         this.initReviewItems()
         this.initReviewItems1()
-        if (this.dialogVisible2) {
-          this.initReviewItems3()
-          this.initReviewItems4()
-        }
+        this.initReviewItems3()
+        this.initReviewItems4()
         if (data.Status != 0) {
           this.approvalProcess.disabled = false
         } else {

+ 12 - 12
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year/_opera/operation.vue

@@ -56,8 +56,8 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="项目组织实施(10分)" prop="SumScore1">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore1" :max="10" :min="0"
+                  <el-form-item label="项目组织及资源管理(20分)" prop="SumScore1">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore1" :max="20" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
@@ -71,43 +71,43 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="项目职业健康安全与环境管理(20分)" prop="SumScore3">
+                  <el-form-item label="职业健康安全与环境管理(20分)" prop="SumScore3">
                     <el-input-number :disabled="true" v-model="evaluateData.SumScore3" :max="20" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="项目成本管理(5分)" prop="SumScore4">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore4" :max="5" :min="0"
+                  <el-form-item label="项目进度管理(10分)" prop="SumScore4">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore4" :max="10" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
               </el-row>
               <el-row>
                 <el-col :span="8">
-                  <el-form-item label="项目进度管理(10分)" prop="SumScore5">
+                  <el-form-item label="项目分包管理(10分)" prop="SumScore5">
                     <el-input-number :disabled="true" v-model="evaluateData.SumScore5" :max="10" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                  <el-form-item label="项目分包管理(15分)" prop="SumScore6">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore6" :max="15" :min="0"
+                  <el-form-item label="信息资料管理(10分)" prop="SumScore6">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore6" :max="10" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                  <el-form-item label="信息资料管理(10分)" prop="SumScore7">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore7" :max="10" :min="0"
+                  <el-form-item label="合同及诚信履约(5分)" prop="SumScore7">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore7" :max="5" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
               </el-row>
               <el-row>
                 <el-col :span="8">
-                  <el-form-item label="诚信履约(10分)" prop="SumScore8">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore8" :max="10" :min="0"
+                  <el-form-item label="标准化管理(5分)" prop="SumScore8">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore8" :max="5" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>

+ 71 - 9
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year/index.vue

@@ -124,15 +124,12 @@
         <!--  </template>-->
         <!--</el-table-column>-->
 
-        <el-table-column show-overflow-tooltip label="评价内容及得分" header-align="center" >
-          <el-table-column sortable show-overflow-tooltip prop="Score1" header-align="center" label="项目组织实施(10分)" min-width="155" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score2" header-align="center" label="项目质量管理(20分)" min-width="160" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score3" header-align="center" label="项目职业健康安全与环境管理(20分)" min-width="255" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score4" header-align="center" label="项目成本管理(5分)" min-width="155" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score5" header-align="center" label="项目进度管理(10分)" min-width="155" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score6" header-align="center" label="项目分包管理(15分)" min-width="155" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score7" header-align="center" label="信息资料管理(10分)" min-width="155" align="center"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score8" header-align="center" label="诚信履约(10分)" min-width="155" align="center"></el-table-column>
+        <el-table-column show-overflow-tooltip label="评价内容及得分" header-align="center" min-width="160">
+          <el-table-column sortable show-overflow-tooltip align="center" header-align="center" width="170" v-for="(item, index) of oneList" :label="item.Content + '(' + item.NormalScore + '分)'" :key="index">
+            <template slot-scope="scope">
+              <span>{{ getScore(scope.row, index) }}</span>
+            </template>
+          </el-table-column>
         </el-table-column>
       </el-table>
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
@@ -240,6 +237,7 @@
 </template>
 <script>
   import { mapGetters } from 'vuex'
+  import contract from '@/api/oilcontract/contract';
   import api from '@/api/oilcontract/contractSumScore'
   import permissionApi from '@/api/oilcontract/permission'
   import FileSaver from 'file-saver'
@@ -287,6 +285,7 @@
     data () {
       return {
         yearList: [],
+        oneList: [],
         tableLoading: false,
 
         tableWidth: '290px',
@@ -329,6 +328,7 @@
     },
     created () {
       this.getYearList()
+      this.computeListHeader()
       // 查询条件初始值备份
       Object.assign(this.searchFormReset, this.searchForm)
       // 查询列表
@@ -337,11 +337,72 @@
       this.permissionIsauth()
     },
     methods: {
+      getScore (row, index) {
+        switch(index){
+          case 0:
+            return row.Score1
+            break;
+          case 1:
+            return row.Score2
+            break;
+          case 2:
+            return row.Score3
+            break;
+          case 3:
+            return row.Score4
+            break;
+          case 4:
+            return row.Score5
+            break;
+          case 5:
+            return row.Score6
+            break;
+          case 6:
+            return row.Score7
+            break;
+          case 7:
+            return row.Score8
+            break;
+          case 8:
+            return row.Score9
+            break;
+          default:
+            return '--'
+        }
+      },
       getYearList () {
         let now = new Date()
         let nowYear = now.getFullYear()
         this.yearList = [nowYear, nowYear - 1]
       },
+      // 获取表头
+      computeListHeader () {
+        const params = {
+          Year: this.searchForm.Year,
+          ContractClass: '02'
+        }
+        api.computeListHeader(params, this.$axios).then(res => {
+          console.log('获取表头', res)
+          if (res.data != null) {
+            this.oneList = res.data
+          } else {
+            this.computeListHeader2()
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      computeListHeader2 () {
+        const params = {
+          Category:1,
+        }
+        contract.evaluationItemsOnelist(params, '02', this.$axios).then(res => {
+          console.log('获取表头2', res)
+          if (res.data.currentItemCount > 0) {
+            this.oneList = res.data.items
+          }
+        })
+      },
       // 判断权限
       permissionIsauth () {
         var data = {
@@ -434,6 +495,7 @@
         this.initDatas()
       },
       handleSearch () {
+        this.computeListHeader()
         this.currentPage = 1
         this.dialogVisible = false
         this.initDatas()

+ 8 - 7
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods-year/_opera/operation.vue

@@ -53,30 +53,30 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="产品质量(30分)" prop="SumScore1">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore1" :max="30" :min="0"
+                  <el-form-item label="产品质量(20分)" prop="SumScore1">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore1" :max="20" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
               </el-row>
               <el-row>
                 <el-col :span="8">
-                  <el-form-item label="技术水平(20分)" prop="SumScore2">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore2" :max="20" :min="0"
+                  <el-form-item label="服务能力(15分)" prop="SumScore2">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore2" :max="15" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="服务能力(25分)" prop="SumScore3">
+                  <el-form-item label="合同履约(15分)" prop="SumScore3">
                     <el-input-number :disabled="true" v-model="evaluateData.SumScore3" :max="15" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="合同履约(25分)" prop="SumScore4">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore4" :max="15" :min="0"
+                  <el-form-item label="技术水平(10分)" prop="SumScore4">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore4" :max="10" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
@@ -250,6 +250,7 @@ import {
   mapGetters
 } from 'vuex'
 import api from '@/api/oilcontract/contractSumScore'
+import contract from '@/api/oilcontract/contract'
 import evaluationList from './evaluationlist'
 import baseList from './baselist'
 import WfHistory from '@/components/workflow/wfhistory.vue'

+ 19 - 8
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service-year/_opera/operation.vue

@@ -53,33 +53,44 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="项目管理(40分)" prop="SumScore1">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore1" :max="40" :min="0"
+                  <el-form-item label="项目组织及资源管理(20分)" prop="SumScore1">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore1" :max="20" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
               </el-row>
               <el-row>
                 <el-col :span="8">
-                  <el-form-item label="HES管理(30分)" prop="SumScore2">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore2" :max="30" :min="0"
+                  <el-form-item label="项目质量管理(20分)" prop="SumScore2">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore2" :max="20" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                  <el-form-item label="企业诚信(15分)" prop="SumScore3">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore3" :max="15" :min="0"
+                  <el-form-item label="职业健康、安全与环境管理(20分)" prop="SumScore3">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore3" :max="20" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="合同履行(15分)" prop="SumScore4">
+                  <el-form-item label="项目进度管理(15分)" prop="SumScore4">
                     <el-input-number :disabled="true" v-model="evaluateData.SumScore4" :max="15" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
-
+                <el-col :span="8">
+                  <el-form-item label="信息资料管理(10分)" prop="SumScore5">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore5" :max="10" :min="0"
+                                     placeholder="请输入" style="width: 100%"/>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="合同及诚信履约(10分)" prop="SumScore6">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore6" :max="10" :min="0"
+                                     placeholder="请输入" style="width: 100%"/>
+                  </el-form-item>
+                </el-col>
               </el-row>
               <el-row>
                 <!--<el-col :span="8">-->

+ 71 - 5
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service-year/index.vue

@@ -78,11 +78,12 @@
         <!--    {{evaluateFun(scope.row.Evaluate,scope.row.Result)}}-->
         <!--  </template>-->
         <!--</el-table-column>-->
-        <el-table-column show-overflow-tooltip label="评价内容及得分" header-align="center">
-          <el-table-column sortable show-overflow-tooltip prop="Score1" align="center" header-align="center" label="项目管理(40分)" width="140"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score2" align="center" header-align="center" label="HSE管理(30分)" width="140"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score3" align="center" header-align="center" label="企业诚信(15分)" width="140"></el-table-column>
-          <el-table-column sortable show-overflow-tooltip prop="Score4" align="center" header-align="center" label="合同履约(15分)" width="140"></el-table-column>
+        <el-table-column show-overflow-tooltip label="评价内容及得分" header-align="center" min-width="160">
+          <el-table-column sortable show-overflow-tooltip align="center" header-align="center" width="160" v-for="(item, index) of oneList" :label="item.Content + '(' + item.NormalScore + '分)'" :key="index">
+            <template slot-scope="scope">
+              <span>{{ getScore(scope.row, index) }}</span>
+            </template>
+          </el-table-column>
         </el-table-column>
       </el-table>
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
@@ -166,6 +167,7 @@
 </template>
 <script>
   import { mapGetters } from 'vuex';
+  import contract from '@/api/oilcontract/contract';
   import api from '@/api/oilcontract/contractSumScore';
   import permissionApi from '@/api/oilcontract/permission';
   import FileSaver from 'file-saver'
@@ -203,6 +205,7 @@
     data() {
       return {
         yearList: [],
+        oneList: [],
         tableLoading: false,
         jurisdictionBoolean:false,
         dialogVisible: false,
@@ -241,6 +244,7 @@
     },
     created() {
       this.getYearList()
+      this.computeListHeader()
       //查询条件初始值备份
       Object.assign(this.searchFormReset, this.searchForm);
       //查询列表
@@ -249,11 +253,72 @@
       this.permissionIsauth()
     },
     methods: {
+      getScore (row, index) {
+        switch(index){
+          case 0:
+            return row.Score1
+            break;
+          case 1:
+            return row.Score2
+            break;
+          case 2:
+            return row.Score3
+            break;
+          case 3:
+            return row.Score4
+            break;
+          case 4:
+            return row.Score5
+            break;
+          case 5:
+            return row.Score6
+            break;
+          case 6:
+            return row.Score7
+            break;
+          case 7:
+            return row.Score8
+            break;
+          case 8:
+            return row.Score9
+            break;
+          default:
+            return '--'
+        }
+      },
       getYearList () {
         let now = new Date()
         let nowYear = now.getFullYear()
         this.yearList = [nowYear, nowYear - 1]
       },
+      // 获取表头
+      computeListHeader () {
+        const params = {
+          Year: this.searchForm.Year,
+          ContractClass: '03'
+        }
+        api.computeListHeader(params, this.$axios).then(res => {
+          console.log('获取表头', res)
+          if (res.data != null) {
+            this.oneList = res.data
+          } else {
+            this.computeListHeader2()
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      computeListHeader2 () {
+        const params = {
+          Category:1,
+        }
+        contract.evaluationItemsOnelist(params, '03', this.$axios).then(res => {
+          console.log('获取表头2', res)
+          if (res.data.currentItemCount > 0) {
+            this.oneList = res.data.items
+          }
+        })
+      },
       // 判断权限
       permissionIsauth(){
         var data = {
@@ -340,6 +405,7 @@
         this.initDatas()
       },
       handleSearch() {
+        this.computeListHeader()
         this.currentPage = 1;
         this.dialogVisible = false;
         this.initDatas();

+ 1 - 1
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/basenewlist.vue

@@ -39,7 +39,7 @@
         </el-table-column>
       </el-table>
       <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
-        <div>标准总分(占总分的75%):{{ standardNum }}分</div>
+        <div>标准总分:{{ standardNum }}分</div>
         <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getNumFun() }}分</div>
       </div>
     </el-form>