2
3
Эх сурвалжийг харах

后端: 批量审批优化

baichengfei 4 жил өмнө
parent
commit
e2a0e5a233

+ 107 - 50
src/dashoo.cn/backend/api/controllers/oilcontract/contractReview.go

@@ -340,12 +340,12 @@ func (this *OilContractReviewController) DocExport() {
 
 			if v.Type == 1 {
 				Score1, _ := strconv.ParseFloat(v.Score, 64)
-				datamap["score_"+utils.ToStr(v.ItemId)] = Score1/count
+				datamap["score_"+utils.ToStr(v.ItemId)] = Score1 / count
 				datamap["content_"+utils.ToStr(v.ItemId)] = v.Remark
 				if v.ParentId == 0 {
-					score = score + (Score1/count)
+					score = score + (Score1 / count)
 					normal, _ := strconv.ParseFloat(v.NormalScore, 64)
-					normalScore = normalScore + (normal/count)
+					normalScore = normalScore + (normal / count)
 				}
 			} else {
 				datamap["bool_"+utils.ToStr(v.ItemId)] = If(v.Value == 1, "是", "否")
@@ -917,6 +917,16 @@ func (this *OilContractReviewController) CommonAuditEntity() {
 	AuditRemark := this.GetString("AuditRemark")
 
 	var errinfo ErrorDataInfo
+
+	if Id == "" {
+		errinfo.Message = "请至少选择一条申请进行审批!"
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+	Ids := strings.Split(Id, ",")
+
 	defer func() { //finally处理失败的异常
 		if err := recover(); err != nil {
 			errinfo.Message = err.(string)
@@ -925,10 +935,16 @@ func (this *OilContractReviewController) CommonAuditEntity() {
 			this.ServeJSON()
 		} else {
 			//返回正确结果
+			msg := ""
+			if len(Ids) > 1 {
+				msg = "审核提交成功,请耐心等待批处理结果!"
+			} else {
+				msg = "审批成功!"
+			}
 			if result == "1" {
-				errinfo.Message = "审核提交成功,请耐心等待批处理结果"
+				errinfo.Message = msg
 			} else {
-				errinfo.Message = "审核驳回成功"
+				errinfo.Message = "审批驳回成功!"
 			}
 			errinfo.Code = 0
 			this.Data["json"] = &errinfo
@@ -936,37 +952,41 @@ func (this *OilContractReviewController) CommonAuditEntity() {
 		}
 	}()
 
-	if Id != "" {
-		Ids := strings.Split(Id, ",")
-		var lock sync.Mutex
-		for i := 0; i < len(Ids); i++ {
-			lock.Lock()
-			//取出日常评审主表信息
-			conRev := contractReview.GetOilContractReviewService(utils.DBE)
-			var contractReviewEntity contractReview.OilContractReview
-			conRev.GetEntityById(Ids[i], &contractReviewEntity)
-
-			svcActiviti := workflow.GetActivitiService(utils.DBE)
-			var ActiComplete workflow.ActiCompleteVM
-			if contractReviewEntity.IsBusiness == 1 {
-				ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVA_BY_BUSINESS // 业务处室分办提交的日常评价
-			} else {
-				ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION // 二级单位提交的日常评价
-			}
-			ActiComplete.BusinessKey = contractReviewEntity.BusinessKey
-			ActiComplete.UserId = this.User.Id //审批人员
-			ActiComplete.Result = result       //前台审批[同意、不同意]
-			ActiComplete.Remarks = AuditRemark
-			ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
+	var lock sync.Mutex
+	for i := 0; i < len(Ids); i++ {
+		lock.Lock()
+		//取出日常评审主表信息
+		conRev := contractReview.GetOilContractReviewService(utils.DBE)
+		var contractReviewEntity contractReview.OilContractReview
+		conRev.GetEntityById(Ids[i], &contractReviewEntity)
+
+		svcActiviti := workflow.GetActivitiService(utils.DBE)
+		var ActiComplete workflow.ActiCompleteVM
+		if contractReviewEntity.IsBusiness == 1 {
+			ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVA_BY_BUSINESS // 业务处室分办提交的日常评价
+		} else {
+			ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION // 二级单位提交的日常评价
+		}
+		ActiComplete.BusinessKey = contractReviewEntity.BusinessKey
+		ActiComplete.UserId = this.User.Id //审批人员
+		ActiComplete.Result = result       //前台审批[同意、不同意]
+		ActiComplete.Remarks = AuditRemark
+		ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
 
+		if len(Ids) > 1 {
 			go func() {
 				receiveVal := svcActiviti.TaskComplete(ActiComplete)
 				if receiveVal != "true" {
 					log.Print("日常评价 工作流异常,业务ID:" + contractReviewEntity.BusinessKey + ",工作流信息:" + receiveVal)
 				}
 			}()
-			lock.Unlock()
+		} else {
+			receiveVal := svcActiviti.TaskComplete(ActiComplete)
+			if receiveVal != "true" {
+				log.Print("日常评价 工作流异常,业务ID:" + contractReviewEntity.BusinessKey + ",工作流信息:" + receiveVal)
+			}
 		}
+		lock.Unlock()
 	}
 }
 
@@ -981,6 +1001,16 @@ func (this *OilContractReviewController) BusinessOfficeSeparateAuditEntity() {
 	AuditRemark := this.GetString("AuditRemark")
 
 	var errInfo ErrorDataInfo
+
+	if Id == "" {
+		errInfo.Message = "请至少选择一条申请进行审批!"
+		errInfo.Code = -1
+		this.Data["json"] = &errInfo
+		this.ServeJSON()
+		return
+	}
+	Ids := strings.Split(Id, ",")
+
 	defer func() { //finally处理失败的异常
 		if err := recover(); err != nil {
 			errInfo.Message = err.(string)
@@ -989,7 +1019,17 @@ func (this *OilContractReviewController) BusinessOfficeSeparateAuditEntity() {
 			this.ServeJSON()
 		} else {
 			//返回正确结果
-			errInfo.Message = "审核提交成功,请耐心等待批处理结果"
+			msg := ""
+			if len(Ids) > 1 {
+				msg = "审核提交成功,请耐心等待批处理结果!"
+			} else {
+				msg = "审批成功!"
+			}
+			if Result == "1" {
+				errInfo.Message = msg
+			} else {
+				errInfo.Message = "审批驳回成功!"
+			}
 			errInfo.Code = 0
 			this.Data["json"] = &errInfo
 			this.ServeJSON()
@@ -999,26 +1039,25 @@ func (this *OilContractReviewController) BusinessOfficeSeparateAuditEntity() {
 	if Result == "1" && ProfessionalAudit == "" {
 		panic("请选择审批人")
 	}
-	if Id != "" {
-		Ids := strings.Split(Id, ",")
-		var lock sync.Mutex
-		for i := 0; i < len(Ids); i++ {
-			lock.Lock()
-			//取出日常评审主表信息
-			conRev := contractReview.GetOilContractReviewService(utils.DBE)
-			var contractReviewEntity contractReview.OilContractReview
-			conRev.GetEntityById(Ids[i], &contractReviewEntity)
-
-			svcActiviti := workflow.GetActivitiService(utils.DBE)
-			var ActiComplete workflow.ActiCompleteVM
-			ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION
-			ActiComplete.BusinessKey = contractReviewEntity.BusinessKey
-			ActiComplete.UserId = this.User.Id //审批人员
-			ActiComplete.Result = "1"          //前台审批[同意、不同意]
-			ActiComplete.UserNames = ProfessionalAudit
-			ActiComplete.Remarks = AuditRemark
-			ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
-
+	var lock sync.Mutex
+	for i := 0; i < len(Ids); i++ {
+		lock.Lock()
+		//取出日常评审主表信息
+		conRev := contractReview.GetOilContractReviewService(utils.DBE)
+		var contractReviewEntity contractReview.OilContractReview
+		conRev.GetEntityById(Ids[i], &contractReviewEntity)
+
+		svcActiviti := workflow.GetActivitiService(utils.DBE)
+		var ActiComplete workflow.ActiCompleteVM
+		ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION
+		ActiComplete.BusinessKey = contractReviewEntity.BusinessKey
+		ActiComplete.UserId = this.User.Id //审批人员
+		ActiComplete.Result = "1"          //前台审批[同意、不同意]
+		ActiComplete.UserNames = ProfessionalAudit
+		ActiComplete.Remarks = AuditRemark
+		ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost")
+
+		if len(Ids) > 1 {
 			go func() {
 				receiveVal := svcActiviti.TaskComplete(ActiComplete)
 				if receiveVal != "true" {
@@ -1038,8 +1077,26 @@ func (this *OilContractReviewController) BusinessOfficeSeparateAuditEntity() {
 					}
 				}
 			}()
-			lock.Unlock()
+		} else {
+			receiveVal := svcActiviti.TaskComplete(ActiComplete)
+			if receiveVal != "true" {
+				log.Print("日常评价 工作流异常,业务ID:" + contractReviewEntity.BusinessKey + ",工作流信息:" + receiveVal)
+			} else {
+				if Result == "1" {
+					cols := []string{
+						"Id",
+						"Status",
+						"ProfessionalAudit",
+					}
+					supplierCertId := strings.Split(contractReviewEntity.BusinessKey, "-")[0]
+					contractReviewEntity.Status = suppliercert.PROF_AUDIT_STATUS //专业处室接收
+					contractReviewEntity.ProfessionalAudit, _ = strconv.Atoi(ProfessionalAudit)
+					conRev.UpdateEntityByIdCols(supplierCertId, contractReviewEntity, cols)
+					fmt.Println("业务处室分办协程!" + strconv.Itoa(i))
+				}
+			}
 		}
+		lock.Unlock()
 	}
 }