lining hace 6 años
padre
commit
443faefae6

+ 1 - 0
src/dashoo.cn/backend/api/business/oilsupplier/suppliercert/oilsuppliercert.go

@@ -66,6 +66,7 @@ type OilSupplierVM struct {
 const (
 	DRAFT_STATUS string = "0" //草稿状态
 	FIRST_TRIAL_STATUS string = "1" //二级单位初审
+	SECOND_TRIAL_STATUS string = "2" //二级单位复审
 	PROF_AUDIT_STATUS string = "2" //专业科室审核
 )
 

+ 9 - 4
src/dashoo.cn/backend/api/business/oilsupplier/suppliercert/oilsuppliercertService.go

@@ -1,6 +1,7 @@
 package suppliercert
 
 import (
+	"dashoo.cn/utils"
 	"strconv"
 	"strings"
 
@@ -24,7 +25,7 @@ func GetOilSupplierCertService(xormEngine *xorm.Engine) *OilSupplierCertService
 }
 
 //通用多部门多实例审核方法
-func (s *OilSupplierCertService) SubmitOrgAudit(certId, wfName, wfNodeCode, userId, result, remarks, OilSupplierCertSubName, OilClassOrgSettingName string) (processInstanceId string) {
+func (s *OilSupplierCertService) SubmitOrgAudit(certId, wfName, wfNodeCode, userId, result, remarks, OilSupplierCertSubName, OilClassOrgSettingName string, status string, step string) (processInstanceId, res string) {
 	//取出审批列表
 	var supplierCert OilSupplierCert
 	s.GetEntityById(certId, &supplierCert)
@@ -104,9 +105,13 @@ func (s *OilSupplierCertService) SubmitOrgAudit(certId, wfName, wfNodeCode, user
 	ActiComplete.UserId = userId
 	ActiComplete.Result = result
 	ActiComplete.Remarks = remarks
-	ActiComplete.CallbackUrl = ""
-	svcActiviti.MultiTaskComplete(ActiComplete)
-	return processInstanceId
+	if status == "" {
+		ActiComplete.CallbackUrl = ""
+	} else {
+		ActiComplete.CallbackUrl =  utils.Cfg.MustValue("workflow", "callbackHost")+"/api/suppliercert/auditcallback?Id=" + strconv.Itoa(supplierCert.Id) + "&status=" + status + "&step=" + step
+	}
+	res = svcActiviti.MultiTaskComplete(ActiComplete)
+	return processInstanceId,res
 }
 
 //查询已经申请的准入记录

+ 1 - 1
src/dashoo.cn/backend/api/business/workflow/ActivitiService.go

@@ -34,7 +34,7 @@ func GetActivitiService(xormEngine *xorm.Engine) *ActivitiService {
 	//s.BaseUrl = "http://123.56.168.26:8080/activiti-rest/service"
 	//s.BaseUrl = "http://localhost:8081/api/acti"
 	s.BaseUrl = "http://47.92.212.59:8080/acti-api/api/acti"
-	//s.BaseUrl = "http://192.168.0.171:8081/api/acti"
+	//s.BaseUrl = "http://localhost:8081/api/acti"
 	s.AposeUrl = "http://47.92.212.59:8080/acti-api/api/apose"
 	//s.OriginUrl = "http://localhost:8081/api"
 	s.OriginUrl = "http://47.92.212.59:8080/acti-api/api"

+ 3 - 2
src/dashoo.cn/backend/api/business/workflow/workflow.go

@@ -69,9 +69,10 @@ const (
 	OIL_SUPPLIER_APPLY string = "oil_supplier_apply"
 	//增项业务
 	OIL_SUPPLIER_APPEND string = "oil_supplier_append"
-	//业务步骤编码
+	//业务步骤编码 初审
 	FIRST_TRIAL string = "FIRST_TRIAL"
-
+	// 复审
+	SECOND_TRIAL string= "SECOND_TRIAL"
 	//业务处室专业审核
 	PROF_AUDIT string = "PROF_AUDIT"
 

+ 1 - 1
src/dashoo.cn/backend/api/conf/app.conf

@@ -72,4 +72,4 @@ pwd=zks123456
 domain=oil_supplier
 
 [workflow]
-callbackHost=http://192.168.0.194:10091
+callbackHost=http://47.92.249.239:10091

+ 1 - 1
src/dashoo.cn/backend/api/controllers/base.go

@@ -272,7 +272,7 @@ func (this *BaseController) Prepare() {
 		"/api/webinterface/preparelist", "/api/webinterface/prepareinfo",
 		"/api/sampletest_v/sampletest", "/api/sampletest_v/getpass", "/api/sampletest_v/editpass/",
 		"/api/sampletest_v/donorsdetail", "/api/sampletest_v/testdetail", "/api/uploads/samplesinput", "/api/doctemplate_onlyoffice/callback", "/api/doctemplate_onlyoffice/viewcallback", "/api/limsupload/usersignimg",
-		"/api/uploads/samplestypeimg", "/api/workflow/historyimg/", "/api/document/getdocumentnameandtime", "/api/annualaudit/auditcallback"}
+		"/api/uploads/samplestypeimg", "/api/workflow/historyimg/", "/api/document/getdocumentnameandtime", "/api/annualaudit/auditcallback","/api/suppliercert/auditcallback"}
 	for _, v := range urls {
 		fmt.Println("**this.Ctx.Input.URL()**", this.Ctx.Input.URL())
 		if this.Ctx.Input.URL() == v {

+ 5 - 4
src/dashoo.cn/backend/api/controllers/oilsupplier/supplier.go

@@ -678,10 +678,11 @@ func (this *OilSupplierController) GetMyTaskEntityList() {
 	orderby := "Id"
 	asc := false
 	Order := this.GetString("Order")
-	Statustype := this.GetString("Statustype")
-	if Statustype != "" {
-		where = " 1=1 and b.Status =" + Statustype
-	}
+	//Statustype := this.GetString("Statustype")
+	//if Statustype != "" {
+	//	where = " 1=1 and b.Status =" + Statustype
+	//}
+	where = where + " and b.Status>0"
 	Prop := this.GetString("Prop")
 	if Order != "" && Prop != "" {
 		orderby = Prop

+ 85 - 43
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercert.go

@@ -3,6 +3,7 @@ package oilsupplier
 import (
 	"encoding/json"
 	"fmt"
+	"strconv"
 	"strings"
 	"time"
 
@@ -520,14 +521,14 @@ func (this *OilSupplierCertController) AuditEntity() {
 
 	//取出审批列表
 	certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
-	processInstanceId := certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.FIRST_TRIAL, this.User.Id, result, "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName)
+	processInstanceId,_ := certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.FIRST_TRIAL, this.User.Id, result, "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName, "", "")
 	fmt.Println("-----------processInstanceId------------", processInstanceId)
 	//记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
 	var supplierCertEntity suppliercert.OilSupplierCert
 	certSrv.GetEntityById(certId, supplierCertEntity)
 	supplierCertEntity.WorkflowId = processInstanceId
 	supplierCertEntity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
-	supplierCertEntity.Step = 4
+	supplierCertEntity.Step = 2
 	cols := []string{
 		"Id",
 		"WorkflowId",
@@ -560,7 +561,7 @@ func (this *OilSupplierCertController) AuditEntityadmission() {
 	}()
 	//取出审批列表
 	certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
-	certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.PROF_AUDIT, this.User.Id, "1", "提交给专业科室审核", OilSupplierCertSubName, OilClassOrgSettingName)
+	certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.PROF_AUDIT, this.User.Id, "1", "提交给专业科室审核", OilSupplierCertSubName, OilClassOrgSettingName, "", "")
 	//记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
 	var supplierCertEntity suppliercert.OilSupplierCert
 	certSrv.GetEntityById(certId, supplierCertEntity)
@@ -616,43 +617,84 @@ func (this *OilSupplierCertController) AuditEntityappend() {
 	certSrv.UpdateEntityByIdCols(certId, supplierCertAppendEntity, cols)
 }
 
-//// @Title 提交二级审批
-//// @Description 提交二级审批
-//// @Param 	body body suppliercert.OilSupplierCert
-//// @Success	200	{object} controllers.Request
-//// @router /audit/:id [post]
-//func (this *OilSupplierCertController) AuditEntity() {
-//	certId := this.Ctx.Input.Param(":id")
-
-//	var errinfo ErrorDataInfo
-//	defer func() { //finally处理失败的异常
-//		if err := recover(); err != nil {
-//			errinfo.Message = "提交失败," + err.(string)
-//			errinfo.Code = -1
-//			this.Data["json"] = &errinfo
-//			this.ServeJSON()
-//		} else {
-//			//返回正确结果
-//			errinfo.Message = "审核提交成功"
-//			errinfo.Code = 0
-//			this.Data["json"] = &errinfo
-//			this.ServeJSON()
-//		}
-//	}()
-
-//	//取出审批列表
-//	certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
-//	processInstanceId := certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, workflow.FIRST_TRIAL, this.User.Id, "1", "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName)
-
-//	//记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
-//	var supplierCertEntity suppliercert.OilSupplierCert
-//	certSrv.GetEntityById(certId, supplierCertEntity)
-//	supplierCertEntity.WorkflowId = processInstanceId
-//	supplierCertEntity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
-//	cols := []string{
-//		"Id",
-//		"WorkflowId",
-//		"Status",
-//	}
-//	certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
-//}
+// @Title 审批
+// @Description 审批
+// @Param 	body body suppliercert.OilSupplierCert
+// @Success	200	{object} controllers.Request
+// @router /auditEntityFir/:id [post]
+func (this *OilSupplierCertController) AuditEntityFir() {
+	certId := this.Ctx.Input.Param(":id")
+	status := this.GetString("status")
+	var jsonblob = this.Ctx.Input.RequestBody
+	var dataother ShenHeModel
+	json.Unmarshal(jsonblob, &dataother)
+	var errinfo ErrorDataInfo
+	defer func() { //finally处理失败的异常
+		if err := recover(); err != nil {
+			errinfo.Message = "提交失败," + err.(string)
+			errinfo.Code = -1
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+		} else {
+			//返回正确结果
+			errinfo.Message = "审核提交成功"
+			errinfo.Code = 0
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+		}
+	}()
+
+	wfNodeCode := "" // 审批步骤
+	remarks := ""
+	if status == "1" {
+		wfNodeCode = workflow.SECOND_TRIAL
+		remarks = "提交给二级单位复审"
+	} else if status == "2" {
+		wfNodeCode = workflow.PROF_AUDIT
+		remarks = "提交给专业处审批"
+	} else if status == "3" {
+
+	} else if status == "4" {
+
+	}
+
+	if dataother.SuccessStatus == 1 {
+		//取出审批列表
+		certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+		_,res := certSrv.SubmitOrgAudit(certId, workflow.OIL_SUPPLIER_APPLY, wfNodeCode, this.User.Id, "1", remarks, OilSupplierCertSubName, OilClassOrgSettingName, suppliercert.SECOND_TRIAL_STATUS, "2")
+		if res == "true" {
+			errinfo.Message = "审核通过!"
+			errinfo.Code = 0
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+		} else {
+			errinfo.Message = "工作流异常,请联系管理员!"
+			errinfo.Code = -1
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+		}
+	} else {
+
+	}
+}
+
+// @Title 审核
+// @Description 审核
+// @Success	200	{object} controllers.Request
+// @router /auditcallback [get]
+func (this *OilSupplierCertController) AuditCallback() {
+	id := this.GetString("Id")
+	status := this.GetString("status")
+	step := this.GetString("step")
+	var supplierCertEntity suppliercert.OilSupplierCert
+	svc := suppliercert.GetOilSupplierCertService(utils.DBE)
+	supplierCertEntity.Status = status
+	supplierCertEntity.Step,_ = strconv.Atoi(step)
+	cols := []string{
+		"Id",
+		"Status",
+		"step",
+	}
+	svc.UpdateEntityByIdCols(id, supplierCertEntity, cols)
+	fmt.Println(id,status,step)
+}

+ 7 - 0
src/dashoo.cn/frontend_web/src/api/oilsupplier/suppliercert.js

@@ -63,5 +63,12 @@ export default {
       url: '/suppliercert/auditappend/' + entityId,
       method: 'post'
     })
+  },
+  auditEntityFir (entityId, status, params, myAxios) {
+    return myAxios({
+      url: '/suppliercert/auditEntityFir/' + entityId + '?status=' + status,
+      method: 'post',
+      data: params
+    })
   }
 }

+ 116 - 66
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplieraudit/_opera/goodsedit.vue

@@ -11,6 +11,7 @@
           <i class="icon icon-table2"></i> 审批
         </span>
         <span style="float: right;">
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="AuditEntity">审批</el-button>
           <router-link :to="'/oilsupplier/supplieraudit'">
             <el-button type="primary" size="mini" style="margin-left: 8px">返回</el-button>
           </router-link>
@@ -23,7 +24,8 @@
             <div slot="header" class="clearfix">
               <span>供方基本信息表</span>
             </div>
-            <goods-info ref="TechInfo" :formData.sync="formData" :dictData.sync="dictData" :disabled="true"></goods-info>
+            <goods-info ref="TechInfo" :formData.sync="formData" :dictData.sync="dictData"
+                        :disabled="true"></goods-info>
           </el-card>
         </el-tab-pane>
 
@@ -158,6 +160,23 @@
         </el-tab-pane>
       </el-tabs>
     </el-card>
+    <el-dialog title="审核" :visible.sync="dialogMakeSure">
+      <el-form :model="shenheForm" label-width="100px" ref="shenheForm">
+        <el-form-item label="审核状态">
+          <template>
+            <el-radio class="radio" v-model="shenheForm.SuccessStatus" :label="1">通过</el-radio>
+            <el-radio class="radio" v-model="shenheForm.SuccessStatus" :label="2">未通过</el-radio>
+          </template>
+        </el-form-item>
+        <el-form-item label="意见">
+          <el-input type="textarea" v-model="formData.AuditorRemark" placeholder="请输入审核说明"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer" style="margin-top: -25px">
+        <el-button size="small" @click="dialogMakeSure = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="makeSure()">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -184,11 +203,11 @@
       WfHistory,
       SupplierCertEdit,
 
-      EquipmentList, //企业主要装备情况
-      PerformanceList, //近三年主要工程业绩列表
-      PatentList, //拥有专利、专有技术及工法列表
-      WinningList, //近三年获得省部级及以上主要技术、管理成果、获奖项目列表
-      AuditbusList, //待审核业务
+      EquipmentList, // 企业主要装备情况
+      PerformanceList, // 近三年主要工程业绩列表
+      PatentList, // 拥有专利、专有技术及工法列表
+      WinningList, // 近三年获得省部级及以上主要技术、管理成果、获奖项目列表
+      AuditbusList, // 待审核业务
       GoodsInfo
     },
     computed: {
@@ -198,18 +217,25 @@
     },
     name: 'oilsupplierEdit',
 
-    data() {
+    data () {
       return {
-        equipmentList: [], //企业主要装备情况
-        performanceList: [], //近三年主要工程业绩
-        patentList: [], //拥有专利、专有技术及工法
-        winningList: [], //近三年获得省部级及以上主要技术、管理成果、获奖项目
-        auditbusList: [], //待审核业务
+        equipmentList: [], // 企业主要装备情况
+        performanceList: [], // 近三年主要工程业绩
+        patentList: [], // 拥有专利、专有技术及工法
+        winningList: [], // 近三年获得省部级及以上主要技术、管理成果、获奖项目
+        auditbusList: [], // 待审核业务
 
         serviceId: '',
         certId: '',
         classId: '01',
         dictData: null,
+        dialogMakeSure: false,
+
+        shenheForm: {
+          SuccessStatus: 3,
+          AuditorRemark: '',
+          AnnualId: 0
+        },
 
         formData: {
           Id: '',
@@ -306,8 +332,7 @@
         }
       }
     },
-    created() {
-
+    created () {
       this.serviceId = this.$route.params.opera + ''
       this.certId = this.$route.query.certid + ''
       if (this.serviceId !== 'add' && this.serviceId > 0) {
@@ -319,17 +344,17 @@
       this.initDatas()
     },
     methods: {
-      equipmentdialog() {
-        this.$refs["equipmentList"].showDialog()
+      equipmentdialog () {
+        this.$refs['equipmentList'].showDialog()
       },
-      performancedialog() {
-        this.$refs["performanceList"].showDialog()
+      performancedialog () {
+        this.$refs['performanceList'].showDialog()
       },
-      patentdialog() {
-        this.$refs["patentList"].showDialog()
+      patentdialog () {
+        this.$refs['patentList'].showDialog()
       },
-      winningdialog() {
-        this.$refs["winningList"].showDialog()
+      winningdialog () {
+        this.$refs['winningList'].showDialog()
       },
 
       initDatas () {
@@ -353,7 +378,7 @@
             this.entrydetail.instance = this.formDataCert.WorkflowId
           }).catch(err => {
             console.error(err)
-          });
+          })
         }
       },
 
@@ -365,75 +390,72 @@
         })
       },
 
-      //保存信息
-      saveEntity() {
+      // 保存信息
+      saveEntity () {
         this.$refs['EntityForm'].validate((valid) => {
           if (valid) {
-            //this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
+            // this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
             if (!this.formData.Id) {
               this.addEntity()
             } else {
               this.updateEntity()
             }
-
           } else {
             return false
           }
         })
       },
 
-      //保存信息
-      saveCertEntity() {
+      // 保存信息
+      saveCertEntity () {
         this.$refs['SupplierCertEditCompoment'].saveEntity()
       },
 
-      addEntity() {
+      addEntity () {
         this.formData.SupplierTypeCode = '02'
         this.formData.SupplierTypeName = '物资类'
         api.addEntity(this.formData, this.$axios).then(res => {
           if (res.data.code === 0) {
-            //保存成功后,初始化数据,变成修改
+            // 保存成功后,初始化数据,变成修改
             this.formData.Id = res.data.item.split('_')[0]
             this.certId = res.data.item.split('_')[1]
             this.initDatas()
             this.$message({
               type: 'success',
               message: res.data.message
-            });
-
+            })
           } else {
             this.$message({
               type: 'warning',
               message: res.data.message
-            });
+            })
           }
         }).catch(err => {
           console.error(err)
-        });
+        })
       },
 
-      updateEntity() {
+      updateEntity () {
         api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
           if (res.data.code === 0) {
-            //保存成功后,初始化数据,变成修改
+            // 保存成功后,初始化数据,变成修改
             this.initDatas()
             this.$message({
               type: 'success',
               message: res.data.message
-            });
-
+            })
           } else {
             this.$message({
               type: 'warning',
               message: res.data.message
-            });
+            })
           }
         }).catch(err => {
           console.error(err)
-        });
+        })
       },
 
