|
@@ -7,11 +7,8 @@ import (
|
|
|
"hongze/hongze_mobile_admin/models/custom"
|
|
|
"hongze/hongze_mobile_admin/models/tables/admin"
|
|
|
"hongze/hongze_mobile_admin/models/tables/approval_flow_node"
|
|
|
- "hongze/hongze_mobile_admin/models/tables/company_approval_message"
|
|
|
- "hongze/hongze_mobile_admin/models/tables/contract"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_approval"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
|
|
|
- "hongze/hongze_mobile_admin/models/tables/contract_operation_record"
|
|
|
"hongze/hongze_mobile_admin/models/tables/seal"
|
|
|
"hongze/hongze_mobile_admin/services"
|
|
|
"hongze/hongze_mobile_admin/services/flow"
|
|
@@ -19,16 +16,19 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
+var sourceType = 3
|
|
|
+
|
|
|
//提交审批
|
|
|
func Apply(sealInfo *seal.Seal) (err error) {
|
|
|
- //合同状态判断
|
|
|
+ //用印状态判断
|
|
|
ignoreStatus := []string{"待提交", "已撤回", "已驳回"}
|
|
|
if !strings.Contains(strings.Join(ignoreStatus, ","), sealInfo.Status) {
|
|
|
err = errors.New("用印单状态异常,不允许提交审批,当前用印单状态:" + sealInfo.Status)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- contractDetailByte, err := json.Marshal(sealInfo)
|
|
|
+ //将用印数据存为快照
|
|
|
+ sealDetailByte, err := json.Marshal(sealInfo)
|
|
|
if err != nil {
|
|
|
err = errors.New(fmt.Sprint("用印单异常,当前用印单数据格式化失败:", err))
|
|
|
return
|
|
@@ -40,14 +40,13 @@ func Apply(sealInfo *seal.Seal) (err error) {
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println(flowItemInfo)
|
|
|
|
|
|
//校验是否存在待审批的审批单(其实没有多大意义,只是为了 异常数据校验)
|
|
|
- contractApproval := &contract_approval.ContractApproval{
|
|
|
+ approval := &contract_approval.ContractApproval{
|
|
|
ContractId: sealInfo.SealId,
|
|
|
Status: "待审批",
|
|
|
ApplyContent: sealInfo.Use,
|
|
|
- ContractDetail: string(contractDetailByte),
|
|
|
+ ContractDetail: string(sealDetailByte),
|
|
|
ApplyUserId: sealInfo.UserId,
|
|
|
ApplyUserName: sealInfo.UserName,
|
|
|
FlowId: flowItemInfo.FlowId,
|
|
@@ -56,12 +55,12 @@ func Apply(sealInfo *seal.Seal) (err error) {
|
|
|
ModifyTime: time.Now(),
|
|
|
CreateTime: time.Now(),
|
|
|
}
|
|
|
- has, err := contractApproval.CheckPendingByContractId(sealInfo.SealId, "seal")
|
|
|
+ has, err := approval.CheckPendingByContractId(sealInfo.SealId, "seal")
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
if has {
|
|
|
- err = errors.New("合同异常,不允许提交审批,存在待审核的审批单")
|
|
|
+ err = errors.New("用印异常,不允许提交审批,存在待审核的审批单")
|
|
|
return
|
|
|
}
|
|
|
contractApprovalRecordList := make([]*contract_approval_record.ContractApprovalRecord, 0)
|
|
@@ -92,7 +91,7 @@ func Apply(sealInfo *seal.Seal) (err error) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- err = contractApproval.Apply(contractApproval, contractApprovalRecordList)
|
|
|
+ err = approval.Apply(approval, contractApprovalRecordList)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -100,149 +99,29 @@ func Apply(sealInfo *seal.Seal) (err error) {
|
|
|
//待办通知
|
|
|
{
|
|
|
//发送消息下级审批人
|
|
|
- go messageToNodeUser(contractApprovalRecordList[0].NodeId, contractApproval.ApplyUserId, contractApproval.ContractApprovalId, 1, 1, sealInfo.CompanyName, sealInfo.Use)
|
|
|
+ go messageToNodeUser(contractApprovalRecordList[0].NodeId, approval.ApplyUserId, approval.ContractApprovalId, 1, 1, sealInfo.CompanyName, sealInfo.Use)
|
|
|
|
|
|
//发送消息给所有的抄送人
|
|
|
- go messageToAllCcUser(contractApproval.ApplyUserId, contractApproval.ContractApprovalId, 1, 1, sealInfo.CompanyName, sealInfo.Use)
|
|
|
+ go messageToAllCcUser(approval.ApplyUserId, approval.ContractApprovalId, 1, 1, sealInfo.CompanyName, sealInfo.Use)
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//撤销合同
|
|
|
-func CancelApplyByContract(contractInfo *contract.Contract, opUserId int) (err error) {
|
|
|
- if contractInfo == nil {
|
|
|
- err = errors.New("审批流异常,没有审批流信息")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //合同状态判断
|
|
|
- if contractInfo.Status != "待审批" {
|
|
|
- err = errors.New("合同状态异常,不允许撤回申请,当前合同状态:" + contractInfo.Status)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //校验操作人与合同申请人是否同一人
|
|
|
- if contractInfo.SellerId != opUserId {
|
|
|
- err = errors.New("操作人异常,不允许撤回非本人提交的申请:" + contractInfo.Status)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //获取最近一次待审批的审批单信息
|
|
|
- contractApproval, err := contract_approval.GetLastPendingContractApprovalByContractId(contractInfo.ContractId)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- //获取当前待审批的审批流信息
|
|
|
- contractApprovalRecord, err := contract_approval_record.GetCurrContractApprovalRecordByContractId(contractApproval.ContractApprovalId)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- //判断当前节点是否存在上级节点,如果存在,那么说明
|
|
|
- if contractApprovalRecord.PrevNodeId > 0 {
|
|
|
- err = errors.New("合同已存在审批操作,不允许撤回申请")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //获取当前审批单中所有待审批的流程流
|
|
|
- contractApprovalRecordList, err := contract_approval_record.GetPendingContractApprovalRecordListByContractId(contractApproval.ContractApprovalId, contractApprovalRecord.NodeId)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //撤回审批流
|
|
|
- err = contractApproval.Cancel(contractApproval, contractApprovalRecordList)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //添加操作日志
|
|
|
- remark := "撤回申请"
|
|
|
- _ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, contractInfo.SellerId, contractApprovalRecord.ContractApprovalRecordId, "cancel_apply", contractInfo.SellerName, remark)
|
|
|
-
|
|
|
- //作废原有消息
|
|
|
- for _, contractApprovalRecord := range contractApprovalRecordList {
|
|
|
- go company_approval_message.CancelCompanyApprovalMessage(contractApprovalRecord.ContractApprovalRecordId, 2)
|
|
|
- }
|
|
|
-
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-//撤回审批单
|
|
|
-func CancelApply(contractApprovalRecord *contract_approval_record.ContractApprovalRecord, opUserId int) (err error) {
|
|
|
- if contractApprovalRecord == nil {
|
|
|
- err = errors.New("审批流异常,没有审批流信息")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //审批流状态判断
|
|
|
- if contractApprovalRecord.Status != "待审批" {
|
|
|
- err = errors.New("审批流状态异常,不允许撤回申请,当前审批流状态:" + contractApprovalRecord.Status)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //获取审批单详情
|
|
|
- contractApproval, err := contract_approval.GetContractApprovalById(contractApprovalRecord.ContractApprovalId)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //审批单状态判断
|
|
|
- if contractApproval.Status != "待审批" {
|
|
|
- err = errors.New("审批单状态异常,不允许撤回申请,当前审批单状态:" + contractApproval.Status)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //获取合同信息
|
|
|
- contractInfo, err := contract.GetContractById(contractApproval.ContractId)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- //合同状态判断
|
|
|
- if contractInfo.Status != "待审批" {
|
|
|
- err = errors.New("合同状态异常,不允许撤回申请,当前合同状态:" + contractInfo.Status)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //校验操作人与合同申请人是否同一人
|
|
|
- if contractInfo.SellerId != opUserId {
|
|
|
- err = errors.New("操作人异常,不允许撤回非本人提交的申请:" + contractInfo.Status)
|
|
|
- return
|
|
|
- }
|
|
|
- //获取当前审批单中所有待审批的流程流
|
|
|
- contractApprovalRecordList, err := contract_approval_record.GetPendingContractApprovalRecordListByContractId(contractApproval.ContractApprovalId, contractApprovalRecord.NodeId)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- err = contractApproval.Cancel(contractApproval, contractApprovalRecordList)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //添加操作日志
|
|
|
- remark := "撤回申请"
|
|
|
- _ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, contractInfo.SellerId, contractApprovalRecord.ContractApprovalRecordId, "cancel_apply", contractInfo.SellerName, remark)
|
|
|
-
|
|
|
- //作废原有消息
|
|
|
- go company_approval_message.CancelCompanyApprovalMessage(contractApprovalRecord.ContractApprovalRecordId, 2)
|
|
|
-
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
//驳回审批
|
|
|
-func Reject(contractApprovalRecord *contract_approval_record.ContractApprovalRecord, opUser *custom.AdminWx, rejectRemark string) (err error) {
|
|
|
- if contractApprovalRecord == nil {
|
|
|
+func Reject(approvalRecord *contract_approval_record.ContractApprovalRecord, opUser *custom.AdminWx, rejectRemark string) (err error) {
|
|
|
+ if approvalRecord == nil {
|
|
|
err = errors.New("审批流异常,没有审批流信息")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//审批流状态判断
|
|
|
- if contractApprovalRecord.Status != "待审批" {
|
|
|
- err = errors.New("审批流状态异常,不允许驳回申请,当前审批流状态:" + contractApprovalRecord.Status)
|
|
|
+ if approvalRecord.Status != "待审批" {
|
|
|
+ err = errors.New("审批流状态异常,不允许驳回申请,当前审批流状态:" + approvalRecord.Status)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//判断是否审批类型,如果不是审批类型,那么就没有审批权限
|
|
|
- if contractApprovalRecord.NodeType != "check" {
|
|
|
+ if approvalRecord.NodeType != "check" {
|
|
|
err = errors.New("当前账号没有审批权限")
|
|
|
return
|
|
|
}
|
|
@@ -252,137 +131,136 @@ func Reject(contractApprovalRecord *contract_approval_record.ContractApprovalRec
|
|
|
opUserName := opUser.RealName
|
|
|
|
|
|
//操作权限校验
|
|
|
- if opUser.RoleTypeCode != contractApprovalRecord.ApproveRoleTypeCode {
|
|
|
+ if opUser.RoleTypeCode != approvalRecord.ApproveRoleTypeCode {
|
|
|
err = errors.New("当前账号没有审批权限")
|
|
|
return
|
|
|
}
|
|
|
- if contractApprovalRecord.ApproveUserId > 0 && contractApprovalRecord.ApproveUserId != opUserId {
|
|
|
+ if approvalRecord.ApproveUserId > 0 && approvalRecord.ApproveUserId != opUserId {
|
|
|
err = errors.New("当前账号没有审批权限,需要指定人操作")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//获取审批单详情
|
|
|
- contractApproval, err := contract_approval.GetContractApprovalById(contractApprovalRecord.ContractApprovalId)
|
|
|
+ approvalInfo, err := contract_approval.GetContractApprovalById(approvalRecord.ContractApprovalId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//审批单状态判断
|
|
|
- if contractApproval.Status != "待审批" {
|
|
|
- err = errors.New("审批单状态异常,不允许驳回申请,当前审批单状态:" + contractApproval.Status)
|
|
|
+ if approvalInfo.Status != "待审批" {
|
|
|
+ err = errors.New("审批单状态异常,不允许驳回申请,当前审批单状态:" + approvalInfo.Status)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //获取合同信息
|
|
|
- contractInfo, err := contract.GetContractById(contractApproval.ContractId)
|
|
|
+ //获取用印信息
|
|
|
+ sealInfo, err := seal.GetSealInfoById(approvalInfo.ContractId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- //合同状态判断
|
|
|
- if contractInfo.Status != "待审批" {
|
|
|
- err = errors.New("合同状态异常,不允许驳回申请,当前合同状态:" + contractInfo.Status)
|
|
|
+ //用印状态判断
|
|
|
+ if sealInfo.Status != "待审批" {
|
|
|
+ err = errors.New("用印状态异常,不允许驳回申请,当前用印状态:" + sealInfo.Status)
|
|
|
return
|
|
|
}
|
|
|
- err = contractApproval.Reject(contractApproval, contractApprovalRecord, opUserId, opUserName, rejectRemark)
|
|
|
+ err = approvalInfo.Reject(approvalInfo, approvalRecord, opUserId, opUserName, rejectRemark)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//添加操作日志
|
|
|
- remark := "驳回申请"
|
|
|
- _ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, opUserId, contractApprovalRecord.ContractApprovalRecordId, "reject", opUserName, remark)
|
|
|
+ //remark := "驳回申请"
|
|
|
+ //_ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, opUserId, approvalRecord.ContractApprovalRecordId, "reject", opUserName, remark)
|
|
|
|
|
|
//待办通知
|
|
|
{
|
|
|
- content := contractInfo.CompanyName + " 合同模板已驳回"
|
|
|
- approvalSysUser, _ := admin.GetAdminById(contractInfo.SellerId)
|
|
|
- go services.AddCompanyApprovalMessage(opUserId, contractInfo.SellerId, 0, contractApprovalRecord.ContractApprovalRecordId, 2, 2, 3, contractInfo.CompanyName, content, content, approvalSysUser.Mobile)
|
|
|
+ content := sealInfo.CompanyName + " 用印已驳回"
|
|
|
+ approvalSysUser, _ := admin.GetAdminById(sealInfo.UserId)
|
|
|
+ go services.AddCompanyApprovalMessage(opUserId, sealInfo.UserId, 0, approvalRecord.ContractApprovalRecordId, 2, 2, 3, sealInfo.CompanyName, content, content, approvalSysUser.Mobile)
|
|
|
|
|
|
//发送消息给所有的抄送人
|
|
|
- go messageToAllCcUser(opUserId, contractApprovalRecord.ContractApprovalId, 2, 3, contractInfo.CompanyName, content)
|
|
|
+ go messageToAllCcUser(opUserId, approvalRecord.ContractApprovalId, 2, 3, sealInfo.CompanyName, content)
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//审批通过
|
|
|
-func Approved(contractApprovalRecord *contract_approval_record.ContractApprovalRecord, opUser *custom.AdminWx, approvedRemark string) (err error) {
|
|
|
- if contractApprovalRecord == nil {
|
|
|
+func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, opUser *custom.AdminWx, approvedRemark string) (err error) {
|
|
|
+ if approvalRecord == nil {
|
|
|
err = errors.New("审批流异常,没有审批流信息")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//审批流状态判断
|
|
|
- if contractApprovalRecord.Status != "待审批" {
|
|
|
- err = errors.New("审批流状态异常,不允许审批,当前审批流状态:" + contractApprovalRecord.Status)
|
|
|
+ if approvalRecord.Status != "待审批" {
|
|
|
+ err = errors.New("审批流状态异常,不允许审批,当前审批流状态:" + approvalRecord.Status)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//判断是否审批类型,如果不是审批类型,那么就没有审批权限
|
|
|
- if contractApprovalRecord.NodeType != "check" {
|
|
|
+ if approvalRecord.NodeType != "check" {
|
|
|
err = errors.New("当前账号没有审批权限")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//操作人
|
|
|
opUserId := opUser.AdminId
|
|
|
- opUserName := opUser.RealName
|
|
|
+ //opUserName := opUser.RealName
|
|
|
//操作权限校验
|
|
|
- if opUser.RoleTypeCode != contractApprovalRecord.ApproveRoleTypeCode {
|
|
|
+ if opUser.RoleTypeCode != approvalRecord.ApproveRoleTypeCode {
|
|
|
err = errors.New("当前账号没有审批权限")
|
|
|
return
|
|
|
}
|
|
|
- if contractApprovalRecord.ApproveUserId > 0 && contractApprovalRecord.ApproveUserId != opUserId {
|
|
|
+ if approvalRecord.ApproveUserId > 0 && approvalRecord.ApproveUserId != opUserId {
|
|
|
err = errors.New("当前账号没有审批权限,需要指定人操作")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//获取审批单详情
|
|
|
- contractApproval, err := contract_approval.GetContractApprovalById(contractApprovalRecord.ContractApprovalId)
|
|
|
+ approvalInfo, err := contract_approval.GetContractApprovalById(approvalRecord.ContractApprovalId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//审批单状态判断
|
|
|
- if contractApproval.Status != "待审批" {
|
|
|
- err = errors.New("审批单状态异常,不允许审批,当前审批单状态:" + contractApproval.Status)
|
|
|
+ if approvalInfo.Status != "待审批" {
|
|
|
+ err = errors.New("审批单状态异常,不允许审批,当前审批单状态:" + approvalInfo.Status)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //获取合同信息
|
|
|
- contractInfo, err := contract.GetContractById(contractApproval.ContractId)
|
|
|
+ //获取用印信息
|
|
|
+ sealInfo, err := seal.GetSealInfoById(approvalInfo.ContractId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- //合同状态判断
|
|
|
- if contractInfo.Status != "待审批" {
|
|
|
- err = errors.New("合同状态异常,不允许审批,当前合同状态:" + contractInfo.Status)
|
|
|
+ //用印状态判断
|
|
|
+ if sealInfo.Status != "待审批" {
|
|
|
+ err = errors.New("用印状态异常,不允许审批,当前用印状态:" + sealInfo.Status)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //if contractApprovalRecord
|
|
|
- err = contractApproval.Approved(contractApproval, contractApprovalRecord, approvedRemark)
|
|
|
+ err = approvalInfo.Approved(approvalInfo, approvalRecord, approvedRemark)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//添加操作日志
|
|
|
- remark := "审批通过"
|
|
|
- _ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, opUserId, contractApprovalRecord.ContractApprovalRecordId, "approval", opUserName, remark)
|
|
|
+ //remark := "审批通过"
|
|
|
+ //_ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, opUserId, approvalRecord.ContractApprovalRecordId, "approval", opUserName, remark)
|
|
|
|
|
|
//发送信息给所有抄送人
|
|
|
- content := contractInfo.CompanyName + " 合同模板已审核"
|
|
|
- go messageToAllCcUser(opUserId, contractApprovalRecord.ContractApprovalId, 2, 2, contractInfo.CompanyName, content)
|
|
|
- //如果下一个节点属于结束节点,那么通知对应的销售,同时,异步生成合同pdf
|
|
|
- if contractApprovalRecord.NextNodeId == 0 {
|
|
|
+ content := sealInfo.CompanyName + " 用印已审核"
|
|
|
+ go messageToAllCcUser(opUserId, approvalRecord.ContractApprovalId, 2, 2, sealInfo.CompanyName, content)
|
|
|
+ //如果下一个节点属于结束节点,那么通知对应的销售
|
|
|
+ if approvalRecord.NextNodeId == 0 {
|
|
|
//待办通知(通知销售已经审核通过了)
|
|
|
{
|
|
|
- content := contractInfo.CompanyName + " 合同模板已审核"
|
|
|
- approvalSysUser, _ := admin.GetAdminById(contractInfo.SellerId)
|
|
|
- go services.AddCompanyApprovalMessage(opUserId, contractInfo.SellerId, 0, contractApprovalRecord.ContractApprovalRecordId, 2, 2, 2, contractInfo.CompanyName, content, content, approvalSysUser.Mobile)
|
|
|
+ content := sealInfo.CompanyName + " 用印已审核"
|
|
|
+ approvalSysUser, _ := admin.GetAdminById(sealInfo.UserId)
|
|
|
+ go services.AddCompanyApprovalMessage(opUserId, sealInfo.UserId, 0, approvalRecord.ContractApprovalRecordId, 2, 2, 2, sealInfo.CompanyName, content, content, approvalSysUser.Mobile)
|
|
|
}
|
|
|
} else {
|
|
|
//获取下级节点信息
|
|
|
- flowNodeInfo, tmpErr := approval_flow_node.GetByNodeId(contractApprovalRecord.NextNodeId)
|
|
|
+ flowNodeInfo, tmpErr := approval_flow_node.GetByNodeId(approvalRecord.NextNodeId)
|
|
|
if tmpErr != nil {
|
|
|
err = tmpErr
|
|
|
return
|
|
@@ -390,10 +268,10 @@ func Approved(contractApprovalRecord *contract_approval_record.ContractApprovalR
|
|
|
|
|
|
//如果该级节点是抄送类型,那么需要将该节点给处理掉
|
|
|
if flowNodeInfo.NodeType == "cc" {
|
|
|
- go approvedByCc(approvedRemark, contractApprovalRecord)
|
|
|
+ go approvedByCc(approvedRemark, approvalRecord)
|
|
|
} else {
|
|
|
//发送消息下级审批人
|
|
|
- go messageToNodeUser(contractApprovalRecord.NextNodeId, contractInfo.SellerId, contractApproval.ContractApprovalId, 1, 1, contractInfo.CompanyName, content)
|
|
|
+ go messageToNodeUser(approvalRecord.NextNodeId, sealInfo.UserId, approvalInfo.ContractApprovalId, 1, 1, sealInfo.CompanyName, content)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -401,54 +279,54 @@ func Approved(contractApprovalRecord *contract_approval_record.ContractApprovalR
|
|
|
}
|
|
|
|
|
|
//审批通过(抄送节点)
|
|
|
-func approvedByCc(approvedRemark string, sourceContractApprovalRecord *contract_approval_record.ContractApprovalRecord) (err error) {
|
|
|
+func approvedByCc(approvedRemark string, sourceApprovalRecord *contract_approval_record.ContractApprovalRecord) (err error) {
|
|
|
//下个流程节点id
|
|
|
nextNodeId := 0
|
|
|
//获取审批单中抄送节点的所有数据列表
|
|
|
- contractApprovalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractIdAndNode(sourceContractApprovalRecord.ContractApprovalId, sourceContractApprovalRecord.NextNodeId)
|
|
|
+ approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractIdAndNode(sourceApprovalRecord.ContractApprovalId, sourceApprovalRecord.NextNodeId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
//遍历所有的抄送单
|
|
|
- for _, contractApprovalRecord := range contractApprovalRecordList {
|
|
|
- nextNodeId = contractApprovalRecord.NextNodeId
|
|
|
+ for _, approvalRecord := range approvalRecordList {
|
|
|
+ nextNodeId = approvalRecord.NextNodeId
|
|
|
//审批流状态判断
|
|
|
- if contractApprovalRecord.Status != "待审批" {
|
|
|
- err = errors.New("审批流状态异常,不允许审批,当前审批流状态:" + contractApprovalRecord.Status)
|
|
|
+ if approvalRecord.Status != "待审批" {
|
|
|
+ err = errors.New("审批流状态异常,不允许审批,当前审批流状态:" + approvalRecord.Status)
|
|
|
return
|
|
|
}
|
|
|
//判断是否审批类型,如果不是审批类型,那么就没有审批权限
|
|
|
- if contractApprovalRecord.NodeType != "cc" {
|
|
|
+ if approvalRecord.NodeType != "cc" {
|
|
|
err = errors.New("当前账号不是抄送权限")
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取审批单详情
|
|
|
- contractApproval, err := contract_approval.GetContractApprovalById(sourceContractApprovalRecord.ContractApprovalId)
|
|
|
+ approvalInfo, err := contract_approval.GetContractApprovalById(sourceApprovalRecord.ContractApprovalId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //获取合同信息
|
|
|
- contractInfo, err := contract.GetContractById(contractApproval.ContractId)
|
|
|
+ //获取用印信息
|
|
|
+ sealInfo, err := seal.GetSealInfoById(approvalInfo.ContractId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//if contractApprovalRecord
|
|
|
- err = contractApproval.ApprovedByCc(contractApproval, contractApprovalRecordList, approvedRemark, nextNodeId)
|
|
|
+ err = approvalInfo.ApprovedByCc(approvalInfo, approvalRecordList, approvedRemark, nextNodeId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //如果下一个节点属于结束节点,那么通知对应的销售,同时,异步生成合同pdf
|
|
|
+ //如果下一个节点属于结束节点,那么通知对应的销售
|
|
|
if nextNodeId == 0 {
|
|
|
//待办通知
|
|
|
{
|
|
|
- content := contractInfo.CompanyName + " 合同模板已审核"
|
|
|
- approvalSysUser, _ := admin.GetAdminById(contractInfo.SellerId)
|
|
|
- go services.AddCompanyApprovalMessage(sourceContractApprovalRecord.ApproveUserId, contractInfo.SellerId, 0, sourceContractApprovalRecord.ContractApprovalRecordId, 2, 2, 2, contractInfo.CompanyName, content, content, approvalSysUser.Mobile)
|
|
|
+ content := sealInfo.CompanyName + " 用印已审核"
|
|
|
+ approvalSysUser, _ := admin.GetAdminById(sealInfo.UserId)
|
|
|
+ go services.AddCompanyApprovalMessage(sourceApprovalRecord.ApproveUserId, sealInfo.UserId, 0, sourceApprovalRecord.ContractApprovalRecordId, 2, 2, 2, sealInfo.CompanyName, content, content, approvalSysUser.Mobile)
|
|
|
}
|
|
|
} else {
|
|
|
//获取下级节点信息
|
|
@@ -459,11 +337,11 @@ func approvedByCc(approvedRemark string, sourceContractApprovalRecord *contract_
|
|
|
}
|
|
|
//如果下级节点是抄送类型,那么还是需要处理抄送节点逻辑
|
|
|
if flowNodeInfo.NodeType == "cc" {
|
|
|
- go approvedByCc(approvedRemark, sourceContractApprovalRecord)
|
|
|
+ go approvedByCc(approvedRemark, sourceApprovalRecord)
|
|
|
} else {
|
|
|
//如果下级级节点是审批类型
|
|
|
//发送消息下级审批人
|
|
|
- go messageToNodeUser(nextNodeId, contractInfo.SellerId, contractApproval.ContractApprovalId, 1, 1, contractInfo.CompanyName, contractApproval.ApplyContent)
|
|
|
+ go messageToNodeUser(nextNodeId, sealInfo.UserId, approvalInfo.ContractApprovalId, 1, 1, sealInfo.CompanyName, approvalInfo.ApplyContent)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -516,7 +394,7 @@ func messageToUser(contractApprovalRecordList []*contract_approval_record.Contra
|
|
|
}
|
|
|
//接收人,就是审批记录里面的待审核人(抄送人)
|
|
|
receiveUserId := contractApprovalRecord.ApproveUserId
|
|
|
- go services.AddCompanyApprovalMessage(createUserId, receiveUserId, 0, contractApprovalRecord.ContractApprovalRecordId, messageType, 2, approvalStatus, companyName, content, content, sysUserMobile)
|
|
|
+ go services.AddCompanyApprovalMessage(createUserId, receiveUserId, 0, contractApprovalRecord.ContractApprovalRecordId, messageType, sourceType, approvalStatus, companyName, content, content, sysUserMobile)
|
|
|
}
|
|
|
return
|
|
|
}
|