xu 6 months ago
parent
commit
74f2c20804

+ 17 - 0
server/api/v1/workflow/project_process.go

@@ -117,6 +117,23 @@ func (ppa *ProjectProcessApi) UpdateProjectProcess(c *gin.Context) {
 	response.OkWithMessage("更新成功", c)
 }
 
+func (ppa *ProjectProcessApi) Replenished(c *gin.Context) {
+	id := c.Query("id")
+	projectProcessId, err := strconv.Atoi(id)
+	if err != nil {
+		response.FailWithMessage("参数解析失败", c)
+		global.GVA_LOG.Error("ReplenishedProjectProgress ====== " + err.Error())
+		return
+	}
+	err = projectProcessService.Replenished(projectProcessId)
+	if err != nil {
+		response.FailWithMessage("补齐申请失败", c)
+		global.GVA_LOG.Error("ReplenishedProjectProgress ====== " + err.Error())
+		return
+	}
+	response.OkWithMessage("补齐申请成功", c)
+}
+
 func (ppa *ProjectProcessApi) DeleteProjectProcess(c *gin.Context) {
 	var pp dao.ProjectProcess
 	err := c.ShouldBindJSON(&pp)

+ 93 - 0
server/dao/description.go

@@ -1,6 +1,7 @@
 package dao
 
 import (
+	"fmt"
 	"server/global"
 )
 
@@ -75,6 +76,17 @@ func ProcessOperate(projectProcess ProjectProcess, description Description) (err
 		if err != nil {
 			return err
 		}
+		//通知
+		notice := Notice{
+			Title:   "审批结果",
+			Content: fmt.Sprintf("您的申请已通过审批"),
+			Type:    projectProcess.ProjectType,
+			UserId:  projectProcess.Applicant,
+		}
+		err = notice.CreateNotice()
+		if err != nil {
+			return err
+		}
 
 		return err
 	}
@@ -88,6 +100,23 @@ func ProcessOperate(projectProcess ProjectProcess, description Description) (err
 			return err
 		}
 
+		//通知
+		notice := Notice{
+			Title:   "审批结果",
+			Content: fmt.Sprintf("您的申请未通过,请补充文件"),
+			Type:    projectProcess.ProjectType,
+			UserId:  projectProcess.Applicant,
+		}
+		err = notice.CreateNotice()
+		if err != nil {
+			return err
+		}
+		// 设置为打回状态
+		err = global.GVA_DB.Model(&ProjectProcess{}).Where("id = ?", projectProcess.ID).Update("is_back", true).Error
+		if err != nil {
+			return err
+		}
+
 		return err
 	}
 
@@ -105,6 +134,17 @@ func ProcessOperate(projectProcess ProjectProcess, description Description) (err
 		if err != nil {
 			return err
 		}
+		//通知
+		notice := Notice{
+			Title:   "审批结果",
+			Content: fmt.Sprintf("您的申请未通过"),
+			Type:    projectProcess.ProjectType,
+			UserId:  projectProcess.Applicant,
+		}
+		err = notice.CreateNotice()
+		if err != nil {
+			return err
+		}
 
 		return err
 	}
@@ -124,8 +164,50 @@ func ProcessOperate(projectProcess ProjectProcess, description Description) (err
 			return err
 		}
 
+		//通知
+		notice := Notice{
+			Title:   "审批结果",
+			Content: fmt.Sprintf("您的申请已通过审批"),
+			Type:    projectProcess.ProjectType,
+			UserId:  projectProcess.Applicant,
+		}
+		err = notice.CreateNotice()
+		if err != nil {
+			return err
+		}
+
 		return err
 	}
