zhangchuanxing 3 ay önce
ebeveyn
işleme
8edb0c398d

+ 73 - 0
controllers/statistic_company_merge.go

@@ -2208,6 +2208,79 @@ func (this *StatisticCompanyMergerController) CompanyContractPercentageListExpor
 	br.Msg = "导出成功"
 }
 
+// @Title 获取上一年的合同列表
+// @Description 获取上一年的合同列表接口
+// @Param   CompanyContractId   query   int  true       "合同ID"
+// @Success Ret=200 {object} company.GetCompanyContractDetailListResp
+// @router /merge_company_previous/last_year [get]
+func (this *StatisticCompanyMergerController) CompanyPreviousLastYear() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	resp := new(company.GetCompanyContractDetailListResp)
+	companyContractId, _ := this.GetInt("CompanyContractId")
+	if companyContractId < 1 {
+		br.Msg = "请输入合同ID"
+		return
+	}
+	var condition string
+	var pars []interface{}
+	//获取最新的一条到期的合同信息
+
+	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
+	}
+
+	startDateContrac := detail.StartDate                                            // 合同开始时间
+	startDateYear := utils.StrDateToDate(startDateContrac).AddDate(-1, 0, 0).Year() //所要查询的年份
+	startDate := fmt.Sprint(startDateYear, "-01-01")
+	endDate := fmt.Sprint(startDateYear, "-12-31")
+
+	//获取前一份合同的信息
+	pars = make([]interface{}, 0)
+	condition = " AND company_id = ?   AND status = 1  AND  start_date >= ? AND  start_date <= ? AND product_id = 2  ORDER BY start_date DESC   "
+	pars = append(pars, detail.CompanyId, startDate, endDate)
+	detailPreviousList, err := company.GetCompanyContracList(condition, pars)
+	if err != nil {
+		br.Msg = "详情不存在"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	var companyContractIds []int
+	for _, v := range detailPreviousList {
+		companyContractIds = append(companyContractIds, v.CompanyContractId)
+	}
+	//合并合同所对应的权限
+	mappermissionName, err := cygxService.GetCompanyContractPermissionNameMapById(companyContractIds)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	for _, v := range detailPreviousList {
+		v.PermissionName = mappermissionName[v.CompanyContractId]
+	}
+	resp.List = detailPreviousList
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 func init213() {
 	var condition string
 	var pars []interface{}

+ 12 - 0
models/company/company_contract.go

@@ -291,10 +291,22 @@ func GetCompanyContracDetail(condition string, pars []interface{}) (item *Compan
 	return
 }
 
+// 通过ID获取详情
+func GetCompanyContracList(condition string, pars []interface{}) (items []*CompanyContractResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_contract  WHERE 1= 1 ` + condition
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
 type GetCompanyContractDetailResp struct {
 	Detail *CompanyContractResp
 }
 
+type GetCompanyContractDetailListResp struct {
+	List []*CompanyContractResp
+}
+
 // UpdateCompanyContractPackageDifference 更改合同与上一份合同金额对比信息
 func UpdateCompanyContractPackageDifference(packageDifference string, companyContractId int) (err error) {
 	o := orm.NewOrm()

+ 9 - 0
routers/commentsRouter.go

@@ -11005,6 +11005,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:StatisticCompanyMergerController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:StatisticCompanyMergerController"],
+        beego.ControllerComments{
+            Method: "CompanyPreviousLastYear",
+            Router: `/merge_company_previous/last_year`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:StatisticReportController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:StatisticReportController"],
         beego.ControllerComments{
             Method: "InvoicePaymentList",