|
@@ -15,7 +15,9 @@ import (
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_operation_record"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_relation"
|
|
|
"hongze/hongze_mobile_admin/models/tables/contract_service_detail"
|
|
|
+ "hongze/hongze_mobile_admin/services"
|
|
|
"hongze/hongze_mobile_admin/utils"
|
|
|
+ "mime/multipart"
|
|
|
"rdluck_tools/orm"
|
|
|
"reflect"
|
|
|
"strings"
|
|
@@ -135,6 +137,53 @@ func getContractDetail(contractId int) (contractDetail *contract.ContractDetail,
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// UploadCheckBackFileByFile 上传签回合同附件
|
|
|
+func UploadCheckBackFileByFile(contractId int, ext string, fileMulti multipart.File, opUser *custom.AdminWx) (resourceUrl string, err error) {
|
|
|
+ //获取合同信息
|
|
|
+ contractInfo, err := contract.GetContractById(contractId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //合同状态判断
|
|
|
+ if contractInfo.Status != "已审批" && contractInfo.Status != "已签回" {
|
|
|
+ err = errors.New("合同状态异常,不允许上传签回合同附件,当前合同状态:" + contractInfo.Status)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存的文件名
|
|
|
+ fileName := contractInfo.CompanyName + "_" + contractInfo.ContractCode + "(签回)"
|
|
|
+ //非正式环境下,文件名上面还是加上随机数
|
|
|
+ if utils.RunMode != "release" {
|
|
|
+ fileName += "_" + utils.GetRandStringNoSpecialChar(10)
|
|
|
+ }
|
|
|
+ fileName += ext
|
|
|
+ //上传到阿里云
|
|
|
+ resourceUrl, err = services.UploadToOssAndFileName(fileMulti, fileName)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("文件保存失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ contractInfo.CheckBackFileUrl = resourceUrl
|
|
|
+ contractInfo.Status = "已签回"
|
|
|
+ contractInfo.ModifyTime = time.Now()
|
|
|
+ contractInfo.CheckBackFileTime = time.Now()
|
|
|
+ err = contractInfo.Update([]string{"CheckBackFileUrl", "Status", "ModifyTime", "CheckBackFileTime"})
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //同步更新客户那边提交审批的合同
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := `update company_contract set img_url = ? where contract_code=? and source="系统合同" `
|
|
|
+ _, err = o.Raw(sql, contractInfo.CheckBackFileUrl, contractInfo.ContractCode).Exec()
|
|
|
+
|
|
|
+ //添加操作日志
|
|
|
+ remark := "上传签回合同附件"
|
|
|
+ _ = contract_operation_record.AddContractOperationRecord(contractInfo.ContractId, opUser.AdminId, 0, "upload", opUser.RealName, remark)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// UploadCheckBackFile 更新上传签回合同附件
|
|
|
func UploadCheckBackFile(contractId int, fileUrl string, opUser *custom.AdminWx) (err error) {
|
|
|
//获取合同信息
|
|
@@ -225,8 +274,16 @@ func GetContractDetailByContractId(contractId int, opUser *custom.AdminWx) (cont
|
|
|
contractInfo.CreateTimeStr = contractInfo.CreateTime.Format(utils.FormatDateTime)
|
|
|
|
|
|
//合同中包含的产品权限
|
|
|
- permissionLookList, _ := GetPermissionByContractService(contractInfo.ProductId, contractInfo.Service)
|
|
|
- contractInfo.PermissionLookList = permissionLookList
|
|
|
+ isNeedPermission := false //是否需要列出来套餐中的详细权限
|
|
|
+ for _, service := range contractInfo.Service {
|
|
|
+ if service.ServiceTemplateId == 2 { //小套餐才需要列出来详细的权限
|
|
|
+ isNeedPermission = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if isNeedPermission {
|
|
|
+ permissionLookList, _ := GetPermissionByContractService(contractInfo.ProductId, contractInfo.Service)
|
|
|
+ contractInfo.PermissionLookList = permissionLookList
|
|
|
+ }
|
|
|
|
|
|
//查询最近一次审批单信息
|
|
|
lastApprovalInfo, err := contract_approval.GetLastContractApprovalByContractId(contractInfo.ContractId, "contract")
|