-      CheckCompanyBase() {
+      CheckCompanyBase () {
         if (!this.formData.Id) {
           this.$message({
             type: 'error',
@@ -450,51 +472,80 @@
         }
         return true
       },
-      //企业人员结构情况
-      updateNumberEntity() {
+      // 企业人员结构情况
+      updateNumberEntity () {
         if (!this.CheckCompanyBase()) {
           return false
         }
         api.updateNumberEntity(this.formData.Id + '_' + this.certId, this.formDataCert, this.$axios).then(res => {
           if (res.data.code === 0) {
-            //保存成功后,初始化数据,变成修改
+            // 保存成功后,初始化数据,变成修改
             this.initDatas()
             this.$message({
               type: 'success',
               message: res.data.message
-            });
+            })
           } else {
             this.$message({
               type: 'warning',
               message: res.data.message
-            });
+            })
           }
         }).catch(err => {
           console.error(err)
-        });
+        })
+      },
+
+      AuditEntity () {
+        // apiCert.auditEntity(this.certId, this.$axios).then(res => {
+        //   if (res.data.code === 0) {
+        //     //保存成功后,初始化数据,变成修改
+        //     this.initDatas()
+        //     this.$message({
+        //       type: 'success',
+        //       message: res.data.message
+        //     });
+        //   } else {
+        //     this.$message({
+        //       type: 'warning',
+        //       message: res.data.message
+        //     });
+        //   }
+        // }).catch(err => {
+        //   console.error(err)
+        // });
+        this.dialogMakeSure = true
       },
 
