ziwen пре 1 година
родитељ
комит
a6b14df6a0

+ 2 - 2
controllers/company.go

@@ -3212,7 +3212,7 @@ func (this *CompanyController) Detail() {
 				return
 			}
 			// cygx8.2专项产业调研展示
-			item.SpecialSurplus, err = cygxService.GetSpecialSurplusByCompany(companyId)
+			item.SpecialSurplus, err = cygxService.GetSpecialSurplusByCompanyNew(companyId)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取专项调研信息失败,Err:" + err.Error()
@@ -3556,7 +3556,7 @@ func (this *CompanyController) DetailByCreditCode() {
 				//	checkList = append(checkList, n.ChartPermissionId)
 				//}
 			}
-			item.SpecialSurplus, err = cygxService.GetSpecialSurplusByCompany(companyId)
+			item.SpecialSurplus, err = cygxService.GetSpecialSurplusByCompanyNew(companyId)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取专项调研信息失败,Err:" + err.Error()

+ 1 - 1
controllers/full_company.go

@@ -2453,7 +2453,7 @@ func (this *FullCompanyController) Detail() {
 				return
 			}
 			// cygx8.2专项产业调研展示
-			item.SpecialSurplus, err = cygxService.GetSpecialSurplusByCompany(companyId)
+			item.SpecialSurplus, err = cygxService.GetSpecialSurplusByCompanyNew(companyId)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取专项调研信息失败,Err:" + err.Error()

+ 11 - 0
models/cygx/activity_special_trip_bill.go

@@ -186,3 +186,14 @@ func GetCygxActivitySpecialTripBillDetailListAll(condition string, pars []interf
 	_, err = o.Raw(sql, pars).QueryRows(&item)
 	return
 }
+
+func GetCygxActivitySpecialTripBillByCompanyId(companyId int) (item *CygxActivitySpecialTripBill, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			*
+		FROM
+			cygx_activity_special_trip_bill WHERE company_id = ? ORDER BY create_time DESC LIMIT 1
+		`
+	err = o.Raw(sql, companyId).QueryRow(&item)
+	return
+}

+ 39 - 0
models/cygx/cygx_activity_special_points_company.go

@@ -0,0 +1,39 @@
+package cygx
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxActivitySpecialInheritPointsCompany struct {
+	Id                  int       `orm:"column(id);pk"`
+	CompanyId           int       // 公司ID
+	CompanyName         string    // 公司名称
+	Points              int   // 公司剩余点数
+	CreateTime          time.Time // 创建时间
+	ModifyTime          time.Time // 更新时间
+	ChartPermissionId   int       // 品种ID
+	ChartPermissionName string    // 品种名称
+}
+
+func AddCygxActivitySpecialPointsCompany(item *CygxActivitySpecialInheritPointsCompany) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(item)
+	if err != nil {
+		return
+	}
+	return
+}
+
+func AddCygxActivitySpecialInheritPointsCompanyMulti(items []*CygxActivitySpecialInheritPointsCompany) (err error) {
+	o := orm.NewOrm()
+	_, err = o.InsertMulti(1, items)
+	return
+}
+
+func GetCygxActivitySpecialInheritPointsByCompanyId(companyId int) (list []*CygxActivitySpecialInheritPointsCompany, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM cygx_activity_special_inherit_points_company WHERE company_id = ?  `
+	_, err = o.Raw(sql,companyId).QueryRows(&list)
+	return
+}

+ 54 - 8
services/cygx/activity_special.go

