Browse Source

Merge branch 'seller_census'

zwxi 1 year ago
parent
commit
eb832e8f78
2 changed files with 79 additions and 75 deletions
  1. 79 74
      controller/census/seller.go
  2. 0 1
      models/fms/contract_invoice.go

+ 79 - 74
controller/census/seller.go

@@ -213,10 +213,10 @@ func ExportGroupInvoiceList(c *gin.Context, list []*fms.CensusSellerGroupInvoice
 	// 填充数据
 	for k, v := range list {
 		dataRow := sheet.AddRow()
-		dataRow.AddCell().SetString(fmt.Sprint(k + 1))            // 排名
-		dataRow.AddCell().SetString(v.GroupName)                  // 销售组别
-		dataRow.AddCell().SetString(fmt.Sprintf("%.2f", v.InvoiceAmount))  // 开票金额
-		dataRow.AddCell().SetString(fmt.Sprint(v.GroupRate, "%")) // 组别占比
+		dataRow.AddCell().SetString(fmt.Sprint(k + 1))                    // 排名
+		dataRow.AddCell().SetString(v.GroupName)                          // 销售组别
+		dataRow.AddCell().SetString(fmt.Sprintf("%.2f", v.InvoiceAmount)) // 开票金额
+		dataRow.AddCell().SetString(fmt.Sprint(v.GroupRate, "%"))         // 组别占比
 	}
 
 	// 输出文件
@@ -449,27 +449,19 @@ func (this *SellerController) InvoiceListV2(c *gin.Context) {
 		page.SetCurrent(1)
 	}
 
-	//if req.SellerIds != "" {
-	//	sellerIds := strings.Split(req.SellerIds, ",")
-	//	cond += ` AND (a.seller_id in ? ) `
-	//	historyCond += ` AND (seller_id in ? ) `
-	//	pars = append(pars, sellerIds)
-	//	historyPars = append(historyPars, sellerIds)
+	//var departmentId int
+	//if req.SellerType == 1 {
+	//	departmentId = crm.SellerDepartmentId
+	//} else if req.SellerType == 2 {
+	//	departmentId = crm.RaiSellerDepartmentId
+	//} else if req.SellerType == 0 {
+	//	resp.Fail("请选择销售类型", c)
+	//	return
+	//} else {
+	//	resp.Fail("请选择正确的销售类型", c)
+	//	return
 	//}
 
-	var departmentId int
-	if req.SellerType == 1 {
-		departmentId = crm.SellerDepartmentId
-	} else if req.SellerType == 2 {
-		departmentId = crm.RaiSellerDepartmentId
-	} else if req.SellerType == 0 {
-		resp.Fail("请选择销售类型", c)
-		return
-	} else {
-		resp.Fail("请选择正确的销售类型", c)
-		return
-	}
-
 	var totalMoneySlice []float64
 	historyTime, _ := time.Parse(utils.FormatDate, "2023-04-01")
 
@@ -498,28 +490,36 @@ func (this *SellerController) InvoiceListV2(c *gin.Context) {
 		historyCond += ` AND new_company = 0 `
 	}
 
-	groupIds := make([]int, 0)
-	if req.GroupId > 0 {
-		// 筛选组别时, 查询当前组别的下级组(因为admin表存的group_id, 有三级的存的是子ID, 只有二级的存的才是父ID =_=!)
-		groupCond := `parent_id = ?`
-		groupPars := make([]interface{}, 0)
-		groupPars = append(groupPars, req.GroupId)
-		groupOB := new(crm.SysGroup)
-		groupList, e := groupOB.List(groupCond, groupPars)
-		if e != nil {
-			resp.FailMsg("获取失败", "获取组别下级组列表失败, Err: "+e.Error(), c)
-			return
-		}
-		groupIds = append(groupIds, req.GroupId)
-		for i := range groupList {
-			groupIds = append(groupIds, groupList[i].GroupId)
-		}
-		cond += ` AND (c.seller_group_id IN (?) OR d.seller_group_id IN (?))`
-		pars = append(pars, groupIds, groupIds)
-		historyCond += ` AND group_id IN (?) `
-		historyPars = append(historyPars, groupIds)
+	if req.SellerIds != "" {
+		sellerIds := strings.Split(req.SellerIds, ",")
+		cond += ` AND (a.seller_id in ? ) `
+		historyCond += ` AND (seller_id in ? ) `
+		pars = append(pars, sellerIds)
+		historyPars = append(historyPars, sellerIds)
 	}
 
+	//groupIds := make([]int, 0)
+	//if req.GroupId > 0 {
+	//	// 筛选组别时, 查询当前组别的下级组(因为admin表存的group_id, 有三级的存的是子ID, 只有二级的存的才是父ID =_=!)
+	//	groupCond := `parent_id = ?`
+	//	groupPars := make([]interface{}, 0)
+	//	groupPars = append(groupPars, req.GroupId)
+	//	groupOB := new(crm.SysGroup)
+	//	groupList, e := groupOB.List(groupCond, groupPars)
+	//	if e != nil {
+	//		resp.FailMsg("获取失败", "获取组别下级组列表失败, Err: "+e.Error(), c)
+	//		return
+	//	}
+	//	groupIds = append(groupIds, req.GroupId)
+	//	for i := range groupList {
+	//		groupIds = append(groupIds, groupList[i].GroupId)
+	//	}
+	//	cond += ` AND (c.seller_group_id IN (?) OR d.seller_group_id IN (?))`
+	//	pars = append(pars, groupIds, groupIds)
+	//	historyCond += ` AND group_id IN (?) `
+	//	historyPars = append(historyPars, groupIds)
+	//}
+
 	if req.CompanyType == 1 {
 		cond += ` AND b.contract_type = 1 `
 		historyCond += ` AND new_company = 1 `
@@ -560,10 +560,10 @@ func (this *SellerController) InvoiceListV2(c *gin.Context) {
 			amountCond := `a.id IN ? `
 			amountPars := make([]interface{}, 0)
 			amountPars = append(amountPars, summaryIds)
-			if len(groupIds) > 0 {
-				amountCond += ` AND IF ( a.invoice_id = 0, d.seller_group_id, b.seller_group_id ) IN (?) `
-				amountPars = append(amountPars, groupIds)
-			}
+			//if len(groupIds) > 0 {
+			//	amountCond += ` AND IF ( a.invoice_id = 0, d.seller_group_id, b.seller_group_id ) IN (?) `
+			//	amountPars = append(amountPars, groupIds)
+			//}
 
 			if req.SellerIds != "" {
 				sellerIds := strings.Split(req.SellerIds, ",")
@@ -645,10 +645,10 @@ func (this *SellerController) InvoiceListV2(c *gin.Context) {
 			amountCond := `a.id IN ? `
 			amountPars := make([]interface{}, 0)
 			amountPars = append(amountPars, summaryIds)
-			if len(groupIds) > 0 {
-				amountCond += ` AND IF ( a.invoice_id = 0, d.seller_group_id, b.seller_group_id ) IN (?) `
-				amountPars = append(amountPars, groupIds)
-			}
+			//if len(groupIds) > 0 {
+			//	amountCond += ` AND IF ( a.invoice_id = 0, d.seller_group_id, b.seller_group_id ) IN (?) `
+			//	amountPars = append(amountPars, groupIds)
+			//}
 			if req.SellerIds != "" {
 				sellerIds := strings.Split(req.SellerIds, ",")
 				amountCond += ` AND (( b.seller_id IN ? AND a.invoice_id <> 0 AND b.invoice_time BETWEEN ? AND ?)`
@@ -743,10 +743,10 @@ func (this *SellerController) InvoiceListV2(c *gin.Context) {
 			amountCond := `a.id IN ? `
 			amountPars := make([]interface{}, 0)
 			amountPars = append(amountPars, summaryIds)
-			if len(groupIds) > 0 {
-				amountCond += ` AND IF ( a.invoice_id = 0, d.seller_group_id, b.seller_group_id ) IN (?) `
-				amountPars = append(amountPars, groupIds)
-			}
+			//if len(groupIds) > 0 {
+			//	amountCond += ` AND IF ( a.invoice_id = 0, d.seller_group_id, b.seller_group_id ) IN (?) `
+			//	amountPars = append(amountPars, groupIds)
+			//}
 			if req.SellerIds != "" {
 				sellerIds := strings.Split(req.SellerIds, ",")
 				amountCond += ` AND (( b.seller_id IN ? AND a.invoice_id <> 0 AND b.invoice_time BETWEEN ? AND ?)`
@@ -815,22 +815,27 @@ func (this *SellerController) InvoiceListV2(c *gin.Context) {
 
 	fmt.Println("totalMoneySlice:", len(totalMoneySlice))
 
-	if req.SellerType == 1 {
-		departmentId = crm.SellerDepartmentId
-	} else if req.SellerType == 2 {
-		departmentId = crm.RaiSellerDepartmentId
-	} else if req.SellerType == 0 {
-		resp.FailMsg("查询错误", "请选择正确的销售类型", c)
-		return
-	} else {
-		resp.FailMsg("查询错误", "请选择正确的销售类型", c)
-		return
-	}
+	//if req.SellerType == 1 {
+	//	departmentId = crm.SellerDepartmentId
+	//} else if req.SellerType == 2 {
+	//	departmentId = crm.RaiSellerDepartmentId
+	//} else if req.SellerType == 0 {
+	//	resp.FailMsg("查询错误", "请选择正确的销售类型", c)
+	//	return
+	//} else {
+	//	resp.FailMsg("查询错误", "请选择正确的销售类型", c)
+	//	return
+	//}
 
 	adminOB := new(crm.Admin)
 	adminPars := make([]interface{}, 0)
-	adminCond := ` department_id = %d `
-	adminCond = fmt.Sprintf(adminCond, departmentId)
+	adminCond := ` 1=1 `
+	//adminCond = fmt.Sprintf(adminCond, departmentId)
+
+	if !req.ShowResign {
+		adminCond += ` AND enabled = 1 `
+	}
+
 	adminList, e := adminOB.List(adminCond, adminPars)
 	if e != nil {
 		resp.FailMsg("获取失败", "获取销售列表失败, Err: "+e.Error(), c)
@@ -965,12 +970,12 @@ func ExportInvoiceList(c *gin.Context, list []*fms.CensusSellerInvoiceItem, req
 	// 填充数据
 	for k, v := range list {
 		dataRow := sheet.AddRow()
-		dataRow.AddCell().SetString(fmt.Sprint(k + 1))             // 排名
-		dataRow.AddCell().SetString(v.SellerName)                  // 销售员
-		dataRow.AddCell().SetString(v.GroupName)                   // 销售组别
-		dataRow.AddCell().SetString(fmt.Sprintf("%.2f", v.InvoiceAmount))   // 开票金额
-		dataRow.AddCell().SetString(fmt.Sprint(v.GroupRate, "%"))  // 小组占比
-		dataRow.AddCell().SetString(fmt.Sprint(v.SellerRate, "%")) // 全员占比
+		dataRow.AddCell().SetString(fmt.Sprint(k + 1))                    // 排名
+		dataRow.AddCell().SetString(v.SellerName)                         // 销售员
+		dataRow.AddCell().SetString(v.GroupName)                          // 销售组别
+		dataRow.AddCell().SetString(fmt.Sprintf("%.2f", v.InvoiceAmount)) // 开票金额
+		dataRow.AddCell().SetString(fmt.Sprint(v.GroupRate, "%"))         // 小组占比
+		dataRow.AddCell().SetString(fmt.Sprint(v.SellerRate, "%"))        // 全员占比
 	}
 
 	// 输出文件

+ 0 - 1
models/fms/contract_invoice.go

@@ -444,7 +444,6 @@ func GetCensusSellerGroupInvoicePageList(page base.IPage, condition, outCond str
 
 // CensusSellerInvoiceListReq 销售开票统计列表请求体
 type CensusSellerInvoiceListReq struct {
-	GroupId     int    `json:"group_id" form:"group_id" description:"销售组别ID"`
 	SellerIds   string `json:"seller_ids" form:"seller_ids" description:"销售IDs"`
 	StartDate   string `json:"start_date" form:"start_date" binding:"omitempty,datetime=2006-01-02" description:"开始日期"`
 	EndDate     string `json:"end_date" form:"end_date" binding:"omitempty,datetime=2006-01-02" description:"结束日期"`