瀏覽代碼

年审申请

baichengfei 5 年之前
父節點
當前提交
15b70bbec3

+ 4 - 0
src/dashoo.cn/backend/api/business/oilsupplier/annualaudit/annualaudit.go

@@ -11,10 +11,12 @@ type OilAnnualAudit struct {
 	Step             int       `xorm:"comment('页面上第几步') INT(10)"`
 	AuditIndex       int       `xorm:"default 0 comment('审批次数') INT(11)"`
 	BusinessKey      string    `xorm:"VARCHAR(255)"`
+	ProcessKey       string    `xorm:"VARCHAR(255)"`
 	FenbanAudit      int       `xorm:"default 0 comment('分办') INT(10)"`
 	FirstAudit       int       `xorm:"default 0 comment('初审') INT(10)"`
 	SecondAudit      int       `xorm:"default 0 comment('复审') INT(10)"`
 	ThirdAudit       int       `xorm:"default 0 comment('专业科室审批') INT(10)"`
+	CommitComId      string    `xorm:"default '0' comment('提交二级单位Id') VARCHAR(50)"`
 	AccessCardNo     string    `xorm:"comment('准入证号') VARCHAR(50)"`
 	SupplierTypeName string    `xorm:"comment('准入类别') VARCHAR(50)"`
 	SupplierName     string    `xorm:"comment('企业名称') VARCHAR(50)"`
@@ -56,10 +58,12 @@ type Del_OilAnnualAudit struct {
 	Step             int       `xorm:"comment('页面上第几步') INT(10)"`
 	AuditIndex       int       `xorm:"default 0 comment('审批次数') INT(11)"`
 	BusinessKey      string    `xorm:"VARCHAR(255)"`
+	ProcessKey       string    `xorm:"VARCHAR(255)"`
 	FenbanAudit      int       `xorm:"default 0 comment('分办') INT(10)"`
 	FirstAudit       int       `xorm:"default 0 comment('初审') INT(10)"`
 	SecondAudit      int       `xorm:"default 0 comment('复审') INT(10)"`
 	ThirdAudit       int       `xorm:"default 0 comment('专业科室审批') INT(10)"`
+	CommitComId      string    `xorm:"default '0' comment('提交二级单位Id') VARCHAR(50)"`
 	AccessCardNo     string    `xorm:"comment('准入证号') VARCHAR(50)"`
 	SupplierTypeName string    `xorm:"comment('准入类别') VARCHAR(50)"`
 	SupplierName     string    `xorm:"comment('企业名称') VARCHAR(50)"`

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

@@ -361,6 +361,11 @@ func (this *BaseController) Prepare() {
 			fmt.Println("/api/suppliercert-append-listener/")
 			break
 		}
+		if strings.Contains(this.Ctx.Input.URL(), "/api/annual-listener/") {
+			find = true
+			fmt.Println("/api/annual-listener/")
+			break
+		}
 	}
 
 	if !find { // 如果是登录操作不做验证

+ 308 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/annualListener.go

@@ -0,0 +1,308 @@
+package oilsupplier
+
+import (
+	msg2 "dashoo.cn/backend/api/business/msg"
+	"dashoo.cn/backend/api/business/oilsupplier/annualaudit"
+	"dashoo.cn/backend/api/business/oilsupplier/supplier"
+	"encoding/json"
+	"strconv"
+	"strings"
+
+	"dashoo.cn/backend/api/business/auditsetting"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
+	"dashoo.cn/backend/api/business/workflow"
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/utils"
+)
+
+type OilAnnualListenerController struct {
+	BaseController
+}
+
+// @Title 获取二级单位分办人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-fen-trail [post]
+func (this *OilAnnualListenerController) PreFenTrialStatus() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.FEN_TRIAL_STATUS //二级单位分办
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出二级单位分办的人员
+	stepCode := workflow.GetWorkFlowStepCode(annualEntity.SupplierTypeName)
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeAndUnitId(stepCode, annualEntity.CommitComId)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// 用
+// @Title 获取二级单位初审人员列表--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-first-trail [get]
+func (this *OilAnnualListenerController) PreFirstTrail() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
+	svc.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//返回查出的初审人员操作人员列表
+	approverIds := annualEntity.FirstAudit
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 获取二级单位复审人员列表--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-second-trail [get]
+func (this *OilAnnualListenerController) PreSecondTrail() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "_")[0]
+
+	certSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	certSrv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.SECOND_TRIAL_STATUS //二级单位复审
+	certSrv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//返回查出的复审人员操作人员列表
+	approverIds := annualEntity.SecondAudit
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 查询是否交费--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /check-need-pay [get]
+func (this *OilAnnualListenerController) CheckNeedPay() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+
+	certSvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	certSvc.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	var isPayList []string
+	isPayList = append(isPayList, suppliercert.PINGSHEN)
+	isPayList = append(isPayList, suppliercert.WAIBUSHICHANG)
+	var unPayList []string
+	unPayList = append(unPayList, suppliercert.YIJIWUZI)
+	unPayList = append(unPayList, suppliercert.ERJIWUZI)
+	unPayList = append(unPayList, suppliercert.ZHANLUEHEZUO)
+	unPayList = append(unPayList, suppliercert.NEIBUDUOYUAN)
+
+	result := 0
+	isPay := "false"
+	unPay := "false"
+	for _, eachItem := range isPayList {
+		if eachItem == supplierCertEntity.InStyle {
+			// 需要付费
+			isPay = "true"
+			result = 1
+			break
+		}
+	}
+	for _, eachItem := range unPayList {
+		if eachItem == supplierCertEntity.InStyle {
+			// 不需要付费
+			unPay = "true"
+			result = 2
+			break
+		}
+	}
+	if isPay == unPay {
+		// 准入类型是否付费有误!请联系管理员
+		result = 0
+	}
+
+	this.Data["json"] = result
+	this.ServeJSON()
+}
+
+// @Title 获取交费人--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-payer [get]
+func (this *OilAnnualListenerController) GetPrePayer() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.PAYING_AUDIT_STATUS //待缴费
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//创建人即为交费的人员
+	approverIds := annualEntity.CreateUserId
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 企业法规处审批人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /law-office-auditors [post]
+func (this *OilAnnualListenerController) GetLawOfficeAuditors() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.CENT_AUDIT_STATUS //企业法规处
+	svc.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出企业法规处审批的人员
+	stepCode := workflow.PROF_REGULATION //企业法规处
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeForConcentrateAudit(stepCode)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// @Title 企业法规处入库人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-storage-audit [post]
+func (this *OilAnnualListenerController) GetStorageAuditor() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	supplierCertAppendId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+	var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
+	certSrv.GetEntityById(supplierCertAppendId, &supplierCertAppendEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	supplierCertAppendEntity.Status = suppliercert.STOREING_STATUS //待入库
+	certSrv.UpdateEntityByIdCols(supplierCertAppendId, supplierCertAppendEntity, cols)
+
+	//查出入库审批的人员
+	stepCode := workflow.PROF_REGULATION //待入库(企业法规处)
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeForConcentrateAudit(stepCode)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// @Title 企业法规处审批入库完成, 工作流结束--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /workflow-end [get]
+func (this *OilAnnualListenerController) WorkflowEndAudit() {
+	businessKey := this.GetString("businessKey")
+	supplierCertAppendId := strings.Split(businessKey, "-")[0]
+	certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+	var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
+	certSrv.GetEntityById(supplierCertAppendId, &supplierCertAppendEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	supplierCertAppendEntity.Status = suppliercert.STORE_STATUS //已入库
+	certSrv.UpdateEntityByIdCols(supplierCertAppendId, supplierCertAppendEntity, cols)
+
+	this.Data["json"] = 1
+	this.ServeJSON()
+}
+
+// @Title 审批驳回--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /approval-refuse [get]
+func (this *OilAnnualListenerController) ApprovalRefuse() {
+	businessKey := this.GetString("businessKey")
+	supplierCertAppendId := strings.Split(businessKey, "-")[0]
+	certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+	var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
+	certSrv.GetEntityById(supplierCertAppendId, &supplierCertAppendEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	supplierCertAppendEntity.Status = suppliercert.DRAFT_STATUS //重置为草稿状态
+	certSrv.UpdateEntityByIdCols(supplierCertAppendId, supplierCertAppendEntity, cols)
+
+	this.Data["json"] = 1
+	this.ServeJSON()
+}
+
+// @Title 增项申请审核未通过短信通知
+// @Description 审核未通过短信通知
+// @Success	200	{object}
+// @router /audit-reject-notice/:id [post]
+func (this *OilAnnualListenerController) AuditRejectNotice(supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend, supplierEntity supplier.OilSupplier) {
+	toMobile := supplierEntity.Mobile
+	bFlag := ""
+	if supplierCertAppendEntity.AppendType == "01" {
+		bFlag = "物资类"
+	} else if supplierCertAppendEntity.AppendType == "02" {
+		bFlag = "基建类"
+	} else {
+		bFlag = "服务类"
+	}
+	msg := "您的" + bFlag + "增项审核未通过,请及时查看!"
+	msgService := msg2.GetMsgService(utils.DBE)
+	msgService.HandleMsg(toMobile, msg, "5-1", supplierCertAppendEntity.CreateBy, supplierEntity.ContactName, strconv.Itoa(supplierCertAppendEntity.CreateUserId), this.User.Username)
+}

+ 228 - 31
src/dashoo.cn/backend/api/controllers/oilsupplier/annualaudit.go

@@ -585,7 +585,7 @@ func (this *AnnualAuditController) AddEntity() {
 	var errinfo ErrorDataInfo
 	var jsonBlob = this.Ctx.Input.RequestBody
 	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
-	firstAudit := this.GetString("firstAudit")
+	//firstAudit := this.GetString("firstAudit")
 	json.Unmarshal(jsonBlob, &model)
 	where := "SupplierId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName + " and Status < 5"
 	var auditentity []annualaudit.OilAnnualAudit
@@ -640,36 +640,6 @@ func (this *AnnualAuditController) AddEntity() {
 	model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
 	//添加一条年审记录
 	_, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model)
-	annualId := model.Id
-	svcActiviti := workflow.GetActivitiService(utils.DBE)
-	//启动工作流
-	businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(model.AuditIndex)
-	result := strconv.Itoa(this.User.IsCompanyUser)
-	processInstanceId := svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, result, model.SupplierTypeName, model.SupplierName)
-	//var ActiComplete workflow.ActiCompleteVM
-	//ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
-	//ActiComplete.BusinessKey = businessKey
-	//ActiComplete.UserNames = firstAudit
-	//ActiComplete.UserId = this.User.Id
-	//ActiComplete.Result = "1"
-	//ActiComplete.Remarks = model.Remark
-	//ActiComplete.CallbackUrl = ""
-	//提交给二级单位初审
-	//receiveVal := svcActiviti.TaskComplete(ActiComplete)
-	var auditmodel annualaudit.OilAnnualAudit
-	auditmodel.WorkflowId = processInstanceId
-	auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
-	auditmodel.AuditIndex = model.AuditIndex
-	auditmodel.BusinessKey = businessKey
-	cols := []string{
-		"Id",
-		"WorkflowId",
-		"FirstAudit",
-		"AuditIndex",
-		"BusinessKey",
-	}
-	//if receiveVal == "true" {
-	_, err = svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
 	if err == nil {
 		//新增
 		errinfo.Message = "添加成功!"
@@ -683,6 +653,49 @@ func (this *AnnualAuditController) AddEntity() {
 		this.Data["json"] = &errinfo
 		this.ServeJSON()
 	}
+	//annualId := model.Id
+	//svcActiviti := workflow.GetActivitiService(utils.DBE)
+	////启动工作流
+	//businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(model.AuditIndex)
+	//result := strconv.Itoa(this.User.IsCompanyUser)
+	//processInstanceId := svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, result, model.SupplierTypeName, model.SupplierName)
+	//var ActiComplete workflow.ActiCompleteVM
+	//ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
+	//ActiComplete.BusinessKey = businessKey
+	//ActiComplete.UserNames = firstAudit
+	//ActiComplete.UserId = this.User.Id
+	//ActiComplete.Result = "1"
+	//ActiComplete.Remarks = model.Remark
+	//ActiComplete.CallbackUrl = ""
+	//提交给二级单位初审
+	//receiveVal := svcActiviti.TaskComplete(ActiComplete)
+	//var auditmodel annualaudit.OilAnnualAudit
+	//auditmodel.WorkflowId = processInstanceId
+	//auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
+	//auditmodel.AuditIndex = model.AuditIndex
+	//auditmodel.BusinessKey = businessKey
+	//cols := []string{
+	//	"Id",
+	//	"WorkflowId",
+	//	"FirstAudit",
+	//	"AuditIndex",
+	//	"BusinessKey",
+	//}
+	//if receiveVal == "true" {
+	//_, err = svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
+	//if err == nil {
+	//	//新增
+	//	errinfo.Message = "添加成功!"
+	//	errinfo.Code = 0
+	//	errinfo.Item = model.Id
+	//	this.Data["json"] = &errinfo
+	//	this.ServeJSON()
+	//} else {
+	//	errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
+	//	errinfo.Code = -1
+	//	this.Data["json"] = &errinfo
+	//	this.ServeJSON()
+	//}
 	//} else {
 	//	errinfo.Message = "工作流异常,请联系管理员!"
 	//	errinfo.Code = -1
@@ -831,6 +844,190 @@ func (this *AnnualAuditController) AddAuditEntity() {
 
 }
 
+// @Title 二级分办单位提交审批
+// @Description 提交审批
+// @Success	200	{object} controllers.Request
+// @router /unit-audit/:id [post]
+func (this *AnnualAuditController) SeparateUnitSubmitAuditEntity() {
+	annualId := this.Ctx.Input.Param(":id")
+	firstAudit := this.GetString("firstAudit")
+	secondAudit := this.GetString("SecondAudit")
+	auditRemark := this.GetString("AuditRemark")
+
+	userId := this.User.Id
+	var baseUserInfo userRole.Base_User
+	userService := userRole.GetUserService(utils.DBE)
+	userService.GetEntityById(userId, &baseUserInfo)
+	unitId := baseUserInfo.UnitId
+
+	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()
+		}
+	}()
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var auditEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &auditEntity)
+	var supplierEntity supplier.OilSupplier
+	svc.GetEntityById(auditEntity.SupplierId, &supplierEntity)
+
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	//启动工作流
+	businessKey := annualId + "-" + strconv.Itoa(auditEntity.AuditIndex)
+	processInstanceId := auditEntity.WorkflowId
+	// 如果被驳回,不再新启工作流
+	if processInstanceId == "" {
+		processInstanceId = svcActiviti.StartProcess2(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id, "1", auditEntity.SupplierTypeName, supplierEntity.SupplierName)
+		if len(processInstanceId) <= 0 {
+			panic("工作流启动失败!")
+		}
+	}
+
+	// 将启动和工作流,选择的初审和复审人员保存下来
+	cols := []string{
+		"Id",
+		"FirstAudit",
+		"SecondAudit",
+		"WorkflowId",
+		"BusinessKey",
+		"ProcessKey",
+		"CommitComId",
+		"AuditIndex",
+	}
+	auditEntity.ProcessKey = workflow.OIL_AUDIT_APPLY
+	auditEntity.BusinessKey = businessKey
+	auditEntity.WorkflowId = processInstanceId
+	auditEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
+	auditEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
+	auditEntity.CommitComId = strconv.Itoa(unitId)
+	auditEntity.AuditIndex += 1
+	svc.UpdateEntityByIdCols(annualId, auditEntity, cols)
+
+	var ActiComplete workflow.ActiCompleteVM
+	ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
+	ActiComplete.BusinessKey = auditEntity.BusinessKey
+	ActiComplete.UserId = this.User.Id // 当前审批操作人员
+	//ActiComplete.UserNames = secondAudit // 当前审批操作人员
+	ActiComplete.Result = "2" //分办提交给二级单位初审
+	ActiComplete.Remarks = auditRemark
+	ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
+	receiveVal := svcActiviti.TaskComplete(ActiComplete)
+	if receiveVal != "true" {
+		panic("工作流异常,请联系管理员!" + receiveVal)
+	}
+}
+
+// @Title 二级单位分办 --审批
+// @Description 二级分办
+// @Success	200	{object} controllers.Request
+// @router /separate-audit/:id [post]
+func (this *AnnualAuditController) SeparateAuditEntity() {
+	annualId := this.Ctx.Input.Param(":id")
+	firstAudit := this.GetString("FirstAudit")
+	secondAudit := this.GetString("SecondAudit")
+	// typeCode := this.GetString("TypeCode")
+	AuditRemark := this.GetString("AuditRemark")
+
+	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()
+		}
+	}()
+
+	// 取出准入表信息
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+	// 将选择的初审和复审人员保存下来
+	cols := []string{
+		"FirstAudit",
+		"SecondAudit",
+		"thirdAudit",
+	}
+	annualEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
+	annualEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	var ActiComplete workflow.ActiCompleteVM
+	ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
+	ActiComplete.BusinessKey = annualEntity.BusinessKey
+	ActiComplete.UserId = this.User.Id // 审批人员
+	// ActiComplete.UserNames = secondAudit // 初审人员
+	ActiComplete.Result = "1" //分办完成后只向前走
+	ActiComplete.Remarks = AuditRemark
+	ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
+	receiveVal := svcActiviti.TaskComplete(ActiComplete)
+	if receiveVal != "true" {
+		panic("工作流异常,请联系管理员!" + receiveVal)
+	}
+}
+
+// @Title 分办之后的各级审批  --审批 包含:二级单位初审、复审、企业法规处审核
+// @Description 分办之后的各级审批
+// @Success	200	{object} controllers.Request
+// @router /common-audit/:id [post]
+func (this *AnnualAuditController) CommonAuditEntity() {
+	annualId := this.Ctx.Input.Param(":id")
+	result := this.GetString("result")
+	AuditRemark := this.GetString("AuditRemark")
+
+	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()
+		}
+	}()
+
+	//取出准入表信息
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	var ActiComplete workflow.ActiCompleteVM
+	ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
+	ActiComplete.BusinessKey = annualEntity.BusinessKey
+	ActiComplete.UserId = this.User.Id //审批人员
+	ActiComplete.Result = result       //前台审批[同意、不同意]
+	ActiComplete.Remarks = AuditRemark
+	ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
+	receiveVal := svcActiviti.TaskComplete(ActiComplete)
+	if receiveVal != "true" {
+		panic("工作流异常,请联系管理员!" + receiveVal)
+	}
+}
+
 // @Title 删除单条信息
 // @Description
 // @Success 200 {object} ErrorInfo

