Browse Source

初次提交审批

yuedefeng 6 years ago
parent
commit
6b84e1d72e

+ 2 - 0
src/dashoo.cn/backend/api/business/oilsupplier/supplier/oilsupplier.go

@@ -82,4 +82,6 @@ type OilSupplierView struct {
 	NationalCertTotal int `xorm:"default 0 comment('具有国家注册执业资格证书总数') INT(10)"`
 	DesignerTotal     int `xorm:"default 0 comment('设计人员总数') INT(10)"`
 	SkillerTotal      int `xorm:"default 0 comment('技术工人总数') INT(10)"`
+	Status            string    `xorm:"not null default '0' comment('状态标识(0未申请,1办理完毕)') VARCHAR(10)"`
+	WorkflowId        string    `xorm:"default '0' comment('工作流的ID') VARCHAR(255)"`
 }

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

@@ -48,6 +48,7 @@ type OilSupplierCert struct {
 	NationalCertTotal int       `xorm:"default 0 comment('具有国家注册执业资格证书总数') INT(10)"`
 	DesignerTotal     int       `xorm:"default 0 comment('设计人员总数') INT(10)"`
 	SkillerTotal      int       `xorm:"default 0 comment('技术工人总数') INT(10)"`
+	WorkflowId        string    `xorm:"default '0' comment('工作流的ID') VARCHAR(255)"`
 	CreateOn          time.Time `xorm:"DATETIME"`
 	CreateUserId      int       `xorm:"INT(10)"`
 	CreateBy          string    `xorm:"VARCHAR(50)"`

+ 27 - 2
src/dashoo.cn/backend/api/business/oilsupplier/suppliercert/oilsuppliercertService.go

@@ -1,8 +1,9 @@
 package suppliercert
 
 import (
-. "dashoo.cn/backend/api/mydb"
-"github.com/go-xorm/xorm"
+	"dashoo.cn/backend/api/business/workflow"
+	. "dashoo.cn/backend/api/mydb"
+	"github.com/go-xorm/xorm"
 )
 
 type OilSupplierCertService struct {
@@ -13,4 +14,28 @@ func GetOilSupplierCertService(xormEngine *xorm.Engine) *OilSupplierCertService
 	s := new(OilSupplierCertService)
 	s.DBE = xormEngine
 	return s
+}
+
+//关联委托方信息获取任务详情
+func (s *OilSupplierCertService) StartAudit(certId string, userNames string, userId string, result string, remarks string) {
+	//启动数据录入工作流
+	svcActiviti := workflow.GetActivitiService(s.DBE)
+	processInstanceId := svcActiviti.StartProcess(workflow.OIL_SUPPLIER_APPLY, certId, userId)
+
+	//fmt.Println(processInstanceId)
+	svcActiviti.TaskComplete(workflow.OIL_SUPPLIER_APPLY, certId, userNames, userId, result, remarks)
+
+	//记下workflowID
+	var supplierCertEntity OilSupplierCert
+	s.GetEntityById(certId, supplierCertEntity)
+	supplierCertEntity.WorkflowId = processInstanceId
+	supplierCertEntity.Status = "2" //二级单位初审
+	cols := []string{
+		"Id",
+		"WorkflowId",
+		"Status",
+	}
+	s.UpdateEntityByIdCols(certId, supplierCertEntity, cols)
+
+	return
 }

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

@@ -49,4 +49,7 @@ type WordTemplateVM struct {
 const (
 	//供方准入、增项业务流程图
 	OIL_SUPPLIER_APPLY string = "oil_supplier_apply"
+
+	//业务步骤编码
+	FIRST_TRIAL string = "FIRST_TRIAL"
 )

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

@@ -721,7 +721,7 @@ func (this *OilSupplierController) GetEntityAndCert() {
 	svc.GetEntityByIdBytbl(OilSupplierName, Id, &model)
 
 	var sql string
-	sql = `select a.*, b.Id as CertId, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, b.Step, b.WorkerTotal, b.ContractNum, b.UniversityNum, b.TechnicalNum, b.AboveProfNum, b.MiddleProfNum, b.NationalRegNum, b.NationalCertTotal, b.DesignerTotal, b.SkillerTotal from ` + OilSupplierName + ` a `
+	sql = `select a.*, b.Id as CertId, b.AccessCardNo, b.SupplierTypeCode, b.SupplierTypeName, b.Step, b.WorkerTotal, b.ContractNum, b.UniversityNum, b.TechnicalNum, b.AboveProfNum, b.MiddleProfNum, b.NationalRegNum, b.NationalCertTotal, b.DesignerTotal, b.SkillerTotal, b.WorkflowId, b.Status from ` + OilSupplierName + ` a `
 	sql += ` left join ` + OilSupplierCertName + " b on b.SupplierId = a.Id"
 	sql += ` where b.Id ='` + Id + `'`
 	utils.DBE.SQL(sql).Get(&model)

+ 59 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercert.go

@@ -1,7 +1,11 @@
 package oilsupplier
 
 import (
+	"dashoo.cn/backend/api/business/oilsupplier/classorgsetting"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
+	"dashoo.cn/backend/api/business/workflow"
 	"encoding/json"
+	"strconv"
 	"strings"
 	"time"
 
@@ -469,3 +473,58 @@ func (this *OilSupplierCertController) DeleteEntity() {
 		this.ServeJSON()
 	}
 }
+
+// @Title 提交审批
+// @Description 提交审批
+// @Param 	body body suppliercert.OilSupplierCert
+// @Success	200	{object} controllers.Request
+// @router /audit/:id [post]
+func (this *OilSupplierCertController) AuditEntity() {
+	Id := this.Ctx.Input.Param(":id")
+
+	//取出专业科室的部门ID
+	var subList []suppliercertsub.OilSupplierCertSub
+	certSubSrv := suppliercertsub.GetOilSupplierCertSubService(utils.DBE)
+	subWhere := " 1=1 "
+	subWhere += " and SupplierCertId='"+ Id +"'"
+	certSubSrv.GetEntitysByWhere(OilSupplierCertSubName, subWhere, &subList)
+	var subClassIds string
+	for _, certSub := range subList {
+		subClassIds += strconv.Itoa(certSub.SubclassId) + ","
+	}
+	subClassIds = strings.Trim(subClassIds, ",")
+
+	//取出审核部门
+	classorgSrv := classorgsetting.GetOilClassOrgSettingService(utils.DBE)
+	var list []classorgsetting.OilClassOrgSetting
+	var orgListStr string
+	var where string
+	where += " 1=1 "
+	where += " and ClassId in (" + subClassIds + ")"
+	where += " and AuditStepCode = '" + workflow.FIRST_TRIAL + "'"
+	classorgSrv.GetEntitysByWhere(OilClassOrgSettingName, where, &list)
+
+	for _, certsetting := range list {
+		orgListStr += "org_"+strconv.Itoa(certsetting.OrganizeId) + ","
+	}
+	orgListStr = strings.Trim(orgListStr, ",")
+    if len(orgListStr) > 0 {
+		//测试多实例工作流
+		svcFlow := suppliercert.GetOilSupplierCertService(utils.DBE)
+		svcFlow.StartAudit(Id, orgListStr, this.User.Id, "1", "提交给二级部门初审")
+
+	}
+
+	var errinfo ErrorDataInfo
+	if len(orgListStr) > 0 {
+		errinfo.Message = "审核提交成功"
+		errinfo.Code = 0
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "提交失败,未找到审核部门"
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}

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

@@ -37,5 +37,11 @@ export default {
       url: '/suppliercert/delete/' + entityId,
       method: 'delete'
     })
-  }
+  },
+  auditEntity (entityId, myAxios) {
+    return myAxios({
+      url: '/suppliercert/audit/' + entityId,
+      method: 'post'
+    })
+  },
 }

