瀏覽代碼

前后:hse打印

wd 4 年之前
父節點
當前提交
29b4ff93f2

+ 3 - 0
src/dashoo.cn/backend/api/conf/app.conf

@@ -85,6 +85,9 @@ ContrastExcel=http://weed1.labsop.cn:9390/1,03eb5b7a97b8b0
 [bank]
 callbackHost=http://localhost:10091/api
 
+[HSE]
+HSEUrl=http://weed1.labsop.cn:9390/6,04fc24a640a08b
+
 [MsgUrl]
 msgUrl=http://api.dgyt.petrochina/jcfw/duanxin/v1.0/sendmsg
 

+ 44 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/hsescore.go

@@ -3,6 +3,7 @@ package oilsupplier
 import (
 	"dashoo.cn/backend/api/business/oilsupplier/hsescore"
 	"dashoo.cn/backend/api/business/oilsupplier/supplier"
+	"dashoo.cn/backend/api/business/workflow"
 	"encoding/json"
 	"fmt"
 	"github.com/tealeg/xlsx"
@@ -493,6 +494,49 @@ func (this *HSEScoreController) DeleteHSEScore() {
 	}
 }
 
+// @Title 打印证书到word文档
+// @Description 数据存入word
+// @Success	200	{object} controllers.Request
+// @router /exportWord/:id [post]
+func (this *HSEScoreController) ExportWord() {
+	Id := this.Ctx.Input.Param(":id")
+	var model hsescore.HSEScore
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &model)
+	var errinfo ErrorDataInfo
+
+	if Id == "" {
+		errinfo.Message = "信息不全"
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+
+	var hse hsescore.HSEScore
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	svc := hsescore.GetHSEScoreService(utils.DBE) //获得数据库引擎
+	svc.GetEntityByWhere(HSEScoreName, "Id = " + Id + " and SupplierId = " + strconv.Itoa(model.SupplierId), &hse)
+	if hse.Id == 0 {
+		errinfo.Message = "打印失败"
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+
+	dataMap := StructToMapDemo(hse)
+	url := utils.Cfg.MustValue("HSE", "HSEUrl")
+	fileName := "HSE培训合格证书.docx"
+
+	retDocUrl := svcActiviti.FillWordTemplate(dataMap, url, fileName)
+	var datainfo ErrorDataInfo
+	datainfo.Code = 0
+	datainfo.Item = retDocUrl
+	datainfo.Message = "打印成功"
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+
+}
+
 // @Title 服务类查询准入范围是否需要安全资质审查
 // @Description
 // @Success 200 {object} ErrorInfo

+ 8 - 0
src/dashoo.cn/frontend_web/src/api/hsescore/hsescore.js

@@ -53,6 +53,14 @@ export default {
       data: params
     })
   },
+  // 打印
+  exportWord (id, params, myAxios) {
+    return myAxios({
+      url: '/hse/exportWord/' + id,
+      method: 'post',
+      data: params
+    })
+  },
   // 删除
   deleteHSE (id, myAxios) {
     return myAxios({

+ 27 - 1
src/dashoo.cn/frontend_web/src/pages/select/hsescore/index.vue

@@ -73,8 +73,9 @@
         highlight-current-row
         stripe
       >
-        <el-table-column label="操作" width="200px" align="center" fixed="right" show-overflow-tooltip>
+        <el-table-column label="操作" width="250px" align="center" fixed="right" show-overflow-tooltip>
           <template slot-scope="scope">
+            <el-button type="primary" plain title="打印证书" size="mini" @click="download(scope.row)">打印证书</el-button>
             <el-button :disabled="disabled" type="primary" plain title="修改" size="mini" @click="update(scope.row)">修改</el-button>
             <el-button :disabled="disabled" type="danger" plain title="删除" size="mini" @click="deleteRow(scope.row.Id)">删除</el-button>
           </template>
@@ -421,6 +422,31 @@ export default {
       this.updateData.StartTime = ''
       this.updateData.EndTime = ''
     },
+    // 打印证书word
+    download(row) {
+      this.tableLoading = true
+      let params = {
+        SupplierId: row.SupplierId
+      }
+      hseApi.exportWord(row.Id, params, this.$axios)
+        .then(res => {
+          // response
+          if (res.data.code === 0) {
+            let docurl = res.data.item
+            // 内网服务器专用
+            if (process.client && docurl.indexOf('upfile') === 0) {
+              const myDomain = window.location.host
+              location.href = 'http://' + myDomain + '/' + docurl
+            } else {
+              location.href = 'http://' + docurl
+            }
+          }
+          this.tableLoading = false
+        }).catch(err => {
+          this.tableLoading = false
+          console.error(err)
+      })
+    },
     update(row) {
       this.title = '修改'
       this.addDialog = true