zhangchuanxing 2 miesięcy temu
rodzic
commit
9c19bd4f7a
2 zmienionych plików z 46 dodań i 0 usunięć
  1. 30 0
      controllers/company_apply_v2.go
  2. 16 0
      models/seal/seal.go

+ 30 - 0
controllers/company_apply_v2.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/seal"
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services"
 	"hongze/hz_crm_api/services/company_apply"
@@ -664,6 +665,35 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 			br.ErrMsg = "生成合同编码失败,Err:" + err.Error()
 			return
 		}
+		//如果是权益的合同,合同编号另取
+		if productId == 2 {
+			sealCount, err := seal.GetCountByDateAndCompanyId(req.StartDate, req.EndDate, req.CompanyId)
+			if err != nil {
+				br.Msg = "生成合同编码失败"
+				br.ErrMsg = "获取用印合同数量信息失败,Err:" + err.Error()
+				return
+			}
+			crmConfig, err := company.GetConfigDetailByCode("rai_seal_check") //权益非标合同是否校验用印提交
+			if err != nil {
+				br.Msg = "获取配置失败"
+				br.ErrMsg = "获取配置失败,Err:" + err.Error()
+				return
+			}
+
+			if sealCount == 0 && crmConfig.ConfigValue == "1" {
+				br.Msg = "此合同暂未申请用印,请核对合同期限是否有误"
+				return
+			}
+			if sealCount > 0 {
+				sealInfo, err := seal.GetSealInfoByDateAndCompanyId(req.StartDate, req.EndDate, req.CompanyId)
+				if err != nil {
+					br.Msg = "生成合同编码失败"
+					br.ErrMsg = "获取用印合同信息失败,Err:" + err.Error()
+					return
+				}
+				contractCode = sealInfo.Code
+			}
+		}
 		//当前是否存在待审批的单子
 		nowCompanyApprovalInfo, err := company.GetCompanyApprovalById(req.CompanyId, productId)
 		if (err == nil || nowCompanyApprovalInfo != nil) || err != nil && err.Error() != utils.ErrNoRow() {

+ 16 - 0
models/seal/seal.go

@@ -61,6 +61,22 @@ func GetSealInfoByContractId(sealId int) (sealInfo *Seal, err error) {
 	return
 }
 
+// GetSealInfoByDateAndCompanyId 根据起始时间,公司ID获取合同信息
+func GetSealInfoByDateAndCompanyId(startDate, endDate string, companyId int) (sealInfo *Seal, err error) {
+	o := orm.NewOrm()
+	sql := `select * from seal where start_date = ? and end_date = ? AND company_id =?  AND  product_id = 2  order by seal_id asc limit 1 `
+	err = o.Raw(sql, startDate, endDate, companyId).QueryRow(&sealInfo)
+	return
+}
+
+// GetCountByDateAndCompanyId  根据起始时间,公司ID获取合同信息数量
+func GetCountByDateAndCompanyId(startDate, endDate string, companyId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := "select count(*) AS COUNT from seal   where start_date = ? and end_date = ? AND company_id =?  AND  product_id = 2   "
+	err = o.Raw(sql, startDate, endDate, companyId).QueryRow(&count)
+	return
+}
+
 // AddSeal 用印添加
 func AddSeal(sealInfo *Seal) (err error) {
 	o := orm.NewOrm()