anderx лет назад: 7
Родитель
Сommit
91f6b95aa9

+ 33 - 16
src/main/java/com/goafanti/common/mapper/DailySalesReportMapper.xml

@@ -184,25 +184,42 @@
  </select>
   
   <select id="marketingDepStatisticsList" parameterType="String" resultType="com.goafanti.report.bo.marketingESBo">
-			select d.id as departmentId, d.name as departmentName, count( a.name )as departmentNumber, f.name as departmentManagerName,
-		a.create_time as entryTime, ifnull( e.privateCustomersCount,0) as privateCustomersCount
-	from
-		admin a left join user_role b on a.id = b.uid 
-		left join role c on b.rid = c.id 
-		left join department_management d on a.department_id = d.id 
-		left join(
-			select z3.id as depId, count( 0 ) as privateCustomersCount
-			from user z1 left join admin z2 on z1.aid = z2.id 
-			left join department_management z3 on z2.department_id = z3.id
-			group by z3.id ) e on a.department_id = e.depId 
-		left join admin f on d.manager_id = f.id
-	where 1 = 1
-	and(c.role_name = '营销员' or c.role_name = '营销经理' or c.role_name = '营销管理员')
+	select
+	a.department_id as departmentId,
+	b.name as departmentName,
+	b.manager_id,
+	c.name as departmentManagerName,
+	a.count2 as privateCustomersCount,
+	d.count3 as departmentNumber
+from
+	(
+		select
+			z.department_id,
+			sum( y.count1 ) as count2
+		from
+			(
+				select
+					a.id,
+					count( a.id ) as count1
+				from
+					admin a left join user b on
+					a.id = b.aid 
+				group by
+					a.id
+			) y left join admin z on
+			y.id = z.id
+		group by
+			z.department_id
+	) a left join department_management b 
+	on a.department_id = b.id left join admin c
+	on b.manager_id=c.id left join (select department_id,count(0) as count3 from admin   	group by department_id)d
+	on a.department_id = d.department_id
+	where 1=1
 	<if test="depId != null">
 		and a.department_id = #{depId,jdbcType=VARCHAR}
 	</if>
-		group by a.department_id
-		order by d.name desc
+	order by b.name desc
+		
 	</select>
   <select id="privateCustomersCount" parameterType="string" resultType="com.goafanti.report.bo.CountMarketingStatisticsBo">
 	select sum(e.privateCustomersCount) as privateCustomersCount

+ 1 - 1
src/main/java/com/goafanti/report/controller/ReportApiController.java

@@ -20,7 +20,7 @@ import com.goafanti.report.enums.SalesReportOrderField;
 import com.goafanti.report.service.SalesReportServiceImpl;
 
 @RestController
-@RequestMapping(value = "/api/admin/report")
+@RequestMapping(value = "/open/api/admin/report")
 public class ReportApiController extends BaseApiController {
 	@Autowired
 	SalesReportServiceImpl reportService;

+ 8 - 4
src/main/java/com/goafanti/report/service/SalesReportServiceImpl.java

@@ -299,17 +299,21 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 		ReportDate rd = new ReportDate(new Date());
 			for (marketingESBo m : list) {
 				Map<String,Object> map=new HashMap<>();
-				marketingESBo day=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getDailyStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getDailyEnd(), AFTConstants.YYYYMMDDHHMMSS));
+				marketingESBo day=null;
+				if(null!=m.getDepartmentId())day=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getDailyStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getDailyEnd(), AFTConstants.YYYYMMDDHHMMSS));
 					Map<String,String> daily =valuesloading(day);
 					daily.put("AVG", calculateAVG((null==day||null==day.getYearFollowNo())?"0":day.getYearFollowNo(),(null==day||null==day.getDepartmentNumber())?"0":day.getDepartmentNumber()));
 					map.put("daily", daily);
-				marketingESBo weekly=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getWeeklyStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getWeeklyEnd(), AFTConstants.YYYYMMDDHHMMSS));
+				marketingESBo weekly=null;
+				if(null!=m.getDepartmentId())weekly=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getWeeklyStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getWeeklyEnd(), AFTConstants.YYYYMMDDHHMMSS));
 					Map<String,String> week =valuesloading(weekly);
 					map.put("week", week);
-				marketingESBo month=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getMonthStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getMonthEnd(), AFTConstants.YYYYMMDDHHMMSS));
+				marketingESBo month=null;
+				if(null!=m.getDepartmentId())month=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getMonthStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getMonthEnd(), AFTConstants.YYYYMMDDHHMMSS));
 					Map<String,String> months =valuesloading(month);
 					map.put("months", months);
-				marketingESBo year=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getYearStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getYearEnd(), AFTConstants.YYYYMMDDHHMMSS));
+				marketingESBo year=null;
+				if(null!=m.getDepartmentId())year=userMapper.marketingDepStatistics(m.getDepartmentId(),DateFormatUtils.format(rd.getYearStart(), AFTConstants.YYYYMMDDHHMMSS),DateFormatUtils.format(rd.getYearEnd(), AFTConstants.YYYYMMDDHHMMSS));
 					Map<String,String> annual =valuesloading(year);
 					map.put("annual", annual);
 				m.setValues(map);