|
@@ -3,7 +3,6 @@ package seal
|
|
|
import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
- "github.com/astaxie/beego/logs"
|
|
|
"hongze/hongze_mobile_admin/models/custom"
|
|
|
sealResp "hongze/hongze_mobile_admin/models/response/seal"
|
|
|
"hongze/hongze_mobile_admin/models/tables/admin"
|
|
@@ -17,7 +16,7 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-//添加用印
|
|
|
+// AddSeal 添加用印
|
|
|
func AddSeal(userId, contractId, fileNum int, userName, use, useCompanyName, companyName, creditCode, serviceType, sealType, remark, fileUrl string) (sealInfo *seal.Seal, err error) {
|
|
|
useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
|
|
|
serviceTypeList := []string{"新签合同", "续约合同", "补充协议"}
|
|
@@ -61,7 +60,7 @@ func AddSeal(userId, contractId, fileNum int, userName, use, useCompanyName, com
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//修改用印
|
|
|
+// Edit 修改用印
|
|
|
func Edit(sealId, userId, contractId, fileNum int, use, companyName, userCompanyName, creditCode, serviceType, sealType, remark, fileUrl string) (sealInfo *seal.Seal, err error) {
|
|
|
useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
|
|
|
serviceTypeList := []string{"新签合同", "续约合同", "补充协议"}
|
|
@@ -115,7 +114,7 @@ func Edit(sealId, userId, contractId, fileNum int, use, companyName, userCompany
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//审批者修改用印
|
|
|
+// CheckEdit 审批者修改用印
|
|
|
func CheckEdit(sealInfo *seal.Seal, approvalInfo *contract_approval.ContractApproval, approvalRecord *contract_approval_record.ContractApprovalRecord, fileNum int, fileUrl, use, sealType, remark string, opUser *custom.AdminWx) (err error) {
|
|
|
useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
|
|
|
sealTypeList := []string{"合同章", "公章", "法人章"}
|
|
@@ -220,7 +219,7 @@ func CheckEdit(sealInfo *seal.Seal, approvalInfo *contract_approval.ContractAppr
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//审批人修改
|
|
|
+// checkEdit 审批人修改
|
|
|
func checkEdit(sealInfo *seal.Seal, updateCol []string, approvalRecordId int, content string, opUser *custom.AdminWx) {
|
|
|
_ = sealInfo.Update(updateCol)
|
|
|
|
|
@@ -234,9 +233,9 @@ func checkEdit(sealInfo *seal.Seal, updateCol []string, approvalRecordId int, co
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//作废用印
|
|
|
+// Invalid 作废用印
|
|
|
func Invalid(sealId int, opUser *custom.AdminWx, isInvalidContract bool) (err error) {
|
|
|
- //查询当前合同信息
|
|
|
+ //查询当前用印信息
|
|
|
sealInfo, err := seal.GetSealInfoById(sealId)
|
|
|
if err != nil {
|
|
|
if err.Error() == utils.ErrNoRow() {
|
|
@@ -269,16 +268,69 @@ func Invalid(sealId int, opUser *custom.AdminWx, isInvalidContract bool) (err er
|
|
|
if sealInfo.ContractId > 0 && isInvalidContract {
|
|
|
err = contractService.InvalidContract(sealInfo.ContractId, opUser)
|
|
|
if err != nil {
|
|
|
- logs.Info("作废用印时,同步作废合同失败,Err:", err.Error())
|
|
|
+ utils.ApiLog.Println("作废用印时,同步作废合同失败,Err:", err.Error())
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取最近一次提交的审批单信息
|
|
|
+ contractApproval, err := contract_approval.GetLastContractApprovalByContractId(sealInfo.SealId, "seal")
|
|
|
+ if err != nil {
|
|
|
+ err = nil
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //如果有提测信息,那么需要给对应的审批人发送消息
|
|
|
+ if contractApproval != nil {
|
|
|
+ //作废后需要给审批者发送消息
|
|
|
+ contractApprovalRecordList, tmpErr := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApproval.ContractApprovalId)
|
|
|
+ if tmpErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ content := fmt.Sprint("作废", sealInfo.CompanyName, "用印申请")
|
|
|
+ for _, contractApprovalRecord := range contractApprovalRecordList {
|
|
|
+ if contractApprovalRecord.NodeType == "check" { //如果是审批人,那么需要发送消息给对方
|
|
|
+ //操作人信息
|
|
|
+ sysUserMobile := ""
|
|
|
+ sysUser, _ := admin.GetAdminById(contractApprovalRecord.ApproveUserId)
|
|
|
+ if sysUser != nil {
|
|
|
+ sysUserMobile = sysUser.Mobile
|
|
|
+ }
|
|
|
+ go services.AddCompanyApprovalMessage(opUser.AdminId, contractApprovalRecord.ApproveUserId, 0, contractApprovalRecord.ContractApprovalRecordId, 3, sourceType, 2, sealInfo.CompanyName, content, content, sysUserMobile)
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//添加操作日志
|
|
|
//remark := "作废合同模板"
|
|
|
//_ = contract_operation_record.AddContractOperationRecord(nowContract.ContractId, opUser.AdminId, 0, "invalid", opUser.RealName, remark)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//获取审批流和权限
|
|
|
+// UploadCheckBackFile 上传签回用印附件(实际操作)
|
|
|
+func UploadCheckBackFile(sealId int, fileUrl string, opUser *custom.AdminWx) (sealInfo *seal.Seal, err error) {
|
|
|
+ //查询当前用印信息
|
|
|
+ sealInfo, err = seal.GetSealInfoById(sealId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //用印状态判断
|
|
|
+ if sealInfo.Status != "已审批" && sealInfo.Status != "已签回" {
|
|
|
+ err = errors.New("用印状态异常,不允许上传签回用印附件,当前用印状态:" + sealInfo.Status)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sealInfo.CheckBackFileUrl = fileUrl
|
|
|
+ sealInfo.Status = "已签回"
|
|
|
+ sealInfo.ModifyTime = time.Now()
|
|
|
+ sealInfo.CheckBackFileTime = time.Now()
|
|
|
+ err = sealInfo.Update([]string{"CheckBackFileUrl", "Status", "ModifyTime", "CheckBackFileTime"})
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// GetOpButton 获取审批流和权限
|
|
|
func GetOpButton(sealInfo *seal.Seal, contractApprovalInfo *contract_approval.ContractApproval, opUser *custom.AdminWx) (sealOpButton sealResp.OpButton, flowNodeListResp [][]contract_approval_record.ContractApprovalRecord, err error) {
|
|
|
//审批流
|
|
|
approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalInfo.ContractApprovalId)
|
|
@@ -337,10 +389,16 @@ func GetOpButton(sealInfo *seal.Seal, contractApprovalInfo *contract_approval.Co
|
|
|
}
|
|
|
|
|
|
//作废权限
|
|
|
- if (opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || opUser.AdminId == sealInfo.UserId) && sealInfo.Status == "已审批" {
|
|
|
+ if opUser.AdminId == sealInfo.UserId && sealInfo.Status == "已审批" {
|
|
|
sealOpButton.Invalid = true
|
|
|
}
|
|
|
|
|
|
+ //是否具有签回合同用印权限
|
|
|
+ uploadStatus := []string{"已审批", "已签回"}
|
|
|
+ if opUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(uploadStatus, ","), sealInfo.Status) {
|
|
|
+ sealOpButton.UploadFile = true
|
|
|
+ }
|
|
|
+
|
|
|
//编辑权限
|
|
|
editStatus := []string{"已驳回", "待提交", "已撤回"}
|
|
|
if opUser.AdminId == sealInfo.UserId && strings.Contains(strings.Join(editStatus, ","), sealInfo.Status) {
|