+
+	// 最后之前才会到达 如果为最后在上面完成后会return出去
+	if description.OptionResult == "打回" {
+
+		//流程记录保存
+		err = description.CreateDescription()
+		if err != nil {
+			return err
+		}
+
+		//通知
+		notice := Notice{
+			Title:   "审批结果",
+			Content: fmt.Sprintf("您的申请未通过,请补充文件"),
+			Type:    projectProcess.ProjectType,
+			UserId:  projectProcess.Applicant,
+		}
+		err = notice.CreateNotice()
+		if err != nil {
+			return err
+		}
+		// 设置为打回状态
+		err = global.GVA_DB.Model(&ProjectProcess{}).Where("id = ?", projectProcess.ID).Update("is_back", true).Error
+		if err != nil {
+			return err
+		}
+
+		return err
+	}
+
 	//
 	if description.OptionResult == "拒绝" {
 
@@ -146,6 +228,17 @@ func ProcessOperate(projectProcess ProjectProcess, description Description) (err
 		if err != nil {
 			return err
 		}
+		//通知
+		notice := Notice{
+			Title:   "审批结果",
+			Content: fmt.Sprintf("您的申请未通过"),
+			Type:    projectProcess.ProjectType,
+			UserId:  projectProcess.Applicant,
+		}
+		err = notice.CreateNotice()
+		if err != nil {
+			return err
+		}
 
 		return err
 	}

+ 6 - 1
server/dao/project_process.go

@@ -16,6 +16,7 @@ type ProjectProcess struct {
 	Descriptions       []Description `json:"descriptions" form:"descriptions" gorm:"foreignKey:ProjectProcessId;"`
 	State              int           `json:"isOver" form:"isOver" gorm:"comment:状态;default:0;"`
 	Code               string        `json:"code" form:"code" gorm:"-"`
+	IsBack             bool          `json:"isBack" form:"isBack" gorm:"default:false;comment:是否打回"`
 }
 
 func (ProjectProcess) TableName() string {
@@ -67,7 +68,7 @@ func QueryProjectApplicantList(limit, offset, applicant int) (projectProcesses [
 
 func QueryProjectProcessList(limit, offset, applicant int) (projectProcesses []ProjectProcess, total int64, err error) {
 	// 创建db
-	db := global.GVA_DB.Model(&ProjectProcess{}).Joins("JOIN node ON project_process.current_node_order = node.id").Where("node.approver_id = ?", applicant)
+	db := global.GVA_DB.Model(&ProjectProcess{}).Joins("JOIN node ON project_process.current_node_order = node.id").Where("node.approver_id = ? AND project_process.is_back = ?", applicant, false)
 	// 如果有条件搜索 下方会自动创建搜索语句
 	err = db.Count(&total).Error
 	if err != nil {
@@ -179,6 +180,10 @@ func (pp ProjectProcess) UpdateProjectProcess() error {
 	return global.GVA_DB.Where("id = ?", pp.ID).Updates(&pp).Error
 }
 
+func Replenished(id int) error {
+	return global.GVA_DB.Model(&ProjectProcess{}).Where("id = ?", id).Update("is_back", false).Error
+}
+
 func (pp ProjectProcess) DeleteProjectProcess() error {
 	return global.GVA_DB.Unscoped().Delete(&pp).Error
 }

+ 1 - 0
server/router/workflow/projectProcess.go

@@ -16,6 +16,7 @@ func (s *ProjectProcessRouter) InitProjectProcessRouter(Router *gin.RouterGroup)
 	{
 		projectProcessRouter.POST("createApprover", projectProcessApi.CreateProjectProcess)
 		projectProcessRouter.PUT("updateApprover", projectProcessApi.UpdateProjectProcess)
+		projectProcessRouter.GET("replenished", projectProcessApi.Replenished)
 		projectProcessRouter.DELETE("deleteApprover", projectProcessApi.DeleteProjectProcess)
 	}
 	{

+ 4 - 0
server/service/workflow/project_process.go

@@ -33,6 +33,10 @@ func (pps *ProjectProcessService) UpdateProjectProcess(process dao.ProjectProces
 	return process.UpdateProjectProcess()
 }
 
+func (pps *ProjectProcessService) Replenished(id int) error {
+	return dao.Replenished(id)
+}
+
 func (pps *ProjectProcessService) DeleteProjectProcess(process dao.ProjectProcess) error {
 	return process.DeleteProjectProcess()
 }