Browse Source

fix(审批):
用印审批调整
基础权限获取调整

Roc 3 years ago
parent
commit
f0e9eca65c

+ 3 - 2
controllers/approval.go

@@ -644,7 +644,7 @@ func (this *ApprovalCommon) ApplyApprove() {
 
 // @Title 获取审批流详情接口
 // @Description 获取审批流详情接口
-// @Param   FlowId   query   int  true       "审批流程id;1:ficc客户审批;2:权益客户审批;3:ficc合同审批,4:权益合同审批,5:用印审批"
+// @Param   FlowId   query   int  true       "审批流程id;1:ficc客户审批;2:权益客户审批;3:ficc合同审批,4:权益合同审批,5:用印审批(合同章),6:用印审批(公章、法人章)"
 // @Success 200 {object} approval_flow.ApprovalFlowItem
 // @router /flowDetail [get]
 func (this *ApprovalCommon) GetFlowDetail() {
@@ -661,7 +661,8 @@ func (this *ApprovalCommon) GetFlowDetail() {
 		return
 	}
 
-	this.OkDetailed(flowItem, "获取成功")
+	formatFlowItem, err := flow.FormatApprovalFlow(flowItem)
+	this.OkDetailed(formatFlowItem, "获取成功")
 }
 
 // @Title 根据客户名称获取已存在合同系统中客户名称列表

+ 3 - 1
controllers/contract.go

@@ -73,6 +73,7 @@ func (this *ContractCommon) Detail() {
 // @Title 根据客户名称获取已存在合同系统中客户名称列表
 // @Description 获取合同详情接口
 // @Param   CompanyName   query   string  true       "客户名称"
+// @Param   Status   query   string  true       "合同状态"
 // @Success 200 {object} []string
 // @router /company_list [get]
 func (this *ContractCommon) CompanyList() {
@@ -82,8 +83,9 @@ func (this *ContractCommon) CompanyList() {
 		this.FailWithMessage("客户名称必传!", "客户名称必传!")
 		return
 	}
+	status := this.GetString("Status")
 	companyNameList := make([]string, 0)
-	list, err := contract.GetCompanyNameList(companyName)
+	list, err := contract.GetCompanyNameList(companyName, status)
 	if err != nil {
 		this.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
 		return

+ 4 - 4
controllers/resource.go

@@ -14,7 +14,7 @@ import (
 )
 
 //资源管理-图片上传,合同上传等
-type ResourceController struct {
+type ResourceCommon struct {
 	BaseAuth
 }
 
@@ -22,8 +22,8 @@ type ResourceController struct {
 // @Description 图片上传接口
 // @Param   file   query   file  true       "文件"
 // @Success 200 新增成功
-// @router /image/upload [post]
-func (this *ResourceController) Upload() {
+// @router /upload [post]
+func (this *ResourceCommon) Upload() {
 	f, h, err := this.GetFile("file")
 	if err != nil {
 		this.FailWithMessage("获取资源信息失败", "获取资源信息失败,Err:"+err.Error())
@@ -79,7 +79,7 @@ func (this *ResourceController) Upload() {
 // @Param   Image query  string  false       "图片,base64字符串"
 // @Success 200 {object} models.ImageResponse
 // @router /upload_image_base64 [post]
-func (this *ResourceController) UploadImageBase64() {
+func (this *ResourceCommon) UploadImageBase64() {
 
 	var err error
 	ext := ".png"

+ 18 - 7
controllers/seal_approval.go

@@ -20,10 +20,11 @@ type SealApprovalCommon struct {
 
 // @Title 审批单列表
 // @Description 审批单列表接口
-// @Param   ContractType   query   string  false       "合同类型,枚举值:'新签合同','续约合同','补充协议'"
+// @Param   Use   query   string  false       "用途,枚举值:销售合同, 渠道合同, 付款通知函, 招投标, 战略合作协议"
+// @Param   ServiceType   query   string  false       "业务类型,枚举值:新增业务, 续约业务, 补充协议"
+// @Param   SealType   query   string  false       "公章类型,枚举值:合同章, 公章, 法人章"
 // @Param   Status   query   string  false       "合同状态,枚举值:'待审批','已审批','已驳回','已撤回'"
-// @Param   ProductId   query   int  false       "客户类型:传0或者不传为当前账号权限,1 代表是:ficc;2 代表是:权益"
-// @Param   SellerId   query   string  false       "选择的销售id"
+// @Param   UserId   query   string  false       "选择的申请人id"
 // @Param   Keyword   query   string  false       "搜索关键字"
 // @Param   ModifyStartTime   query   string  false       "服务更新时间的选择开始时间,格式:2021-05-23 00:00:00"
 // @Param   ModifyEndTime   query   string  false       "服务更新时间的选择结束时间,格式:2021-05-26 23:59:59"
@@ -34,7 +35,9 @@ func (this *SealApprovalCommon) List() {
 
 	//合同类型、产品类型、合同状态、更新时间、所选销售
 	//关键字:合同编号、客户名称,社会信用码
-	contractType := this.GetString("ContractType")
+	serviceType := this.GetString("ServiceType")
+	use := this.GetString("Use")
+	sealType := this.GetString("SealType")
 	status := this.GetString("Status")
 	productId, _ := this.GetInt("ProductId")
 	sellerIds := this.GetString("SellerId")
@@ -65,9 +68,17 @@ func (this *SealApprovalCommon) List() {
 
 	//合同类型、、更新时间、所选销售
 	//关键字:合同编号、客户名称,社会信用码
-	if contractType != "" {
-		condition += ` AND c.contract_type = ? `
-		pars = append(pars, contractType)
+	if use != "" {
+		condition += ` AND c.use = ? `
+		pars = append(pars, use)
+	}
+	if serviceType != "" {
+		condition += ` AND c.service_type = ? `
+		pars = append(pars, serviceType)
+	}
+	if sealType != "" {
+		condition += ` AND c.seal_type = ? `
+		pars = append(pars, sealType)
 	}
 	//审批状态
 	if status != "" {

+ 6 - 2
models/tables/contract/contract.go

@@ -376,9 +376,13 @@ type CompanyNameList struct {
 }
 
 //获取客户名称列表数据
-func GetCompanyNameList(name string) (list []*CompanyNameList, err error) {
+func GetCompanyNameList(name, status string) (list []*CompanyNameList, err error) {
 	o := orm.NewOrm()
-	sql := `select * from contract where company_name like '%` + name + `%' group by company_name order by modify_time desc `
+	sql := `select * from contract where company_name like '%` + name + `%' `
+	if status != "" {
+		sql += ` AND status='` + status + `' `
+	}
+	sql += ` group by company_name order by modify_time desc `
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 }

+ 5 - 9
models/tables/contract_approval/contract_approval.go

@@ -433,15 +433,13 @@ func GetContractApprovalByIds(contractApprovalIds string) (contractApprovalList
 //获取用印审批列表数据数量
 func GetSealApprovalListCount(childCondition, condition string, childPars, pars []interface{}) (count int, err error) {
 	o := orm.NewOrm()
-	sql := `
-SELECT
-a.contract_approval_id,a.contract_id,a.apply_content,a.contract_detail,a.approve_remark,a.create_time,a.modify_time,a.status,c.status contract_status,c.product_id,
-c.contract_type,c.start_date,c.end_date,c.price,c.company_name,c.seller_id,c.seller_name,c.file_url,c.contract_code from contract_approval a
+	sql := `SELECT a.contract_approval_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status,c.status seal_status,
+c.seal_type,c.company_name,c.user_id,c.user_name,c.file_url,c.code from contract_approval a
 	join 
 	( SELECT max( contract_approval_id ) max_id,contract_id FROM contract_approval where 1=1 `
 	sql += childCondition
 	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
-	JOIN seal c ON a.seal_id = c.contract_id 
+	JOIN seal c ON c.seal_id = a.contract_id 
 	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id
 WHERE c.is_delete = 0 `
 	sql += condition
@@ -482,15 +480,13 @@ type SealApprovalList struct {
 //获取合同审批列表数据
 func GetSealApprovalList(childCondition, condition string, childPars, pars []interface{}, startSize, pageSize int) (list []*SealApprovalList, err error) {
 	o := orm.NewOrm()
-	sql := `
-SELECT
-a.contract_approval_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status,c.status seal_status,
+	sql := `SELECT a.contract_approval_id,a.contract_id,a.apply_content,a.approve_remark,a.create_time,a.modify_time,a.status,c.status seal_status,
 c.seal_type,c.company_name,c.user_id,c.user_name,c.file_url,c.code from contract_approval a
 	join 
 	( SELECT max( contract_approval_id ) max_id,contract_id FROM contract_approval where 1=1 `
 	sql += childCondition
 	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
-	JOIN seal c ON a.seal_id = c.contract_id 
+	JOIN seal c ON c.seal_id = a.contract_id 
 	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id
 WHERE c.is_delete = 0 `
 	sql += condition

+ 5 - 0
routers/router.go

@@ -70,6 +70,11 @@ func init() {
 				&controllers.SealApprovalCommon{},
 			),
 		),
+		web.NSNamespace("/resource",
+			web.NSInclude(
+				&controllers.ResourceCommon{},
+			),
+		),
 	)
 	web.AddNamespace(ns)
 }

+ 25 - 0
services/flow/flow.go

@@ -42,6 +42,31 @@ func GetApprovalFlow(flowId int) (approvalFlow *approval_flow.ApprovalFlowItem,
 	return
 }
 
+//格式化数据返回
+func FormatApprovalFlow(approvalFlow *approval_flow.ApprovalFlowItem) (list [][]contract_approval_record.ContractApprovalRecord, err error) {
+	for _, node := range approvalFlow.NodeList {
+		approvalRecordList := make([]contract_approval_record.ContractApprovalRecord, 0)
+
+		for _, user := range node.UserList {
+			approvalRecord := contract_approval_record.ContractApprovalRecord{
+				Status:              "待审批",
+				ApproveRoleTypeCode: user.RoleTypeCode,
+				ApproveUserId:       user.AdminId,
+				ApproveUserName:     user.Name,
+				NodeId:              node.NodeId,
+				NodeType:            node.NodeType,
+				PrevNodeId:          node.PrevNodeId,
+				NextNodeId:          node.NextNodeId,
+				AuditType:           node.AuditType,
+				CreateTime:          node.CreateTime,
+			}
+			approvalRecordList = append(approvalRecordList, approvalRecord)
+		}
+		list = append(list, approvalRecordList)
+	}
+	return
+}
+
 //获取审批人信息
 func getAdminListByUserType(userType, user string, productId int) (adminList []*admin.Admin, err error) {
 	switch userType {

+ 10 - 2
services/seal/approval.go

@@ -35,11 +35,19 @@ func Apply(sealInfo *seal.Seal) (err error) {
 	}
 
 	//获取基础审批流
-
-	flowItemInfo, err := flow.GetApprovalFlow(5)
+	flowId := 5
+	//如果是法人章或者是公章
+	if sealInfo.SealType == "法人章" || sealInfo.SealType == "公章" {
+		flowId = 6
+	}
+	flowItemInfo, err := flow.GetApprovalFlow(flowId)
 	if err != nil {
 		return
 	}
+	if len(flowItemInfo.NodeList) <= 0 {
+		err = errors.New("审批流程未配置")
+		return
+	}
 
 	//校验是否存在待审批的审批单(其实没有多大意义,只是为了 异常数据校验)
 	approval := &contract_approval.ContractApproval{