@@ -302,7 +302,6 @@ func GetSpecialSurplusByCompany(companyId int) (specialSurplus string, err error
 			//mapPermissionName := make(map[int]string)
 			for _, v := range list {
 				chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
-
 			}
 			chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
 			if e != nil {
@@ -421,7 +420,7 @@ func CheckActivitySpecialUpdatePower(adminId int, activityInfo *cygx.ActivitySpe
 }
 
 // GetChartPermissionSpecialSurplusByCompany 获取公司专项调研次数-分品种
-func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tripRemaining int,mapChartName map[string]int, err error) {
+func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tripRemaining int, mapChartName map[string]int, err error) {
 	companyDetail, e := cygx.GetCompanyDetailByIdGroup(companyId)
 	if e != nil {
 		err = errors.New("GetCompanyDetailByIdGroup, Err: " + e.Error())
@@ -438,6 +437,7 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 	}
 	//chartMap := map[int]string{utils.YI_YAO_ID:utils.YI_YAO_NAME, utils.XIAO_FEI_ID:utils.XIAO_FEI_NAME, utils.KE_JI_ID:utils.KE_JI_NAME, utils.ZHI_ZAO_ID:utils.ZHI_ZAO_NAME}
 	//chartNumMap := map[int]int{utils.YI_YAO_ID:0, utils.XIAO_FEI_ID:0, utils.KE_JI_ID:0, utils.ZHI_ZAO_ID:0}
+	chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
 	if companyDetail.Status == "正式" {
 		//var packageType int
 		userType, _, _, _, _ = GetUserType(companyId)
@@ -455,6 +455,11 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 			err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
 			return
 		}
+		// 获取继承点数
+		inheritList, e := cygx.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
+		}
 		if userType == 2 {
 			//airborneList, e := cygx.GetActivitySpecialTripAirborneCountByActivitySpecial(condition, pars)
 			//if e != nil {
@@ -512,6 +517,7 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 			}
 			var chartPermissionIdSlice []string
 			mapChartName = make(map[string]int)
+			mapInheritChartName := make(map[string]int)
 			mapPermissionNameTrip := make(map[string]int)
 			//mapPermissionName := make(map[int]string)
 			for _, v := range list {
@@ -523,9 +529,11 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 				err = errors.New("获取品种信息失败, Err:" + e.Error())
 				return
 			}
-			if len(chartList) == 0 {
-				return
-			}
+			// 10.9.1本身升级没有也可能通过继承获得
+			//if len(chartList) == 0 {
+			//	return
+			//}
+
 			//到会空降的也加入流水记录表,这里不在做单独计算 2023-07-10
 			//airborneList, e := cygx.GetCygxActivitySpecialTripAirborneListByComapnyId(companyId)
 			//if e != nil {
@@ -546,6 +554,16 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 			for _, v := range chartList {
 				mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
 			}
+			for _, v := range inheritList {
+				mapInheritChartName[v.ChartPermissionName] = v.Points
+			}
+			for k, _ := range chartNameMap {
+				if _, ok := mapChartName[k]; ok {
+					if inherit, ok2 := mapInheritChartName[k]; ok2 {
+						mapChartName[k] += inherit
+					}
+				}
+			}
 			for k, v := range mapChartName {
 				if v > 0 {
 					specialSurplus += k + strconv.Itoa(v) + "次+"
@@ -558,7 +576,7 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 }
 
 // 审批通过的时候专项调研次数更新
-func ActivitySpecialCompanyApproval(companyId int,companyName string) (err error) {
+func ActivitySpecialCompanyApproval(companyId int, companyName string) (err error) {
 	userType, packageType, _, _, _ := GetUserType(companyId)
 	itemBill := new(cygx.CygxActivitySpecialTripBill)
 	itemBill.CreateTime = time.Now()
@@ -567,7 +585,7 @@ func ActivitySpecialCompanyApproval(companyId int,companyName string) (err error
 	itemBill.Source = 2
 	itemBill.DoType = 2
 	itemBill.Way = 3
-	if userType == 2{
+	if userType == 2 {
 		packageTypeMap := map[int]int{1: 16, 2: 10}
 		totalTrip := packageTypeMap[packageType]
 		itemBill.BillDetailed = totalTrip
@@ -619,7 +637,6 @@ func ActivitySpecialCompanyApproval(companyId int,companyName string) (err error
 	return
 }
 
-
 // 取消专项调研返点
 func ActivitySpecialPublishAndCancel(activityInfo *cygx.ActivitySpecialDetail) (err error) {
 	//userType, tripRemaining, mapChartName, err := GetChartPermissionSpecialSurplusByCompany(companyId)
@@ -641,4 +658,33 @@ func ActivitySpecialPublishAndCancel(activityInfo *cygx.ActivitySpecialDetail) (
 	//	return
 	//}
 	return
+}
+
+// GetSpecialSurplusByCompanyNew 获取公司专项调研剩余次数-用流水表数据不计算了,计算都丢在流水里
+func GetSpecialSurplusByCompanyNew(companyId int) (specialSurplus string, err error) {
+	companyDetail, e := cygx.GetCompanyDetailByIdGroup(companyId)
+	if e != nil {
+		err = errors.New("GetCompanyDetailByIdGroup, Err: " + e.Error())
+	}
+	if companyDetail == nil {
+		return
+	}
+	if companyDetail.Status != "永续" && companyDetail.Status != "正式" {
+		return
+	}
+	if companyDetail.Status == "永续" {
+		specialSurplus = "不限次数"
+	}
+	//chartMap := map[int]string{utils.YI_YAO_ID:utils.YI_YAO_NAME, utils.XIAO_FEI_ID:utils.XIAO_FEI_NAME, utils.KE_JI_ID:utils.KE_JI_NAME, utils.ZHI_ZAO_ID:utils.ZHI_ZAO_NAME}
+	//chartNumMap := map[int]int{utils.YI_YAO_ID:0, utils.XIAO_FEI_ID:0, utils.KE_JI_ID:0, utils.ZHI_ZAO_ID:0}
+	if companyDetail.Status == "正式" {
+		billItem,e := cygx.GetCygxActivitySpecialTripBillByCompanyId(companyId)
+		if e != nil {
+			err = e
+			return
+		}
+		specialSurplus = billItem.Total
+		return
+	}
+	return
 }