+ 47 - 20
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplier/_opera/techedit.vue

@@ -482,7 +482,7 @@
             <div slot="header" class="clearfix">
               <span>审批流程</span>
               <span style="float: right;">
-                <el-button type="primary" size="mini">提交审批</el-button>
+                <el-button type="primary" size="mini" :disabled="formDataCert.Status > 0" @click="AuditEntity">提交审批</el-button>
               </span>
             </div>
             <wf-history :entryinfo="entrydetail"></wf-history>
@@ -498,15 +498,16 @@
     mapGetters
   } from 'vuex'
   import api from '@/api/oilsupplier/supplier'
+  import apiCert from '@/api/oilsupplier/suppliercert'
   import SupplierFileTable from '@/pages/oilsupplier/supplierfile/table.vue'
   import WfHistory from '@/components/workflow/wfhistory.vue'
   import SupplierCertEdit from '@/components/oilsupplier/suppliercertedit.vue'
 
-  import EquipmentList from '../../../../components/oilsupplier/equipmentlist'
-  import PerformanceList from '../../../../components/oilsupplier/performancelist'
-  import PatentList from '../../../../components/oilsupplier/patentlist'
-  import WinningList from '../../../../components/oilsupplier/winninglist'
-  import BusinessList from '../../../../components/oilsupplier/businesslist'
+  import EquipmentList from '@/components/oilsupplier/equipmentlist'
+  import PerformanceList from '@/components/oilsupplier/performancelist'
+  import PatentList from '@/components/oilsupplier/patentlist'
+  import WinningList from '@/components/oilsupplier/winninglist'
+  import BusinessList from '@/components/oilsupplier/businesslist'
 
   export default {
     components: {
@@ -527,11 +528,11 @@
     },
     name: 'oilsupplierEdit',
 
-    data() {
+    data () {
       return {
         equipmentList: [], //企业主要装备情况
-        performanceList: [], //近三年主要工程业绩       
-        patentList: [], //拥有专利、专有技术及工法      
+        performanceList: [], //近三年主要工程业绩
+        patentList: [], //拥有专利、专有技术及工法
         winningList: [], //近三年获得省部级及以上主要技术、管理成果、获奖项目
         businessList: [], //准入业务
 
@@ -611,8 +612,8 @@
           SupplierTypeCode: '03',
           SupplierTypeName: '技术服务类',
           Step: 0
-
         },
+
         formDataCert: {
           WorkerTotal: 0,
           ContractNum: 0,
@@ -624,20 +625,21 @@
           NationalCertTotal: 0,
           DesignerTotal: 0,
           SkillerTotal: 0,
+          Status: 0,
+          WorkflowId: ''
         },
         entrydetail: {
           process: 'oil_supplier_apply',
-          business: '4',
-          instance: '145001',
-        },
+          business: '',
+          instance: ''
+        }
       }
     },
