增加大屏按区域统计接口

This commit is contained in:
yuyang 2022-05-12 16:12:31 +08:00
parent 39b187060c
commit aeaee7c699
6 changed files with 90 additions and 1 deletions

View File

@ -129,7 +129,11 @@ public class XhpcDataBigScreenController extends BaseController {
return xhpcDataBigScreenService.returnCoreLocation(coreParam);
}
@GetMapping("/core-chargingStation")
public R<List<Map<String, Object>>> returnCoreChargingStation(CoreParam coreParam) {
return xhpcDataBigScreenService.returnCoreChargingStation(coreParam);
}
/**
* 工单
*/

View File

@ -27,6 +27,8 @@ public interface XhpcChargingStationMapper {
*/
List<Map<String, Object>> selectByTenantIdAndChargingStationId(@Param("tenantIdsStr") String tenantIdsStr, @Param("chargingStationId") Long chargingStationId);
List<Map<String, Object>> returnCoreChargingStation(@Param("tenantIdsStr") String tenantIdsStr, @Param("chargingStationId") Long chargingStationId, @Param("areaCode") Integer areaCode,@Param("number") Integer number);
/**
* @author WH
* @date 2022/3/3 15:20

View File

@ -25,6 +25,8 @@ public interface XhpcDataBigScreenService {
*/
R<List<Map<String, Object>>> returnCoreLocation(CoreParam coreParam);
R returnCoreChargingStation(CoreParam coreParam);
/**
* query total count of user
*

View File

@ -90,6 +90,30 @@ public class XhpcDataBigScreenServiceImpl implements XhpcDataBigScreenService {
}
}
@Override
public R returnCoreChargingStation(CoreParam coreParam) {
String tenantIdsStr = coreParam.getTenantIds();
if (coreParam.getParamType() == null) {
return R.fail("ParamType不能为null");
}
Integer areaCode = coreParam.getAreaCode();
int number =0;
if(areaCode !=null){
number = xhpcChargingStationMapper.getXhpcAreaLevel(areaCode);
}
String chargingStationIdStr = coreParam.getChargingStationIds();
if(chargingStationIdStr==null || "".equals(chargingStationIdStr)){
List<Map<String, Object>> list = xhpcChargingStationMapper.returnCoreChargingStation(tenantIdsStr, null, areaCode, number+1);
Object[] objects = list.toArray();
return R.ok(objects);
}
long chargingStationId = Long.parseLong(chargingStationIdStr);
//judge care param function
List<Map<String, Object>> list = xhpcChargingStationMapper.returnCoreChargingStation(tenantIdsStr, chargingStationId, areaCode, number+1);
Object[] objects = list.toArray();
return R.ok(objects);
}
@Override
public R<Object> queryUserTotalCount(CoreParam coreParam) {

View File

@ -71,6 +71,63 @@
AND xhpc_charging_station.charging_station_id = #{chargingStationId}
</if>
</select>
<select id="returnCoreChargingStation" resultType="map">
SELECT
name,
(SELECT count(charging_station_id) FROM xhpc_charging_station
WHERE del_flag = 0
<if test="tenantIdsStr!=null and tenantIdsStr!='' ">
and find_in_set(tenant_id, #{tenantIdsStr})
</if>
<if test="areaCode != null and areaCode != '' ">
<if test="number ==0">
AND area_code in (select code from xhpc_area where pcode in(select code from xhpc_area where pcode =xa.code))
</if>
<if test="number ==1">
AND area_code in (select code from xhpc_area where pcode in(select code from xhpc_area where pcode =xa.code))
</if>
<if test="number ==2">
AND area_code in (select code from xhpc_area where pcode =xa.code)
</if>
<if test="number ==3">
AND area_code =xa.code
</if>
</if>) value
FROM
xhpc_area as xa
WHERE 1=1
<if test="areaCode != null and areaCode != '' ">
and xa.level =#{number}
<if test="number==0">
and (SELECT count(charging_station_id) FROM xhpc_charging_station
WHERE del_flag = 0
AND area_code in (select code from xhpc_area where pcode in(select code from xhpc_area where pcode =xa.code)))>0
</if>
<if test="number ==1">
and (SELECT count(charging_station_id) FROM xhpc_charging_station
WHERE del_flag = 0
AND area_code in (select code from xhpc_area where pcode in(select code from xhpc_area where pcode =xa.code)))>0
</if>
<if test="number ==2">
and (SELECT count(charging_station_id) FROM xhpc_charging_station
WHERE del_flag = 0
AND area_code in (select code from xhpc_area where pcode =xa.code))>0
</if>
<if test="number ==3">
and (SELECT count(charging_station_id) FROM xhpc_charging_station
WHERE del_flag = 0
AND area_code =xa.code )>0
</if>
</if>
<if test="areaCode==null or areaCode == '' ">
and xa.level =1
and (SELECT count(charging_station_id) FROM xhpc_charging_station
WHERE del_flag = 0
AND area_code in (select code from xhpc_area where pcode in(select code from xhpc_area where pcode =xa.code)))>0
</if>
</select>
<select id="selectByTenantIdAndAreaCode" resultType="map">
SELECT
xhpc_charging_station.tenant_id tenantId,

View File

@ -1061,7 +1061,7 @@
left join xhpc_internet_user as iu on iu.internet_user_id = ss.charging_mode
where ss.del_flag=0 and ss.type=2
<if test="startTime !=null and startTime !=''">
and ss.create_time &gt;= #{startTime}
and ss.create_time &gt;= #{endTime}
</if>
<if test="endTime !=null and endTime !=''">
and ss.create_time &lt;= #{endTime}