+ 5 - 1
src/dashoo.cn/backend/api/routers/router.go

@@ -264,7 +264,11 @@ func init() {
 				&oilsupplier.OilSupplierCertAppendListenerController{},
 			),
 		),
-
+		beego.NSNamespace("/annual-listener",
+			beego.NSInclude(
+				&oilsupplier.OilAnnualListenerController{},
+			),
+		),
 		beego.NSNamespace("/suppliercertsub",
 			beego.NSInclude(
 				&oilsupplier.OilSupplierCertSubController{},

+ 23 - 0
src/dashoo.cn/frontend_web/src/api/oilsupplier/annualaudit.js

@@ -66,6 +66,29 @@ export default {
       params: params
     })
   },
+  // 二级分办单位提交:
+  separateUnitAuditEntity (annualId, params, myAxios) {
+    return myAxios({
+      url: '/annualaudit/unit-audit/' + annualId,
+      method: 'post',
+      params: params
+    })
+  },
+  commonAuditEntity (id, params, myAxios) {
+    return myAxios({
+      url: 'annualaudit/common-audit/' + id,
+      method: 'post',
+      params: params
+    })
+  },
+  // 二级单位提交分办
+  separateAuditEntity (id, params, myAxios) {
+    return myAxios({
+      url: 'annualaudit/separate-audit/' + id,
+      method: 'post',
+      params: params
+    })
+  },
   commitauditEntityFen (formData, params, myAxios) {
     return myAxios({
       url: '/annualaudit/addauditcommfen',

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

@@ -55,7 +55,7 @@ export default {
     })
   },
   // 二级分办单位提交审批
-  SeparateUnitAuditEntity (entityId, params, myAxios) {
+  separateUnitAuditEntity (entityId, params, myAxios) {
     return myAxios({
       url: '/suppliercertappend/unit-audit/' + entityId,
       method: 'post',

+ 252 - 31
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/auditoperation.vue

@@ -27,18 +27,12 @@
           <el-button type="primary" style="margin-left: 8px;" size="mini" @click="profAudit()" v-if="AnnualStatus == 3">
             专业审核分配</el-button> -->
            <el-button type="primary" size="mini" style="margin-right: 8px" @click="itemsshow">查看变更项</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" @click="annualAudit()"
-            v-if="auditBtn && AnnualStatus == '1'">初审</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" @click="annualAudit()"
-            v-if="auditBtn && AnnualStatus == '2'">复审</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" @click="profAudit()"
-            v-if="auditBtn && AnnualStatus == '3'">提交专业审核</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" @click="annualAudit()"
-            v-if="auditBtn && AnnualStatus == '4'">专业审核</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" @click="annualAudit()"
-                     v-if="auditBtn && AnnualStatus == '5'">审批</el-button>
-          <el-button type="primary" style="margin-left: 8px;" size="mini" @click="fenbanBtn" v-if="auditBtn && AnnualStatus == '10'">
-            提交</el-button>
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick()" v-if="auditBtn && AnnualStatus == '1'">初审</el-button>
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick()" v-if="auditBtn && AnnualStatus == '2'">复审</el-button>
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="profAudit()" v-if="auditBtn && AnnualStatus == '3'">提交专业审核</el-button> <!-- 未用到 -->
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="annualAudit()" v-if="auditBtn && AnnualStatus == '4'">专业审核</el-button><!-- 未用到 -->
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick()" v-if="auditBtn && AnnualStatus == '5'">审批</el-button><!-- 企业法规处 -->
+          <el-button type="primary" style="margin-left: 8px;" size="mini" @click="secUnitSeparateAuditClick" v-if="auditBtn && AnnualStatus == '10'">提交</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px;" onclick="window.history.go(-1)">返回</el-button>
         </span>
       </div>
@@ -826,6 +820,25 @@
       </div>
     </el-dialog>
 
+    <el-dialog title="审核" :visible.sync="dialogCommonAuditMakeSureVisible">
+      <el-form :model="shenheForm" label-width="100px" ref="shenheForm">
+        <el-form-item label="审核状态">
+          <template>
+            <el-radio class="radio" v-model="shenheForm.SuccessStatus" :label="1" @change="radioChange">通过</el-radio>
+            <el-radio class="radio" v-model="shenheForm.SuccessStatus" :label="0" @change="radioChange">未通过</el-radio>
+          </template>
+        </el-form-item>
+        <el-form-item label="意见" :rules="[{ required: true, message: '请输入审批意见', trigger: 'blur' }]">
+          <el-input type="textarea" v-model="shenheForm.AuditorRemark" :placeholder="textplaceholder">
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer" style="margin-top: -25px">
+        <el-button size="small" @click="dialogCommonAuditMakeSureVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="commonAuditMakeSure()" :loading="loading">确 定</el-button>
+      </div>
+    </el-dialog>
+
     <el-dialog title="分配" :visible.sync="dialogProfAudit" width="420px">
       <el-form ref="searchForm" label-width="110px">
         <el-form-item label="审批人">
@@ -908,6 +921,65 @@
       </span>
       <br>
     </el-dialog>
+    <el-dialog title="分办" :visible.sync="dialogSecUnitSeparateVisible" width="520px">
+      <el-form label-width="90px" :model="shenheForm" ref="EntityFormref">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="审批状态">
+              <el-radio-group v-model="shenheForm.SuccessStatus">
+                <el-radio :label="1">通过</el-radio>
+                <el-radio :label="0">退回</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="shenheForm.SuccessStatus == 1">
+            <el-form-item label="初审人员">
+              <!--<el-input ref="selectAuditer" readonly v-model="auditerName" placeholder="请选择初审人">-->
+              <!--<el-button slot="append" icon="el-icon-search" @click="chooseAuditorShow"></el-button>-->
+              <!--</el-input>-->
+              <el-select ref="selectAuditer"
+                         v-model="auditer"
+                         placeholder="请选择初审人"
+                         style="width: 100%"
+                         filterable
+                         allow-create
+                         default-first-option
+                         @change="auditOrgChang()">
+                <el-option v-for="item in firOptions"
+                           :key="item.Id"
+                           :label="item.Realname"
+                           :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="复审人员">
+              <el-select ref="selectAuditer" v-model="fushenauditer" placeholder="请选择复审人" style="width: 100%" filterable
+                         allow-create default-first-option>
+                <el-option v-for="item in secauditerOptions" :key="item.Id" :label="item.Realname" :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="shenheForm.SuccessStatus == 1">
+            <el-form-item label="备注">
+              <el-input v-model="shenheForm.AuditorRemark" type="textarea" placeholder="请输入备注内容">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="shenheForm.SuccessStatus == 0">
+            <el-form-item label="退回原因">
+              <el-input v-model="shenheForm.AuditorRemark" type="textarea" placeholder="退回意见不能少于5个字">
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span style="float: right;margin-top:-10px;">
+        <el-button size="small" @click="dialogSecUnitSeparateVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="secUnitSeparateAuditMakeSure()" :loading="loading">确 定</el-button>
+      </span>
+      <br>
+    </el-dialog>
     <el-dialog title="变更项查看" :visible.sync="myitemsshow" width="780px">
       <el-table :data="InfoData" border style="width: 100%">
         <el-table-column align="center" prop="SelectItemName" label="变更项目">
@@ -951,8 +1023,8 @@
   import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
   import _ from 'lodash'
   // v-viewer
-  import Vue from 'vue';
-  import Viewer from 'v-viewer'
+  import Vue from 'vue'
+import Viewer from 'v-viewer'
   import 'viewerjs/dist/viewer.css'
   Vue.use(Viewer)
   Viewer.setDefaults({
@@ -1157,6 +1229,8 @@ export default {
         canUpdateSupplier: true,
         dictData: null,
         applyLoading: false,
+        dialogCommonAuditMakeSureVisible: false,
+        dialogSecUnitSeparateVisible: false,
         userOptions: [],
         subfileList: [],
         majorDept: [100000000, 100000001, 100000071],
@@ -1479,20 +1553,20 @@ export default {
     },
     methods: {
 
-      imgFormat(val,index){
-        if(val !=null && val != undefined && val !=''){
+      imgFormat (val, index) {
+        if (val != null && val != undefined && val != '') {
           let fileurlall = val.split('$')[index]
           let fileurl = fileurlall.split('|')
-          if(fileurl[1] != null && fileurl[1] !='' && fileurl[1] != undefined){
-            let Format  = fileurl[1].split(".")
-            if(Format[1]!=null && Format[1] !='' && Format[1] != undefined){
-               let pictureFormat = Format[1];
-              if("jpg"== pictureFormat || "bmp" ==pictureFormat || "png" ==pictureFormat || "gif" ==pictureFormat|| "jpeg" ==pictureFormat){
-                return false;
+          if (fileurl[1] != null && fileurl[1] != '' && fileurl[1] != undefined) {
+            let Format = fileurl[1].split('.')
+            if (Format[1] != null && Format[1] != '' && Format[1] != undefined) {
+              let pictureFormat = Format[1]
+              if (pictureFormat == 'jpg' || pictureFormat == 'bmp' || pictureFormat == 'png' || pictureFormat == 'gif' || pictureFormat == 'jpeg') {
+                return false
               }
             }
           }
-          return true;
+          return true
         }
       },
       // Tab
@@ -1628,6 +1702,93 @@ export default {
         this.shenheForm.AnnualId = parseInt(this.annualId)
         this.addshow = true
       },
+      // 二级单位分办
+      secUnitSeparateAuditClick () {
+        console.log('二级单位分办审批会话框')
+        this.getFirAuditerByDept()
+        this.shenheForm.AnnualId = parseInt(this.annualId)
+        this.dialogSecUnitSeparateVisible = true
+      },
+      // 二级单位分办审批参数检查 ⬇
+      secUnitSeparateAuditParamsCheck () {
+        if (this.shenheForm.SuccessStatus === 1) {
+          if (this.auditer === '') {
+            this.$message({
+              type: 'warning',
+              message: '请选择初审人!'
+            })
+            return
+          }
+          if (this.fushenauditer === '') {
+            this.$message({
+              type: 'warning',
+              message: '请选择复审人!'
+            })
+            return
+          }
+          if (this.shenheForm.AuditorRemark.trim().length < 1 && this.formData.Status === '5') {
+            this.$message({
+              type: 'warning',
+              message: '请填写审批意见!'
+            })
+            return
+          }
+          if (this.shenheForm.AuditorRemark.trim().length < 20 && this.formData.Status !== '3' && this.formData.Status !== '5' && this.formData.Status !== '10') {
+            this.$message({
+              type: 'warning',
+              message: '审批意见不能低于20个字符!'
+            })
+            return false
+          }
+        } else {
+          this.shenheForm.AuditorRemark = this.backRemark
+          if (this.shenheForm.AuditorRemark.trim().length < 5 && this.formData.Status !== '3' && this.formData.Status !== '5') {
+            this.$message({
+              type: 'warning',
+              message: '退回意见不能低于5个字符!'
+            })
+            return
+          }
+          if (this.shenheForm.AuditorRemark.trim().length < 1 && this.formData.Status === '5') {
+            this.$message({
+              type: 'warning',
+              message: '请填写退回意见!'
+            })
+            return false
+          }
+        }
+      },
+      // 二级单位分办审批结果确认 ⬇
+      secUnitSeparateAuditMakeSure () {
+        console.log('二级单位分办审批结果确认')
+        this.secUnitSeparateAuditParamsCheck()
+        this.loading = true
+        let params = {
+          FirstAudit: this.auditer,
+          SecondAudit: this.fushenauditer,
+          AuditRemark: this.shenheForm.AuditorRemark
+        }
+        console.log('二级单位分办审批结果提交参数:', params)
+        annualapi.separateAuditEntity(this.shenheForm.AnnualId, params, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            console.log('审批提交,成功返回')
+            this.initDatas()
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+            this.dialogSecUnitSeparateVisible = false
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+          this.loading = false
+        }).catch(err => {
+          console.error(err)
+        })
+      },
       orgtreeChange (val) {
         this.userOptions = []
         if (val) {
@@ -2085,12 +2246,12 @@ export default {
           } else if (val.ChangeInfo === '5000-01-01T23:59:59+08:00') {
             return '永久'
           } else if (val.SelectItem === 'HseTraining') {
-          if (val.ChangeInfo === '0') {
-            return '否'
-          } else if (val.ChangeInfo === '1') {
-            return '是'
-          }
-        } else {
+            if (val.ChangeInfo === '0') {
+              return '否'
+            } else if (val.ChangeInfo === '1') {
+              return '是'
+            }
+          } else {
             let val2 = val.ChangeInfo.replace('T', ' ')
             return val2.substring(0, 10)
           }
@@ -2242,9 +2403,9 @@ export default {
               _this.infochangeForm.SelectItemName = '行业特殊要求的认证证书'
             } else if (_this.infochangeForm.SelectItem === 'BusinessScope') {
               _this.infochangeForm.SelectItemName = '营业范围'
-            }else if (_this.infochangeForm.SelectItem === 'TjinNotify') {
+            } else if (_this.infochangeForm.SelectItem === 'TjinNotify') {
               _this.infochangeForm.SelectItemName = '进津备案通知书'
-            }else if (_this.infochangeForm.SelectItem === 'QualifCert') {
+            } else if (_this.infochangeForm.SelectItem === 'QualifCert') {
               _this.infochangeForm.SelectItemName = '企业资质证书(编号 级别)'
             } else if (_this.infochangeForm.SelectItem === 'Remark') {
               _this.infochangeForm.SelectItemName = '备注'
@@ -2291,6 +2452,66 @@ export default {
         this.shenheForm.AnnualId = parseInt(this.annualId)
         this.dialogMakeSure = true
       },
+      commonAuditClick () {
+        console.log('审批公共会话框')
+        this.shenheForm.AnnualId = parseInt(this.annualId)
+        this.dialogCommonAuditMakeSureVisible = true
+      },
+      commonAuditMakeSure () {
+        console.log('审批结果公共提交')
+        let checkRes = this.commonAuditParamsCheck()
+        console.log(checkRes, '审批结果公共提交')
+        if (!checkRes) {
+          return false
+        }
+        this.loading = true
+        let params = {
+          result: this.shenheForm.SuccessStatus,
+          AuditRemark: this.shenheForm.AuditorRemark
+        }
+        console.log('审批结果提交参数:', params)
+        annualapi.commonAuditEntity(this.shenheForm.AnnualId, params, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            console.log('审批提交,成功返回')
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+            this.$router.push('/')
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+          this.dialogCommonAuditMakeSureVisible = false
+          this.loading = false
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      commonAuditParamsCheck () {
+        if (this.shenheForm.SuccessStatus === 1) {
+          if (this.shenheForm.AuditorRemark.trim().length < 20 && this.AnnualStatus && this.AnnualStatus !== '10') {
+            if (this.AnnualStatus !== '5') {
+              this.$message({
+                type: 'warning',
+                message: '审批意见不能低于20个字符!'
+              })
+              return false
+            }
+          }
+        } else {
+          if (this.shenheForm.AuditorRemark.trim().length < 5) {
+            this.$message({
+              type: 'warning',
+              message: '退回意见不能低于5个字符!'
+            })
+            return false
+          }
+        }
+        return true
+      },
       profAudit () {
         this.shenheForm.AnnualId = parseInt(this.annualId)
         this.auditOrgChange()

+ 70 - 11
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/goodsoperation.vue

@@ -25,10 +25,10 @@
           <el-button type="primary" size="mini" style="margin-right: 8px" @click="commitfenban"
                      v-if="Status <= 0 && authUser.Profile.IsCompanyUser == 1">提交分办
           </el-button>
-          <el-button type="primary" size="mini" style="margin-right: 8px" @click="clickaddshow()"
+          <el-button type="primary" size="mini" style="margin-right: 8px" @click="separateUnitSubmitClick()"
                      v-if="Status <= 0 && authUser.Profile.IsCompanyUser == 0">提交审核
           </el-button>
-          <el-button type="primary" style="margin-left: 8px;" size="mini" @click="clickaddshow()" v-if="Status == 10 &&  authUser.Profile.IsCompanyUser == 0">
+          <el-button type="primary" style="margin-left: 8px;" size="mini" @click="separateUnitSubmitClick()" v-if="Status == 10 &&  authUser.Profile.IsCompanyUser == 0">
             提交审核</el-button>
           <router-link :to="'/oilsupplier/annualaudit/goodsindex'">
             <el-button type="primary" size="mini" style="margin-left: 8px;">返回</el-button>
@@ -799,7 +799,7 @@
                          style="margin-top: 20px"></business-list>
         </el-tab-pane>
 
-        <el-tab-pane label="提交审批" v-if="parseInt(Status) > 0">
+        <el-tab-pane label="审批流程" v-if="parseInt(Status) > 0">
           <el-card class="box-card" style="height: 800px">
             <div slot="header" class="clearfix">
               <span>审批流程</span>
@@ -837,7 +837,7 @@
       </div>
 
     </el-card>
-    <el-dialog title="提交申请" :visible.sync="addshow" width="520px">
+    <el-dialog title="提交申请" :visible.sync="dialogSeparateUnitAuditVisible" width="520px">
       <el-form label-width="90px" :model="entityForm" :rules="rules" ref="EntityFormref">
         <el-row>
           <el-col :span="24">
@@ -889,8 +889,8 @@
         </el-row>
       </el-form>
       <span style="float: right;margin-top:-10px;">
-        <el-button size="small" @click="addshow = false">取 消</el-button>
-        <el-button type="primary" size="small" @click="addAnnualAudit()" :loading="loading">确 定</el-button>
+        <el-button size="small" @click="dialogSeparateUnitAuditVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="separateUnitSubmitAuditMakeSure()" :loading="loading">确 定</el-button>
       </span>
       <br>
     </el-dialog>
@@ -1375,6 +1375,7 @@
         auditerOption: [],
         userOptions: [],
         addshow: false,
+        dialogSeparateUnitAuditVisible: false,
         canUpdateSupplier: true,
         dictData: null,
         add_flat: true,
@@ -1993,7 +1994,6 @@
         return list * 23 + ''
       },
       imgFormat (val, index) {
-        console.log(val)
         if (val != null && val != undefined && val != '') {
           let fileurlall = val.split('$')[index]
           let fileurl = fileurlall.split('|')
@@ -2796,7 +2796,6 @@
           console.error(err)
         })
       },
-
       getorgtreelist () {
         let _this = this
         let params = {
@@ -2812,7 +2811,6 @@
             console.error(err)
           })
       },
-
       // getDictOptions() {
       //   api.getDictList(this.$axios).then(res => {
       //     this.dictData = res.data.items
@@ -2823,9 +2821,9 @@
       //     console.error(err)
       //   })
       // },
-
       // 保存信息
       saveinfochange () {
+        console.log('保存3')
         let valid1 = false
         let valid2 = false
         this.$refs['EntityForm'].validate((valid) => {
@@ -2841,7 +2839,6 @@
             MInfoId: this.annualId,
             InfochangeForm: this.infochangeItemList
           }
-
           annualapi.addInfoChangeItemCh(AllInfochangeItemList, this.$axios).then(res => {
             if (res.data.code === 0) {
               // 保存成功后,初始化数据,变成修改
@@ -2912,6 +2909,68 @@
           }
         })
       },
+      // 二级分办单位点击提交按钮
+      separateUnitSubmitClick () {
+        this.getFirAuditerByDept()
+        this.dialogSeparateUnitAuditVisible = true
+      },
+      separateUnitSubmitAuditParamsCheck () {
+        this.$refs['EntityFormref'].validate((valid) => {
+          if (valid) {
+            if (this.auditer === '') {
+              this.$message({
+                type: 'warning',
+                message: '请选择审批人!'
+              })
+              return
+            }
+            if (this.fushenauditer === '') {
+              this.$message({
+                type: 'warning',
+                message: '请选择复审人!'
+              })
+              return
+            }
+            return true
+          }
+        })
+      },
+      separateUnitSubmitAuditMakeSure () {
+        console.log('二级分办单位审核结果 确认提交')
+        let checkRes = this.separateUnitSubmitAuditParamsCheck
+        if (!checkRes) {
+          return false
+        }
+        let params = {
+          firstAudit: this.auditer,
+          SecondAudit: this.fushenauditer,
+          AuditRemark: this.entityForm.Remark
+        }
+        this.loading = true
+        annualapi.separateUnitAuditEntity(this.annualId, params, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            // 保存成功后,初始化数据,变成修改
+            // this.Status = res.data.item
+            // this.entityForm.Status = this.Status
+            // this.initDatas()
+            this.getstatus(this.annualId)
+            this.dialogSeparateUnitAuditVisible = false
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+          this.loading = false
+        }).catch(err => {
+          this.loading = false
+          console.error(err)
+        })
+      },
 
       addAnnualAudit () {
         this.$refs['EntityFormref'].validate((valid) => {

+ 5 - 1
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/goodsindex.vue

@@ -443,6 +443,7 @@
             this.entityForm.auditer = this.auditer
             api.addEntity(this.entityForm, this.entityForm.auditer, this.$axios).then(res => {
               if (res.data.code === 0) {
+                console.log('年审申请3333')
                 // 保存成功后,初始化数据,变成修改
                 this.entityForm.Id = res.data.item
                 this.initDatas()
@@ -452,6 +453,7 @@
                   message: res.data.message
                 })
               } else if (res.data.code === -3) {
+                console.log('年审申请4444')
                 this.$confirm(res.data.message + ',点击继续可继续进行年审')
                   .then(_ => {
                     this.addannualdirect()
@@ -502,6 +504,7 @@
           .then(() => {
             api.addEntity(this.entityForm, this.entityForm.auditer, this.$axios).then(res => {
               if (res.data.code === 0) {
+                console.log('年审审批111')
                 // 保存成功后,初始化数据,变成修改
                 this.entityForm.Id = res.data.item
                 this.initDatas()
@@ -519,8 +522,9 @@
                 this.$message({
                   type: 'success',
                   message: res.data.message
-                });
+                })
               } else if (res.data.code === -3) {
+                console.log('年审审批2222')
                 this.$confirm(res.data.message + ',点击继续可继续进行年审')
                   .then(_ => {
                     this.addannualdirect()

+ 2 - 2
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierappend/_opera/goodsdataopera.vue

@@ -28,7 +28,7 @@
                      v-if="formData.Id !='' && formData.Status <= 0 && formData.Status != -5" @click="saveinfochange">保存
           </el-button>
           <el-button type="primary" size="mini" style="margin-right: 8px" @click="separateUnitSubmitClick"
-            v-if="formData.Id !='' && formData.Status <= 0 && formData.Status != -5 && IsCompanyUser == 0">提交1审核
+            v-if="formData.Id !='' && formData.Status <= 0 && formData.Status != -5 && IsCompanyUser == 0">提交审核
           </el-button>
           <el-button type="primary" size="mini" style="margin-right: 8px" @click="comSubmitToSeparateUnitClick"
             v-if="formData.Id !='' && formData.Status <= 0 && formData.Status != -5 && IsCompanyUser == 1">提交
@@ -3317,7 +3317,7 @@
           ThirdAudit: this.selectDept,
           AuditRemark: this.auditform.AuditRemark
         }
-        api2.SeparateUnitAuditEntity(this.formData.Id, params, this.$axios).then(res => {
+        api2.separateUnitAuditEntity(this.formData.Id, params, this.$axios).then(res => {
           if (res.data.code === 0) {
             // 保存成功后,初始化数据,变成修改
             this.getEntityById()

+ 3 - 5
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplieraudit/_opera/goodsedit.vue

@@ -8,7 +8,7 @@
     <el-card class="box-card">
       <div slot="header">
         <span>
-          <i class="icon icon-table2"></i> 审批-{{auditBtn}}
+          <i class="icon icon-table2"></i> 审批
         </span>
         <span style="float: right;">
           <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick()" v-if="auditBtn && parseInt(this.formData.Status) === 1">初审</el-button>
@@ -993,7 +993,7 @@
       },
       commonAuditMakeSure () {
         console.log('审批结果公共提交')
-        var checkRes = this.commonAuditParamsCheck()
+        let checkRes = this.commonAuditParamsCheck()
         console.log(checkRes, '审批结果公共提交')
         if (!checkRes) {
           return false
@@ -1026,8 +1026,6 @@
       },
       commonAuditParamsCheck () {
         if (this.shenheForm.SuccessStatus === 1) {
-          console.log(this.shenheForm.AuditorRemarkh, '审批意见')
-          console.log(this.shenheForm.AuditorRemark.trim().length, '审批意见长度')
           if (this.shenheForm.AuditorRemark.trim().length < 20 && this.formData.Status !== '3' && this.formData.Status !== '5' && this.formData.Status !== '10') {
             this.$message({
               type: 'warning',
@@ -1261,7 +1259,7 @@
       },
       concentrateAuditEntityMakeSure () {
         console.log('集中评审提交审核结果')
-        var checkRes = this.concentrateAuditParamsCheck()
+        let checkRes = this.concentrateAuditParamsCheck()
         if (!checkRes) {
           return false
         }