|
@@ -6,9 +6,11 @@ import (
|
|
|
"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"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_approval"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
|
|
|
"hongze/hongze_mobile_admin/models/tables/seal"
|
|
|
+ "hongze/hongze_mobile_admin/services"
|
|
|
contractService "hongze/hongze_mobile_admin/services/contract"
|
|
|
"hongze/hongze_mobile_admin/utils"
|
|
|
"strings"
|
|
@@ -113,6 +115,111 @@ func Edit(sealId, userId, contractId, fileNum int, use, companyName, userCompany
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+//审批者修改用印
|
|
|
+func CheckEdit(sealInfo *seal.Seal, approvalInfo *contract_approval.ContractApproval, approvalRecord *contract_approval_record.ContractApprovalRecord, fileNum int, use, sealType, remark string, opUser *custom.AdminWx) (err error) {
|
|
|
+ useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
|
|
|
+ sealTypeList := []string{"合同章", "公章", "法人章"}
|
|
|
+ if !strings.Contains(strings.Join(useList, ","), use) {
|
|
|
+ err = errors.New("用印用途异常")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !strings.Contains(strings.Join(sealTypeList, ","), sealType) {
|
|
|
+ err = errors.New("加盖印章类型异常")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断是否是合规账号
|
|
|
+ if opUser.RoleTypeCode != utils.ROLE_TYPE_CODE_COMPLIANCE {
|
|
|
+ err = errors.New("当前账号无修改权限")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //用印状态判断
|
|
|
+ ignoreStatus := []string{"待提交", "已撤回", "已驳回"}
|
|
|
+ if !strings.Contains(strings.Join(ignoreStatus, ","), sealInfo.Status) {
|
|
|
+ err = errors.New("用印状态异常,不允许修改,当前用印状态:" + sealInfo.Status)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //变更字段判断
|
|
|
+ updateCol := make([]string, 0)
|
|
|
+ updateContent := make([]string, 0)
|
|
|
+ if sealInfo.Use != use {
|
|
|
+ updateCol = append(updateCol, "Use")
|
|
|
+ updateContent = append(updateContent, "用印用途")
|
|
|
+ }
|
|
|
+ if sealInfo.SealType != sealType {
|
|
|
+ updateCol = append(updateCol, "SealType")
|
|
|
+ updateContent = append(updateContent, "加盖何种印章")
|
|
|
+ }
|
|
|
+ if sealInfo.Remark != remark {
|
|
|
+ updateCol = append(updateCol, "Remark")
|
|
|
+ updateContent = append(updateContent, "备注")
|
|
|
+ }
|
|
|
+ if sealInfo.FileNum != fileNum {
|
|
|
+ updateCol = append(updateCol, "FileNum")
|
|
|
+ updateContent = append(updateContent, "文件份数")
|
|
|
+ }
|
|
|
+ if len(updateCol) <= 0 {
|
|
|
+ err = errors.New("没有变更信息")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ content := "用印修改:" + opUser.AdminName + "修改了" + strings.Join(updateContent, "、")
|
|
|
+
|
|
|
+ //如果变更了盖章类型(涉及到审批流程变更),那么需要变更审批流
|
|
|
+ //变更审批流:先驳回用印申请,再修改用印,再发消息给申请人,再替申请人重新发起申请,
|
|
|
+ //然后遍历审批流程,当前操作人节点之前的全部审核通过,最后通过当前操作人的节点(改成如果一级审批人如果是自己,那么直接通过这一级审批,否则不通过,让审批单重走流程)
|
|
|
+ if (sealInfo.SealType == "合同章" && strings.Contains("公章,法人章", sealType)) || (strings.Contains("公章,法人章", sealInfo.SealType) && sealType == "合同章") {
|
|
|
+ //先驳回
|
|
|
+ err = Reject(sealInfo, approvalInfo, approvalRecord, opUser, "")
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //修改用印申请,给申请人发消息
|
|
|
+ sealInfo.Use = use
|
|
|
+ sealInfo.SealType = sealType
|
|
|
+ sealInfo.Remark = remark
|
|
|
+ sealInfo.FileNum = fileNum
|
|
|
+ sealInfo.ModifyTime = time.Now()
|
|
|
+ checkEdit(sealInfo, updateCol, approvalRecord.ContractApprovalRecordId, content, opUser)
|
|
|
+
|
|
|
+ //重新发起申请
|
|
|
+ err = CheckApply(sealInfo, opUser)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ } else { //修改用印基础信息 并 审批通过
|
|
|
+
|
|
|
+ //修改用印申请,给申请人发消息
|
|
|
+ sealInfo.Use = use
|
|
|
+ sealInfo.SealType = sealType
|
|
|
+ sealInfo.Remark = remark
|
|
|
+ sealInfo.FileNum = fileNum
|
|
|
+ sealInfo.ModifyTime = time.Now()
|
|
|
+ checkEdit(sealInfo, updateCol, approvalRecord.ContractApprovalRecordId, content, opUser)
|
|
|
+
|
|
|
+ //审核通过
|
|
|
+ err = Approved(sealInfo, approvalInfo, approvalRecord, opUser, "")
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func checkEdit(sealInfo *seal.Seal, updateCol []string, approvalRecordId int, content string, opUser *custom.AdminWx) {
|
|
|
+ _ = sealInfo.Update(updateCol)
|
|
|
+
|
|
|
+ //给用印人,发送修改消息
|
|
|
+ sysUserMobile := ""
|
|
|
+ sysUser, _ := admin.GetAdminById(opUser.AdminId)
|
|
|
+ if sysUser != nil {
|
|
|
+ sysUserMobile = sysUser.Mobile
|
|
|
+ }
|
|
|
+ go services.AddCompanyApprovalMessage(opUser.AdminId, sealInfo.UserId, 0, approvalRecordId, 3, sourceType, 2, sealInfo.CompanyName, content, content, sysUserMobile)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
//作废用印
|
|
|
func Invalid(sealId int, opUser *custom.AdminWx, isInvalidContract bool) (err error) {
|
|
|
//查询当前合同信息
|