1.停车场分析 接口修改

2.酒店数据综合分析 过夜游客分析接口
dev
862857010@qq.com 3 years ago
parent 8c129e3195
commit f1196cbc8c
  1. 7
      cjy-project/src/main/java/com/cjy/hotelcomprehensiveanalysis/controller/HotelComprehensiveAnalysisController.java
  2. 8
      cjy-project/src/main/java/com/cjy/hotelcomprehensiveanalysis/mapper/HotelComprehensiveAnalysisMapper.java
  3. 7
      cjy-project/src/main/java/com/cjy/hotelcomprehensiveanalysis/service/HotelComprehensiveAnalysisService.java
  4. 93
      cjy-project/src/main/java/com/cjy/hotelcomprehensiveanalysis/service/impl/HotelComprehensiveAnalysisServiceImpl.java
  5. 9
      cjy-project/src/main/java/com/cjy/parkinglotdataanalysis/service/impl/ParkingLotDataAnalysisServiceImpl.java
  6. 41
      cjy-project/src/main/resources/mapper/hotelcomprehensiveanalysis/HotelComprehensiveAnalysisMapper.xml
  7. 6
      cjy-project/src/main/resources/mapper/parkinglotdataanalysis/ParkingLotDataAnalysisMapper.xml
  8. BIN
      doc/停车场数据分析接口.docx
  9. BIN
      doc/酒店综合分析接口.docx

@ -74,4 +74,11 @@ public class HotelComprehensiveAnalysisController extends BaseController {
public AjaxResult getAgeRatio() {
return success(hotelComprehensiveAnalysisService.getAgeRatio( getUserOrganCode()));
}
/**
* 过夜游客分析
*/
@GetMapping("getOvernightTourists")
public AjaxResult getOvernightTourists() {
return success(hotelComprehensiveAnalysisService.getOvernightTourists( getUserOrganCode()));
}
}

@ -3,6 +3,7 @@ package com.cjy.hotelcomprehensiveanalysis.mapper;
import com.cjy.hotelcomprehensiveanalysis.dto.HotelPassengerDTO;
import com.cjy.hotelcomprehensiveanalysis.vo.GenderRatioVO;
import com.cjy.parkinglotdataanalysis.dto.CustomerSourceDTO;
import com.cjy.parkinglotdataanalysis.dto.TrafficAnalysisDTO;
import java.util.List;
import java.util.Map;
@ -86,4 +87,11 @@ public interface HotelComprehensiveAnalysisMapper {
* @return
*/
List<CustomerSourceDTO> getAgeRatioList(Long organCode);
/**
* 过夜游客分析
* @param organCode
* @return
*/
List<TrafficAnalysisDTO> getOvernightTouristsList(Long organCode);
}

@ -52,4 +52,11 @@ public interface HotelComprehensiveAnalysisService {
* @return
*/
ReturnVO getAgeRatio(Long organCode);
/**
* 过夜游客分析
* @param organCode
* @return
*/
ReturnVO getOvernightTourists(Long organCode);
}

@ -7,13 +7,18 @@ import com.cjy.hotelcomprehensiveanalysis.service.HotelComprehensiveAnalysisServ
import com.cjy.hotelcomprehensiveanalysis.vo.GenderRatioVO;
import com.cjy.hotelcomprehensiveanalysis.vo.HotelPassengerFlowVO;
import com.cjy.parkinglotdataanalysis.dto.CustomerSourceDTO;
import com.cjy.parkinglotdataanalysis.dto.TrafficAnalysisDTO;
import com.cjy.parkinglotdataanalysis.vo.ChartVO;
import com.cjy.parkinglotdataanalysis.vo.ReturnVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author liangjiawei
@ -173,4 +178,92 @@ public class HotelComprehensiveAnalysisServiceImpl implements HotelComprehensive
returnVO.setSeriesData(list);
return returnVO;
}
/**
* 过夜游客分析
* @param organCode
* @return
*/
@Override
public ReturnVO getOvernightTourists(Long organCode) {
List<String> dateList = getForward12month();
ReturnVO returnVO = new ReturnVO();
returnVO.setName("车流分析");
//x轴数组
List<String> categoriesList = new ArrayList<>();
//数据库返回数据
List<TrafficAnalysisDTO> list = hotelComprehensiveAnalysisMapper.getOvernightTouristsList(organCode);
List<TrafficAnalysisDTO> seriesData = new ArrayList<>();
dateList.stream().forEach(item1 ->{
if (list.isEmpty()) {
categoriesList.add(item1);
TrafficAnalysisDTO trafficAnalysisDTO = new TrafficAnalysisDTO();
trafficAnalysisDTO.setTotal("0");
trafficAnalysisDTO.setComparedWith("0.00");
trafficAnalysisDTO.setRingRatio("0.00");
seriesData.add(trafficAnalysisDTO);
} else {
TrafficAnalysisDTO trafficAnalysisDTO = new TrafficAnalysisDTO();
for (TrafficAnalysisDTO item : list) {
trafficAnalysisDTO.setDateTime(item1);
if (item.getDateTime().equals(item1)) {
trafficAnalysisDTO.setTotal(item.getTotal());
trafficAnalysisDTO.setComparedWith(item.getComparedWith());
trafficAnalysisDTO.setRingRatio(item.getRingRatio());
break;
} else {
trafficAnalysisDTO.setTotal("0");
trafficAnalysisDTO.setComparedWith("0.00");
trafficAnalysisDTO.setRingRatio("0.00");
}
}
categoriesList.add(item1);
seriesData.add(trafficAnalysisDTO);
}
});
returnVO.setCategories(categoriesList);
ChartVO chartVO = new ChartVO();
chartVO.setName("数量");
ChartVO comparedWithChartVO = new ChartVO();
comparedWithChartVO.setName("同比");
ChartVO ringRatioChartVO = new ChartVO();
ringRatioChartVO.setName("环比");
List<String> returnValueList = new ArrayList<>();
List<String> returnComparedWithList = new ArrayList<>();
List<String> returnRingRatioList = new ArrayList<>();
returnValueList.addAll(seriesData.stream().map(TrafficAnalysisDTO::getTotal).collect(Collectors.toList()));
returnComparedWithList.addAll(seriesData.stream().map(TrafficAnalysisDTO::getComparedWith).collect(Collectors.toList()));
returnRingRatioList.addAll(seriesData.stream().map(TrafficAnalysisDTO::getRingRatio).collect(Collectors.toList()));
chartVO.setValues(returnValueList);
comparedWithChartVO.setValues(returnComparedWithList);
ringRatioChartVO.setValues(returnRingRatioList);
//
List<ChartVO> chartVOList = new ArrayList<>();
chartVOList.add(chartVO);
chartVOList.add(comparedWithChartVO);
chartVOList.add(ringRatioChartVO);
returnVO.setSeriesData(chartVOList);
return returnVO;
}
public List<String> getForward12month() {
List<String> dateList = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
for (int i = 0; i < 12; i++) {
dateList.add(sdf.format(calendar.getTime()));
calendar.add(Calendar.MONTH, -1);
}
return dateList;
}
}