-      AuditEntity() {
-        apiCert.auditEntity(this.certId, this.$axios).then(res => {
+      // 审核通过
+      makeSure () {
+        this.dialogMakeSure = false
+        this.checkstatus()
+      },
+
+      checkstatus () {
+        let params = this.shenheForm
+        console.log(this.shenheForm, '---this.shenheForm----')
+        apiCert.auditEntityFir(this.certId, this.formData.Status, params, this.$axios).then(res => {
           if (res.data.code === 0) {
-            //保存成功后,初始化数据,变成修改
             this.initDatas()
             this.$message({
               type: 'success',
               message: res.data.message
-            });
+            })
           } else {
             this.$message({
               type: 'warning',
               message: res.data.message
-            });
+            })
           }
+          this.applyLoading = false
         }).catch(err => {
           console.error(err)
-        });
+        })
       },
 
-      jstimehandle(val) {
+      jstimehandle (val) {
         if (val === '') {
           return '----'
         } else if (val === '0001-01-01T08:00:00+08:00') {
@@ -507,20 +558,19 @@
         }
       },
 
-      formatDateTime(date) {
-        var y = date.getFullYear();
-        var m = date.getMonth() + 1;
-        m = m < 10 ? ('0' + m) : m;
-        var d = date.getDate();
-        d = d < 10 ? ('0' + d) : d;
-        var h = date.getHours();
-        var minute = date.getMinutes();
-        minute = minute < 10 ? ('0' + minute) : minute;
-        return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+      formatDateTime (date) {
+        var y = date.getFullYear()
+        var m = date.getMonth() + 1
+        m = m < 10 ? ('0' + m) : m
+        var d = date.getDate()
+        d = d < 10 ? ('0' + d) : d
+        var h = date.getHours()
+        var minute = date.getMinutes()
+        minute = minute < 10 ? ('0' + minute) : minute
+        return y + '-' + m + '-' + d + ' ' + h + ':' + minute
       }
     }
   }
-
 </script>
 
 <style lang="scss">