-    created() {
+    created () {
       this.serviceId = this.$route.params.opera
       this.certId = this.$route.query.certid
       this.getDictOptions()
-
-      if (this.serviceId != 'add' && this.serviceId > 0) {
+      if (this.serviceId !== 'add' && this.serviceId > 0) {
         this.formData.Id = this.serviceId
         this.initDatas()
       } else {
@@ -658,7 +660,7 @@
         this.$refs["winningList"].showDialog()
       },
 
-      initDatas() {
+      initDatas () {
         if (this.formData.Id) {
           api.getEntityAndCert(this.certId, this.$axios).then(res => {
             this.formData = res.data
@@ -672,16 +674,21 @@
             this.formDataCert.NationalCertTotal = this.formData.NationalCertTotal
             this.formDataCert.DesignerTotal = this.formData.DesignerTotal
             this.formDataCert.SkillerTotal = this.formData.SkillerTotal
+            this.formDataCert.Status = this.formData.Status
+            this.formDataCert.WorkflowId = this.formData.WorkflowId
+
+            this.entrydetail.business = this.certId
+            this.entrydetail.instance = this.formDataCert.WorkflowId
           }).catch(err => {
             console.error(err)
           });
         }
       },
 
-      getDictOptions() {
-        api.getDictList(this.$axios).then(res => {}).catch(err => {
+      getDictOptions () {
+        /*api.getDictList(this.$axios).then(res => {}).catch(err => {
           console.error(err)
-        })
+        })*/
       },
 
       //保存信息
@@ -793,6 +800,26 @@
         });
       },
 
+      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)
+        });
+      },
+
       jstimehandle(val) {
         if (val === '') {
           return '----'

+ 3 - 3
src/dashoo.cn/frontend_web/src/pages/system/auditsetting/_opera/operation.vue

@@ -52,7 +52,7 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="6">
+          <!--<el-col :span="6">
             <el-form-item label="工作流" required>
               <el-select ref="selectWorkFlow" v-model="formData.WorkFlowCord" filterable placeholder="请选择" style="width: 100%">
                 <el-option
@@ -63,7 +63,7 @@
                 </el-option>
               </el-select>
             </el-form-item>
-          </el-col>
+          </el-col>-->
 
           <el-col :span="24">
             <el-form-item label="备注">
@@ -162,7 +162,7 @@
             // this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
             this.formData.AuditStepName = this.$refs.selectAuditStep.selectedLabel + ''
             this.formData.RoleName = this.$refs.selectRole.selectedLabel + ''
-            this.formData.WorkFlowName = this.$refs.selectWorkFlow.selectedLabel + ''
+            // this.formData.WorkFlowName = this.$refs.selectWorkFlow.selectedLabel + ''
             this.formData.OrganizeId = parseInt(this.formData.OrganizeId)
             if (!this.formData.Id) {
               this.addEntity()