@ -210,20 +210,19 @@ public class ParkingLotDataAnalysisServiceImpl implements ParkingLotDataAnalysis
seriesData.add(trafficAnalysisDTO);
} else {
TrafficAnalysisDTO trafficAnalysisDTO = new TrafficAnalysisDTO();
list.stream().forEach(item ->{
for (TrafficAnalysisDTO item : list) {
trafficAnalysisDTO.setDateTime(item1);
if (item.getDateTime().equals(item1)) {
trafficAnalysisDTO.setTotal(item.getTotal());
trafficAnalysisDTO.setComparedWith(item.getComparedWith());
trafficAnalysisDTO.setRingRatio(item.getRingRatio());
}
if(!item.getDateTime().equals(item1)){
break;
} else {
trafficAnalysisDTO.setTotal("0");
trafficAnalysisDTO.setComparedWith("0.00");
trafficAnalysisDTO.setRingRatio("0.00");
}
});
}
categoriesList.add(item1);
seriesData.add(trafficAnalysisDTO);

@ -177,4 +177,45 @@
ORDER BY
t1.dict_value
</select>
<select id="getOvernightTouristsList" resultType="com.cjy.parkinglotdataanalysis.dto.TrafficAnalysisDTO">
SELECT
concat(ta.yy,'-',ta.mm) dateTime,
ta.total1 as total,
ifnull( round(( ta.total1 - tb.total2 )/ tb.total2 * 100, 2 ), 0 ) AS 'comparedWith',-- 月环比
ifnull( round(( ta.total1 - tc.total3 )/ tc.total3 * 100, 2 ), 0 ) AS 'ringRatio'
FROM (
SELECT
year(t.accommodation_date) as yy,
DATE_FORMAT(t.accommodation_date,'%m') as mm,
sum(stay_person_times) as total1
FROM enterprise_data_center_hotel_turnover t where t.del_flag!='2' and t.organ_code=#{organCode}
GROUP BY yy,mm
) ta
-- 同比:上年同月
LEFT JOIN
(
SELECT
year(t.accommodation_date) as yy,
DATE_FORMAT(t.accommodation_date,'%m') as mm,
sum(stay_person_times) as total2
FROM enterprise_data_center_hotel_turnover t where t.del_flag!='2' and t.organ_code=#{organCode}
GROUP BY yy,mm
) tb
ON tb.mm = ta.mm and tb.yy = ta.yy-1
-- 环比:上月
LEFT JOIN
(
SELECT
year(t.accommodation_date) as yy,
DATE_FORMAT(t.accommodation_date,'%m') as mm,
sum(stay_person_times) as total3
FROM enterprise_data_center_hotel_turnover t where t.del_flag!='2' and t.organ_code=#{organCode}
GROUP BY yy,mm
) tc
ON ( (tc.yy = ta.yy and tc.mm = ta.mm - 1) OR (tc.yy=ta.yy - 1 AND tc.mm = 12 AND ta.mm = 1) )
ORDER BY dateTime
;
</select>
</mapper>

@ -151,7 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
DATE_FORMAT( t.travel_time, '%m' ) AS mm,
count( id ) AS total1
FROM
parking_turnover_data t
parking_turnover_data t where t.del_flag!='2' and t.organ_code=#{organCode}
GROUP BY
yy,
mm
@ -162,7 +162,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
DATE_FORMAT( t.travel_time, '%m' ) AS mm,
count( id ) AS total2
FROM
parking_turnover_data t
parking_turnover_data t where t.del_flag!='2' and t.organ_code=#{organCode}
GROUP BY
yy,
mm
@ -174,7 +174,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
DATE_FORMAT( t.travel_time, '%m' ) AS mm,
count( id ) AS total3
FROM
parking_turnover_data t
parking_turnover_data t where t.del_flag!='2' and t.organ_code=#{organCode}
GROUP BY
yy,
mm

Binary file not shown.
Loading…
Cancel
Save