Browse Source

no message

xingzai 1 year ago
parent
commit
819813b7e5

+ 26 - 16
controllers/statistic_company_merge.go

@@ -193,7 +193,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 		parsAscribeRai = append(parsAscribeRai, companyIds)
 	}
 
-	condition += ` AND c.product_id = ? `
+	condition += ` AND c.product_id = ?   AND  a.status = 1 `
 	pars = append(pars, 2)
 
 	var list []*models.IncrementalList
@@ -209,7 +209,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 	{
 		condition1 := condition
 		pars1 := pars
-		condition1 += ` AND a.start_date >= ? AND a.start_date <= ? `
+		condition1 += ` AND a.start_date >= ? AND a.start_date <= ?  `
 		pars1 = append(pars1, startDate, endDate)
 		condition1 += ` AND a.contract_type = ? `
 		pars1 = append(pars1, "新签合同")
@@ -243,7 +243,6 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 
 	//续约客户数
 	{
-
 		condition1 := condition
 		pars1 := pars
 		condition1 += ` AND a.start_date >= ? AND a.start_date <= ? `
@@ -386,7 +385,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 				return
 			}
 			//列表页数据
-			tmpList, err := models.GetIncrementalCompanyListByOperationRecord(condition1, pars1, startSize, pageSize)
+			tmpList, err := models.GetIncrementalCompanyMergeList(condition1, pars1, startSize, pageSize)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -420,10 +419,10 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 	if listLen == 0 {
 		list = make([]*models.IncrementalList, 0)
 	}
-	mapCompamy := make(map[int]string)
+	var companyContractIds []int
 	for i := 0; i < listLen; i++ {
 		item := list[i]
-		mapCompamy[item.CompanyId] = item.CompanyContractIdGroup
+		companyContractIds = append(companyContractIds, item.CompanyContractId)
 		//新增试用不需要计算剩余日期
 		if dataType != "新增试用" {
 			//剩余可用天数
@@ -437,14 +436,14 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 
 	if dataType == "新签客户" || dataType == "续约客户" {
 		//合并合同所对应的权限
-		mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapBymapCompamy(mapCompamy)
+		mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(companyContractIds)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()
 			return
 		}
 		for _, v := range list {
-			v.PermissionName = mappermissionName[v.CompanyId]
+			v.PermissionName = mappermissionName[v.CompanyContractId]
 		}
 	}
 	page := paging.GetPaging(currentIndex, pageSize, dataTotal)
@@ -683,7 +682,7 @@ func MergeCompanyListListExport(this *StatisticCompanyMergerController, dataType
 
 // @Title 上一份合同详情
 // @Description 上一份合同详情接口
-// @Param   ComPanyId   query   int  true       "公司ID"
+// @Param   CompanyContractId   query   int  true       "合同ID"
 // @Success Ret=200 {object} company.GetCompanyContractMergeDetailResp
 // @router /merge_company_previous/detail [get]
 func (this *StatisticCompanyMergerController) CompanyPreviousDetail() {
@@ -700,22 +699,33 @@ func (this *StatisticCompanyMergerController) CompanyPreviousDetail() {
 		return
 	}
 	resp := new(company.GetCompanyContractDetailResp)
-	comPanyId, _ := this.GetInt("ComPanyId")
-	if comPanyId < 1 {
-		br.Msg = "请输入公司ID"
+	companyContractId, _ := this.GetInt("CompanyContractId")
+	if companyContractId < 1 {
+		br.Msg = "请输入合同ID"
 		return
 	}
 	var condition string
 	var pars []interface{}
 	//获取最新的一条到期的合同信息
-	condition = " AND company_id = ? AND end_date  < ?  ORDER BY start_date DESC   LIMIT  1  "
-	pars = append(pars, comPanyId, time.Now())
+
+	condition = " AND company_contract_id = ?  "
+	pars = append(pars, companyContractId)
 	detail, err := company.GetCompanyContracDetail(condition, pars)
 	if err != nil {
 		br.Msg = "详情不存在"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
+	//获取前一份合同的信息
+	pars = make([]interface{}, 0)
+	condition = " AND company_id = ? AND company_contract_id < ?   AND status = 1    AND product_id = 2  ORDER BY company_contract_id DESC   LIMIT  1  "
+	pars = append(pars, detail.CompanyId, companyContractId)
+	detailPrevious, err := company.GetCompanyContracDetail(condition, pars)
+	if err != nil {
+		br.Msg = "详情不存在"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
 	//合并合同所对应的权限
 	mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById([]int{detail.CompanyContractId})
 	if err != nil {
@@ -723,8 +733,8 @@ func (this *StatisticCompanyMergerController) CompanyPreviousDetail() {
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	detail.PermissionName = mappermissionName[detail.CompanyContractId]
-	resp.Detail = detail
+	detailPrevious.PermissionName = mappermissionName[detail.CompanyContractId]
+	resp.Detail = detailPrevious
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 8 - 0
models/company/company_contract.go

@@ -254,3 +254,11 @@ func GetCompanyContracDetail(condition string, pars []interface{}) (item *Compan
 type GetCompanyContractDetailResp struct {
 	Detail *CompanyContractResp
 }
+
+// UpdateCompanyContractPackageDifference 更改合同与上一份合同金额对比信息
+func UpdateCompanyContractPackageDifference(packageDifference string, companyContractId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company_contract SET package_difference = ?  WHERE company_contract_id=? `
+	_, err = o.Raw(sql, packageDifference, companyContractId).Exec()
+	return
+}

+ 2 - 2
models/company/company_contract_merge.go

@@ -120,7 +120,7 @@ func GetIncrementalNewCompanyProductMergeCount(condition string, pars []interfac
 	if condition != "" {
 		sql += condition
 	}
-	sql = `select count(1) count from (` + sql + ` group by company_id,product_id) f`
+	sql = `select count(1) count from (` + sql + `  ) f`
 	err = o.Raw(sql, pars).QueryRow(&total)
 	return
 }
@@ -136,7 +136,7 @@ func GetIncrementalRenewalCompanyProductMergeCount(condition string, pars []inte
 	if condition != "" {
 		sql += condition
 	}
-	sql = `select count(1) count from (` + sql + ` group by company_id,product_id) f`
+	sql = `select count(1) count from (` + sql + ` ) f`
 	err = o.Raw(sql, pars).QueryRow(&total)
 	return
 }

+ 0 - 1
models/statistic_report.go

@@ -858,7 +858,6 @@ func GetIncrementalCompanyMergeList(condition string, pars []interface{}, startS
 	if condition != "" {
 		sql += condition
 	}
-	//sql += " order by a.start_date desc "
 	sql += ` group by a.company_contract_id  order by start_date desc,company_id desc limit ?,?`
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return

+ 1 - 0
services/company_apply/company_approval.go

@@ -421,6 +421,7 @@ func Approved(approvalRecord *contract.ContractApprovalRecord, opUser *system.Ad
 				services.AddCompanyApprovalMessageWangYang(recordInfo.CompanyId, recordInfo.CompanyContractId, recordInfo.ApplyRealName, companyInfo.CompanyName)
 				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId)                           //研选审批通过的时候研选扣点更新
 				cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId) //如果合同只有研选的时候,自动处理派点
+				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)   // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
 			}
 		}()
 	} else {

+ 54 - 0
services/cygx/contract_allocation.go

@@ -305,7 +305,61 @@ func HandleAllocationCompanyContractByYanXuan(companyContractId int) (err error)
 		err = errors.New("AddAndUpdateCygxAllocationCompanyContract, Err: " + e.Error())
 		return
 	}
+	return
+}
+
+//func init() {
+//	HandleCompanyContractPackageDifference(1229)
+//}
+
+// HandleCompanyContractPackageDifference 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
+func HandleCompanyContractPackageDifference(companyContractId int) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("如果合同只有研选的时候,自动处理派点失败,Err:", err.Error(), "companyContractId", companyContractId), 2)
+		}
+	}()
+	var condition string
+	var pars []interface{}
 
+	condition = " AND company_contract_id = ?  "
+	pars = append(pars, companyContractId)
+	detail, e := company.GetCompanyContracDetail(condition, pars)
+	if e != nil {
+		err = errors.New("GetCompanyContracDetail, Err: " + e.Error())
+		return
+	}
+
+	//如果不是续约合同就不做对比处理
+	if detail.ContractType != "续约合同" {
+		return
+	}
+	//获取前一份合同的信息
+	pars = make([]interface{}, 0)
+	condition = " AND company_id = ? AND company_contract_id < ?   AND status = 1    AND product_id = ?  ORDER BY company_contract_id DESC   LIMIT  1  "
+	pars = append(pars, detail.CompanyId, companyContractId, detail.ProductId)
+	detailPrevious, e := company.GetCompanyContracDetail(condition, pars)
+	if e != nil {
+		err = errors.New("GetCompanyContracDetail, Err: " + e.Error())
+		return
+	}
+	var packageDifference string
+
+	if detail.Money > detailPrevious.Money {
+		packageDifference = "增加套餐"
+	} else if detail.Money < detailPrevious.Money {
+		packageDifference = "减少套餐"
+	} else {
+		packageDifference = "维持套餐"
+	}
+
+	e = company.UpdateCompanyContractPackageDifference(packageDifference, companyContractId)
+	fmt.Println(packageDifference)
+	if e != nil {
+		err = errors.New("UpdateCompanyContractPackageDifference, Err: " + e.Error())
+		return
+	}
 	return
 
 }