Commit ec74e2c5 authored by 刘林's avatar 刘林

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into…

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into develop_tzs_register_to_0715
parents 533cadb7 54f409ca
...@@ -61,7 +61,7 @@ public class ControllerAop { ...@@ -61,7 +61,7 @@ public class ControllerAop {
/** /**
* saveUserRedis设置过期时间 * saveUserRedis设置过期时间
*/ */
@Value("${redis.cache.failure.time}") @Value("${redis.cache.failure.time:10800}")
private Long redisRegionTimeSecond; private Long redisRegionTimeSecond;
@Autowired @Autowired
......
...@@ -40,7 +40,7 @@ public class DataDictionaryController extends BaseController { ...@@ -40,7 +40,7 @@ public class DataDictionaryController extends BaseController {
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Value("${redis.cache.failure.time}") @Value("${redis.cache.failure.time:10800}")
private long time; private long time;
@Autowired @Autowired
......
package com.yeejoin.amos.boot.module.tcm.api.dto; package com.yeejoin.amos.boot.biz.common.dto;
import lombok.Data; import lombok.Data;
/**
* @author Administrator
*/
@Data @Data
public class ScreenDto { public class KeyValueDto {
/**
* 城市编码 private String strKey;
*/
String cityCode; private Integer iValue;
private String strValue;
} }
...@@ -30,7 +30,7 @@ public class DataDictionaryServiceImpl extends BaseService<DataDictionaryDto, Da ...@@ -30,7 +30,7 @@ public class DataDictionaryServiceImpl extends BaseService<DataDictionaryDto, Da
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Value("${redis.cache.failure.time}") @Value("${redis.cache.failure.time:10800}")
private long time; private long time;
@Autowired @Autowired
DataDictionaryMapper dataDictionaryMapper; DataDictionaryMapper dataDictionaryMapper;
......
package com.yeejoin.amos.boot.module.jyjc.biz.util; package com.yeejoin.amos.boot.biz.common.utils;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
......
package com.yeejoin.amos.boot.module.jyjc.biz.util; package com.yeejoin.amos.boot.biz.common.utils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
......
...@@ -12,7 +12,5 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -12,7 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface YjBaseMapper { public interface YjBaseMapper {
CompanyModel selectOneCompanyByCode(String companyCode);
String getOrgCodeByCompanyCode(String companyCode); String getOrgCodeByCompanyCode(String companyCode);
} }
...@@ -866,10 +866,10 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall ...@@ -866,10 +866,10 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
// 当天接警 // 当天接警
alarmStatisticsDto.setTodayAlarmNum( alarmStatisticsDto.setTodayAlarmNum(
map.get("calledCount") == null ? 0 : map.get("calledCount")); map.get("calledCount") == null ? 0L : map.get("calledCount"));
// 当天提交 // 当天提交
alarmStatisticsDto.setSubmitNum( alarmStatisticsDto.setSubmitNum(
map.get("majorAlertCount") == null ? 0 : map.get("majorAlertCount")); map.get("majorAlertCount") == null ? 0L : map.get("majorAlertCount"));
alarmStatisticsDto.setAllNum(this.count(allNumQueryWrapper)); alarmStatisticsDto.setAllNum(this.count(allNumQueryWrapper));
......
...@@ -30,7 +30,7 @@ public class PersonIdentifyAspect { ...@@ -30,7 +30,7 @@ public class PersonIdentifyAspect {
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Autowired @Autowired(required = false)
private IOrgUsrService orgUsrService; private IOrgUsrService orgUsrService;
@Before(value = "@annotation(com.yeejoin.amos.boot.module.common.api.core.framework.PersonIdentify) && @annotation(permission)") @Before(value = "@annotation(com.yeejoin.amos.boot.module.common.api.core.framework.PersonIdentify) && @annotation(permission)")
......
package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Data;
@Data
public class CylinderFillingRecordStatisticsDto {
private String time;
private String fillingQuantity;
private String offloadingVolume;
}
package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Data;
@Data
public class CylinderInfoStatisticsDto {
private String unitName;
private String city;
private String province;
private String district;
private Double num;
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
*
*
* @author system_generator
* @date 2023-11-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_alert_rescue_statistics")
public class AlertRescueStatistics extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 监管单位ID
*/
@TableField("supervisory_unit_id")
private String supervisoryUnitId;
/**
* 监管单位名称
*/
@TableField("supervisory_unit_name")
private String supervisoryUnitName;
/**
* 监管单位orgcode
*/
@TableField("supervisory_unit_org_code")
private String supervisoryUnitOrgCode;
/**
* 维保单位数
*/
@TableField("maintenance_unit")
private Integer maintenanceUnit;
/**
* 大于30分钟
*/
@TableField("greater_num")
private Integer greaterNum;
/**
* 小于30分钟
*/
@TableField("less_num")
private Integer lessNum;
/**
* 平均
*/
@TableField("avg_num")
private String avgNum;
/**
* 一级救援
*/
@TableField("level_one")
private Integer levelOne;
/**
* 二级救援
*/
@TableField("level_two")
private Integer levelTwo;
/**
* 三级救援
*/
@TableField("level_three")
private Integer levelThree;
/**
* 统计月份
*/
@TableField("statistics_date")
private String statisticsDate;
/**
* 开始时间
*/
@TableField("start_date")
private String startDate;
/**
* 结束时间
*/
@TableField("end_date")
private String endDate;
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
*
*
* @author system_generator
* @date 2023-11-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_alert_statistics")
public class AlertStatistics extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 监管单位ID
*/
@TableField("supervisory_unit_id")
private String supervisoryUnitId;
/**
* 监管单位名称
*/
@TableField("supervisory_unit_name")
@ColumnWidth(30)
@ExcelProperty(value = "区 域", index = 0)
private String supervisoryUnitName;
/**
* 监管单位orgcode
*/
@TableField("supervisory_unit_org_code")
private String supervisoryUnitOrgCode;
/**
* 电梯总数
*/
@TableField("elevator_num")
@ExcelProperty(value = "电梯总数(台)", index = 1)
private Integer elevatorNum;
/**
* 应急事件
*/
@TableField("emergency_events")
private Integer emergencyEvents;
/**
* 困人救援
*/
@TableField("trapped_people")
private Integer trappedPeople;
/**
* 故障救援
*/
@TableField("breakdown_rescue")
private Integer breakdownRescue;
/**
* 解救人员
*/
@TableField("rescue_personnel")
@ExcelProperty(value = "解救被困人员(起)", index = 5)
private Integer rescuePersonnel;
/**
* 投诉建议
*/
@TableField("complaint")
@ExcelProperty(value = "投诉建议(条)", index = 6)
private Integer complaint;
/**
* 故障率
*/
@TableField("failure_rate")
@ExcelProperty(value = "电梯故障率", index = 7)
private String failureRate;
/**
* 平均救援时长(分钟)
*/
private String avgTime;
/**
* 30分钟内到达次数
*/
private Integer withinThirtyRescue;
/**
* 统计日期
*/
@TableField("statistics_date")
private String statisticsDate;
/**
* 统计开始时间
*/
@TableField("start_date")
private String startDate;
/**
* 统计结束时间
*/
@TableField("end_date")
private String endDate;
@ExcelProperty(value = "电梯应急总事件(起)", index = 2)
@TableField(exist = false)
private String avgDaysEmergencyEvents;
@ExcelProperty(value = "困 人(起)", index = 3)
@TableField(exist = false)
private String avgDaysTrappedPeople;
@ExcelProperty(value = "故 障(起)", index = 4)
@TableField(exist = false)
private String avgDaysBreakdownRescue;
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
*
*
* @author system_generator
* @date 2023-11-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_alert_use_unit_statistics")
public class AlertUseUnitStatistics extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 监管单位ID
*/
@TableField("supervisory_unit_id")
private String supervisoryUnitId;
/**
* 监管单位名称
*/
@TableField("supervisory_unit_name")
private String supervisoryUnitName;
/**
* 监管单位编码
*/
@TableField("supervisory_unit_org_code")
private String supervisoryUnitOrgCode;
/**
* 统计月份
*/
@TableField("statistics_date")
private String statisticsDate;
/**
* 开始日期
*/
@TableField("start_date")
private String startDate;
/**
* 结束日期
*/
@TableField("end_date")
private String endDate;
/**
* 困人救援
*/
@TableField("trapped_num")
private Integer trappedNum;
/**
* 故障救援
*/
@TableField("fault_num")
private Integer faultNum;
/**
* 电梯总量
*/
@TableField("equip_num")
private Integer equipNum;
/**
* 使用单位
*/
@TableField("use_unit")
private String useUnit;
/**
* 维保单位
*/
@TableField("maintenance_unit")
private String maintenanceUnit;
/**
* 电梯地址
*/
@TableField("address")
private String address;
}
package com.yeejoin.amos.boot.module.cylinder.flc.biz.controller; package com.yeejoin.amos.boot.module.cylinder.flc.biz.controller;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderFillingMessageModel;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.CylinderAreaDataServiceImpl; import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.CylinderAreaDataServiceImpl;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.DPStatisticsServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map; import java.util.Map;
@RestController @RestController
...@@ -30,235 +22,28 @@ import java.util.Map; ...@@ -30,235 +22,28 @@ import java.util.Map;
@RequestMapping(value = "/statistics") @RequestMapping(value = "/statistics")
public class CylinderStatisticsController { public class CylinderStatisticsController {
@Autowired @Autowired
private CylinderAreaDataServiceImpl service; private CylinderAreaDataServiceImpl service;
@Autowired
private DPStatisticsServiceImpl statisticsService;
/** /**
* 预警预报统计 * 预警预报统计
*
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/earlyWarning", method = RequestMethod.GET) @RequestMapping(value = "/earlyWarning", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "预警预报") @ApiOperation(httpMethod = "GET", value = "预警预报")
public ResponseModel<Page<Map<String, Object>>> getEarlyWarning(@RequestParam(value = "regionCode", required = false) String regionCode, @RequestParam(value = "appId", required = false) String appId){ public ResponseModel<Page<Map<String, Object>>> getEarlyWarning(@RequestParam(value = "regionCode", required = false) String regionCode, @RequestParam(value = "appId", required = false) String appId) {
return ResponseHelper.buildResponse(service.getEarlyWarningStatistics(regionCode, appId)); return ResponseHelper.buildResponse(service.getEarlyWarningStatistics(regionCode, appId));
} }
/**
* 预警预报统计
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/earlyWarning/child", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "预警预报")
public ResponseModel<Map<String, Object>> getChildEarlyWarning(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
return ResponseHelper.buildResponse(service.getChildEarlyWarning(regionCode.toString()));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/test/saveCylinderFillingRecord2ES", method = RequestMethod.GET) @RequestMapping(value = "/test/saveCylinderFillingRecord2ES", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "testSaveCylinderFillingRecord2ES") @ApiOperation(httpMethod = "GET", value = "testSaveCylinderFillingRecord2ES")
public ResponseModel testSaveCylinderFillingRecord2ES(){ public ResponseModel testSaveCylinderFillingRecord2ES() {
return ResponseHelper.buildResponse(service.testSaveCylinderFillingRecord2ES()); return ResponseHelper.buildResponse(service.testSaveCylinderFillingRecord2ES());
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "区域安全指数")
@PostMapping(value = "/security-index")
public ResponseModel<Map<String, Object>> getsecurityIndex(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.getsecurityIndex(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "问题类型主体统计")
@PostMapping(value = "/mainBodyCount")
public ResponseModel<Map<String, Object>> mainBodyCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.mainBodyCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "设备问题近30天统计")
@PostMapping(value = "/equipmentCount")
public ResponseModel<Map<String, Object>> equipmentCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.equipmentCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "企业问题近30天统计")
@PostMapping(value = "/companyCount")
public ResponseModel<List<Map<String, Object>>> companyCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.companyCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "人员问题近30天统计")
@PostMapping(value = "/personCount")
public ResponseModel<Map<String, Object>> personCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.personCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "气瓶问题近30天统计")
@PostMapping(value = "/cylinderCount")
public ResponseModel<Map<String, Object>> cylinderCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.cylinderCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按月统计近12个月的问题数量趋势")
@PostMapping(value = "/issueCountByMonth")
public ResponseModel<Map<String, Object>> issueCountByMonth(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueCountByMonth(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按月统计近30天的问题数量趋势")
@PostMapping(value = "/issueCountByDay")
public ResponseModel<Map<String, Object>> issueCountByDay(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueCountByDay(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当前区域数据统计")
@PostMapping(value = "/issueCountByCityCode")
public ResponseModel<Map<String, Object>> issueCountByCityCode(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueCountByCityCode(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当前区域子区域数据统计")
@PostMapping(value = "/issueChildrenCityCount")
public ResponseModel<List<Map<String, Object>>> issueChildrenCityCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueChildrenCityCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当月问题列表(主体类型、问题类型、问题时间、操作)")
@PostMapping(value = "/issueMonthList")
public ResponseModel<List<Map<String, Object>>> issueMonthList(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueMonthList(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当年问题等级分类统计")
@PostMapping(value = "/issueProblemLevelCount")
public ResponseModel<Map<String, Object>> issueProblemLevelCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueProblemLevelCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按问题类型排名top 10")
@PostMapping(value = "/issueCompanyTop")
public ResponseModel<List<Map<String, Object>>> issueCompanyTop(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueCompanyTop(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-安全追溯-同设备近30天按问题次数滚动", notes = "大屏-安全追溯-同设备近30天按问题次数滚动")
@PostMapping(value = "/aqzs/equip-question/list")
public ResponseModel<List<Map<String, Object>>> getEquipQuestionList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getEquipQuestionList(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当年下级区域问题闭环率排名")
@PostMapping(value = "/issueChildrenCityCountTop")
public ResponseModel<List<Map<String, Object>>> issueChildrenCityCountTop(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueChildrenCityCountTop(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按问题类型排名top 10")
@PostMapping(value = "/issueCountTopByProblemType")
public ResponseModel<List<Map<String, Object>>> issueCountTopByProblemType(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueCountTopByProblemType(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
} }
...@@ -31,11 +31,6 @@ ...@@ -31,11 +31,6 @@
<artifactId>shedlock-spring</artifactId> <artifactId>shedlock-spring</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>net.javacrumbs.shedlock</groupId> <groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-provider-redis-spring</artifactId> <artifactId>shedlock-provider-redis-spring</artifactId>
</dependency> </dependency>
......
...@@ -55,6 +55,11 @@ ...@@ -55,6 +55,11 @@
<artifactId>vastbase-jdbc</artifactId> <artifactId>vastbase-jdbc</artifactId>
<version>2.7p</version> <version>2.7p</version>
</dependency> </dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.8.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
package com.yeejoin.amos.boot.module.jg.api.common.exception.handle; package com.yeejoin.amos.boot.module.jg.biz.config;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
package com.yeejoin.amos.boot.module.jg.flc.api.fegin; package com.yeejoin.amos.boot.module.jg.biz.config;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import feign.RequestTemplate; import feign.RequestTemplate;
......
package com.yeejoin.amos.boot.module.jg.flc.api.fegin; package com.yeejoin.amos.boot.module.jg.biz.feign;
import com.yeejoin.amos.boot.biz.common.feign.FeignConfiguration; import com.yeejoin.amos.boot.biz.common.feign.FeignConfiguration;
......
package com.yeejoin.amos.boot.module.jg.flc.api.fegin; package com.yeejoin.amos.boot.module.jg.biz.feign;
import com.yeejoin.amos.boot.module.jg.biz.config.XidFeignConfiguration;
import com.yeejoin.amos.component.feign.config.InnerInvokException; import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model; import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
......
package com.yeejoin.amos.boot.module.jg.flc.api.fegin; package com.yeejoin.amos.boot.module.jg.biz.feign;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.config.XidFeignConfiguration;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.model.*; import com.yeejoin.amos.feign.workflow.model.*;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
......
...@@ -50,9 +50,6 @@ public class ApplicationRunnerImpl implements ApplicationRunner { ...@@ -50,9 +50,6 @@ public class ApplicationRunnerImpl implements ApplicationRunner {
private List<IEquipUsedCheck> equipUsedCheckList; private List<IEquipUsedCheck> equipUsedCheckList;
private DPStatisticsServiceImpl statisticsService;
private AmosRequestContext amosRequestContext;
public ApplicationRunnerImpl(JgUseRegistrationServiceImpl useRegistrationService, public ApplicationRunnerImpl(JgUseRegistrationServiceImpl useRegistrationService,
CommonServiceImpl commonService, CommonServiceImpl commonService,
...@@ -69,7 +66,7 @@ public class ApplicationRunnerImpl implements ApplicationRunner { ...@@ -69,7 +66,7 @@ public class ApplicationRunnerImpl implements ApplicationRunner {
JgScrapCancelServiceImpl scrapCancelService, JgScrapCancelServiceImpl scrapCancelService,
JgChangeRegistrationNameServiceImpl changeRegistrationNameService, JgChangeRegistrationNameServiceImpl changeRegistrationNameService,
ReportAnalysisServiceImpl reportAnalysisService, ReportAnalysisServiceImpl reportAnalysisService,
List<IEquipUsedCheck> equipUsedCheckList, DPStatisticsServiceImpl statisticsService, AmosRequestContext amosRequestContext) { List<IEquipUsedCheck> equipUsedCheckList) {
this.commonService = commonService; this.commonService = commonService;
this.useRegistrationService = useRegistrationService; this.useRegistrationService = useRegistrationService;
...@@ -96,13 +93,11 @@ public class ApplicationRunnerImpl implements ApplicationRunner { ...@@ -96,13 +93,11 @@ public class ApplicationRunnerImpl implements ApplicationRunner {
this.scrapCancelService = scrapCancelService; this.scrapCancelService = scrapCancelService;
this.changeRegistrationNameService =changeRegistrationNameService; this.changeRegistrationNameService = changeRegistrationNameService;
this.reportAnalysisService = reportAnalysisService; this.reportAnalysisService = reportAnalysisService;
this.equipUsedCheckList = equipUsedCheckList; this.equipUsedCheckList = equipUsedCheckList;
this.statisticsService = statisticsService;
this.amosRequestContext = amosRequestContext;
} }
...@@ -192,11 +187,5 @@ public class ApplicationRunnerImpl implements ApplicationRunner { ...@@ -192,11 +187,5 @@ public class ApplicationRunnerImpl implements ApplicationRunner {
// 流程中的设备统计数据预热 // 流程中的设备统计数据预热
equipUsedCheckList.forEach(IEquipUsedCheck::init); equipUsedCheckList.forEach(IEquipUsedCheck::init);
// 初始化数据到内存
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setToken(amosRequestContext.getToken());
statisticsService.init();
} }
} }
...@@ -3,7 +3,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl; ...@@ -3,7 +3,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest; import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService; import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.component.feign.config.InnerInvokException; import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.utils.FeignUtil; import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.workflow.model.*; import com.yeejoin.amos.feign.workflow.model.*;
......
...@@ -45,8 +45,8 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter; ...@@ -45,8 +45,8 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter;
import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils;
import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.PrivilegeFeginService; import com.yeejoin.amos.boot.module.jg.biz.feign.PrivilegeFeginService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.TaskV2FeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.TaskV2FeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipTechParamPipeline; import com.yeejoin.amos.boot.module.ymt.api.entity.EquipTechParamPipeline;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory; import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
......
...@@ -49,8 +49,6 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper; ...@@ -49,8 +49,6 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.SuperviseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.SuperviseInfoMapper;
import com.yeejoin.amos.component.feign.utils.FeignUtil; import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -1432,12 +1430,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -1432,12 +1430,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (ValidationUtil.isEmpty(map.get("useUnitCreditCode"))) { if (ValidationUtil.isEmpty(map.get("useUnitCreditCode"))) {
throw new BadRequest("请先选择使用单位等信息!"); throw new BadRequest("请先选择使用单位等信息!");
} }
if (!ValidationUtil.isEmpty(map.get("transferType")) && ValidationUtil.equals(map.get("transferType"), "区内移装") if (!ValidationUtil.isEmpty(map.get("transferType")) && ValidationUtil.equals(map.get("transferType"), "区内移装")) {
&& ValidationUtil.isEmpty(map.get("county"))) { if (ValidationUtil.isEmpty(map.get("county"))) {
throw new BadRequest("请先选择施工区域等信息!"); throw new BadRequest("请先选择施工区域等信息!");
} else {
map.put(USE_PLACE_CODE, String.valueOf(map.get("county")).split("_")[0]);
}
} }
map.put("USE_UNIT_CREDIT_CODE", map.get("useUnitCreditCode")); map.put("USE_UNIT_CREDIT_CODE", map.get("useUnitCreditCode"));
map.put(USE_PLACE_CODE, ValidationUtil.equals(map.get("transferType"), "区内移装") ? String.valueOf(map.get("county")).split("_")[0] : null);
} }
} }
// this.setRepeatUsedCheckFilterByType(boolMust,companyCode,queryType); // this.setRepeatUsedCheckFilterByType(boolMust,companyCode,queryType);
......
...@@ -23,7 +23,7 @@ import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext ...@@ -23,7 +23,7 @@ import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext; import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService; import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil; import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
......
...@@ -24,7 +24,7 @@ import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; ...@@ -24,7 +24,7 @@ import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext; import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService; import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -16,7 +14,6 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisableEq; ...@@ -16,7 +14,6 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisableEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory; import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage; import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*; import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgEnableDisableService; import com.yeejoin.amos.boot.module.jg.api.service.IJgEnableDisableService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
...@@ -26,18 +23,15 @@ import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext; ...@@ -26,18 +23,15 @@ import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService; import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService; import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model; import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow; import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.*; import com.yeejoin.amos.feign.workflow.model.*;
......
...@@ -28,7 +28,7 @@ import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext ...@@ -28,7 +28,7 @@ import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext; import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService; import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.SuperviseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.SuperviseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
......
...@@ -36,7 +36,7 @@ import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; ...@@ -36,7 +36,7 @@ import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService; import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgInspectionDetectionInfoService; import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgInspectionDetectionInfoService;
import com.yeejoin.amos.boot.module.jg.biz.utils.CodeUtil; import com.yeejoin.amos.boot.module.jg.biz.utils.CodeUtil;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil; import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......
...@@ -33,7 +33,7 @@ import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; ...@@ -33,7 +33,7 @@ import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService; import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter; import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter;
import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquCodeTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquCodeTypeEnum;
......
...@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSONArray; ...@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.WorkFlowPublicInfo; import com.yeejoin.amos.boot.module.jg.api.dto.WorkFlowPublicInfo;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService; import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.Workflow; import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
......
package com.yeejoin.amos.boot.module.jyjc.biz.util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Strings;
/**
* @Author: xl
* @Description: json快速取值
* @Date: 2022/5/12 11:11
*/
public class JsonValueUtils {
public static Object getValueByKey(Object originObject, String startKey,
String targetKey) {
if (Strings.isNullOrEmpty(startKey)) {
return originObject;
}
if (originObject instanceof JSONObject) {
return getValueFromJSONObjectByKey((JSONObject) originObject, startKey,
targetKey);
}
if (originObject instanceof JSONArray) {
return getValueFromJSONArrayByKey((JSONArray) originObject, startKey,
targetKey);
}
return null;
}
private static String getNextKey(String startKey, String targetKey) {
if (Strings.isNullOrEmpty(targetKey)) {
return null;
}
String[] keys = targetKey.split("\\.");
for (int i = 0; i < keys.length; i++) {
if (keys[i].equals(startKey) && (i < keys.length - 1)) {
return keys[i + 1];
}
}
return null;
}
private static Object getValueFromJSONArrayByKey(JSONArray originObject,
String startKey,
String targetKey) {
try {
Integer integer = Integer.valueOf(startKey);
JSONObject jsonObject = originObject.getJSONObject(integer);
Object targetObject = getValueFromJSONObjectByKey(jsonObject, getNextKey(startKey, targetKey),
targetKey);
if (targetObject != null) {
return targetObject;
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return null;
}
private static Object getValueFromJSONObjectByKey(JSONObject originObject,
String startKey,
String targetKey) {
Object object = originObject.get(startKey);
return object != null
? getValueByKey(object, getNextKey(startKey, targetKey),
targetKey)
: null;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>amos-boot-module-statistics</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-module-statistics-api</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-jyjc-api</artifactId>
<version>${amos-boot-biz.version}</version>
</dependency>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-jg-api</artifactId>
<version>${amos-boot-biz.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.yeejoin.amos.boot.module.statistics.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author system_generator
* @date 2023-11-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="AlertUseUnitStatisticsDto", description="")
public class AlertUseUnitStatisticsDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "监管单位ID")
private String supervisoryUnitId;
@ApiModelProperty(value = "监管单位名称")
private String supervisoryUnitName;
@ApiModelProperty(value = "监管单位编码")
private String supervisoryUnitOrgCode;
@ApiModelProperty(value = "统计月份")
private String statisticsDate;
@ApiModelProperty(value = "开始日期")
private String startDate;
@ApiModelProperty(value = "结束日期")
private String endDate;
@ApiModelProperty(value = "困人救援")
private Integer trappedNum;
@ApiModelProperty(value = "故障救援")
private Integer faultNum;
@ApiModelProperty(value = "电梯总量")
private Integer equipNum;
@ApiModelProperty(value = "使用单位")
private String useUnit;
@ApiModelProperty(value = "维保单位")
private String maintenanceUnit;
@ApiModelProperty(value = "电梯地址")
private String address;
}
package com.yeejoin.amos.boot.module.statistics.api.dto;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class EquipQuestionNumCountDto {
/**
* 设备id
*/
private String sourceId;
private String useOrgCode;
private String supervisoryCode;
private String useUnitName;
private String cityName;
private String equList;
private Long total;
private Long finished;
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.yeejoin.amos.boot.biz.common.dto.KeyValueDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.statistics.api.dto.EquipQuestionNumCountDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
public interface AQZSDPStatisticsMapper {
String getOrgCodeByCompanyCode(@Param("cityCode") String cityCode);
List<Map<String, Object>> selectByOrgAndMainBody(@Param("orgCode") String orgCode, @Param("mainBodyNameList") List<String> mainBodyNameList,
@Param("startDate") String startDate, @Param("status") String status);
List<Map<String, Object>> selectByOrgAndProblemType(@Param("orgCode") String orgCode, @Param("enumNameList") List<String> enumNameList,
@Param("startDate") String startDate, @Param("sourceType") String sourceType, @Param("equipType") String equipType);
List<Map<String, Object>> getIssueCountByMonth(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status);
List<Map<String, Object>> getIssueCountByDate(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status);
int countByOrgCode(@Param("orgCode") String orgCode, @Param("now") String now);
List<Map<String, String>> getOrgCodeAndCompanyCodesByCompanyCodes(@Param("regionCodes") List<Integer> regionCodes);
List<Map<String, Object>> countByOrgCodes(@Param("orgCodes") List<String> orgCodes, @Param("now") String now);
List<Map<String, Object>> issueMonthList(@Param("orgCode") String orgCode, @Param("time") String time);
List<Map<String, Object>> issueProblemLevelCount(@Param("orgCode") String orgCode, @Param("time") String time);
List<Map<String, Object>> issueCompanyTop(@Param("orgCode") String orgCode, @Param("time") String time);
List<Map<String, Object>> issueChildrenCityCountTop(@Param("orgCodes") List<String> orgCodes, @Param("now") String now, @Param("status") String status);
List<Map<String, Object>> issueCountTopByProblemType(@Param("orgCode") String orgCode, @Param("status") String status);
List<EquipQuestionNumCountDto> queryEquipQuestionList(@Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto dpFilterParamDto);
/**
* 单位按照资质状态分组下的统计数量
*
* @param regionCode 区域
* @return List<KeyValueDto>
*/
List<KeyValueDto> queryLicenseEfficiencyOfRegion(@Param(value = "regionCode") String regionCode);
/**
* 查询单个单位的有效期信息
*
* @param appId 公司唯一标识
* @return KeyValueDto
*/
KeyValueDto queryLicenseEfficiencyOneCompany(@Param(value = "appId") String appId);
Map<String, Object> getInspectionExpiredRate(@Param(value = "regionCode") String regionCode, @Param(value = "appId") String appId);
Map<String, Object> getInspectionResultRate(@Param(value = "regionCode") String regionCode, @Param(value = "appId") String appId);
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.entity.AlertRescueStatistics;
import org.apache.ibatis.annotations.Param;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-11-07
*/
public interface AlertRescueStatisticsMapper extends BaseMapper<AlertRescueStatistics> {
AlertRescueStatistics getStatisticsMessage(@Param("orgCode") String orgCode, @Param("startDate") String startDate, @Param("endDate") String endDate);
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertStatistics;
import org.apache.ibatis.annotations.Param;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-11-02
*/
public interface AlertStatisticsMapper extends BaseMapper<AlertStatistics> {
AlertStatistics getStatisticsMessage(@Param("orgCode") String orgCode, @Param("startDate") String startDate, @Param("endDate") String endDate);
AlertStatistics statisticsInfoByRegionAndDate(@Param("regionCode") String regionCode, @Param("startDate") String startDate, @Param("endDate") String endDate);
Long countProblemByTypeDateAndOrgCode(@Param("problemType") String problemType, @Param("dto") DPFilterParamDto params, @Param("orgCode") String orgCode);
String getOrgCodeByCompanyCode(String cityCode);
Long countEmergencyEventsByOrgCodeAndDate(@Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto filterParamDto);
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-11-08
*/
public interface AlertUseUnitStatisticsMapper extends BaseMapper<AlertUseUnitStatistics> {
List<Map<String, String>> getStatisticsMessage(@Param("startDate") String startDate, @Param("endDate") String endDate);
AlertUseUnitStatistics getUseUnitMessage(@Param("unitCode") String unitCode, @Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate);
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-12-13
*/
@Mapper
public interface CommonBaseMapper {
String getOrgCodeByCompanyCode(String companyCode);
}
package com.yeejoin.amos.boot.module.tcm.api.mapper; package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.yeejoin.amos.boot.module.tcm.api.dto.*; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -14,16 +14,16 @@ import java.util.Map; ...@@ -14,16 +14,16 @@ import java.util.Map;
* @date 2024-07-09 * @date 2024-07-09
*/ */
@Mapper @Mapper
public interface ScreenMapper { public interface ZLStatisticsMapper {
List<Map<String, Object>> getCompanyInfo(@Param("screenDto") ScreenDto screenDto); List<Map<String, Object>> getCompanyInfo(@Param("screenDto") DPFilterParamDto screenDto);
List<Map<String, Object>> testOrg(@Param("screenDto") ScreenDto screenDto); List<Map<String, Object>> testOrg(@Param("screenDto") DPFilterParamDto screenDto);
List<Map<String, String>> userCount(@Param("screenDto") ScreenDto screenDto); List<Map<String, String>> userCount(@Param("screenDto") DPFilterParamDto screenDto);
List<Map<String, Object>> supervisorCount(@Param("screenDto") ScreenDto screenDto); List<Map<String, Object>> supervisorCount(@Param("screenDto") DPFilterParamDto screenDto);
String getOrgCodeByCompanyCode(@Param("cityCode") String cityCode); String getOrgCodeByCompanyCode(@Param("cityCode") String cityCode);
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.statistics.api.mapper.AQZSDPStatisticsMapper">
<select id="getOrgCodeByCompanyCode" resultType="java.lang.String">
select org_code from privilege_company where company_code = #{cityCode} limit 1
</select>
<select id="selectByOrgAndMainBody" resultType="java.util.Map">
SELECT COUNT
( 1 ),
source_type AS sourceType
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND problem_time &gt;= #{startDate}
AND source_type IN
<foreach collection="mainBodyNameList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
source_type
</select>
<select id="selectByOrgAndProblemType" resultType="java.util.Map">
SELECT COUNT
( 1 ),
problem_type AS problemType
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND problem_time &gt;= #{startDate}
AND source_type = #{sourceType}
<if test="null != equipType">
AND equip_list_code = #{equipType}
</if>
AND problem_type IN
<foreach collection="enumNameList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
GROUP BY
problem_type
</select>
<select id="getIssueCountByMonth" resultType="java.util.Map">
SELECT COUNT
( 1 ),
DATE_FORMAT(problem_time,'%Y-%m') AS time
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(problem_time,'%Y') = #{year}
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
DATE_FORMAT(problem_time,'%Y-%m')
</select>
<select id="getIssueCountByDate" resultType="java.util.Map">
SELECT COUNT
( 1 ),
DATE_FORMAT(problem_time,'%Y-%m-%d') AS time
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(problem_time,'%Y-%m-%d') &gt;= #{year}
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
DATE_FORMAT(problem_time,'%Y-%m-%d')
</select>
<select id="countByOrgCode" resultType="java.lang.Integer">
SELECT COUNT
( 1 )
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(problem_time,'%Y-%m') &gt;= #{now}
</select>
<select id="getOrgCodeAndCompanyCodesByCompanyCodes" resultType="java.util.Map">
select org_code AS orgCode,company_code AS companyCode from privilege_company where company_code in
<foreach collection="regionCodes" item="regionCode" separator="," open="(" close=")">
#{regionCode} :: VARCHAR
</foreach>
</select>
<select id="countByOrgCodes" resultType="java.util.Map">
SELECT COUNT
( 1 ),
governing_body_org_code AS orgCode
FROM
tzs_safety_problem_tracing
WHERE
DATE_FORMAT(problem_time,'%Y-%m') &gt;= #{now}
AND
<foreach collection="orgCodes" item="orgCode" separator="OR" open="(" close=")">
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
</foreach>
GROUP BY
governing_body_org_code
</select>
<select id="issueMonthList" resultType="java.util.Map">
SELECT
sequence_nbr AS sequenceNbr,
source_type AS sourceType,
problem_type AS problemType,
problem_time AS problemTime
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT ( problem_time, '%Y-%m' ) = #{time}
</select>
<select id="issueProblemLevelCount" resultType="java.util.Map">
SELECT
COUNT
( 1 ),
problem_level AS problemLevel
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(problem_time,'%Y') = #{time}
AND problem_level IS NOT NULL
GROUP BY
problem_level
ORDER BY
problem_level_code
</select>
<select id="issueCompanyTop" resultType="java.util.Map">
SELECT COUNT
( 1 ),
principal_unit AS principalUnit,
governing_body AS governingBody
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT ( problem_time, '%Y' ) = #{time}
AND problem_level IS NOT NULL
GROUP BY
principal_unit_code
ORDER BY
COUNT DESC
LIMIT 10
</select>
<select id="issueChildrenCityCountTop" resultType="java.util.Map">
SELECT COUNT
( 1 ),
governing_body_org_code AS orgCode
FROM
tzs_safety_problem_tracing
WHERE
DATE_FORMAT(problem_time,'%Y') &gt;= #{now}
AND
<foreach collection="orgCodes" item="orgCode" separator="OR" open="(" close=")">
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
</foreach>
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
governing_body_org_code
</select>
<select id="issueCountTopByProblemType" resultType="java.util.Map">
SELECT COUNT
( 1 ),
problem_type_code AS problemTypeCode
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
<if test="null != status">
AND problem_status_code = #{status}
</if>
GROUP BY
problem_type_code
ORDER BY
COUNT DESC
LIMIT 10
</select>
<select id="queryEquipQuestionList" resultType="com.yeejoin.amos.boot.module.statistics.api.dto.EquipQuestionNumCountDto">
select
bb."USE_ORG_CODE",
cc."SUPERVISORY_CODE",
dd."USE_UNIT_NAME",
aa.finished,
aa.source_id,
aa.total,
dd."CITY_NAME",
bb."EQU_LIST"
from
(
select
a.total,
a.source_id,
ifnull(b.total,0) as finished
from
(
SELECT
count(1) as total,
source_id
FROM
"tzs_safety_problem_tracing"
WHERE
source_type_code = '3'
and governing_body_org_code like concat(#{orgCode}, '%')
and cast(problem_time AS DATE) between #{dto.beginDate} and #{dto.endDate}
GROUP BY source_id ORDER BY total desc) a
left join (
SELECT
count(1) as total,
source_id
FROM
"tzs_safety_problem_tracing"
WHERE
source_type_code = '3'
and problem_status_code ='1'
and governing_body_org_code like concat(#{orgCode}, '%')
and cast(problem_time AS DATE) between #{dto.beginDate} and #{dto.endDate}
GROUP BY source_id ORDER BY total desc) b on a.source_id = b.source_id
) aa,
idx_biz_jg_register_info bb,
idx_biz_jg_other_info cc,
idx_biz_jg_use_info dd
where
aa.source_id=bb."RECORD"
and aa.source_id=cc."RECORD"
and aa.source_id=dd."RECORD"
order by aa.total desc
</select>
<select id="getInspectionExpiredRate" resultType="java.util.Map">
SELECT
CASE WHEN COUNT(*) = 0 THEN 0 ELSE ROUND((COUNT(CASE WHEN ci.next_inspection_date <![CDATA[<=]]> now() THEN 1 END) * 100.0 / COUNT(*)), 2) END AS expiredRate
FROM
"tz_cylinder_inspection" ci
LEFT JOIN tz_base_enterprise_info cu on ci.app_id = cu.app_id
<where>
cu.data_sources = '陕西省内企业'
AND cu.unit_type LIKE '%充装单位%'
<if test="regionCode != null and regionCode != ''">
and cu.org_code like concat(#{regionCode}, '%')
</if>
<if test="appId != null and appId != ''">
and cu.app_id = #{appId}
</if>
</where>
</select>
<select id="getInspectionResultRate" resultType="java.util.Map">
SELECT
CASE WHEN COUNT(*) = 0 THEN 0 ELSE ROUND((COUNT(CASE WHEN ci.inspection_result = '3123' THEN 1 END) * 100.0 / COUNT(*)), 2) END AS resultRate
FROM
"tz_cylinder_inspection" ci
LEFT JOIN tz_base_enterprise_info cu on ci.app_id = cu.app_id
<where>
cu.data_sources = '陕西省内企业'
AND cu.unit_type LIKE '%充装单位%'
<if test="regionCode != null and regionCode != ''">
and cu.org_code like concat( #{regionCode}, '%')
</if>
<if test="appId != null and appId != ''">
and cu.app_id = #{appId}
</if>
</where>
</select>
<select id="queryLicenseEfficiencyOneCompany" resultType="com.yeejoin.amos.boot.biz.common.dto.KeyValueDto">
SELECT
cu.sequence_nbr as strKey,
(select
case
when min(ul.expiry_date) >= now()
THEN '正常'
when min(ul.expiry_date) is null then '--'
ELSE '已超期'
END AS licenseOk from tz_base_unit_licence ul where cu.credit_code = ul.unit_code) as strValue
FROM
tz_cylinder_unit cu
where
cu.unit_status = '1210'
and cu.app_id = #{appId}
</select>
<select id="queryLicenseEfficiencyOfRegion" resultType="com.yeejoin.amos.boot.biz.common.dto.KeyValueDto">
SELECT
count(1) as iValue,
(select
case
when min(ul.expiry_date) >= now()
THEN '正常'
when min(ul.expiry_date) is null then '未提供'
ELSE '已超期'
END AS licenseOk from tz_base_unit_licence ul where cu.use_code = ul.unit_code) as strKey
FROM
tz_base_enterprise_info cu
where
cu.data_sources = '陕西省内企业'
AND cu.unit_type LIKE '%充装单位%'
and cu.org_code like concat('%', #{regionCode}, '%')
GROUP BY strKey
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.statistics.api.mapper.AlertRescueStatisticsMapper">
<select id="getStatisticsMessage"
resultType="com.yeejoin.amos.boot.module.common.api.entity.AlertRescueStatistics">
SELECT (select count(1)
from tz_dispatch_task
where alert_id in (SELECT sequence_nbr from tz_alert_called where biz_org_code like concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and alarm_type_code = '960' and father_alert is null)
and org_type_code = 'levelOneUnit') as levelOne,
(select count(1)
from tz_dispatch_task
where alert_id in (SELECT sequence_nbr from tz_alert_called where biz_org_code like concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and alarm_type_code = '960' and father_alert is null)
and org_type_code = 'levelTwoUnit') as levelTwo,
(select count(1)
from tz_dispatch_task
where alert_id in (SELECT sequence_nbr from tz_alert_called where biz_org_code like concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and alarm_type_code = '960' and father_alert is null)
and org_type_code = '953') as levelThree,
(select count(DISTINCT (response_org_id))
from tz_dispatch_task
where alert_id in (SELECT sequence_nbr from tz_alert_called where biz_org_code like concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and alarm_type_code = '960' and father_alert is null)
and org_type_code = 'levelOneUnit') as maintenanceUnit,
( SELECT count(1) from (
SELECT
t1.sequence_nbr,
(SELECT min(arrive_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and arrive_time is not null) as arr,
(SELECT min(dispatch_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and dispatch_time is not null ) as dis
from tz_alert_called t1 where t1.biz_org_code like concat(#{orgCode}, '%') and t1.alarm_type_code = '960' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null
) where extract(epoch from arr - dis ) &lt; 1800
) as lessNum,
(SELECT count(1) from tz_alert_called where biz_org_code like concat(#{orgCode}, '%') and alarm_type_code = '960' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null) as greaterNum,
(
SELECT sum(extract(epoch from arr - dis )) from
( SELECT
t1.sequence_nbr,
(SELECT min(arrive_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and arrive_time is not null) as arr,
(SELECT min(dispatch_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and dispatch_time is not null ) as dis
from tz_alert_called t1 where t1.biz_org_code like concat(#{orgCode}, '%') and t1.alarm_type_code = '960' and t1.call_time BETWEEN #{startDate} and #{endDate} and t1.father_alert is null
) ) as avgNum
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.statistics.api.mapper.AlertStatisticsMapper">
<select id="getStatisticsMessage"
resultType="com.yeejoin.amos.boot.module.common.api.entity.AlertStatistics">
SELECT temp.*,
CASE
when temp.emergencyEventsAll = 0 then '0%'
when temp.elevatorNum = 0 then '0%'
else concat(round((temp.emergencyEventsAll - temp.complaint) / temp.elevatorNum * 100, 2),
'%') end AS failureRate,
(temp.emergencyEventsAll - temp.complaint) as emergencyEvents
FROM (
SELECT (
SELECT COUNT(1)
FROM idx_biz_jg_supervision_info jsi
LEFT JOIN idx_biz_jg_other_info joi ON
jsi.RECORD = joi.RECORD
WHERE jsi.ORG_BRANCH_CODE LIKE concat(#{orgCode}, '%')
AND joi.CLAIM_STATUS = '已认领'
) AS elevatorNum,
(SELECT COUNT(1)
FROM tz_alert_called
WHERE biz_org_code LIKE concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null ) AS emergencyEventsAll,
(SELECT COUNT(1)
FROM tz_alert_called
WHERE alarm_type_code = '960'
AND biz_org_code LIKE concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null) AS trappedPeople,
(SELECT COUNT(1)
FROM tz_alert_called
WHERE alarm_type_code = '961'
AND biz_org_code LIKE concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null) AS breakdownRescue,
(SELECT COUNT(1)
FROM tz_alert_called
WHERE alarm_type_code = '962'
AND biz_org_code LIKE concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null) AS complaint,
(
SELECT (
(
SELECT ifnull(SUM(field_value), 0)
FROM tz_alert_form_value
WHERE alert_called_id IN (
SELECT sequence_nbr
FROM tz_alert_called
WHERE biz_org_code LIKE concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null)
AND field_code = 'trapped_num'
) - (
SELECT ifnull(SUM(field_value), 0)
FROM tz_alert_form_value
WHERE alert_called_id IN (
SELECT sequence_nbr
FROM tz_alert_called
WHERE biz_org_code LIKE concat(#{orgCode}, '%') and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null)
AND field_code = 'die_num'
)
)) AS rescuePersonnel
) temp
</select>
<select id="statisticsInfoByRegionAndDate" resultType="com.yeejoin.amos.boot.module.common.api.entity.AlertStatistics">
select t.*, ROUND((avgNum/greaterNum)/60.0,2) avgTime from (SELECT
( SELECT count(1) from (
SELECT
t1.sequence_nbr
from tz_alert_called t1 where t1.region_code like concat('%',#{regionCode}, '%') and t1.alarm_type_code = '960' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null
) as t1sn
) as trappedPeople,
( SELECT count(1) from (
SELECT
t1.sequence_nbr
from tz_alert_called t1 where t1.region_code like concat('%',#{regionCode}, '%') and t1.alarm_type_code = '961' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null
) as n
) as breakdownRescue,
( SELECT count(1) from (
SELECT
t1.sequence_nbr
from tz_alert_called t1 where t1.region_code like concat('%',#{regionCode}, '%') and t1.alarm_type_code = '962' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null
) as t1sn2
) as complaint,
(SELECT sum( field_value ) FROM tz_alert_form_value WHERE alert_called_id IN (SELECT sequence_nbr FROM tz_alert_called WHERE region_code LIKE concat ('%', #{regionCode}, '%' ) AND call_time BETWEEN #{startDate} and #{endDate} AND alarm_type_code = '960' AND father_alert IS NULL) AND field_code = 'trapped_num') as rescuedCount,
( SELECT count(1) from (
SELECT
t1.sequence_nbr,
(SELECT min(arrive_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and arrive_time is not null) as arr,
(SELECT min(dispatch_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and dispatch_time is not null ) as dis
from tz_alert_called t1 where t1.region_code like concat('%', #{regionCode}, '%') and t1.alarm_type_code = '960' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null
) as snad where extract(epoch from arr - dis ) > 1800
) as withinThirtyRescue,
(SELECT count(1) from tz_alert_called where region_code like concat('%', #{regionCode}, '%') and alarm_type_code = '960' and call_time BETWEEN #{startDate} and #{endDate} and father_alert is null) as greaterNum,
(
SELECT sum(extract(epoch from arr - dis )) from
( SELECT
t1.sequence_nbr,
(SELECT min(arrive_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and arrive_time is not null) as arr,
(SELECT min(dispatch_time) from tz_dispatch_task where alert_id = t1.sequence_nbr and dispatch_time is not null ) as dis
from tz_alert_called t1 where t1.region_code like concat('%', #{regionCode}, '%') and t1.alarm_type_code = '960' and t1.call_time BETWEEN #{startDate} and #{endDate} and t1.father_alert is null
) as s ) as avgNum)t
</select>
<select id="countProblemByTypeDateAndOrgCode" resultType="java.lang.Long">
SELECT
count(1)
FROM
"tzs_safety_problem_tracing"
WHERE
problem_type = #{problemType}
and governing_body_org_code like concat(#{orgCode}, '%')
and cast(problem_time AS DATE) between #{dto.beginDate} and #{dto.endDate}
</select>
<select id="getOrgCodeByCompanyCode" resultType="java.lang.String">
select org_code from privilege_company where company_code = #{companyCode} limit 1
</select>
<select id="countEmergencyEventsByOrgCodeAndDate" resultType="java.lang.Long">
SELECT
ifnull (SUM ( CASE WHEN father_alert IS NULL THEN 1 ELSE 0 END ), 0) AS total
FROM
tz_alert_called
WHERE
biz_org_code like concat(#{orgCode}, '%')
and (alarm_type_code = '960' or alarm_type_code = '961')
<if test="dto.beginDate !=null and dto.beginDate !=''">
and date_ge(CAST(call_time as date),#{dto.beginDate})
</if>
<if test="dto.endDate !=null and dto.endDate !=''">
and date_le(CAST(call_time as date),#{dto.endDate})
</if>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.statistics.api.mapper.AlertUseUnitStatisticsMapper">
<select id="getStatisticsMessage"
resultType="java.util.Map">
SELECT mainName as maintenanceUnit, useName as useUnit, ADDRESS as address, unitCode as unitCode, equipmentId
from (
SELECT use.ADDRESS as address,
tac.equipment_id as equipmentId,
(
SELECT ME_UNIT_NAME
from idx_biz_jg_maintenance_record_info
WHERE RECORD = equipment_id
ORDER BY INFORM_START LIMIT 1
) as mainName,
use.USE_UNIT_NAME as useName,
use.USE_UNIT_CREDIT_CODE as unitCode from tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info use on tac.equipment_id = use.RECORD
WHERE tac.alarm_type_code != '962'
and tac.equipment_id is not null
and use.ADDRESS is not null
and tac.call_time between #{startDate} and #{endDate}
and tac.father_alert is null
)
GROUP BY mainName, useName, address
ORDER BY address
</select>
<select id="getUseUnitMessage"
resultType="com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics">
SELECT
(
SELECT count(1) from idx_biz_jg_use_info WHERE USE_UNIT_CREDIT_CODE = #{unitCode}
) as equipNum,
(
SELECT count(1) from tz_alert_called where alarm_type_code = '960' and equipment_id = #{equipmentId} and call_time between #{startDate} and #{endDate}
and father_alert is null
) as trappedNum,
(
SELECT count(1) from tz_alert_called where alarm_type_code = '961' and equipment_id = #{equipmentId} and call_time between #{startDate} and #{endDate}
and father_alert is null
) as faultNum
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.statistics.api.mapper.CommonBaseMapper">
<select id="getOrgCodeByCompanyCode" resultType="java.lang.String">
select org_code from privilege_company where company_code = #{companyCode} limit 1
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper <mapper
namespace="com.yeejoin.amos.boot.module.tcm.api.mapper.ScreenMapper"> namespace="com.yeejoin.amos.boot.module.statistics.api.mapper.ZLStatisticsMapper">
<select id="getCompanyInfo" resultType="java.util.Map"> <select id="getCompanyInfo" resultType="java.util.Map">
SELECT bi.equip_category as equipCategory,bi.unit_type as unitType SELECT bi.equip_category as equipCategory,bi.unit_type as unitType
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>amos-boot-module-statistics</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-module-statistics-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-statistics-api</artifactId>
<version>${amos-boot-biz.version}</version>
</dependency>
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>visual-feign-morphic</artifactId>
<version>1.9.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.yeejoin.amos;
import com.yeejoin.amos.boot.biz.common.utils.oConvertUtils;
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* <pre>
* 特种设备服务启动类
* </pre>
*
* @author DELL
*/
@SpringBootApplication
@EnableConfigurationProperties
@ServletComponentScan
@EnableDiscoveryClient
@EnableFeignClients
@EnableSwagger2WebMvc
@MapperScan({"org.typroject.tyboot.demo.face.orm.dao*", "org.typroject.tyboot.face.*.orm.dao*",
"org.typroject.tyboot.core.auth.face.orm.dao*", "org.typroject.tyboot.component.*.face.orm.dao*",
"com.yeejoin.amos.boot.module.**.api.mapper", "com.yeejoin.amos.boot.biz.common.dao.mapper"})
@ComponentScan(basePackages = {"org.typroject", "com.yeejoin.amos"})
public class AmosStatisticsApplication {
private static final Logger logger = LoggerFactory.getLogger(AmosStatisticsApplication.class);
public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext context = SpringApplication.run(AmosStatisticsApplication.class, args);
Environment env = context.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
logger.info("\n----------------------------------------------------------\n\t"
+ "Application Amos-Biz-Boot is running! Access URLs:\n\t" + "Swagger文档: \thttp://" + ip + ":" + port
+ path + "/doc.html\n" + "----------------------------------------------------------");
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.config;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;
@Configuration
public class ElasticSearchClientConfig {
@Value("${spring.elasticsearch.rest.uris}")
private String uris;
@Value("${elasticsearch.username}")
private String username;
@Value("${elasticsearch.password}")
private String password;
@Bean(destroyMethod = "close")
public RestHighLevelClient restHighLevelClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
HttpHost[] httpHosts = Arrays.stream(uris.split(",")).map(HttpHost::create).toArray(HttpHost[]::new);
RestClientBuilder builder = RestClient.builder(httpHosts);
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
});
// 该方法接收一个RequestConfig.Builder对象,对该对象进行修改后然后返回。
builder.setRequestConfigCallback(requestConfigBuilder -> {
// 连接超时(默认为1秒)
return requestConfigBuilder.setConnectTimeout(5000 * 1000)
// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟
.setSocketTimeout(6000 * 1000);
});
return new RestHighLevelClient(builder);
} catch (Exception e) {
throw new IllegalStateException("Invalid ES nodes " + "property '" + uris + "'", e);
}
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.config;
import lombok.extern.slf4j.Slf4j;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class RedissonManager {
/**
* 集群环境使用-节点信息
*/
@Value("${spring.redis.cluster.nodes:default}")
private String clusterNodes;
/**
* 公共-密码
*/
@Value("${spring.redis.password}")
private String password;
/**
* 单机环境使用
*/
@Value("${spring.redis.host:default}")
private String host;
/**
* 单机环境使用
*/
@Value("${spring.redis.port:default}")
private String port;
/**
* 单机环境使用
*/
@Value("${spring.redis.database:0}")
private int database;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedissonClient redissonClient() {
// 集群环境使用
Config config = new Config();
config.useClusterServers()
.addNodeAddress(clusterNodes.split(","))
.setPassword(password);
return Redisson.create(config);
}
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "singleton", matchIfMissing = true)
public RedissonClient redissonSingletonClient() {
// 单机环境使用
Config config = new Config();
config.useSingleServer().setAddress(host + ":" + port).setPassword(password).setDatabase(database);
return Redisson.create(config);
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.config; package com.yeejoin.amos.boot.module.statistcs.biz.config;
import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
......
package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.AQZSDPStatisticsServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map;
@RestController
@Api(tags = "大屏-安全追溯统计Api")
@RequestMapping(value = "/dp/aqzs")
public class AQZSDPStatisticsController {
private AQZSDPStatisticsServiceImpl statisticsService;
public AQZSDPStatisticsController(AQZSDPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService;
}
/**
* 预警预报统计
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/earlyWarning/child", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "预警预报")
public ResponseModel<Map<String, Object>> getChildEarlyWarning(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
return ResponseHelper.buildResponse(statisticsService.getChildEarlyWarning(regionCode.toString()));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "区域安全指数")
@PostMapping(value = "/security-index")
public ResponseModel<Map<String, Object>> getsecurityIndex(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.getsecurityIndex(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "问题类型主体统计")
@PostMapping(value = "/mainBodyCount")
public ResponseModel<Map<String, Object>> mainBodyCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.mainBodyCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "设备问题近30天统计")
@PostMapping(value = "/equipmentCount")
public ResponseModel<Map<String, Object>> equipmentCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.equipmentCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "企业问题近30天统计")
@PostMapping(value = "/companyCount")
public ResponseModel<List<Map<String, Object>>> companyCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = statisticsService.companyCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "人员问题近30天统计")
@PostMapping(value = "/personCount")
public ResponseModel<Map<String, Object>> personCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.personCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "气瓶问题近30天统计")
@PostMapping(value = "/cylinderCount")
public ResponseModel<Map<String, Object>> cylinderCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.cylinderCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按月统计近12个月的问题数量趋势")
@PostMapping(value = "/issueCountByMonth")
public ResponseModel<Map<String, Object>> issueCountByMonth(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.issueCountByMonth(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按月统计近30天的问题数量趋势")
@PostMapping(value = "/issueCountByDay")
public ResponseModel<Map<String, Object>> issueCountByDay(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.issueCountByDay(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当前区域数据统计")
@PostMapping(value = "/issueCountByCityCode")
public ResponseModel<Map<String, Object>> issueCountByCityCode(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.issueCountByCityCode(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当前区域子区域数据统计")
@PostMapping(value = "/issueChildrenCityCount")
public ResponseModel<List<Map<String, Object>>> issueChildrenCityCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = statisticsService.issueChildrenCityCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当月问题列表(主体类型、问题类型、问题时间、操作)")
@PostMapping(value = "/issueMonthList")
public ResponseModel<List<Map<String, Object>>> issueMonthList(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = statisticsService.issueMonthList(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当年问题等级分类统计")
@PostMapping(value = "/issueProblemLevelCount")
public ResponseModel<Map<String, Object>> issueProblemLevelCount(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = statisticsService.issueProblemLevelCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按问题类型排名top 10")
@PostMapping(value = "/issueCompanyTop")
public ResponseModel<List<Map<String, Object>>> issueCompanyTop(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = statisticsService.issueCompanyTop(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-安全追溯-同设备近30天按问题次数滚动", notes = "大屏-安全追溯-同设备近30天按问题次数滚动")
@PostMapping(value = "/aqzs/equip-question/list")
public ResponseModel<List<Map<String, Object>>> getEquipQuestionList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getEquipQuestionList(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当年下级区域问题闭环率排名")
@PostMapping(value = "/issueChildrenCityCountTop")
public ResponseModel<List<Map<String, Object>>> issueChildrenCityCountTop(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = statisticsService.issueChildrenCityCountTop(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按问题类型排名top 10")
@PostMapping(value = "/issueCountTopByProblemType")
public ResponseModel<List<Map<String, Object>>> issueCountTopByProblemType(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = statisticsService.issueCountTopByProblemType(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.CylinderFillingRecordStatisticsDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.CylinderDPStatisticsServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
* 气瓶基本信息
*
* @author system_generator
* @date 2021-12-14
*/
@RestController
@Api(tags = "大屏-气瓶统计Api")
@RequestMapping(value = "/dp/cylinder")
public class CylinderDPStatisticsController extends BaseController {
private CylinderDPStatisticsServiceImpl dpStatisticsService;
public CylinderDPStatisticsController(CylinderDPStatisticsServiceImpl dpStatisticsService) {
this.dpStatisticsService = dpStatisticsService;
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getCylinderStatisticsData")
@ApiOperation(httpMethod = "GET", value = "获取气瓶统计数据-按照企业名称统计", notes = "获取气瓶统计数据-按照企业名称统计")
public ResponseModel<List<Map<String, Object>>> getCylinderStatisticsData(@RequestParam(value = "regionCode") String regionCode) throws IOException {
List<Map<String, Object>> result = dpStatisticsService.getCylinderStatisticsData(regionCode);
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/getCylinderStatisticsDataByCity")
@ApiOperation(httpMethod = "POST", value = "获取气瓶统计数据-按照城市统计", notes = "获取气瓶统计数据-按照城市统计")
public ResponseModel<Map<String, Object>> getCylinderStatisticsDataByCity(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = dpStatisticsService.getCylinderStatisticsDataByCity(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/getCylinderStatisticsDataByCityForTotal")
@ApiOperation(httpMethod = "POST", value = "获取气瓶统计数据-按照城市统计", notes = "获取气瓶统计数据-按照城市统计-地图统计")
public ResponseModel<Map<String, Object>> getCylinderStatisticsDataByCityForTotal(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = dpStatisticsService.getCylinderStatisticsDataByCityForTotal(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/getCylinderStatisticsDataByCityForMap")
@ApiOperation(httpMethod = "POST", value = "获取气瓶统计数据-按照城市统计", notes = "获取气瓶统计数据-按照城市统计-地图")
public ResponseModel<List<Map<String, Object>>> getCylinderStatisticsDataByCityForMap(@RequestBody Map<String, Object> map) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = dpStatisticsService.getCylinderStatisticsDataByCityForMap(regionCode.toString());
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "30天的充装量、卸液量数据")
@GetMapping(value = "/fillingTimesAndQuantity")
public ResponseModel<List<CylinderFillingRecordStatisticsDto>> fillingTimesAndQuantity(@RequestParam("regionCode") String reginCode) {
return ResponseHelper.buildResponse(dpStatisticsService.fillingTimesAndQuantity(reginCode));
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.controller; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.DPSubServiceImpl; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.DPSubServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.util.Assert; import org.springframework.util.Assert;
...@@ -13,14 +13,16 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel; ...@@ -13,14 +13,16 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Map; import java.util.Map;
/** /**
* 大屏统计controller * 大屏统计controller
* *
* @author Administrator * @author Administrator
*/ */
@RestController @RestController
@RequestMapping("/dp/sub")
@Api(tags = "大屏二级弹窗") @Api(tags = "大屏二级弹窗")
@RequestMapping("/dp/sub")
public class DPSubController { public class DPSubController {
...@@ -34,9 +36,9 @@ public class DPSubController { ...@@ -34,9 +36,9 @@ public class DPSubController {
@ApiOperation(httpMethod = "POST", value = "动态详情页", notes = "动态详情页") @ApiOperation(httpMethod = "POST", value = "动态详情页", notes = "动态详情页")
@PostMapping(value = "/{template}") @PostMapping(value = "/{template}")
public ResponseModel<JSONObject> commonQuery(@PathVariable String template, @RequestBody Map<String, Object> param) { public ResponseModel<JSONObject> commonQuery(@PathVariable String template, @RequestBody Map<String, Object> param) {
if (template.equals("company")){ if (template.equals("company")) {
Assert.notNull(param.get("useUnitCode"), "企业统一信用代码不能为空"); Assert.notNull(param.get("useUnitCode"), "企业统一信用代码不能为空");
} else if (template.equals("equip")){ } else if (template.equals("equip")) {
param.put("record", param.get("SEQUENCE_NBR")); param.put("record", param.get("SEQUENCE_NBR"));
param.put("equList", param.get("EQU_LIST_CODE")); param.put("equList", param.get("EQU_LIST_CODE"));
Assert.notNull(param.get("record"), "设备ID不能为空"); Assert.notNull(param.get("record"), "设备ID不能为空");
...@@ -48,3 +50,5 @@ public class DPSubController { ...@@ -48,3 +50,5 @@ public class DPSubController {
return ResponseHelper.buildResponse(subService.commonQuery(template, param)); return ResponseHelper.buildResponse(subService.commonQuery(template, param));
} }
} }
package com.yeejoin.amos.boot.module.jg.biz.controller; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jg.api.dto.FourColorCountDataDto; import com.yeejoin.amos.boot.module.jg.api.dto.FourColorCountDataDto;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.DPStatisticsServiceImpl; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.JGDPStatisticsServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
...@@ -25,14 +28,14 @@ import java.util.Map; ...@@ -25,14 +28,14 @@ import java.util.Map;
* @author Administrator * @author Administrator
*/ */
@RestController @RestController
@RequestMapping("/db/statistics") @Api(tags = "大屏-监管及总览统计API")
@Api(tags = "大屏统计") @RequestMapping("/jg/db")
public class DPStatisticsController { public class JGDPStatisticsController {
private DPStatisticsServiceImpl statisticsService; private JGDPStatisticsServiceImpl statisticsService;
public DPStatisticsController(DPStatisticsServiceImpl statisticsService) { public JGDPStatisticsController(JGDPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService; this.statisticsService = statisticsService;
} }
...@@ -116,7 +119,7 @@ public class DPStatisticsController { ...@@ -116,7 +119,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧设备状态情况统计", notes = "监管大屏-左侧设备状态情况统计") @ApiOperation(httpMethod = "POST", value = "监管大屏-左侧设备状态情况统计", notes = "监管大屏-左侧设备状态情况统计")
@PostMapping(value = "/equStateCount") @PostMapping(value = "/equStateCount")
public ResponseModel<List<Map<String,Object>>> equStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<Map<String, Object>>> equStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -127,7 +130,7 @@ public class DPStatisticsController { ...@@ -127,7 +130,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-右侧停用、注销、报废设备状态情况统计", notes = "监管大屏-右侧停用、注销、报废设备状态情况统计") @ApiOperation(httpMethod = "POST", value = "监管大屏-右侧停用、注销、报废设备状态情况统计", notes = "监管大屏-右侧停用、注销、报废设备状态情况统计")
@PostMapping(value = "/equStopStateCount") @PostMapping(value = "/equStopStateCount")
public ResponseModel<Map<String,Object>> equStopStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> equStopStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -138,7 +141,7 @@ public class DPStatisticsController { ...@@ -138,7 +141,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-维保电梯数量TOP10", notes = "监管大屏-维保电梯数量TOP10") @ApiOperation(httpMethod = "POST", value = "监管大屏-维保电梯数量TOP10", notes = "监管大屏-维保电梯数量TOP10")
@PostMapping(value = "/maintenanceCountTopTen") @PostMapping(value = "/maintenanceCountTopTen")
public ResponseModel<List<Map<String,Object>>> maintenanceCountTopTen(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<Map<String, Object>>> maintenanceCountTopTen(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -149,7 +152,7 @@ public class DPStatisticsController { ...@@ -149,7 +152,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-维保电梯数量", notes = "监管大屏-维保电梯数量") @ApiOperation(httpMethod = "POST", value = "监管大屏-维保电梯数量", notes = "监管大屏-维保电梯数量")
@PostMapping(value = "/maintenanceCount") @PostMapping(value = "/maintenanceCount")
public ResponseModel<Map<String,Object>> maintenanceCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> maintenanceCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -160,17 +163,18 @@ public class DPStatisticsController { ...@@ -160,17 +163,18 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧各地市业务办理平均时效", notes = "监管大屏-左侧各地市业务办理平均时效") @ApiOperation(httpMethod = "POST", value = "监管大屏-左侧各地市业务办理平均时效", notes = "监管大屏-左侧各地市业务办理平均时效")
@PostMapping(value = "/cityBusinessCount") @PostMapping(value = "/cityBusinessCount")
public ResponseModel<Map<String,Object>> cityBusinessCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> cityBusinessCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
} }
return ResponseHelper.buildResponse(statisticsService.cityBusinessCount(dpFilterParamDto)); return ResponseHelper.buildResponse(statisticsService.cityBusinessCount(dpFilterParamDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧获取业务类型", notes = "监管大屏-左侧获取业务类型") @ApiOperation(httpMethod = "POST", value = "监管大屏-左侧获取业务类型", notes = "监管大屏-左侧获取业务类型")
@PostMapping(value = "/getBusinessKey") @PostMapping(value = "/getBusinessKey")
public ResponseModel<List<Map<String,Object>>> getBusinessKey(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<Map<String, Object>>> getBusinessKey(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -181,7 +185,7 @@ public class DPStatisticsController { ...@@ -181,7 +185,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-右侧施工告知的设备数办理情况统计", notes = "监管大屏-右侧施工告知的设备数办理情况统计") @ApiOperation(httpMethod = "POST", value = "监管大屏-右侧施工告知的设备数办理情况统计", notes = "监管大屏-右侧施工告知的设备数办理情况统计")
@PostMapping(value = "/getNoticeEquCount") @PostMapping(value = "/getNoticeEquCount")
public ResponseModel<Map<String,Object>> getNoticeEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> getNoticeEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -192,7 +196,7 @@ public class DPStatisticsController { ...@@ -192,7 +196,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-右侧使用办理的设备数量情况统计", notes = "监管大屏-右侧使用办理的设备数量情况统计") @ApiOperation(httpMethod = "POST", value = "监管大屏-右侧使用办理的设备数量情况统计", notes = "监管大屏-右侧使用办理的设备数量情况统计")
@PostMapping(value = "/getRegEquCount") @PostMapping(value = "/getRegEquCount")
public ResponseModel<Map<String,Object>> getRegEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> getRegEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -203,7 +207,7 @@ public class DPStatisticsController { ...@@ -203,7 +207,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧新增情况", notes = "监管大屏-左侧新增情况") @ApiOperation(httpMethod = "POST", value = "监管大屏-左侧新增情况", notes = "监管大屏-左侧新增情况")
@PostMapping(value = "/newRegEquCount") @PostMapping(value = "/newRegEquCount")
public ResponseModel<Map<String,Object>> newRegEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> newRegEquCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
...@@ -214,7 +218,7 @@ public class DPStatisticsController { ...@@ -214,7 +218,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-新增登记新增设备统计", notes = "监管大屏-新增登记新增设备统计") @ApiOperation(httpMethod = "POST", value = "监管大屏-新增登记新增设备统计", notes = "监管大屏-新增登记新增设备统计")
@PostMapping(value = "/newRegCount") @PostMapping(value = "/newRegCount")
public ResponseModel<List<Map<String,Object>>> newRegCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<Map<String, Object>>> newRegCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage()); throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
......
package com.yeejoin.amos.boot.module.jyjc.biz.controller; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionTimelinesDto; import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionTimelinesDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.PublicityInspectOrgInfoDto; import com.yeejoin.amos.boot.module.jyjc.api.dto.PublicityInspectOrgInfoDto;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.DPStatisticsServiceImpl; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.JYJCDPStatisticsServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
...@@ -25,14 +25,14 @@ import java.util.Map; ...@@ -25,14 +25,14 @@ import java.util.Map;
* @author Administrator * @author Administrator
*/ */
@RestController @RestController
@RequestMapping("/db/statistics") @Api(tags = "大屏统-总览及检验检测统计API")
@Api(tags = "大屏统计") @RequestMapping("/jy/db")
public class DPStatisticsController { public class JYJCDPStatisticsController {
private DPStatisticsServiceImpl statisticsService; private JYJCDPStatisticsServiceImpl statisticsService;
public DPStatisticsController(DPStatisticsServiceImpl statisticsService) { public JYJCDPStatisticsController(JYJCDPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService; this.statisticsService = statisticsService;
} }
...@@ -61,7 +61,7 @@ public class DPStatisticsController { ...@@ -61,7 +61,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-左侧检验检测人员统计", notes = "大屏-检验检测-左侧检验检测人员统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-左侧检验检测人员统计", notes = "大屏-检验检测-左侧检验检测人员统计")
@PostMapping(value = "/jy/person/count") @PostMapping(value = "/person/count")
public ResponseModel<Map<String, Object>> inspectPersonCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> inspectPersonCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -72,7 +72,7 @@ public class DPStatisticsController { ...@@ -72,7 +72,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-各检验类型业务数量统计", notes = "大屏-检验检测-各检验类型业务数量统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-各检验类型业务数量统计", notes = "大屏-检验检测-各检验类型业务数量统计")
@PostMapping(value = "/jy/allApp/countByType") @PostMapping(value = "/allApp/countByType")
public ResponseModel<Map<String, Object>> inspectBizNumCountByType(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> inspectBizNumCountByType(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -83,7 +83,7 @@ public class DPStatisticsController { ...@@ -83,7 +83,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-各检验类型待检数量统计", notes = "大屏-检验检测-各检验类型待检数量统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-各检验类型待检数量统计", notes = "大屏-检验检测-各检验类型待检数量统计")
@PostMapping(value = "/jy/pendingApp/countByType") @PostMapping(value = "/pendingApp/countByType")
public ResponseModel<Map<String, Object>> queryAllFlowingAndFinishedInspectApp(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> queryAllFlowingAndFinishedInspectApp(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -94,7 +94,7 @@ public class DPStatisticsController { ...@@ -94,7 +94,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名")
@PostMapping(value = "/jy/timeliness/top") @PostMapping(value = "/timeliness/top")
public ResponseModel<List<InspectionTimelinesDto>> inspectionTimelinessTopXX(@RequestParam(required = false, defaultValue = "10") String top, @Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<InspectionTimelinesDto>> inspectionTimelinessTopXX(@RequestParam(required = false, defaultValue = "10") String top, @Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -105,7 +105,7 @@ public class DPStatisticsController { ...@@ -105,7 +105,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-检验检测机构公示", notes = "大屏-检验检测-检验检测机构公示") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-检验检测机构公示", notes = "大屏-检验检测-检验检测机构公示")
@PostMapping(value = "/jy/inspectionOrgList/publicity") @PostMapping(value = "/inspectionOrgList/publicity")
public ResponseModel<List<PublicityInspectOrgInfoDto>> inspectionOrgListForPublicity(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<PublicityInspectOrgInfoDto>> inspectionOrgListForPublicity(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -116,7 +116,7 @@ public class DPStatisticsController { ...@@ -116,7 +116,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-八大类设备报检/待检数量统计", notes = "大屏-检验检测-八大类设备报检/待检数量统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-八大类设备报检/待检数量统计", notes = "大屏-检验检测-八大类设备报检/待检数量统计")
@PostMapping(value = "/jy/inspectionEquip/countByEquList") @PostMapping(value = "/inspectionEquip/countByEquList")
public ResponseModel<Map<String, Object>> inspectionEquipCountByEquList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> inspectionEquipCountByEquList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -127,7 +127,7 @@ public class DPStatisticsController { ...@@ -127,7 +127,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-中间地图左侧全局统计", notes = "大屏-检验检测-中间地图左侧全局统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-中间地图左侧全局统计", notes = "大屏-检验检测-中间地图左侧全局统计")
@PostMapping(value = "/jy/center-map/legend") @PostMapping(value = "/center-map/legend")
public ResponseModel<Map<String, Object>> centerMapCountForGlobal(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> centerMapCountForGlobal(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -138,7 +138,7 @@ public class DPStatisticsController { ...@@ -138,7 +138,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-中间地图地市统计", notes = "大屏-检验检测-中间-地图地市统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-中间地图地市统计", notes = "大屏-检验检测-中间-地图地市统计")
@PostMapping(value = "/jy/center-map/overview") @PostMapping(value = "/center-map/overview")
public ResponseModel<List<Map<String, Object>>> centerMapCountForOverview(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<Map<String, Object>>> centerMapCountForOverview(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -149,7 +149,7 @@ public class DPStatisticsController { ...@@ -149,7 +149,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-八大类设备检验临期、超期统计", notes = "大屏-检验检测-八大类设备检验临期、超期统计") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-八大类设备检验临期、超期统计", notes = "大屏-检验检测-八大类设备检验临期、超期统计")
@PostMapping(value = "/jy/equipInspectTime/countByEquList") @PostMapping(value = "/equipInspectTime/countByEquList")
public ResponseModel<Map<String, Object>> equipInspectTimeCountByEquList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> equipInspectTimeCountByEquList(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -159,3 +159,6 @@ public class DPStatisticsController { ...@@ -159,3 +159,6 @@ public class DPStatisticsController {
} }
} }
package com.yeejoin.amos.boot.module.elevator.biz.controller; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertMaintenanceUnitStatisticsDto; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.YJDPStatisticsServiceImpl;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertMsgDto; import com.yeejoin.amos.boot.module.statistics.api.dto.AlertUseUnitStatisticsDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertPaperInfoDto; import com.yeejoin.amos.boot.module.ymt.api.dto.AlertPaperInfoDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertUseUnitStatisticsDto;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.DPStatisticsServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
...@@ -31,20 +29,20 @@ import java.util.Map; ...@@ -31,20 +29,20 @@ import java.util.Map;
* @author Administrator * @author Administrator
*/ */
@RestController @RestController
@RequestMapping("/db/statistics") @RequestMapping("/yj/db")
@Api(tags = "大屏统计") @Api(tags = "大屏-应急-统计API")
public class DPStatisticsController { public class YJDPStatisticsController {
private DPStatisticsServiceImpl statisticsService; private YJDPStatisticsServiceImpl statisticsService;
public DPStatisticsController(DPStatisticsServiceImpl statisticsService) { public YJDPStatisticsController(YJDPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService; this.statisticsService = statisticsService;
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-办理量 (近7日)", notes = "大屏-应急-办理量 (近7日)") @ApiOperation(httpMethod = "POST", value = "大屏-应急-办理量 (近7日)", notes = "大屏-应急-办理量 (近7日)")
@PostMapping(value = "/yj/eventStatByDay") @PostMapping(value = "/eventStatByDay")
public ResponseModel<JSONObject> eventStatByDay(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<JSONObject> eventStatByDay(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -55,7 +53,7 @@ public class DPStatisticsController { ...@@ -55,7 +53,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-电梯数量统计 (按区域)", notes = "大屏-应急-电梯数量统计 (按区域)") @ApiOperation(httpMethod = "POST", value = "大屏-应急-电梯数量统计 (按区域)", notes = "大屏-应急-电梯数量统计 (按区域)")
@PostMapping(value = "/yj/elevatorCountStat") @PostMapping(value = "/elevatorCountStat")
public ResponseModel<JSONObject> elevatorCountStat(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<JSONObject> elevatorCountStat(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -66,7 +64,7 @@ public class DPStatisticsController { ...@@ -66,7 +64,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-事件分布 (按场所)", notes = "大屏-应急-事件分布 (按场所)") @ApiOperation(httpMethod = "POST", value = "大屏-应急-事件分布 (按场所)", notes = "大屏-应急-事件分布 (按场所)")
@PostMapping(value = "/yj/eventStatByLocation") @PostMapping(value = "/eventStatByLocation")
public ResponseModel<JSONObject> eventStatByLocation(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<JSONObject> eventStatByLocation(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -77,7 +75,7 @@ public class DPStatisticsController { ...@@ -77,7 +75,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-故障原因占比", notes = "大屏-应急-故障原因占比") @ApiOperation(httpMethod = "POST", value = "大屏-应急-故障原因占比", notes = "大屏-应急-故障原因占比")
@PostMapping(value = "/yj/faultCauseRatio") @PostMapping(value = "/faultCauseRatio")
public ResponseModel<JSONObject> faultCauseRatio(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<JSONObject> faultCauseRatio(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -88,7 +86,7 @@ public class DPStatisticsController { ...@@ -88,7 +86,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-困人救援月度情况", notes = "大屏-应急-困人救援月度情况") @ApiOperation(httpMethod = "POST", value = "大屏-应急-困人救援月度情况", notes = "大屏-应急-困人救援月度情况")
@PostMapping(value = "/yj/trappedUserCount") @PostMapping(value = "/trappedUserCount")
public ResponseModel<JSONObject> trappedUserCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<JSONObject> trappedUserCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -99,7 +97,7 @@ public class DPStatisticsController { ...@@ -99,7 +97,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情列表", notes = "大屏-应急-即时警情列表") @ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情列表", notes = "大屏-应急-即时警情列表")
@PostMapping(value = "/yj/instantAlert") @PostMapping(value = "/instantAlert")
public ResponseModel<List<AlertPaperInfoDto>> instantAlert(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<List<AlertPaperInfoDto>> instantAlert(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -110,7 +108,7 @@ public class DPStatisticsController { ...@@ -110,7 +108,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-月度困人故障高发使用单位", notes = "大屏-应急-月度困人故障高发使用单位") @ApiOperation(httpMethod = "POST", value = "大屏-应急-月度困人故障高发使用单位", notes = "大屏-应急-月度困人故障高发使用单位")
@PostMapping(value = "/yj/trappedUserHighCompanyCount") @PostMapping(value = "/trappedUserHighCompanyCount")
public ResponseModel<List<AlertUseUnitStatisticsDto>> trappedUserHighCompanyCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<List<AlertUseUnitStatisticsDto>> trappedUserHighCompanyCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -121,7 +119,7 @@ public class DPStatisticsController { ...@@ -121,7 +119,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-维保单位平均救援时间排名", notes = "大屏-应急-维保单位平均救援时间排名") @ApiOperation(httpMethod = "POST", value = "大屏-应急-维保单位平均救援时间排名", notes = "大屏-应急-维保单位平均救援时间排名")
@PostMapping(value = "/yj/rankUnitByRescueTime") @PostMapping(value = "/rankUnitByRescueTime")
public ResponseModel<List<Map<String, Object>>> rankUnitByRescueTime(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<List<Map<String, Object>>> rankUnitByRescueTime(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -132,7 +130,7 @@ public class DPStatisticsController { ...@@ -132,7 +130,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-各地市应急事件总数排名", notes = "大屏-应急-各地市应急事件总数排名") @ApiOperation(httpMethod = "POST", value = "大屏-应急-各地市应急事件总数排名", notes = "大屏-应急-各地市应急事件总数排名")
@PostMapping(value = "/yj/regionEventRank") @PostMapping(value = "/regionEventRank")
public ResponseModel<JSONObject> regionEventRank(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception { public ResponseModel<JSONObject> regionEventRank(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -143,7 +141,7 @@ public class DPStatisticsController { ...@@ -143,7 +141,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-中间地图图列统计", notes = "大屏-应急-中间地图图列统计") @ApiOperation(httpMethod = "POST", value = "大屏-应急-中间地图图列统计", notes = "大屏-应急-中间地图图列统计")
@PostMapping(value = "/yj/center-map/legend") @PostMapping(value = "/center-map/legend")
public ResponseModel<Map<String, Object>> centerMapCountForGlobal(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<Map<String, Object>> centerMapCountForGlobal(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
...@@ -154,7 +152,7 @@ public class DPStatisticsController { ...@@ -154,7 +152,7 @@ public class DPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-中间地图地市统计", notes = "大屏总览中间-地图地市统计") @ApiOperation(httpMethod = "POST", value = "大屏-应急-中间地图地市统计", notes = "大屏总览中间-地图地市统计")
@PostMapping(value = "/yj/center-map/overview") @PostMapping(value = "/center-map/overview")
public ResponseModel<List<Map<String, Object>>> centerMapCountForOverview(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<Map<String, Object>>> centerMapCountForOverview(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors(); List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) { if (!fieldErrors.isEmpty()) {
......
package com.yeejoin.amos.boot.module.tcm.biz.controller.statistics.dp; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.module.tcm.api.dto.ScreenDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.tcm.api.service.statistics.IScreenService; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ZLDPStatisticsServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -13,10 +13,10 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -13,10 +13,10 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 大屏控制层 * 大屏控制层
* *
...@@ -24,43 +24,49 @@ import java.util.Map; ...@@ -24,43 +24,49 @@ import java.util.Map;
* @date 2024-07-09 * @date 2024-07-09
*/ */
@RestController @RestController
@Api(tags = "大屏企业统计") @Api(tags = "大屏-总览统计API")
@RequestMapping(value = "/statistics") @RequestMapping(value = "/zl/dp")
public class ScreenController { public class ZLDPStatisticsController {
@Resource
private IScreenService screenService; private ZLDPStatisticsServiceImpl statisticsService;
public ZLDPStatisticsController(ZLDPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService;
}
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/companyInfo") @PostMapping(value = "/companyInfo")
@ApiOperation(httpMethod = "POST", value = "大屏企业统计", notes = "大屏企业统计") @ApiOperation(httpMethod = "POST", value = "大屏企业统计", notes = "大屏企业统计")
public ResponseModel<List<Map<String,Object>>> companyInfo(@RequestBody ScreenDto screenDto){ public ResponseModel<List<Map<String, Object>>> companyInfo(@RequestBody DPFilterParamDto screenDto) {
return ResponseHelper.buildResponse(screenService.companyInfo(screenDto)); return ResponseHelper.buildResponse(statisticsService.companyInfo(screenDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/testOrg") @PostMapping(value = "/testOrg")
@ApiOperation(httpMethod = "POST", value = "大屏检测机构统计", notes = "大屏检测机构统计") @ApiOperation(httpMethod = "POST", value = "大屏检测机构统计", notes = "大屏检测机构统计")
public ResponseModel<List<Map<String,Object>>> testOrg(@RequestBody ScreenDto screenDto){ public ResponseModel<List<Map<String, Object>>> testOrg(@RequestBody DPFilterParamDto screenDto) {
return ResponseHelper.buildResponse(screenService.testOrg(screenDto)); return ResponseHelper.buildResponse(statisticsService.testOrg(screenDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/userCount") @PostMapping(value = "/userCount")
@ApiOperation(httpMethod = "POST", value = "大屏人员统计", notes = "大屏人员统计") @ApiOperation(httpMethod = "POST", value = "大屏人员统计", notes = "大屏人员统计")
public ResponseModel<Map<String,Object>> userCount(@RequestBody ScreenDto screenDto){ public ResponseModel<Map<String, Object>> userCount(@RequestBody DPFilterParamDto screenDto) {
return ResponseHelper.buildResponse(screenService.userCount(screenDto)); return ResponseHelper.buildResponse(statisticsService.userCount(screenDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/supervisorCount") @PostMapping(value = "/supervisorCount")
@ApiOperation(httpMethod = "POST", value = "大屏行业主管部门统计", notes = "大屏行业主管部门统计") @ApiOperation(httpMethod = "POST", value = "大屏行业主管部门统计", notes = "大屏行业主管部门统计")
public ResponseModel<Map<String,Object>> supervisorCount(@RequestBody ScreenDto screenDto){ public ResponseModel<Map<String, Object>> supervisorCount(@RequestBody DPFilterParamDto screenDto) {
return ResponseHelper.buildResponse(screenService.supervisorCount(screenDto)); return ResponseHelper.buildResponse(statisticsService.supervisorCount(screenDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/equipmentInformCount") @PostMapping(value = "/equipmentInformCount")
@ApiOperation(httpMethod = "POST", value = "大屏设备使用场所统计", notes = "大屏设备使用场所统计") @ApiOperation(httpMethod = "POST", value = "大屏设备使用场所统计", notes = "大屏设备使用场所统计")
public ResponseModel<List<Map<String,Object>>> equipmentInformCount(@RequestBody ScreenDto screenDto){ public ResponseModel<List<Map<String, Object>>> equipmentInformCount(@RequestBody DPFilterParamDto screenDto) {
return ResponseHelper.buildResponse(screenService.equipmentInformCount(screenDto)); return ResponseHelper.buildResponse(statisticsService.equipmentInformCount(screenDto));
} }
} }
package com.yeejoin.amos.boot.module.statistcs.biz.init;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.JGDPStatisticsServiceImpl;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.foundation.context.RequestContext;
/**
* @author Administrator
*/
@Component
public class DataInitAfterRuning implements ApplicationRunner {
private JGDPStatisticsServiceImpl jgdpStatisticsService;
private AmosRequestContext amosRequestContext;
public DataInitAfterRuning(JGDPStatisticsServiceImpl jgdpStatisticsService, AmosRequestContext amosRequestContext) {
this.jgdpStatisticsService = jgdpStatisticsService;
this.amosRequestContext = amosRequestContext;
}
@Override
public void run(ApplicationArguments args) {
// 初始化数据到内存
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setToken(amosRequestContext.getToken());
jgdpStatisticsService.init();
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.date.DateUtil;
import com.yeejoin.amos.boot.biz.common.dto.KeyValueDto;
import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.enums.IssueMainBodyEnum;
import com.yeejoin.amos.boot.module.common.api.enums.IssueTypeEnum;
import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum;
import com.yeejoin.amos.boot.module.statistics.api.dto.EquipQuestionNumCountDto;
import com.yeejoin.amos.boot.module.statistics.api.mapper.AQZSDPStatisticsMapper;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import joptsimple.internal.Strings;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.core.CountRequest;
import org.elasticsearch.client.core.CountResponse;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* 气瓶区域统计表服务实现类
*
* @author system_generator
* @date 2022-03-08
*/
@Service
public class AQZSDPStatisticsServiceImpl {
private final static String LICENSE_IS_OK = "正常";
private final static String NO_DATA_STR = "--";
@Autowired
RestHighLevelClient restHighLevelClient;
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
@Resource
private AQZSDPStatisticsMapper statisticsMapper;
private String getLicenseEfficiencyByRegion(String regionCode) {
List<KeyValueDto> keyValueDtos = statisticsMapper.queryLicenseEfficiencyOfRegion(regionCode);
int totalUnitNumber = keyValueDtos.stream().mapToInt(KeyValueDto::getIValue).sum();
int okUnitNumberNumber = keyValueDtos.stream().filter(k -> k.getStrKey().equals(LICENSE_IS_OK)).mapToInt(KeyValueDto::getIValue).sum();
if (totalUnitNumber == 0) {
return NO_DATA_STR;
}
BigDecimal bigTotalUnitNumber = new BigDecimal(String.valueOf(totalUnitNumber));
BigDecimal bigOkUnitNumberNumber = new BigDecimal(String.valueOf(okUnitNumberNumber));
BigDecimal result = bigOkUnitNumberNumber.divide(bigTotalUnitNumber, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2);
return result.toPlainString();
}
private long searchEsCount(Boolean checkOk, Boolean resultOk, String regionCode, String appId) {
CountRequest countRequest = new CountRequest("cylinder_filling");
// countRequest.indices("cylinder_filling");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
if (checkOk) {
//匹配充装前检查和充装后检查都有数据
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.existsQuery("inspectionDateMs"));
meBuilder.must(QueryBuilders.existsQuery("inspectionDateAfterMS"));
boolMust.must(meBuilder);
}
if (resultOk) {
//匹配充装前检查和充装后检查都有数据
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.termQuery("fillingResult.keyword", "合格"));
meBuilder.must(QueryBuilders.termQuery("checkResult.keyword", "合格"));
boolMust.must(meBuilder);
}
//匹配行政区划
if (!ObjectUtils.isEmpty(regionCode)) {
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.wildcardQuery("regionCode", "*" + regionCode + "*"));
boolMust.must(query);
}
//匹配appId
if (!ObjectUtils.isEmpty(appId)) {
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.matchQuery("appId", appId));
boolMust.must(query);
}
countRequest.query(boolMust);
try {
CountResponse countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);
return countResponse.getCount();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public Map<String, Object> getChildEarlyWarning(String regionCode) throws Exception {
List<RegionModel> regionModels = this.setRegionIfRootParent(regionCode);
List<String> collect = regionModels.stream().map(c -> c.getRegionCode().toString()).collect(Collectors.toList());
List<CompanyModel> companyModelList = Privilege.companyClient.queryListByCompanyCode(Strings.join(collect, ",")).getResult();
Map<String, CompanyModel> companyMap = companyModelList.stream().collect(Collectors.toMap(CompanyModel::getCompanyCode, c -> c));
Set<String> legendData = new HashSet<>();
List<String> xdata = new ArrayList<>();
List<String> xuke = new ArrayList<>();
List<String> shiyongdengji = new ArrayList<>();
List<String> jianyanchaoqi = new ArrayList<>();
List<String> jianyanhege = new ArrayList<>();
List<String> czjc = new ArrayList<>();
List<String> czjchege = new ArrayList<>();
// List<String> renyuan = new ArrayList<>();
legendData.add("许可有效率");
legendData.add("使用登记办理率");
legendData.add("检验超期率");
legendData.add("检验合格率");
legendData.add("充装检查率");
legendData.add("充装检查合格率");
for (RegionModel region : regionModels) {
CompanyModel companyModel = companyMap.get(region.getRegionCode().toString());
if (ObjectUtils.isEmpty(companyModel)) {
continue;
}
// 是否有充装企业在指定区域下
Boolean isHavingUnitInRegion = true;
String orgCode = companyModel.getOrgCode();
xdata.add(region.getRegionName());
// 1.许可有效率
if (!ValidationUtil.isEmpty(companyModel)) {
String value = this.getLicenseEfficiencyByRegion(orgCode);
if (NO_DATA_STR.equals(value)) {
xuke.add("0");
} else {
xuke.add(String.format("%.4f", Double.parseDouble(value) / 100.0000));
}
}
if (!ValidationUtil.isEmpty(orgCode) && !isHavingUnitInRegion) {
shiyongdengji.add("0");
jianyanchaoqi.add("0");
jianyanhege.add("0");
shiyongdengji.add("0");
czjc.add("0");
czjchege.add("0");
continue;
}
// 2.使用登记办理率
shiyongdengji.add("1");
// 3.检验超期率
jianyanchaoqi.add(String.format("%.4f", Double.parseDouble(statisticsMapper.getInspectionExpiredRate(orgCode, null).get("expiredRate").toString()) / 100.0000));
// 4.检验合格率
jianyanhege.add(String.format("%.4f", Double.parseDouble(statisticsMapper.getInspectionResultRate(orgCode, null).get("resultRate").toString()) / 100.0000));
// 5.充装检查率
long totalAll = searchEsCount(false, false, orgCode, null);
long totalCheck = searchEsCount(true, false, orgCode, null);
long totalResult = searchEsCount(false, true, orgCode, null);
if (totalAll != 0) {
czjc.add(new DecimalFormat("#.0000").format(((double) totalCheck / totalAll)));
} else {
czjc.add("0");
}
// 6.充装检查合格率
if (totalAll != 0) {
czjchege.add(new DecimalFormat("#.0000").format(((double) totalResult / totalAll)));
} else {
czjchege.add("0");
}
}
Map<String, Object> result = new HashMap<>();
result.put("xdata", xdata);
result.put("legendData", legendData);
result.put("xuke", xuke);
result.put("shiyongdengji", shiyongdengji);
result.put("jianyanchaoqi", jianyanchaoqi);
result.put("jianyanhege", jianyanhege);
result.put("czjc", czjc);
result.put("czjchege", czjchege);
return result;
}
private List<RegionModel> setRegionIfRootParent(String regionCode) throws Exception {
List<RegionModel> regionList = Systemctl.regionClient.queryByParentRegionCode(Integer.parseInt(regionCode)).getResult();
// 陕西省时需要在地图返回独立的地级市:韩城、杨凌、西咸
if (regionCode.equals(TZSCommonConstant.SHAN_XI_REGION_CODE)) {
List<RegionModel> independentRegions = ReginStepEnum.enum2RegionList("map");
regionList.addAll(independentRegions);
}
return regionList;
}
public Map<String, Object> getsecurityIndex(String regionCode) throws Exception {
List<RegionModel> regionModels = this.setRegionIfRootParent(regionCode);
List<String> collect = regionModels.stream().map(c -> c.getRegionCode().toString()).collect(Collectors.toList());
List<CompanyModel> companyModelList = Privilege.companyClient.queryListByCompanyCode(Strings.join(collect, ",")).getResult();
Map<String, CompanyModel> companyMap = companyModelList.stream().collect(Collectors.toMap(CompanyModel::getCompanyCode, c -> c));
List<String> xdata = new ArrayList<>();
List<String> xuke = new ArrayList<>();
List<String> shiyongdengji = new ArrayList<>();
List<String> jianyanchaoqi = new ArrayList<>();
List<String> jianyanhege = new ArrayList<>();
List<String> czjc = new ArrayList<>();
List<String> czjchege = new ArrayList<>();
for (RegionModel region : regionModels) {
CompanyModel companyModel = companyMap.get(region.getRegionCode().toString());
if (ObjectUtils.isEmpty(companyModel)) {
continue;
}
// 是否有充装企业在指定区域下
Boolean isHavingUnitInRegion = true;
String orgCode = companyModel.getOrgCode();
xdata.add(region.getRegionName());
// 1.许可有效率
if (!ValidationUtil.isEmpty(companyModel)) {
String value = this.getLicenseEfficiencyByRegion(orgCode);
if (NO_DATA_STR.equals(value)) {
value = "0";
xuke.add(value);
} else {
xuke.add(value);
}
}
if (!ValidationUtil.isEmpty(orgCode) && !isHavingUnitInRegion) {
shiyongdengji.add("0");
jianyanchaoqi.add("0");
jianyanhege.add("0");
shiyongdengji.add("0");
czjc.add("0");
czjchege.add("0");
continue;
}
// 2.使用登记办理率
shiyongdengji.add("100");
// 3.检验超期率
jianyanchaoqi.add(statisticsMapper.getInspectionExpiredRate(orgCode, null).get("expiredRate").toString());
// 4.检验合格率
jianyanhege.add(statisticsMapper.getInspectionResultRate(orgCode, null).get("resultRate").toString());
// 5.充装检查率
long totalAll = searchEsCount(false, false, orgCode, null);
long totalCheck = searchEsCount(true, false, orgCode, null);
long totalResult = searchEsCount(false, true, orgCode, null);
if (totalAll != 0) {
czjc.add(new DecimalFormat("#.00").format(((double) totalCheck / totalAll) * 100));
} else {
czjc.add("0");
}
// 6.充装检查合格率
if (totalAll != 0) {
czjchege.add(new DecimalFormat("#.00").format(((double) totalResult / totalAll) * 100));
} else {
czjchege.add("0");
}
}
Map<String, Object> result = new HashMap<>();
List<Map<String, String>> data = new ArrayList<>();
// List<String> ydata = new ArrayList<>();
for (int i = 0; i < xdata.size(); i++) {
Map<String, String> item = new HashMap<>();
item.put("name", xdata.get(i));
// 计算xuke的加权值
double xukeWeighted = Double.parseDouble(xuke.get(i)) * 0.10; // 10%
// 剩余权重平均分配给四个因素,每个因素大约22.5%(但为了简化,我们这里用25%的剩余权重)
double remainingWeightPerFactor = 0.90 / 4; // 简化为每个因素25%的剩余权重
// 计算其他四个因素的加权值
double jianyanchaoqiWeighted = Double.parseDouble(jianyanchaoqi.get(i)) * remainingWeightPerFactor;
double jianyanhegeWeighted = Double.parseDouble(jianyanhege.get(i)) * remainingWeightPerFactor;
double czjcWeighted = Double.parseDouble(czjc.get(i)) * remainingWeightPerFactor;
double czjchegeWeighted = Double.parseDouble(czjchege.get(i)) * remainingWeightPerFactor;
// 计算总指数
double totalIndex = xukeWeighted + jianyanchaoqiWeighted + jianyanhegeWeighted + czjcWeighted + czjchegeWeighted;
item.put("value", String.format("%.2f", totalIndex));
data.add(item);
// ydata.add(String.format("%.2f", totalIndex));
}
data = data.stream()
.filter(map -> map.containsKey("value")) // 确保每个Map都包含指定的键
.sorted(Comparator.comparingDouble(map -> {
// 检查并解析值,如果失败则返回Double.MIN_VALUE(或根据需要处理)
try {
return Double.parseDouble(map.get("value"));
} catch (NumberFormatException e) {
// 处理无法解析为double的情况,这里返回Double.MIN_VALUE表示最小
// 或者可以抛出自定义异常,记录日志等
return Double.MIN_VALUE;
}
}))
.collect(Collectors.toList());
List<String> name = data.stream().map(map -> map.get("name")).collect(Collectors.toList());
Collections.reverse(name);
result.put("xdata", name);
List<String> value = data.stream().map(map -> map.get("value")).collect(Collectors.toList());
Collections.reverse(value);
result.put("ydata", value);
return result;
}
public Map<String, Object> mainBodyCount(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
Map<String, Object> dataMap = new HashMap<>();
String startDate = LocalDate.now().minusDays(100).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<String> mainBodyNameList = IssueMainBodyEnum.getEnumNameList();
String orgCode = getAndSetOrgCode(cityCode);
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndMainBody(orgCode, mainBodyNameList, startDate, null);
List<Object> legendDataList = new ArrayList<>();
for (int i = 0; i < 2; i++) {
Map<String, Object> map = new HashMap<>();
if (0 == i) {
map.put("dataKey", "problemCount");
map.put("value", "问题数量");
} else if (1 == i) {
map.put("dataKey", "problemRate");
map.put("value", "问题闭环率");
}
legendDataList.add(map);
}
resultMap.put("legendData", legendDataList);
List<String> xdata = new ArrayList<>();
List<Object> problemCount = new ArrayList<>();
List<Object> problemRate = new ArrayList<>();
list.stream().forEach(t -> {
dataMap.put(t.get("sourceType").toString(), t.get("count").toString());
});
for (int i = 0; i < mainBodyNameList.size(); i++) {
if (null != dataMap.get(mainBodyNameList.get(i))) {
problemCount.add(dataMap.get(mainBodyNameList.get(i)));
List<String> list1 = new ArrayList<>();
list1.add(mainBodyNameList.get(i));
List<Map<String, Object>> maps = statisticsMapper.selectByOrgAndMainBody(orgCode, list1, startDate, "1");
if (maps.size() > 0) {
problemRate.add(new DecimalFormat("0.00").format(Double.parseDouble(maps.get(0).get("count").toString()) / Double.parseDouble(dataMap.get(mainBodyNameList.get(i)).toString())));
} else {
problemRate.add("0");
}
} else {
problemCount.add("0");
problemRate.add("0");
}
xdata.add(mainBodyNameList.get(i));
}
resultMap.put("xdata", xdata);
resultMap.put("problemCount", problemCount);
resultMap.put("problemRate", problemRate);
return resultMap;
}
private String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = statisticsMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode != null) {
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
}
return orgCode;
}
public Map<String, Object> equipmentCount(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
Map<String, Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("3");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.EQUIPMENT.getName(), null);
list.stream().forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
for (int i = 0; i < enumNameList.size(); i++) {
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i), "0"));
}
resultMap.put("xdata", xdata);
resultMap.put("ydata", ydata);
return resultMap;
}
public List<Map<String, Object>> companyCount(String cityCode) {
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, Object> dataMap = new HashMap<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("2");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.COMPANY.getName(), null);
list.stream().forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
for (int i = 0; i < enumNameList.size(); i++) {
Map<String, Object> map = new HashMap<>();
if (enumNameList.get(i).equals("许可临期")) {
map.put("key", "licenseExpirationDateNumber");
map.put("label", "许可临期数");
map.put("value", dataMap.getOrDefault(enumNameList.get(i), "0"));
} else if (enumNameList.get(i).equals("许可超期")) {
map.put("key", "licenseOverdueNumber");
map.put("label", "许可超期数");
map.put("value", dataMap.getOrDefault(enumNameList.get(i), "0"));
} else if (enumNameList.get(i).equals("维保备案超期")) {
map.put("key", "maintenanceFilingOverdueNumber");
map.put("label", "维保备案超期数(仅电梯)");
map.put("value", dataMap.getOrDefault(enumNameList.get(i), "0"));
}
resultList.add(map);
}
return resultList;
}
public Map<String, Object> personCount(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
Map<String, Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("1");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.PERSON.getName(), null);
list.stream().forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
for (int i = 0; i < enumNameList.size(); i++) {
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i), "0"));
}
resultMap.put("xdata", xdata);
resultMap.put("ydata", ydata);
return resultMap;
}
public Map<String, Object> cylinderCount(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
Map<String, Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("4");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.EQUIPMENT.getName(), "2300");
list.stream().forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
for (int i = 0; i < enumNameList.size(); i++) {
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i), "0"));
}
resultMap.put("xdata", xdata);
resultMap.put("ydata", ydata);
return resultMap;
}
public Map<String, Object> issueCountByMonth(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
List<Object> legendData = new ArrayList<>();
for (int i = 0; i < 2; i++) {
Map<String, Object> map = new HashMap<>();
if (i == 0) {
map.put("key", "problemCount");
map.put("value", "问题数量");
} else {
map.put("key", "processedRate");
map.put("value", "已处理");
}
legendData.add(map);
}
resultMap.put("legendData", legendData);
String orgCode = getAndSetOrgCode(cityCode);
int year = LocalDate.now().getYear();
List<Map<String, Object>> allIssue = statisticsMapper.getIssueCountByMonth(orgCode, String.valueOf(year), null);
List<Map<String, Object>> endIssue = statisticsMapper.getIssueCountByMonth(orgCode, String.valueOf(year), "1");
Map<String, Object> allIssueMap = new HashMap<>();
Map<String, Object> endIssueMap = new HashMap<>();
allIssue.stream().forEach(t -> {
allIssueMap.put(t.get("time").toString(), t.get("count"));
});
endIssue.stream().forEach(t -> {
endIssueMap.put(t.get("time").toString(), t.get("count"));
});
List<Object> problemCount = new ArrayList<>();
List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>();
for (int i = 0; i < 12; i++) {
String time = LocalDate.now().minusMonths(i).format(DateTimeFormatter.ofPattern("yyyy-MM"));
xdata.add(time);
if (allIssueMap.get(time) == null) {
problemCount.add("0");
processedRate.add("0");
} else {
problemCount.add(allIssueMap.get(time));
if (endIssueMap.get(time) == null) {
processedRate.add("0");
} else {
processedRate.add(new DecimalFormat("0.00").format(Double.parseDouble(endIssueMap.get(time).toString()) / Double.parseDouble(allIssueMap.get(time).toString())));
}
}
}
Collections.reverse(xdata);
Collections.reverse(problemCount);
Collections.reverse(processedRate);
resultMap.put("xdata", xdata);
resultMap.put("problemCount", problemCount);
resultMap.put("processedRate", processedRate);
return resultMap;
}
public Map<String, Object> issueCountByDay(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
List<Object> legendData = new ArrayList<>();
for (int i = 0; i < 2; i++) {
Map<String, Object> map = new HashMap<>();
if (i == 0) {
map.put("key", "problemCount");
map.put("value", "问题数量");
} else {
map.put("key", "processedRate");
map.put("value", "已处理");
}
legendData.add(map);
}
resultMap.put("legendData", legendData);
String orgCode = getAndSetOrgCode(cityCode);
String year = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String, Object>> allIssue = statisticsMapper.getIssueCountByDate(orgCode, year, null);
List<Map<String, Object>> endIssue = statisticsMapper.getIssueCountByDate(orgCode, year, "1");
Map<String, Object> allIssueMap = new HashMap<>();
Map<String, Object> endIssueMap = new HashMap<>();
allIssue.stream().forEach(t -> {
allIssueMap.put(t.get("time").toString(), t.get("count"));
});
endIssue.stream().forEach(t -> {
endIssueMap.put(t.get("time").toString(), t.get("count"));
});
List<Object> problemCount = new ArrayList<>();
List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>();
for (int i = 0; i < 29; i++) {
String time = LocalDate.now().minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
xdata.add(time);
if (allIssueMap.get(time) == null) {
problemCount.add("0");
processedRate.add("0");
} else {
problemCount.add(allIssueMap.get(time));
if (endIssueMap.get(time) == null) {
processedRate.add("0");
} else {
processedRate.add(new DecimalFormat("0.00").format(Double.parseDouble(endIssueMap.get(time).toString()) / Double.parseDouble(allIssueMap.get(time).toString())));
}
}
}
Collections.reverse(xdata);
Collections.reverse(problemCount);
Collections.reverse(processedRate);
resultMap.put("xdata", xdata);
resultMap.put("problemCount", problemCount);
resultMap.put("processedRate", processedRate);
return resultMap;
}
public Map<String, Object> issueCountByCityCode(String cityCode) {
String orgCode = getAndSetOrgCode(cityCode);
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
int count = statisticsMapper.countByOrgCode(orgCode, now);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("issueCount", count);
return resultMap;
}
public List<Map<String, Object>> issueChildrenCityCount(String cityCode) throws Exception {
List<RegionModel> regionModels = setRegionIfRootParent(cityCode);
List<Integer> regionCodeList = regionModels.stream().map(m -> m.getRegionCode()).collect(Collectors.toList());
List<Map<String, String>> orgCodeAndCompanyCodesByCompanyCodes = statisticsMapper.getOrgCodeAndCompanyCodesByCompanyCodes(regionCodeList);
List<String> orgCodes = orgCodeAndCompanyCodesByCompanyCodes.stream().map(m -> m.get("orgCode")).collect(Collectors.toList());
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
Map<String, String> orgCodeAndCompanyCodesMap = new HashMap<>();
orgCodeAndCompanyCodesByCompanyCodes.stream().forEach(t -> {
orgCodeAndCompanyCodesMap.put(t.get("companyCode"), t.get("orgCode"));
});
List<Map<String, Object>> list = statisticsMapper.countByOrgCodes(orgCodes, now);
Map<String, Object> dataMap = new HashMap<>();
list.stream().forEach(t -> {
dataMap.put(t.get("orgCode").toString(), t.get("count"));
});
List<Map<String, Object>> resultList = new ArrayList<>();
for (RegionModel regionModel : regionModels) {
Map<String, Object> map = new HashMap<>();
AtomicInteger count = new AtomicInteger();
map.put("regionCode", regionModel.getRegionCode());
map.put("regionName", regionModel.getRegionName());
if (StringUtils.isNotBlank(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode() + ""))) {
dataMap.forEach((k, v) -> {
if (k.startsWith(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode() + ""))) {
if (null != v) {
count.addAndGet(Integer.valueOf(v + ""));
}
}
});
}
map.put("issueCount", count);
resultList.add(map);
}
return resultList;
}
public List<Map<String, Object>> issueMonthList(String cityCode) {
String orgCode = getAndSetOrgCode(cityCode);
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
List<Map<String, Object>> list = statisticsMapper.issueMonthList(orgCode, time);
return list;
}
public Map<String, Object> issueProblemLevelCount(String cityCode) {
Map<String, Object> resultMap = new HashMap<>();
String orgCode = getAndSetOrgCode(cityCode);
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
List<Map<String, Object>> list = statisticsMapper.issueProblemLevelCount(orgCode, time);
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
xdata.add(list.get(i).get("problemLevel"));
ydata.add(list.get(i).get("count"));
}
resultMap.put("xdata", xdata);
resultMap.put("ydata", ydata);
return resultMap;
}
public List<Map<String, Object>> issueCompanyTop(String cityCode) {
List<Map<String, Object>> resultList = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
List<Map<String, Object>> list = statisticsMapper.issueCompanyTop(orgCode, time);
for (int i = 0; i < list.size(); i++) {
Map<String, Object> map = new HashMap<>();
map.put("sequenceNbr", (i + 1) + "");
map.put("region", list.get(i).get("governingBody"));
map.put("company", list.get(i).get("principalUnit"));
map.put("count", list.get(i).get("count"));
resultList.add(map);
}
return resultList;
}
public List<Map<String, Object>> issueChildrenCityCountTop(String cityCode) throws Exception {
List<RegionModel> regionModels = setRegionIfRootParent(cityCode);
List<Integer> regionCodeList = regionModels.stream().map(m -> m.getRegionCode()).collect(Collectors.toList());
List<Map<String, String>> orgCodeAndCompanyCodesByCompanyCodes = statisticsMapper.getOrgCodeAndCompanyCodesByCompanyCodes(regionCodeList);
List<String> orgCodes = orgCodeAndCompanyCodesByCompanyCodes.stream().map(m -> m.get("orgCode")).collect(Collectors.toList());
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
Map<String, String> orgCodeAndCompanyCodesMap = new HashMap<>();
orgCodeAndCompanyCodesByCompanyCodes.stream().forEach(t -> {
orgCodeAndCompanyCodesMap.put(t.get("companyCode"), t.get("orgCode"));
});
List<Map<String, Object>> allIssueCount = statisticsMapper.issueChildrenCityCountTop(orgCodes, now, null);
List<Map<String, Object>> endIssueCount = statisticsMapper.issueChildrenCityCountTop(orgCodes, now, "1");
Map<String, Object> allIssuedataMap = new HashMap<>();
Map<String, Object> endIssuedataMap = new HashMap<>();
allIssueCount.stream().forEach(t -> {
allIssuedataMap.put(t.get("orgCode").toString(), t.get("count"));
});
endIssueCount.stream().forEach(t -> {
endIssuedataMap.put(t.get("orgCode").toString(), t.get("count"));
});
List<Map<String, Object>> resultList = new ArrayList<>();
for (RegionModel regionModel : regionModels) {
Map<String, Object> map = new HashMap<>();
AtomicInteger allCount = new AtomicInteger();
AtomicInteger endCount = new AtomicInteger();
map.put("region", regionModel.getRegionName());
if (StringUtils.isNotBlank(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode() + ""))) {
allIssuedataMap.forEach((k, v) -> {
if (k.startsWith(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode() + ""))) {
if (null != v) {
allCount.addAndGet(Integer.valueOf(v + ""));
}
}
});
}
if (StringUtils.isNotBlank(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode() + ""))) {
endIssuedataMap.forEach((k, v) -> {
if (k.startsWith(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode() + ""))) {
if (null != v) {
endCount.addAndGet(Integer.valueOf(v + ""));
}
}
});
}
if (allCount.get() != 0) {
map.put("rate", new DecimalFormat("0.00").format(Double.parseDouble(endCount + "") / (Double.parseDouble(allCount.get() + ""))));
} else {
map.put("rate", "0.00");
}
resultList.add(map);
}
resultList.sort(Comparator.comparing(m -> Double.valueOf(m.get("rate") + ""), Comparator.reverseOrder()));
for (int i = 0; i < resultList.size(); i++) {
resultList.get(i).put("sequenceNbr", (i + 1) + "");
}
return resultList;
}
public List<Map<String, Object>> issueCountTopByProblemType(String cityCode) {
String orgCode = getAndSetOrgCode(cityCode);
List<Map<String, Object>> allList = statisticsMapper.issueCountTopByProblemType(orgCode, null);
List<Map<String, Object>> endList = statisticsMapper.issueCountTopByProblemType(orgCode, "1");
Map<String, Object> endIssuedataMap = new HashMap<>();
endList.stream().forEach(t -> {
endIssuedataMap.put(t.get("problemTypeCode").toString(), t.get("count"));
});
List<Map<String, Object>> resultList = new ArrayList<>();
for (int i = 0; i < allList.size(); i++) {
Map<String, Object> map = new HashMap<>();
map.put("name", IssueTypeEnum.getNameByCode(allList.get(i).get("problemTypeCode").toString()));
map.put("count", allList.get(i).get("count"));
if (null != endIssuedataMap.get(allList.get(i).get("problemTypeCode").toString())) {
map.put("rate", new DecimalFormat("0.00").format(Double.parseDouble(endIssuedataMap.get(allList.get(i).get("problemTypeCode").toString()) + "") / (Double.parseDouble(allList.get(i).get("count") + ""))));
}
resultList.add(map);
}
return resultList;
}
public List<Map<String, Object>> getEquipQuestionList(DPFilterParamDto dpFilterParamDto) {
this.setDefaultFilter(dpFilterParamDto);
String orgCode = this.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (StringUtils.isEmpty(orgCode)) {
return new ArrayList<>();
}
List<EquipQuestionNumCountDto> equipQuestionNumCountDtos = statisticsMapper.queryEquipQuestionList(orgCode, dpFilterParamDto);
return this.calPercentFinishedAndCast2Map(equipQuestionNumCountDtos);
}
private List<Map<String, Object>> calPercentFinishedAndCast2Map(List<EquipQuestionNumCountDto> equipQuestionNumCountDtos) {
return equipQuestionNumCountDtos.stream().map(e -> {
Map<String, Object> item = new HashMap<>();
// 设备id
item.put("key", e.getSourceId());
// 区域名称
item.put("regionName", e.getCityName());
// 设备种类
item.put("deviceCategoryName", EquipmentClassifityEnum.getNameByCode(e.getEquList()));
// 监管码/使用登记证编号
item.put("code", this.buildCodeWithSplit(e.getSupervisoryCode(), e.getUseOrgCode()));
// 使用单位
item.put("useUnitName", e.getUseUnitName());
// 问题次数
item.put("issuesNumber", e.getTotal());
// 闭环率
item.put("closedLoopRate", this.calClosedLoopRate(e.getTotal(), e.getFinished()));
return item;
}).collect(Collectors.toList());
}
private String calClosedLoopRate(Long total, Long finished) {
if (total == 0) {
return "0";
}
BigDecimal totalBig = new BigDecimal(total.toString());
BigDecimal finishedBig = new BigDecimal(finished.toString());
BigDecimal result = finishedBig.divide(totalBig, 2, RoundingMode.HALF_UP);
NumberFormat nt = NumberFormat.getPercentInstance();
nt.setMinimumFractionDigits(0);
return nt.format(result);
}
private String buildCodeWithSplit(String supervisoryCode, String useOrgCode) {
if (StringUtils.isNotEmpty(supervisoryCode) && StringUtils.isNotEmpty(useOrgCode)) {
return String.format("%s/%s", supervisoryCode, useOrgCode);
}
if (StringUtils.isNotEmpty(supervisoryCode)) {
return supervisoryCode;
}
if (StringUtils.isNotEmpty(useOrgCode)) {
return useOrgCode;
}
return "";
}
private void setDefaultFilter(DPFilterParamDto dpFilterParamDto) {
if (StringUtils.isEmpty(dpFilterParamDto.getBeginDate())) {
dpFilterParamDto.setBeginDate(DateUtil.lastMonth().toDateStr());
}
if (StringUtils.isEmpty(dpFilterParamDto.getEndDate())) {
dpFilterParamDto.setEndDate(DateUtil.today());
}
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.CylinderFillingRecordStatisticsDto;
import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.flc.api.mapper.CylinderAreaDataMapper;
import com.yeejoin.amos.boot.module.ymt.flc.api.mapper.CylinderInfoMapper;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 气瓶区域统计表服务实现类
*
* @author system_generator
* @date 2022-03-08
*/
@Service
public class CylinderDPStatisticsServiceImpl {
private RestHighLevelClient restHighLevelClient;
private TzBaseEnterpriseInfoMapper baseEnterpriseInfoMapper;
private CylinderAreaDataMapper cylinderAreaDataMapper;
private CylinderInfoMapper cylinderInfoMapper;
public CylinderDPStatisticsServiceImpl(RestHighLevelClient restHighLevelClient, TzBaseEnterpriseInfoMapper baseEnterpriseInfoMapper, CylinderAreaDataMapper cylinderAreaDataMapper, CylinderInfoMapper cylinderInfoMapper) {
this.restHighLevelClient = restHighLevelClient;
this.baseEnterpriseInfoMapper = baseEnterpriseInfoMapper;
this.cylinderAreaDataMapper = cylinderAreaDataMapper;
this.cylinderInfoMapper = cylinderInfoMapper;
}
public List<Map<String, Object>> getCylinderStatisticsData(String regionCode) throws IOException {
// 构建搜索请求
CompanyModel result = Privilege.companyClient.queryByCompanyCode(regionCode).getResult();
String orgCode = result.getOrgCode();
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// 构建查询条件
searchSourceBuilder.query(
QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("EQU_CATEGORY_CODE", "2300"))
.must(QueryBuilders.matchPhraseQuery("ORG_BRANCH_CODE", orgCode))
);
TermsAggregationBuilder aggregation = AggregationBuilders.terms("USE_UNIT_CREDIT_CODE").field("USE_UNIT_CREDIT_CODE.keyword").size(10);
searchSourceBuilder.aggregation(aggregation);
searchRequest.source(searchSourceBuilder);
// 执行搜索并获取响应
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 处理聚合结果
// 这里只是打印出聚合的名称和桶的数量,你需要根据自己的需求来处理这些数据
Terms terms = searchResponse.getAggregations().get("USE_UNIT_CREDIT_CODE");
List<Map<String, Object>> dataList = new ArrayList<>();
List<String> keys = new ArrayList<>();
for (Terms.Bucket bucket : terms.getBuckets()) {
Map<String, Object> item = new HashMap<>();
item.put("count", bucket.getDocCount());
item.put("key", bucket.getKeyAsString());
dataList.add(item);
keys.add(bucket.getKeyAsString());
}
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoDtos = baseEnterpriseInfoMapper.queryByUseCode(keys);
Map<String, TzBaseEnterpriseInfoDto> collect = tzBaseEnterpriseInfoDtos.stream().collect(Collectors.toMap(TzBaseEnterpriseInfoDto::getUseCode, f -> f));
for (Map<String, Object> item : dataList) {
Object key = item.get("key");
if (collect.containsKey(key)) {
item.put("name", collect.get(key).getUseUnit());
item.put("city", collect.get(key).getCity());
item.put("province", collect.get(key).getProvince());
item.put("district", collect.get(key).getDistrict());
}
}
return dataList;
}
public Map<String, Object> getCylinderStatisticsDataByCity(String regionCode) throws Exception {
// 构建搜索请求
List<RegionModel> regionList = this.setRegionIfRootParent(regionCode);
List<String> companyCode = regionList.stream().map(r -> r.getRegionCode().toString()).collect(Collectors.toList());
List<CompanyModel> companyList = Privilege.companyClient.queryListByCompanyCode(String.join(",", companyCode)).getResult();
Map<String, RegionModel> regionMap = regionList.stream().collect(Collectors.toMap(r -> r.getRegionCode().toString(), r -> r));
List<Map<String, Object>> legendData = new ArrayList<>();
List<String> xdata = new ArrayList<>();
List<String> qiping = new ArrayList<>();
List<String> qizhan = new ArrayList<>();
long maxValue = 0;
for (CompanyModel comapany : companyList) {
String orgCode = comapany.getOrgCode();
xdata.add(regionMap.get(comapany.getCompanyCode()).getRegionName());
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// 构建查询条件
searchSourceBuilder.query(
QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("EQU_CATEGORY_CODE", "2300"))
.must(QueryBuilders.matchPhraseQuery("ORG_BRANCH_CODE", orgCode))
);
TermsAggregationBuilder aggregation = AggregationBuilders.terms("ORG_BRANCH_CODE").field("ORG_BRANCH_CODE.keyword").size(10);
searchSourceBuilder.aggregation(aggregation);
searchRequest.source(searchSourceBuilder);
// 执行搜索并获取响应
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 处理聚合结果
// 这里只是打印出聚合的名称和桶的数量,你需要根据自己的需求来处理这些数据
Terms terms = searchResponse.getAggregations().get("ORG_BRANCH_CODE");
if (!ObjectUtils.isEmpty(terms.getBuckets())) {
if (terms.getBuckets().get(0).getDocCount() > maxValue) {
maxValue = terms.getBuckets().get(0).getDocCount();
}
qiping.add(terms.getBuckets().get(0).getDocCount() + "");
} else {
qiping.add("0");
}
}
if (maxValue > 100000) {
for (int i = 0; i < qiping.size(); i++) {
qiping.set(i, String.format("%.4f", Long.parseLong(qiping.get(i)) / 10000.0000) + "");
}
}
List<String> orgCodes = companyList.stream().map(c -> c.getOrgCode()).collect(Collectors.toList());
List<Map<String, Object>> qizhanMap = cylinderAreaDataMapper.getQiZhanStatisticsDataByCity(orgCodes);
Map<Object, Object> collect = qizhanMap.stream().collect(Collectors.toMap(m -> ((Map) m).get("orgCode"), m -> ((Map) m).get("unitCount")));
for (CompanyModel comapany : companyList) {
String orgCode = comapany.getOrgCode();
if (collect.containsKey(orgCode)) {
qizhan.add(collect.get(orgCode).toString());
} else {
qizhan.add("0");
}
}
Map<String, Object> qiLegend = new HashMap<>();
if (maxValue > 100000) {
qiLegend.put("value", "气瓶数量(万)");
qiLegend.put("dataKey", "qiping");
} else {
qiLegend.put("value", "气瓶数量");
qiLegend.put("dataKey", "qiping");
}
Map<String, Object> zhanLegend = new HashMap<>();
zhanLegend.put("value", "气站数量");
zhanLegend.put("dataKey", "qizhan");
legendData.add(qiLegend);
legendData.add(zhanLegend);
Map<String, Object> result = new HashMap<>();
result.put("qizhan", qizhan);
result.put("qiping", qiping);
result.put("xdata", xdata);
result.put("legendData", legendData);
return result;
}
private List<RegionModel> setRegionIfRootParent(String regionCode) throws Exception {
List<RegionModel> regionList = Systemctl.regionClient.queryByParentRegionCode(Integer.parseInt(regionCode)).getResult();
// 陕西省时需要在地图返回独立的地级市:韩城、杨凌、西咸
if (regionCode.equals(TZSCommonConstant.SHAN_XI_REGION_CODE)) {
List<RegionModel> independentRegions = ReginStepEnum.enum2RegionList("map");
regionList.addAll(independentRegions);
}
return regionList;
}
public Map<String, Object> getCylinderStatisticsDataByCityForTotal(String regionCode) throws IOException {
// 构建搜索请求
CompanyModel comapany = Privilege.companyClient.queryByCompanyCode(regionCode).getResult();
String orgCode = comapany.getOrgCode();
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
long qiping = 0;
// 构建查询条件
searchSourceBuilder.query(
QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("EQU_CATEGORY_CODE", "2300"))
.must(QueryBuilders.matchPhraseQuery("ORG_BRANCH_CODE", orgCode))
);
TermsAggregationBuilder aggregation = AggregationBuilders.terms("ORG_BRANCH_CODE").field("ORG_BRANCH_CODE.keyword").size(10); // 注意:.keyword后缀可能根据你的字段映射而有所不同
searchSourceBuilder.aggregation(aggregation);
searchRequest.source(searchSourceBuilder);
// 执行搜索并获取响应
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 处理聚合结果
// 这里只是打印出聚合的名称和桶的数量,你需要根据自己的需求来处理这些数据
Terms terms = searchResponse.getAggregations().get("ORG_BRANCH_CODE");
if (!ObjectUtils.isEmpty(terms.getBuckets())) {
qiping = terms.getBuckets().get(0).getDocCount();
} else {
qiping = 0;
}
List<String> orgCodes = new ArrayList<>();
orgCodes.add(orgCode);
List<Map<String, Object>> qizhanMap = cylinderAreaDataMapper.getQiZhanStatisticsDataByCity(orgCodes);
String unitNumber = "0";
if (!ObjectUtils.isEmpty(qizhanMap)) {
unitNumber = qizhanMap.get(0).get("unitCount").toString();
}
Map<String, Object> result = new HashMap<>();
result.put("cylindersCount", qiping);
result.put("stationCount", unitNumber);
result.put("operatorCount", cylinderAreaDataMapper.getOpertorStatisticsDataByCity(orgCodes));
return result;
}
public List<Map<String, Object>> getCylinderStatisticsDataByCityForMap(String regionCode) throws Exception {
// 构建搜索请求
List<RegionModel> regionList = this.setRegionIfRootParent(regionCode);
List<String> companyCode = regionList.stream().map(r -> r.getRegionCode().toString()).collect(Collectors.toList());
List<CompanyModel> companyList = Privilege.companyClient.queryListByCompanyCode(String.join(",", companyCode)).getResult();
Map<String, RegionModel> regionMap = regionList.stream().collect(Collectors.toMap(r -> r.getRegionCode().toString(), r -> r));
List<Map<String, Object>> list = new ArrayList<>();
if (ObjectUtils.isEmpty(companyList)) {
return new ArrayList<>();
}
List<String> orgCodes = companyList.stream().map(CompanyModel::getOrgCode).collect(Collectors.toList());
List<Map<String, Object>> qizhanMap = cylinderAreaDataMapper.getQiZhanStatisticsDataByCity(orgCodes);
Map<Object, Object> collect = qizhanMap.stream().collect(Collectors.toMap(m -> ((Map) m).get("orgCode"), m -> ((Map) m).get("unitCount")));
for (CompanyModel company : companyList) {
String orgCode = company.getOrgCode();
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
long qiping = 0;
// 构建查询条件
searchSourceBuilder.query(
QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("EQU_CATEGORY_CODE", "2300"))
.must(QueryBuilders.matchPhraseQuery("ORG_BRANCH_CODE", orgCode))
);
TermsAggregationBuilder aggregation = AggregationBuilders.terms("ORG_BRANCH_CODE").field("ORG_BRANCH_CODE.keyword").size(10);
searchSourceBuilder.aggregation(aggregation);
searchRequest.source(searchSourceBuilder);
// 执行搜索并获取响应
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 处理聚合结果
// 这里只是打印出聚合的名称和桶的数量,你需要根据自己的需求来处理这些数据
Terms terms = searchResponse.getAggregations().get("ORG_BRANCH_CODE");
if (!ObjectUtils.isEmpty(terms.getBuckets())) {
qiping = terms.getBuckets().get(0).getDocCount();
} else {
qiping = 0;
}
String unitNumber = "0";
if (!ObjectUtils.isEmpty(collect) && collect.containsKey("orgCode")) {
unitNumber = collect.get("orgCode").toString();
}
Map<String, Object> result = new HashMap<>();
RegionModel region = regionMap.get(company.getCompanyCode());
result.put("regionAddress", company.getAddress());
result.put("regionCode", company.getCompanyCode());
result.put("regionName", region.getRegionName());
result.put("longitude", company.getLongitude());
result.put("latitude", company.getLatitude());
result.put("stationCount", unitNumber);
result.put("cylindersCount", qiping);
result.put("operatorCount", 0);
list.add(result);
}
return list;
}
public List<CylinderFillingRecordStatisticsDto> fillingTimesAndQuantity(String reginCode) {
String orgCode = null;
CompanyModel result = Privilege.companyClient.queryByCompanyCode(reginCode).getResult();
orgCode = result.getOrgCode();
List<String> times = new ArrayList<>();
for (int i = 0; i < 30; i++) {
times.add(LocalDate.now().minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
List<CylinderFillingRecordStatisticsDto> fillingRecord = cylinderInfoMapper.queryFillingRecordByOrgCode(orgCode, LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
List<CylinderFillingRecordStatisticsDto> offloading = cylinderInfoMapper.queryoffloadingByOrgCode(orgCode, LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
if (fillingRecord == null) {
fillingRecord = new ArrayList<>(0);
}
if (offloading == null) {
offloading = new ArrayList<>(0);
}
Map<String, String> fillingRecordMap = fillingRecord.stream().collect(Collectors.toMap(CylinderFillingRecordStatisticsDto::getTime, f -> f.getFillingQuantity()));
Map<String, String> offloadingMap = offloading.stream().collect(Collectors.toMap(CylinderFillingRecordStatisticsDto::getTime, f -> f.getOffloadingVolume()));
List<CylinderFillingRecordStatisticsDto> data = new ArrayList<>();
for (String key : times) {
CylinderFillingRecordStatisticsDto dayData = new CylinderFillingRecordStatisticsDto();
dayData.setTime(key);
dayData.setFillingQuantity(fillingRecordMap.getOrDefault(key, "0"));
dayData.setOffloadingVolume(offloadingMap.getOrDefault(key, "0"));
data.add(dayData);
}
return data;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl; package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl; import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.MenuFrom; import com.yeejoin.amos.boot.biz.common.utils.JsonValueUtils;
import com.yeejoin.amos.boot.module.jyjc.biz.util.DpSubUtils; import com.yeejoin.amos.boot.biz.common.utils.RestTemplateUtils;
import com.yeejoin.amos.boot.module.jyjc.biz.util.JsonValueUtils; import com.yeejoin.amos.boot.biz.common.utils.StringUtils;
import com.yeejoin.amos.boot.module.jyjc.biz.util.RestTemplateUtils; import com.yeejoin.amos.boot.module.statistcs.biz.utils.DpSubUtils;
import com.yeejoin.amos.boot.module.jyjc.biz.util.StringUtils;
import com.yeejoin.amos.feign.morphic.Morphic; import com.yeejoin.amos.feign.morphic.Morphic;
import com.yeejoin.amos.feign.morphic.model.FormSceneModel; import com.yeejoin.amos.feign.morphic.model.FormSceneModel;
import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.api.scripting.ScriptObjectMirror;
...@@ -31,8 +30,9 @@ import javax.script.Invocable; ...@@ -31,8 +30,9 @@ import javax.script.Invocable;
import javax.script.ScriptEngine; import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager; import javax.script.ScriptEngineManager;
import java.net.URI; import java.net.URI;
import java.util.*; import java.util.HashMap;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.yeejoin.amos.boot.biz.common.dto.CountDto; import com.yeejoin.amos.boot.biz.common.dto.CountDto;
...@@ -60,7 +60,7 @@ import java.util.stream.Collectors; ...@@ -60,7 +60,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class DPStatisticsServiceImpl { public class JGDPStatisticsServiceImpl {
/** /**
* 压力容器设备种类 * 压力容器设备种类
...@@ -134,7 +134,7 @@ public class DPStatisticsServiceImpl { ...@@ -134,7 +134,7 @@ public class DPStatisticsServiceImpl {
@Autowired @Autowired
private JgUseRegistrationManageMapper jgUseRegistrationManageMapper; private JgUseRegistrationManageMapper jgUseRegistrationManageMapper;
public DPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JgUseRegistrationMapper useRegistrationMapper, EquipTechParamPipelineMapper techParamsPipelineMapper, JgEnableDisableMapper enableDisableMapper, JgScrapCancelMapper scrapCancelMapper, RestHighLevelClient restHighLevelClient, TzBaseEnterpriseInfoMapper enterpriseInfoMapper, CommonMapper commonMapper, TzsUserInfoMapper userInfoMapper) { public JGDPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JgUseRegistrationMapper useRegistrationMapper, EquipTechParamPipelineMapper techParamsPipelineMapper, JgEnableDisableMapper enableDisableMapper, JgScrapCancelMapper scrapCancelMapper, RestHighLevelClient restHighLevelClient, TzBaseEnterpriseInfoMapper enterpriseInfoMapper, CommonMapper commonMapper, TzsUserInfoMapper userInfoMapper) {
this.equipmentCategoryMapper = equipmentCategoryMapper; this.equipmentCategoryMapper = equipmentCategoryMapper;
this.useRegistrationMapper = useRegistrationMapper; this.useRegistrationMapper = useRegistrationMapper;
this.techParamsPipelineMapper = techParamsPipelineMapper; this.techParamsPipelineMapper = techParamsPipelineMapper;
......
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl; package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.yeejoin.amos.boot.biz.common.dto.CountDto; import com.yeejoin.amos.boot.biz.common.dto.CountDto;
...@@ -15,7 +15,6 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto; ...@@ -15,7 +15,6 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel; import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -51,7 +50,7 @@ import java.util.stream.Collectors; ...@@ -51,7 +50,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class DPStatisticsServiceImpl { public class JYJCDPStatisticsServiceImpl {
/** /**
* 压力容器设备种类 * 压力容器设备种类
...@@ -84,7 +83,7 @@ public class DPStatisticsServiceImpl { ...@@ -84,7 +83,7 @@ public class DPStatisticsServiceImpl {
private RestHighLevelClient restHighLevelClient; private RestHighLevelClient restHighLevelClient;
public DPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JyjcInspectionApplicationEquipMapper inspectionApplicationEquipMapper, JyjcInspectionApplicationMapper inspectionApplicationMapper, TzsUserInfoMapper tzsUserInfoMapper, JyjcBaseMapper jyjcBaseMapper, JyjcInspectionResultMapper inspectionResultMapper, JyjcOpeningApplicationMapper openingApplicationMapper, RestHighLevelClient restHighLevelClient) { public JYJCDPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JyjcInspectionApplicationEquipMapper inspectionApplicationEquipMapper, JyjcInspectionApplicationMapper inspectionApplicationMapper, TzsUserInfoMapper tzsUserInfoMapper, JyjcBaseMapper jyjcBaseMapper, JyjcInspectionResultMapper inspectionResultMapper, JyjcOpeningApplicationMapper openingApplicationMapper, RestHighLevelClient restHighLevelClient) {
this.equipmentCategoryMapper = equipmentCategoryMapper; this.equipmentCategoryMapper = equipmentCategoryMapper;
this.inspectionApplicationEquipMapper = inspectionApplicationEquipMapper; this.inspectionApplicationEquipMapper = inspectionApplicationEquipMapper;
this.inspectionApplicationMapper = inspectionApplicationMapper; this.inspectionApplicationMapper = inspectionApplicationMapper;
......
package com.yeejoin.amos.boot.module.elevator.biz.service.impl; package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant; import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertRescueStatistics;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum; import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertPaperInfoDto; import com.yeejoin.amos.boot.module.statistics.api.dto.AlertUseUnitStatisticsDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertUseUnitStatisticsDto; import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertRescueStatisticsMapper;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertRescueStatistics; import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertStatisticsMapper;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertUseUnitStatistics; import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertUseUnitStatisticsMapper;
import com.yeejoin.amos.boot.module.elevator.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.statistics.api.mapper.CommonBaseMapper;
import com.yeejoin.amos.boot.module.elevator.api.mapper.*; import com.yeejoin.amos.boot.module.ymt.api.dto.AlertPaperInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.DispatchPaper;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.AlertCalledMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.DispatchPaperMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.DispatchTaskMapper;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel; import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -46,26 +56,22 @@ import java.util.stream.Collectors; ...@@ -46,26 +56,22 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class DPStatisticsServiceImpl { public class YJDPStatisticsServiceImpl {
private YjBaseMapper yjBaseMapper; private CommonBaseMapper commonBaseMapper;
private AlertCalledMapper alertCalledMapper; private AlertCalledMapper alertCalledMapper;
private ElevatorMapper elevatorMapper;
private AlertRescueStatisticsMapper alertRescueStatisticsMapper; private AlertRescueStatisticsMapper alertRescueStatisticsMapper;
private AlertUseUnitStatisticsMapper alertUseUnitStatisticsMapper; private AlertUseUnitStatisticsMapper alertUseUnitStatisticsMapper;
private AlertMaintenanceUnitStatisticsMapper alertMaintenanceUnitStatisticsMapper;
private AlertStatisticsMapper alertStatisticsMapper; private AlertStatisticsMapper alertStatisticsMapper;
private DispatchTaskMapper dispatchTaskMapper; private DispatchTaskMapper dispatchTaskMapper;
@Autowired
AlertCalledServiceImpl alertCalledService; private DispatchPaperMapper dispatchPaperMapper;
@Autowired @Autowired
private RestHighLevelClient restHighLevelClient; private RestHighLevelClient restHighLevelClient;
...@@ -74,15 +80,15 @@ public class DPStatisticsServiceImpl { ...@@ -74,15 +80,15 @@ public class DPStatisticsServiceImpl {
private static Map<String, List<RegionModel>> regionChildRegionMap = new ConcurrentHashMap<>(); private static Map<String, List<RegionModel>> regionChildRegionMap = new ConcurrentHashMap<>();
public DPStatisticsServiceImpl(YjBaseMapper yjBaseMapper, AlertCalledMapper alertCalledMapper, ElevatorMapper elevatorMapper, AlertRescueStatisticsMapper alertRescueStatisticsMapper, AlertUseUnitStatisticsMapper alertUseUnitStatisticsMapper, AlertMaintenanceUnitStatisticsMapper alertMaintenanceUnitStatisticsMapper, AlertStatisticsMapper alertStatisticsMapper, DispatchTaskMapper dispatchTaskMapper) { public YJDPStatisticsServiceImpl(CommonBaseMapper commonBaseMapper, AlertCalledMapper alertCalledMapper, AlertRescueStatisticsMapper alertRescueStatisticsMapper, AlertUseUnitStatisticsMapper alertUseUnitStatisticsMapper, AlertStatisticsMapper alertStatisticsMapper, DispatchTaskMapper dispatchTaskMapper, DispatchPaperMapper dispatchPaperMapper, RestHighLevelClient restHighLevelClient) {
this.yjBaseMapper = yjBaseMapper; this.commonBaseMapper = commonBaseMapper;
this.alertCalledMapper = alertCalledMapper; this.alertCalledMapper = alertCalledMapper;
this.elevatorMapper = elevatorMapper;
this.alertRescueStatisticsMapper = alertRescueStatisticsMapper; this.alertRescueStatisticsMapper = alertRescueStatisticsMapper;
this.alertUseUnitStatisticsMapper = alertUseUnitStatisticsMapper; this.alertUseUnitStatisticsMapper = alertUseUnitStatisticsMapper;
this.alertMaintenanceUnitStatisticsMapper = alertMaintenanceUnitStatisticsMapper;
this.alertStatisticsMapper = alertStatisticsMapper; this.alertStatisticsMapper = alertStatisticsMapper;
this.dispatchTaskMapper = dispatchTaskMapper; this.dispatchTaskMapper = dispatchTaskMapper;
this.dispatchPaperMapper = dispatchPaperMapper;
this.restHighLevelClient = restHighLevelClient;
} }
public JSONObject eventStatByDay(DPFilterParamDto dpFilterParamDto) throws Exception { public JSONObject eventStatByDay(DPFilterParamDto dpFilterParamDto) throws Exception {
...@@ -164,13 +170,74 @@ public class DPStatisticsServiceImpl { ...@@ -164,13 +170,74 @@ public class DPStatisticsServiceImpl {
return jsonObject; return jsonObject;
} }
public List<AlertPaperInfoDto> instantAlert(DPFilterParamDto dpFilterParamDto) throws Exception { public List<AlertPaperInfoDto> instantAlert(DPFilterParamDto dpFilterParamDto) {
List<String> regionCodes = new ArrayList<>(); List<String> regionCodes = new ArrayList<>();
regionCodes.add(dpFilterParamDto.getCityCode()); regionCodes.add(dpFilterParamDto.getCityCode());
List<AlertPaperInfoDto> alertPaperInfoDtoList = alertCalledService.getAlertPaperInfoList(alertCalledService.authRegionCodeList(regionCodes), false); List<AlertPaperInfoDto> alertPaperInfoDtoList = this.getAlertPaperInfoList(this.authRegionCodeList(regionCodes), false);
return alertPaperInfoDtoList; return alertPaperInfoDtoList;
} }
public List<AlertPaperInfoDto> getAlertPaperInfoList(List<String> regionCodes, Boolean isHistory) {
List<AlertPaperInfoDto> temp = alertCalledMapper.getAlertPaperInfoList(regionCodes, isHistory);
temp.forEach(t -> {
DispatchPaper paper = dispatchPaperMapper.selectOne(new LambdaQueryWrapper<DispatchPaper>().eq(DispatchPaper::getIsDelete, false).eq(DispatchPaper::getAlertId, t.getAlertId()));
if (paper != null) {
t.setFinishTime(paper.getFeedbackFinishTime());
}
});
return temp;
}
public List<String> getUserRegionCode() {
List<String> regionList = new ArrayList<>();
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
CompanyModel userCompany = me.getCompanys().get(0);
String regions = userCompany.getRegionSeq();
if (regions != null) {
String[] regionsId = regions.split(",");
for (String regionId : regionsId) {
RegionModel region = Systemctl.regionClient.getRegion(Long.valueOf(regionId)).getResult();
regionList.add(region.getRegionCode() + "");
}
}
return regionList;
}
public List<String> authRegionCodeList(List<String> regionCodes) {
// 警情id 警情地址 警情状态 警情类型 警情发生时间
List<String> useRegionCode = this.getUserRegionCode();
if (regionCodes == null) {
regionCodes = useRegionCode;
} else {
// 判断传入regionCodes 是否越权
List<String> tempList = new ArrayList<>();
Iterator<String> regionIt = regionCodes.iterator();
while (regionIt.hasNext()) {
String tempCode = regionIt.next();
String districtCode = tempCode.substring(4, 6);
String provinceCode = tempCode.substring(2, 6);
if ("0000".equals(provinceCode)) {// 为省则默认使用用户现有权限查询数据
regionCodes = useRegionCode;
} else {
if ("00".equals(districtCode)) { // 为市
if (!useRegionCode.contains(tempCode)) { // 不包含该市权限 需要移除市搜索条件 添加 该市下区搜索条件
for (String tempUsercode : useRegionCode) {
if (tempUsercode.contains(tempCode.substring(0, 4))) {
tempList.add(tempUsercode);
}
}
regionIt.remove();
}
} else { // 为区 不会出现越权情况
}
}
}
regionCodes.addAll(tempList);
}
return regionCodes;
}
public JSONObject trappedUserCount(DPFilterParamDto dpFilterParamDto) throws Exception { public JSONObject trappedUserCount(DPFilterParamDto dpFilterParamDto) throws Exception {
String date = DateUtil.formatDate(new Date(), "yyyy-MM"); String date = DateUtil.formatDate(new Date(), "yyyy-MM");
String orgCode = this.getAndSetOrgCode(dpFilterParamDto); String orgCode = this.getAndSetOrgCode(dpFilterParamDto);
...@@ -199,12 +266,12 @@ public class DPStatisticsServiceImpl { ...@@ -199,12 +266,12 @@ public class DPStatisticsServiceImpl {
LambdaQueryWrapper<AlertUseUnitStatistics> lambda = new QueryWrapper<AlertUseUnitStatistics>().lambda(); LambdaQueryWrapper<AlertUseUnitStatistics> lambda = new QueryWrapper<AlertUseUnitStatistics>().lambda();
lambda.likeLeft(AlertUseUnitStatistics::getSupervisoryUnitOrgCode, orgCode); lambda.likeLeft(AlertUseUnitStatistics::getSupervisoryUnitOrgCode, orgCode);
lambda.eq(AlertUseUnitStatistics :: getStatisticsDate, date); lambda.eq(AlertUseUnitStatistics::getStatisticsDate, date);
List<AlertUseUnitStatistics> alertUseUnitStatistics = alertUseUnitStatisticsMapper.selectList(lambda); List<AlertUseUnitStatistics> alertUseUnitStatistics = alertUseUnitStatisticsMapper.selectList(lambda);
return Bean.toModels(alertUseUnitStatistics, AlertUseUnitStatisticsDto.class); return Bean.toModels(alertUseUnitStatistics, AlertUseUnitStatisticsDto.class);
} }
public List<Map<String, Object>> rankUnitByRescueTime(DPFilterParamDto dpFilterParamDto) throws Exception { public List<Map<String, Object>> rankUnitByRescueTime(DPFilterParamDto dpFilterParamDto) {
String orgCode = this.getAndSetOrgCode(dpFilterParamDto); String orgCode = this.getAndSetOrgCode(dpFilterParamDto);
List<Map<String, Object>> maps = dispatchTaskMapper.rankUnitByRescueTime(orgCode); List<Map<String, Object>> maps = dispatchTaskMapper.rankUnitByRescueTime(orgCode);
maps.stream().forEach(x -> { maps.stream().forEach(x -> {
...@@ -213,16 +280,16 @@ public class DPStatisticsServiceImpl { ...@@ -213,16 +280,16 @@ public class DPStatisticsServiceImpl {
long days = TimeUnit.SECONDS.toDays(seconds); long days = TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.DAYS.toHours(days); long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.DAYS.toHours(days);
long minutes = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.HOURS.toMinutes(hours); long minutes = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.HOURS.toMinutes(hours);
if (!ValidationUtil.isEmpty(days) && days > 0){ if (!ValidationUtil.isEmpty(days) && days > 0) {
avgTime = avgTime + days + "天"; avgTime = avgTime + days + "天";
} }
if (!ValidationUtil.isEmpty(hours) && hours > 0){ if (!ValidationUtil.isEmpty(hours) && hours > 0) {
avgTime = avgTime + hours + "小时"; avgTime = avgTime + hours + "小时";
} }
if (!ValidationUtil.isEmpty(minutes) && minutes > 0){ if (!ValidationUtil.isEmpty(minutes) && minutes > 0) {
avgTime = avgTime + minutes + "分钟"; avgTime = avgTime + minutes + "分钟";
} }
if (seconds < 60){ if (seconds < 60) {
avgTime = avgTime + seconds + "秒"; avgTime = avgTime + seconds + "秒";
} }
x.put("avgTime", avgTime); x.put("avgTime", avgTime);
...@@ -287,7 +354,7 @@ public class DPStatisticsServiceImpl { ...@@ -287,7 +354,7 @@ public class DPStatisticsServiceImpl {
this.getRegionList(dpFilterParamDto); this.getRegionList(dpFilterParamDto);
String orgCode = regionCodeOrgCodeMap.get(dpFilterParamDto.getCityCode()); String orgCode = regionCodeOrgCodeMap.get(dpFilterParamDto.getCityCode());
if (orgCode == null) { if (orgCode == null) {
orgCode = yjBaseMapper.getOrgCodeByCompanyCode(dpFilterParamDto.getCityCode()); orgCode = commonBaseMapper.getOrgCodeByCompanyCode(dpFilterParamDto.getCityCode());
if (orgCode == null) { if (orgCode == null) {
return ""; return "";
} }
...@@ -299,7 +366,7 @@ public class DPStatisticsServiceImpl { ...@@ -299,7 +366,7 @@ public class DPStatisticsServiceImpl {
private String getAndSetOrgCode(String cityCode) { private String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode); String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) { if (orgCode == null) {
orgCode = yjBaseMapper.getOrgCodeByCompanyCode(cityCode); orgCode = commonBaseMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode == null) { if (orgCode == null) {
return ""; return "";
} }
...@@ -310,8 +377,9 @@ public class DPStatisticsServiceImpl { ...@@ -310,8 +377,9 @@ public class DPStatisticsServiceImpl {
/** /**
* 获取两个时间段之间的每一天 * 获取两个时间段之间的每一天
*
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @return 结果 * @return 结果
*/ */
public List<String> getEveryDay(String startTime, String endTime) { public List<String> getEveryDay(String startTime, String endTime) {
...@@ -328,11 +396,11 @@ public class DPStatisticsServiceImpl { ...@@ -328,11 +396,11 @@ public class DPStatisticsServiceImpl {
} }
private JSONObject buildLegendData(JSONObject jsonObject, String dataKey, String value) { private JSONObject buildLegendData(JSONObject jsonObject, String dataKey, String value) {
if (ValidationUtil.isEmpty(jsonObject)){ if (ValidationUtil.isEmpty(jsonObject)) {
jsonObject = new JSONObject(); jsonObject = new JSONObject();
} }
JSONObject legendData = jsonObject.getJSONObject("legendData"); JSONObject legendData = jsonObject.getJSONObject("legendData");
if (ValidationUtil.isEmpty(legendData)){ if (ValidationUtil.isEmpty(legendData)) {
legendData = new JSONObject(); legendData = new JSONObject();
jsonObject.put("legendData", legendData); jsonObject.put("legendData", legendData);
} }
...@@ -344,7 +412,7 @@ public class DPStatisticsServiceImpl { ...@@ -344,7 +412,7 @@ public class DPStatisticsServiceImpl {
return getRegionList(dpFilterParamDto).parallelStream().map(r -> { return getRegionList(dpFilterParamDto).parallelStream().map(r -> {
DPFilterParamDto filterParamDto = new DPFilterParamDto(); DPFilterParamDto filterParamDto = new DPFilterParamDto();
filterParamDto.setCityCode(r.getRegionCode().toString()); filterParamDto.setCityCode(r.getRegionCode().toString());
String orgCode = this.getAndSetOrgCode(filterParamDto); String orgCode = this.getAndSetOrgCode(filterParamDto);
this.setDefaultFilter(filterParamDto); this.setDefaultFilter(filterParamDto);
Map<String, Object> itemResult = getCenterMapOverviewData(orgCode, filterParamDto); Map<String, Object> itemResult = getCenterMapOverviewData(orgCode, filterParamDto);
itemResult.put("regionCode", r.getRegionCode()); itemResult.put("regionCode", r.getRegionCode());
...@@ -356,8 +424,8 @@ public class DPStatisticsServiceImpl { ...@@ -356,8 +424,8 @@ public class DPStatisticsServiceImpl {
private Map<String, Object> getCenterMapOverviewData(String orgCode, DPFilterParamDto filterParamDto) { private Map<String, Object> getCenterMapOverviewData(String orgCode, DPFilterParamDto filterParamDto) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
// 统计完成的事件包括困人、故障 // 统计完成的事件包括困人、故障
Long num = alertStatisticsMapper.countEmergencyEventsByOrgCodeAndDate(orgCode,filterParamDto); Long num = alertStatisticsMapper.countEmergencyEventsByOrgCodeAndDate(orgCode, filterParamDto);
result.put("alarmCount",num); result.put("alarmCount", num);
return result; return result;
} }
......
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.statistics.api.mapper.ZLStatisticsMapper;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@Service
public class ZLDPStatisticsServiceImpl {
@Resource
private ZLStatisticsMapper screenMapper;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RestHighLevelClient restHighLevelClient;
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
public List<Map<String, Object>> companyInfo(DPFilterParamDto screenDto) {
List<Map<String, Object>> list = screenMapper.getCompanyInfo(screenDto);
List<Map<String, Object>> returnList = new ArrayList<>();
//数据处理后Map,key为企业类型+设备,value为计数
Map<String, Integer> dataMap = new HashMap<>();
for (Map<String, Object> map : list) {
JSONArray equipCategoryArray = (JSONArray) JSONArray.parse((String) map.get("equipCategory"));
String[] UnitTypeArray = ((String) map.get("unitType")).split("#");
for (int i = 0; i < UnitTypeArray.length; i++) {
String unitTypeName = UnitTypeArray[i];
for (int j = 0; j < equipCategoryArray.size(); j++) {
if (dataMap.containsKey(unitTypeName + equipCategoryArray.get(j))) {
dataMap.put(unitTypeName + equipCategoryArray.get(j), dataMap.get(unitTypeName + equipCategoryArray.get(j)) + 1);
} else {
dataMap.put(unitTypeName + equipCategoryArray.get(j), 1);
}
}
}
}
/**
* 4000 起重机械
* 3000 电梯
* 5000 场(厂)内机动车辆
* 1000 锅炉
* 2000 压力容器
* 6000 大型游乐设施(B类)
* 9000 客运索道
* 8000 压力管道
*/
//充装Map
Map<String, Object> chongzhuangMap = new HashMap<>();
List<Map<String, Object>> chongzhuangCompanyList = new ArrayList<>();
chongzhuangMap.put("key", "chongzhuangCompany");
chongzhuangMap.put("value", "充装单位");
//充装压力容器
Map<String, Object> chongzhuangyalirongqiMap = new HashMap<>();
chongzhuangyalirongqiMap.put("key", "key04");
chongzhuangyalirongqiMap.put("name", "气瓶");
chongzhuangyalirongqiMap.put("value", dataMap.getOrDefault("充装单位2000", 0));
chongzhuangCompanyList.add(chongzhuangyalirongqiMap);
chongzhuangMap.put("data", chongzhuangCompanyList);
//安改维Map
Map<String, Object> angaiweiMap = new HashMap<>();
List<Map<String, Object>> angaiweiCompanyList = new ArrayList<>();
angaiweiMap.put("key", "angaiweiCompany");
angaiweiMap.put("value", "安改维单位");
//安改维电梯
Map<String, Object> angaiweidiantiMap = new HashMap<>();
angaiweidiantiMap.put("key", "key01");
angaiweidiantiMap.put("name", "电梯");
angaiweidiantiMap.put("value", dataMap.getOrDefault("安装改造维修单位3000", 0));
angaiweiCompanyList.add(angaiweidiantiMap);
//安改维锅炉
Map<String, Object> angaiweiguoluMap = new HashMap<>();
angaiweiguoluMap.put("key", "key02");
angaiweiguoluMap.put("name", "锅炉");
angaiweiguoluMap.put("value", dataMap.getOrDefault("安装改造维修单位1000", 0));
angaiweiCompanyList.add(angaiweiguoluMap);
//安改维场内机动车
Map<String, Object> angaiweijidongcheMap = new HashMap<>();
angaiweijidongcheMap.put("key", "key03");
angaiweijidongcheMap.put("name", "场内机动车");
angaiweijidongcheMap.put("value", dataMap.getOrDefault("安装改造维修单位5000", 0));
angaiweiCompanyList.add(angaiweijidongcheMap);
//安改维压力管道
Map<String, Object> angaiweiyaliguandaoMap = new HashMap<>();
angaiweiyaliguandaoMap.put("key", "key05");
angaiweiyaliguandaoMap.put("name", "压力管道");
angaiweiyaliguandaoMap.put("value", dataMap.getOrDefault("安装改造维修单位9000", 0));
angaiweiCompanyList.add(angaiweiyaliguandaoMap);
//安改维起重机械
Map<String, Object> angaiweiqizhongjixieMap = new HashMap<>();
angaiweiqizhongjixieMap.put("key", "key06");
angaiweiqizhongjixieMap.put("name", "起重机械");
angaiweiqizhongjixieMap.put("value", dataMap.getOrDefault("安装改造维修单位4000", 0));
angaiweiCompanyList.add(angaiweiqizhongjixieMap);
//安改维游乐设施
Map<String, Object> angaiweiyoulesheshiMap = new HashMap<>();
angaiweiyoulesheshiMap.put("key", "key07");
angaiweiyoulesheshiMap.put("name", "大型游乐设施");
angaiweiyoulesheshiMap.put("value", dataMap.getOrDefault("安装改造维修单位6000", 0));
angaiweiCompanyList.add(angaiweiyoulesheshiMap);
//安改维客运索道
Map<String, Object> angaiweikeyunsuodaoMap = new HashMap<>();
angaiweikeyunsuodaoMap.put("key", "key08");
angaiweikeyunsuodaoMap.put("name", "客运索道");
angaiweikeyunsuodaoMap.put("value", dataMap.getOrDefault("安装改造维修单位9000", 0));
angaiweiCompanyList.add(angaiweikeyunsuodaoMap);
angaiweiMap.put("data", angaiweiCompanyList);
//设计Map
Map<String, Object> shejiMap = new HashMap<>();
List<Map<String, Object>> shejiCompanyList = new ArrayList<>();
shejiMap.put("key", "shejiCompany");
shejiMap.put("value", "设计单位");
//设计压力容器
Map<String, Object> shejiyalirongqiMap = new HashMap<>();
shejiyalirongqiMap.put("key", "key04");
shejiyalirongqiMap.put("name", "压力容器");
shejiyalirongqiMap.put("value", dataMap.getOrDefault("设计单位2000", 0));
shejiCompanyList.add(shejiyalirongqiMap);
//设计压力管道
Map<String, Object> shejiyaliguandaoMap = new HashMap<>();
shejiyaliguandaoMap.put("key", "key05");
shejiyaliguandaoMap.put("name", "压力管道");
shejiyaliguandaoMap.put("value", dataMap.getOrDefault("设计单位8000", 0));
shejiCompanyList.add(shejiyaliguandaoMap);
shejiMap.put("data", shejiCompanyList);
//制造Map
Map<String, Object> zhizaoMap = new HashMap<>();
List<Map<String, Object>> zhizaoCompanyList = new ArrayList<>();
zhizaoMap.put("key", "zhizaoCompany");
zhizaoMap.put("value", "制造单位");
//制造电梯
Map<String, Object> zhizaodiantiMap = new HashMap<>();
zhizaodiantiMap.put("key", "key01");
zhizaodiantiMap.put("name", "电梯");
zhizaodiantiMap.put("value", dataMap.getOrDefault("制造单位3000", 0));
zhizaoCompanyList.add(zhizaodiantiMap);
//制造锅炉
Map<String, Object> zhizaoguoluMap = new HashMap<>();
zhizaoguoluMap.put("key", "key02");
zhizaoguoluMap.put("name", "锅炉");
zhizaoguoluMap.put("value", dataMap.getOrDefault("制造单位1000", 0));
zhizaoCompanyList.add(zhizaoguoluMap);
//制造锅炉
Map<String, Object> zhizaojidongcheMap = new HashMap<>();
zhizaojidongcheMap.put("key", "key03");
zhizaojidongcheMap.put("name", "场内机动车");
zhizaojidongcheMap.put("value", dataMap.getOrDefault("制造单位5000", 0));
zhizaoCompanyList.add(zhizaojidongcheMap);
//制造压力容器
Map<String, Object> zhizaoyalirongqiMap = new HashMap<>();
zhizaoyalirongqiMap.put("key", "key04");
zhizaoyalirongqiMap.put("name", "压力容器");
zhizaoyalirongqiMap.put("value", dataMap.getOrDefault("制造单位2000", 0));
zhizaoCompanyList.add(zhizaoyalirongqiMap);
//制造起重机械
Map<String, Object> zhizaoqizhongjixieMap = new HashMap<>();
zhizaoqizhongjixieMap.put("key", "key06");
zhizaoqizhongjixieMap.put("name", "起重机械");
zhizaoqizhongjixieMap.put("value", dataMap.getOrDefault("制造单位4000", 0));
zhizaoCompanyList.add(zhizaoqizhongjixieMap);
//制造游乐设施
Map<String, Object> zhizaoyoulesheshiMap = new HashMap<>();
zhizaoyoulesheshiMap.put("key", "key07");
zhizaoyoulesheshiMap.put("name", "大型游乐设施");
zhizaoyoulesheshiMap.put("value", dataMap.getOrDefault("制造单位6000", 0));
zhizaoCompanyList.add(zhizaoyoulesheshiMap);
//制造客运索道
Map<String, Object> zhizaokeyunsuodaoMap = new HashMap<>();
zhizaokeyunsuodaoMap.put("key", "key08");
zhizaokeyunsuodaoMap.put("name", "客运索道");
zhizaokeyunsuodaoMap.put("value", dataMap.getOrDefault("制造单位9000", 0));
zhizaoCompanyList.add(zhizaokeyunsuodaoMap);
zhizaoMap.put("data", zhizaoCompanyList);
//使用Map
Map<String, Object> shiyongMap = new HashMap<>();
List<Map<String, Object>> shiyongCompanyList = new ArrayList<>();
shiyongMap.put("key", "shiyongCompany");
shiyongMap.put("value", "使用单位");
//使用电梯
Map<String, Object> shiyongdiantiMap = new HashMap<>();
shiyongdiantiMap.put("key", "key01");
shiyongdiantiMap.put("name", "电梯");
shiyongdiantiMap.put("value", dataMap.getOrDefault("使用单位3000", 0));
shiyongCompanyList.add(shiyongdiantiMap);
//使用锅炉
Map<String, Object> shiyongguoluMap = new HashMap<>();
shiyongguoluMap.put("key", "key02");
shiyongguoluMap.put("name", "锅炉");
shiyongguoluMap.put("value", dataMap.getOrDefault("使用单位1000", 0));
shiyongCompanyList.add(shiyongguoluMap);
//使用锅炉
Map<String, Object> shiyongjidongcheMap = new HashMap<>();
shiyongjidongcheMap.put("key", "key03");
shiyongjidongcheMap.put("name", "场内机动车");
shiyongjidongcheMap.put("value", dataMap.getOrDefault("使用单位5000", 0));
shiyongCompanyList.add(shiyongjidongcheMap);
//使用压力容器
Map<String, Object> shiyongyalirongqiMap = new HashMap<>();
shiyongyalirongqiMap.put("key", "key04");
shiyongyalirongqiMap.put("name", "压力容器");
shiyongyalirongqiMap.put("value", dataMap.getOrDefault("使用单位2000", 0));
shiyongCompanyList.add(shiyongyalirongqiMap);
//使用压力管道
Map<String, Object> shiyongyaliguandaoMap = new HashMap<>();
shiyongyaliguandaoMap.put("key", "key05");
shiyongyaliguandaoMap.put("name", "压力管道");
shiyongyaliguandaoMap.put("value", dataMap.getOrDefault("使用单位9000", 0));
shiyongCompanyList.add(shiyongyaliguandaoMap);
//使用起重机械
Map<String, Object> shiyongqizhongjixieMap = new HashMap<>();
shiyongqizhongjixieMap.put("key", "key06");
shiyongqizhongjixieMap.put("name", "起重机械");
shiyongqizhongjixieMap.put("value", dataMap.getOrDefault("使用单位4000", 0));
shiyongCompanyList.add(shiyongqizhongjixieMap);
//使用游乐设施
Map<String, Object> shiyongyoulesheshiMap = new HashMap<>();
shiyongyoulesheshiMap.put("key", "key07");
shiyongyoulesheshiMap.put("name", "大型游乐设施");
shiyongyoulesheshiMap.put("value", dataMap.getOrDefault("使用单位6000", 0));
shiyongCompanyList.add(shiyongyoulesheshiMap);
//使用客运索道
Map<String, Object> shiyongkeyunsuodaoMap = new HashMap<>();
shiyongkeyunsuodaoMap.put("key", "key08");
shiyongkeyunsuodaoMap.put("name", "客运索道");
shiyongkeyunsuodaoMap.put("value", dataMap.getOrDefault("使用单位9000", 0));
shiyongCompanyList.add(shiyongkeyunsuodaoMap);
shiyongMap.put("data", shiyongCompanyList);
returnList.add(zhizaoMap);
returnList.add(angaiweiMap);
returnList.add(shiyongMap);
returnList.add(shejiMap);
returnList.add(chongzhuangMap);
return returnList;
}
public List<Map<String, Object>> testOrg(DPFilterParamDto screenDto) {
List<Map<String, Object>> list = screenMapper.testOrg(screenDto);
List<Map<String, Object>> returnList = new ArrayList<>();
Map<String, Object> dataMap = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
dataMap.put((String) list.get(i).get("agencyType"), list.get(i).get("count"));
}
/**
* 1 甲类检验机构A1级
* 2 甲类检验机构A2级
* 4 甲类检验机构B1级
* 5 甲类检验机构B2级
* 6 乙类检验机构
* 7 丙类检验机构
* 8 检测机构
* 9 综合检验机构甲类(旧规)
* 10 综合检验机构乙类(旧规)
* 11 综合检验机构丙类(旧规)
* 12 自检机构(旧规)
* 13 气瓶检验机构(旧规)
* 14 无损检测机构(旧规)
*/
Map<String, Object> newMap = new HashMap<>();
newMap.put("key", "new");
newMap.put("name", "新分类");
List<Map<String, Object>> newList = new ArrayList<>();
Map<String, Object> newMap1 = new HashMap<>();
newMap1.put("name", "甲类检验机构A1级");
newMap1.put("value", dataMap.getOrDefault("1", 0));
newList.add(newMap1);
Map<String, Object> newMap2 = new HashMap<>();
newMap2.put("name", "甲类检验机构A2级");
newMap2.put("value", dataMap.getOrDefault("2", 0));
newList.add(newMap2);
Map<String, Object> newMap3 = new HashMap<>();
newMap3.put("name", "甲类检验机构B1级");
newMap3.put("value", dataMap.getOrDefault("4", 0));
newList.add(newMap3);
Map<String, Object> newMap4 = new HashMap<>();
newMap4.put("name", "甲类检验机构B2级");
newMap4.put("value", dataMap.getOrDefault("5", 0));
newList.add(newMap4);
Map<String, Object> newMap5 = new HashMap<>();
newMap5.put("name", "乙类检验机构");
newMap5.put("value", dataMap.getOrDefault("6", 0));
newList.add(newMap5);
Map<String, Object> newMap6 = new HashMap<>();
newMap6.put("name", "丙类检验机构");
newMap6.put("value", dataMap.getOrDefault("7", 0));
newList.add(newMap6);
Map<String, Object> newMap7 = new HashMap<>();
newMap7.put("name", "检测机构");
newMap7.put("value", dataMap.getOrDefault("8", 0));
newList.add(newMap7);
newMap.put("data", newList);
Map<String, Object> oldMap = new HashMap<>();
oldMap.put("key", "old");
oldMap.put("name", "旧分类");
List<Map<String, Object>> oldList = new ArrayList<>();
Map<String, Object> oldMap1 = new HashMap<>();
oldMap1.put("name", "综合检验机构甲类(旧规)");
oldMap1.put("value", dataMap.getOrDefault("9", 0));
oldList.add(oldMap1);
Map<String, Object> oldMap2 = new HashMap<>();
oldMap2.put("name", "综合检验机构乙类(旧规)");
oldMap2.put("value", dataMap.getOrDefault("10", 0));
oldList.add(oldMap2);
Map<String, Object> oldMap3 = new HashMap<>();
oldMap3.put("name", "综合检验机构丙类(旧规)");
oldMap3.put("value", dataMap.getOrDefault("11", 0));
oldList.add(oldMap3);
Map<String, Object> oldMap4 = new HashMap<>();
oldMap4.put("name", "自检机构(旧规)");
oldMap4.put("value", dataMap.getOrDefault("12", 0));
oldList.add(oldMap4);
Map<String, Object> oldMap5 = new HashMap<>();
oldMap5.put("name", "气瓶检验机构(旧规)");
oldMap5.put("value", dataMap.getOrDefault("13", 0));
oldList.add(oldMap5);
Map<String, Object> oldMap6 = new HashMap<>();
oldMap6.put("name", "无损检测机构(旧规)");
oldMap6.put("value", dataMap.getOrDefault("14", 0));
oldList.add(oldMap6);
oldMap.put("data", oldList);
returnList.add(newMap);
returnList.add(oldMap);
return returnList;
}
public Map<String, Object> userCount(DPFilterParamDto screenDto) {
List<Map<String, String>> list = screenMapper.userCount(screenDto);
Map<String, Integer> dataMap = new HashMap<>();
for (Map<String, String> map : list) {
String[] split = map.get("unitType").split("#");
for (int i = 0; i < split.length; i++) {
if (dataMap.containsKey(split[i])) {
dataMap.put(split[i], dataMap.get(split[i]) + 1);
} else {
dataMap.put(split[i], 1);
}
}
}
List<String> xlist = Arrays.asList("制造单位", "安改维单位", "使用单位", "设计单位", "充装单位");
List<Integer> ylist = new ArrayList();
xlist.stream().forEach(x -> {
ylist.add(dataMap.getOrDefault(x, 0));
});
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("xdata", xlist);
returnMap.put("ydata", ylist);
return returnMap;
}
public Map<String, Object> supervisorCount(DPFilterParamDto screenDto) {
List<Map<String, Object>> list = screenMapper.supervisorCount(screenDto);
Map<String, Integer> dataMap = new HashMap<>();
for (Map<String, Object> map : list) {
dataMap.put((String) map.get("industrySupervisor"), Integer.valueOf(map.get("count").toString()));
}
List<DataDictionary> dataDictionaryList = iDataDictionaryService.getByType("HYZGBM");
List<String> xlist = dataDictionaryList.stream().map(DataDictionary::getName).collect(Collectors.toList());
List<Object> ylist = new ArrayList();
dataDictionaryList.stream().forEach(x -> {
ylist.add(dataMap.getOrDefault(x.getCode(), 0));
});
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("xdata", xlist);
returnMap.put("ydata", ylist);
return returnMap;
}
public List<Map<String, Object>> equipmentInformCount(DPFilterParamDto screenDto) {
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//设置模糊搜索
String orgCode = getAndSetOrgCode(screenDto.getCityCode());
searchSourceBuilder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*")));
searchSourceBuilder.aggregation(
AggregationBuilders.terms("USE_SITE_CODE").field("USE_SITE_CODE")
);
searchRequest.source(searchSourceBuilder);
Map<String, Integer> dataMap = new HashMap<>();
List<Map<String, Object>> returnList = new ArrayList<>();
try {
// 执行搜索请求
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 获取所有聚合结果
Aggregations aggregations = searchResponse.getAggregations();
Terms termsResult = aggregations.get("USE_SITE_CODE");
for (Terms.Bucket bucket : termsResult.getBuckets()) {
String category = bucket.getKeyAsString(); // 或者使用 bucket.getKey() 对于非字符串类型
long docCount = bucket.getDocCount();
dataMap.put(category, (int) docCount);
}
List<DataDictionary> dataDictionaryList = iDataDictionaryService.getByType("ADDRESS");
dataDictionaryList.stream().forEach(x -> {
Map<String, Object> map = new HashMap<>();
map.put(x.getName(), dataMap.getOrDefault(x.getCode(), 0));
returnList.add(map);
});
Map<String, Object> otherMap = new HashMap<>();
otherMap.put("其他", dataMap.getOrDefault("其他", 0) + dataMap.getOrDefault("", 0));
returnList.add(otherMap);
} catch (IOException e) {
e.printStackTrace();
}
return returnList;
}
private String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = screenMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode != null) {
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
}
return orgCode;
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.util; package com.yeejoin.amos.boot.module.statistcs.biz.utils;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
......
#DB properties:
spring.datasource.url=jdbc:vastbase://172.16.10.243:5432/tzs_amos_tzs_biz_init?currentSchema=amos_tzs_biz&allowMultiQueries=true
spring.datasource.username=admin
spring.datasource.password=Yeejoin@2023
spring.datasource.driver-class-name=cn.com.vastbase.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=25
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
## eureka properties:
eureka.client.service-url.defaultZone=http://172.16.10.243:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.20:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.20:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.20:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=172.16.3.20
#redis properties:
spring.redis.database=1
spring.redis.host=172.16.10.243
spring.redis.port=6379
spring.redis.password=yeejoin@2020
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.243:2883
emqx.client-user-name=admin
emqx.client-password=public
emqx.keepAliveInterval=1000
## ES properties:
spring.elasticsearch.rest.uris=http://172.16.10.243:9200
elasticsearch.username= elastic
elasticsearch.password= a123456
amos.system.user.user-name=jyjg04
amos.system.user.password=a1234560
amos.system.user.app-key=AMOS_STUDIO
amos.system.user.product=AMOS_STUDIO_WEB
\ No newline at end of file
spring.application.name=TZS-STATISTICS
server.servlet.context-path=/statistics
server.port=12001
spring.profiles.active=dev
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
logging.config=classpath:logback-${spring.profiles.active}.xml
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
## eureka properties:
eureka.client.registry-fetch-interval-seconds=5
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.lease-expiration-duration-in-seconds=10
eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}${server.servlet.context-path}/doc.html
knife4j.production=false
knife4j.enable=true
knife4j.basic.enable=true
knife4j.basic.username=admin
knife4j.basic.password=a1234560
spring.security.user.name=admin
spring.security.user.password=a1234560
spring.security.user.roles=SBA_ADMIN
spring.main.allow-bean-definition-overriding=true
{
"name": "企业模板",
"tabs": [
{
"key": "basic",
"displayName": "基本信息",
"renderType": "basic",
"formSeq": "1793454184889085953",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/tcm/baseEnterprise/getInfoByUseCode/map",
"params": {
"useCode": "{useUnitCode}"
}
},
"resultConvert": "",
"dictionaryFieldKeys": [
{
"fieldKey": "industrySupervisor",
"dictionaryType": "HYZGBM"
},
{
"fieldKey": "registeredOrganCode",
"dictionaryType": "DJJG"
}
]
}
},
{
"key": "devtable",
"displayName": "设备列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/page",
"params": {
"number": 1,
"size": 14,
"USE_UNIT_CREDIT_CODE": "{useUnitCode}"
}
}
},
"visualParams": {
"rowKey": "record",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "EQU_LIST","width": 150,"align": "left","title": "设备种类","key": "AA6DE857-C788-494F-8F16-2ECFC7E34528"},
{"dataRenderingMode": "defaultText","dataIndex": "EQU_CATEGORY","width": 160,"align": "left","title": "设备类别","key": "611DAF3D-5B79-466C-BEF2-CC91580091FA"},
{"dataRenderingMode": "defaultText","dataIndex": "EQU_DEFINE","width": 150,"align": "left","title": "设备品种","key": "D1CB84A4-E037-446A-9469-65B76E381585"},
{"dataRenderingMode": "defaultText","dataIndex": "PRODUCT_NAME","width": 180,"align": "left","title": "设备名称","key": "0BB7318F-5134-42B6-A835-FC86D68066C2"},
{"dataRenderingMode": "defaultText","dataIndex": "EQU_CODE","width": 180,"align": "left","title": "设备代码","key": "6EB924FB-EFEA-4779-ADF8-78F310818D2D"},
{"dataRenderingMode": "defaultText","dataIndex": "FACTORY_NUM","width": 180,"align": "left","title": "出厂编号/产品编码","key": "87C53BEA-829C-4539-9FCA-E2AF6A53DA15"},
{"dataRenderingMode": "defaultText","dataIndex": "PRODUCE_UNIT_NAME","width": 180,"align": "left","title": "制造单位","key": "EADCED1C-C761-4209-B6C6-16298B53DD2E"},
{"dataRenderingMode": "defaultText","dataIndex": "USE_UNIT_NAME","width": 180,"align": "left","title": "使用单位","key": "BA4FB9F0-7F44-473F-A977-5C36A69CD541"}
]
}
}
],
"content": {
"basic": {
"columns": 2,
"datas": [],
"qrcode": {},
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-锅炉",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "gl",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734819004637278210",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "DEVICE_LEVEL",
"dictionaryType": "GLJB"
},
{
"fieldKey": "FUEL_TYPE",
"dictionaryType": "GLZL"
},
{
"fieldKey": "NAME_OF_PRESSURE_PARTS",
"dictionaryType": "GLBJMC"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"gl": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-压力容器",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "ylrq",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734818687287848961",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "QP_LOSSLESS",
"dictionaryType": "RQJCFF"
},
{
"fieldKey": "RQJCFF",
"dictionaryType": "RQJCFF"
},
{
"fieldKey": "MAIN_STRUCTURE_TYPE",
"dictionaryType": "RQJG"
},
{
"fieldKey": "CHECK_LOSSLESS",
"dictionaryType": "RQJCFF"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"ylrq": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-电梯",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "dt",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734504628768239617",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "CONTROL_MODE",
"dictionaryType": "KZFS"
},
{
"fieldKey": "EXPLOSIONPROOF_GRADE",
"dictionaryType": "FBDJ"
},
{
"fieldKey": "JACKING_TYPE",
"dictionaryType": "DSXS"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"dt": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-起重机械",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "qzqx",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734818709194698753",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "WORK_LEVEL",
"dictionaryType": "GZJB"
},
{
"fieldKey": "select_bq8h7v9tj1",
"dictionaryType": "FBDJ"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"qzqx": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-场(厂)内机动车",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "cnjdc",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734818684284727297",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "PROTECT_GRADE",
"dictionaryType": "FBDJ"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"cnjdc": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-大型游乐设施",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "dxylss",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734818700369883137",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
}
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"dxylss": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-压力管道",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "ylgd",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734818687287848961",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "GDLB",
"dictionaryType": "GDLB"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"ylgd": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
{
"name": "设备-客运索道",
"tabs": [
{
"key": "basic",
"displayName": "设备信息",
"renderType": "basic",
"formSeq": "1793458381554479105",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipInfo"
}
},
"paramFieldKeys": ["EQU_LIST","EQU_CATEGORY","EQU_DEFINE"],
"dictionaryFieldKeys": [
{
"fieldKey": "IMPORTED",
"dictionaryType": "BOOLEN"
},
{
"fieldKey": "USE_PLACE",
"dictionaryType": "ADDRESS"
},
{
"fieldKey": "INSPECT_CONCLUSION",
"dictionaryType": "JYJL"
}
]
}
},
{
"key": "kysd",
"displayName": "技术参数",
"renderType": "basic",
"formSeq": "1734818694514634753",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/equipment-register/{record}",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result.equipParams"
}
},
"dictionaryFieldKeys": [
{
"fieldKey": "CARRIER_LINE",
"dictionaryType": "YZS"
}
]
}
},
{
"key": "reghistory",
"displayName": "监管履历信息",
"renderType": "timeline",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/common/equOnJgServiceOperationRecords",
"params": {
"record": "{record}"
},
"ruleData": {
"responseSuccess": "data.result",
"operater": "content"
}
}
}
},
{
"key": "devtable",
"displayName": "问题列表",
"renderType": "table",
"formSeq": "",
"dataConfig": {
"api": {
"httpMethod":"GET",
"apiPath":"/jg/safety-problem-tracing/equipId/page",
"params": {
"current": 1,
"size": 14,
"record": "{record}"
}
}
},
"visualParams": {
"rowKey": "sequenceNbr",
"columns": [
{"dataRenderingMode": "defaultText","dataIndex": "sourceType","width": 150,"align": "left","title": "问题主体类型","key": "58E0E2F7-4F34-4C01-9AD6-777CABC1672F"},
{"dataRenderingMode": "imageText","dataIndex": "problemType","width": 150,"align": "left","title": "问题类型","key": "8ACDE41E-CAE3-4A27-82EF-8F7452164A66","imageAttributeName": "problemTypePic"},
{"dataRenderingMode": "defaultText","dataIndex": "problemDesc","width": 150,"align": "left","title": "问题描述","key": "9FAE9BDE-D285-4F5C-9EFB-F1560A78CBA4"},
{"dataRenderingMode": "defaultText","dataIndex": "problemTime","width": 180,"align": "left","title": "问题时间","key": "F00231C2-6AB5-470E-8F50-9FDD242DA75A"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnit","width": 200,"align": "left","title": "主体单位","key": "8934A41D-EC48-4E67-9F3C-EC87A4742499"},
{"dataRenderingMode": "defaultText","dataIndex": "principalUnitType","width": 150,"align": "left","title": "单位类型","key": "5A81B891-D5D4-4765-A610-BF9FA7D55FAB"},
{"dataRenderingMode": "defaultText","dataIndex": "governingBody","width": 150,"align": "left","title": "管辖机构","key": "B8D224B4-3843-4270-B508-0D6D8147D3D2"},
{"dataRenderingMode": "defaultText","dataIndex": "regionName","width": 180,"align": "left","title": "所属区域","key": "BAC9DA62-A6D7-4A75-BF9E-DB7AD0B1D4A6"},
{"dataRenderingMode": "defaultText","dataIndex": "problemStatus","width": 100,"align": "left","title": "问题状态","key": "C79630FE-7C73-4AA9-A68A-F1846204582B"}
]
}
}
],
"content": {
"basic": {
"columns": 3,
"datas": [],
"qrcode": {},
"subs": []
},
"kysd": {
"columns": 4,
"datas": [],
"subs": []
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/jyjc.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- &lt;!&ndash; ELK管理 &ndash;&gt;-->
<!-- <appender name="ELK" class="net.logstash.logback.appender.LogstashTcpSocketAppender">-->
<!-- <destination>172.16.10.210:4560</destination>-->
<!-- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>-->
<!-- </appender>-->
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="org.mybatis" level="INFO" />
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.apache.activemq" level="INFO"/>
<logger name="org.typroject" level="INFO"/>
<logger name="com.yeejoin" level="INFO"/>
<!-- 日志输出级别 -->
<root level="INFO">
<!-- <appender-ref ref="FILE" /> -->
<appender-ref ref="STDOUT" />
<!-- <appender-ref ref="ELK" />-->
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>amos-boot-system-tzs</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-statistics</artifactId>
<packaging>pom</packaging>
<modules>
<module>amos-boot-module-statistics-api</module>
<module>amos-boot-module-statistics-biz</module>
</modules>
</project>
\ No newline at end of file
package com.yeejoin.amos.boot.module.tcm.api.service.statistics;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tcm.api.dto.*;
import com.yeejoin.amos.boot.module.tcm.api.enums.DispatchPaperEnums;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map;
/**
* 大屏接口类
*
* @author maxy
* @date 2024-07-09
*/
@Service
public interface IScreenService {
List<Map<String,Object>> companyInfo(ScreenDto screenDto);
List<Map<String,Object>> testOrg(ScreenDto screenDto);
Map<String,Object> userCount(ScreenDto screenDto);
Map<String,Object> supervisorCount(ScreenDto screenDto);
List<Map<String,Object>> equipmentInformCount(ScreenDto screenDto);
}
package com.yeejoin.amos.boot.module.tcm.biz.service.impl.statistics;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.module.tcm.api.dto.ScreenDto;
import com.yeejoin.amos.boot.module.tcm.api.mapper.ScreenMapper;
import com.yeejoin.amos.boot.module.tcm.api.service.statistics.IScreenService;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Service
public class ScreenImpl implements IScreenService {
@Resource
private ScreenMapper screenMapper;
@Autowired
RestHighLevelClient restHighLevelClient;
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
@Override
public List<Map<String,Object>> companyInfo(ScreenDto screenDto) {
List<Map<String,Object>> list = screenMapper.getCompanyInfo(screenDto);
List<Map<String,Object>> returnList = new ArrayList<>();
//数据处理后Map,key为企业类型+设备,value为计数
Map<String, Integer> dataMap = new HashMap<>();
for(Map<String,Object> map : list){
JSONArray equipCategoryArray = (JSONArray) JSONArray.parse((String) map.get("equipCategory"));
String[] UnitTypeArray = ((String) map.get("unitType")).split("#");
for(int i=0;i<UnitTypeArray.length;i++){
String unitTypeName = UnitTypeArray[i];
for(int j=0;j<equipCategoryArray.size();j++){
if(dataMap.containsKey(unitTypeName+equipCategoryArray.get(j))){
dataMap.put(unitTypeName+equipCategoryArray.get(j),dataMap.get(unitTypeName+equipCategoryArray.get(j))+1);
}else{
dataMap.put(unitTypeName+equipCategoryArray.get(j),1);
}
}
}
}
/**
* 4000 起重机械
* 3000 电梯
* 5000 场(厂)内机动车辆
* 1000 锅炉
* 2000 压力容器
* 6000 大型游乐设施(B类)
* 9000 客运索道
* 8000 压力管道
*/
//充装Map
Map<String,Object> chongzhuangMap = new HashMap<>();
List<Map<String,Object>> chongzhuangCompanyList = new ArrayList<>();
chongzhuangMap.put("key","chongzhuangCompany");
chongzhuangMap.put("value","充装单位");
//充装压力容器
Map<String,Object> chongzhuangyalirongqiMap = new HashMap<>();
chongzhuangyalirongqiMap.put("key","key04");
chongzhuangyalirongqiMap.put("name","气瓶");
chongzhuangyalirongqiMap.put("value",dataMap.getOrDefault("充装单位2000",0));
chongzhuangCompanyList.add(chongzhuangyalirongqiMap);
chongzhuangMap.put("data",chongzhuangCompanyList);
//安改维Map
Map<String,Object> angaiweiMap = new HashMap<>();
List<Map<String,Object>> angaiweiCompanyList = new ArrayList<>();
angaiweiMap.put("key","angaiweiCompany");
angaiweiMap.put("value","安改维单位");
//安改维电梯
Map<String,Object> angaiweidiantiMap = new HashMap<>();
angaiweidiantiMap.put("key","key01");
angaiweidiantiMap.put("name","电梯");
angaiweidiantiMap.put("value",dataMap.getOrDefault("安装改造维修单位3000",0));
angaiweiCompanyList.add(angaiweidiantiMap);
//安改维锅炉
Map<String,Object> angaiweiguoluMap = new HashMap<>();
angaiweiguoluMap.put("key","key02");
angaiweiguoluMap.put("name","锅炉");
angaiweiguoluMap.put("value",dataMap.getOrDefault("安装改造维修单位1000",0));
angaiweiCompanyList.add(angaiweiguoluMap);
//安改维场内机动车
Map<String,Object> angaiweijidongcheMap = new HashMap<>();
angaiweijidongcheMap.put("key","key03");
angaiweijidongcheMap.put("name","场内机动车");
angaiweijidongcheMap.put("value",dataMap.getOrDefault("安装改造维修单位5000",0));
angaiweiCompanyList.add(angaiweijidongcheMap);
//安改维压力管道
Map<String,Object> angaiweiyaliguandaoMap = new HashMap<>();
angaiweiyaliguandaoMap.put("key","key05");
angaiweiyaliguandaoMap.put("name","压力管道");
angaiweiyaliguandaoMap.put("value",dataMap.getOrDefault("安装改造维修单位9000",0));
angaiweiCompanyList.add(angaiweiyaliguandaoMap);
//安改维起重机械
Map<String,Object> angaiweiqizhongjixieMap = new HashMap<>();
angaiweiqizhongjixieMap.put("key","key06");
angaiweiqizhongjixieMap.put("name","起重机械");
angaiweiqizhongjixieMap.put("value",dataMap.getOrDefault("安装改造维修单位4000",0));
angaiweiCompanyList.add(angaiweiqizhongjixieMap);
//安改维游乐设施
Map<String,Object> angaiweiyoulesheshiMap = new HashMap<>();
angaiweiyoulesheshiMap.put("key","key07");
angaiweiyoulesheshiMap.put("name","大型游乐设施");
angaiweiyoulesheshiMap.put("value",dataMap.getOrDefault("安装改造维修单位6000",0));
angaiweiCompanyList.add(angaiweiyoulesheshiMap);
//安改维客运索道
Map<String,Object> angaiweikeyunsuodaoMap = new HashMap<>();
angaiweikeyunsuodaoMap.put("key","key08");
angaiweikeyunsuodaoMap.put("name","客运索道");
angaiweikeyunsuodaoMap.put("value",dataMap.getOrDefault("安装改造维修单位9000",0));
angaiweiCompanyList.add(angaiweikeyunsuodaoMap);
angaiweiMap.put("data",angaiweiCompanyList);
//设计Map
Map<String,Object> shejiMap = new HashMap<>();
List<Map<String,Object>> shejiCompanyList = new ArrayList<>();
shejiMap.put("key","shejiCompany");
shejiMap.put("value","设计单位");
//设计压力容器
Map<String,Object> shejiyalirongqiMap = new HashMap<>();
shejiyalirongqiMap.put("key","key04");
shejiyalirongqiMap.put("name","压力容器");
shejiyalirongqiMap.put("value",dataMap.getOrDefault("设计单位2000",0));
shejiCompanyList.add(shejiyalirongqiMap);
//设计压力管道
Map<String,Object> shejiyaliguandaoMap = new HashMap<>();
shejiyaliguandaoMap.put("key","key05");
shejiyaliguandaoMap.put("name","压力管道");
shejiyaliguandaoMap.put("value",dataMap.getOrDefault("设计单位8000",0));
shejiCompanyList.add(shejiyaliguandaoMap);
shejiMap.put("data",shejiCompanyList);
//制造Map
Map<String,Object> zhizaoMap = new HashMap<>();
List<Map<String,Object>> zhizaoCompanyList = new ArrayList<>();
zhizaoMap.put("key","zhizaoCompany");
zhizaoMap.put("value","制造单位");
//制造电梯
Map<String,Object> zhizaodiantiMap = new HashMap<>();
zhizaodiantiMap.put("key","key01");
zhizaodiantiMap.put("name","电梯");
zhizaodiantiMap.put("value",dataMap.getOrDefault("制造单位3000",0));
zhizaoCompanyList.add(zhizaodiantiMap);
//制造锅炉
Map<String,Object> zhizaoguoluMap = new HashMap<>();
zhizaoguoluMap.put("key","key02");
zhizaoguoluMap.put("name","锅炉");
zhizaoguoluMap.put("value",dataMap.getOrDefault("制造单位1000",0));
zhizaoCompanyList.add(zhizaoguoluMap);
//制造锅炉
Map<String,Object> zhizaojidongcheMap = new HashMap<>();
zhizaojidongcheMap.put("key","key03");
zhizaojidongcheMap.put("name","场内机动车");
zhizaojidongcheMap.put("value",dataMap.getOrDefault("制造单位5000",0));
zhizaoCompanyList.add(zhizaojidongcheMap);
//制造压力容器
Map<String,Object> zhizaoyalirongqiMap = new HashMap<>();
zhizaoyalirongqiMap.put("key","key04");
zhizaoyalirongqiMap.put("name","压力容器");
zhizaoyalirongqiMap.put("value",dataMap.getOrDefault("制造单位2000",0));
zhizaoCompanyList.add(zhizaoyalirongqiMap);
//制造起重机械
Map<String,Object> zhizaoqizhongjixieMap = new HashMap<>();
zhizaoqizhongjixieMap.put("key","key06");
zhizaoqizhongjixieMap.put("name","起重机械");
zhizaoqizhongjixieMap.put("value",dataMap.getOrDefault("制造单位4000",0));
zhizaoCompanyList.add(zhizaoqizhongjixieMap);
//制造游乐设施
Map<String,Object> zhizaoyoulesheshiMap = new HashMap<>();
zhizaoyoulesheshiMap.put("key","key07");
zhizaoyoulesheshiMap.put("name","大型游乐设施");
zhizaoyoulesheshiMap.put("value",dataMap.getOrDefault("制造单位6000",0));
zhizaoCompanyList.add(zhizaoyoulesheshiMap);
//制造客运索道
Map<String,Object> zhizaokeyunsuodaoMap = new HashMap<>();
zhizaokeyunsuodaoMap.put("key","key08");
zhizaokeyunsuodaoMap.put("name","客运索道");
zhizaokeyunsuodaoMap.put("value",dataMap.getOrDefault("制造单位9000",0));
zhizaoCompanyList.add(zhizaokeyunsuodaoMap);
zhizaoMap.put("data",zhizaoCompanyList);
//使用Map
Map<String,Object> shiyongMap = new HashMap<>();
List<Map<String,Object>> shiyongCompanyList = new ArrayList<>();
shiyongMap.put("key","shiyongCompany");
shiyongMap.put("value","使用单位");
//使用电梯
Map<String,Object> shiyongdiantiMap = new HashMap<>();
shiyongdiantiMap.put("key","key01");
shiyongdiantiMap.put("name","电梯");
shiyongdiantiMap.put("value",dataMap.getOrDefault("使用单位3000",0));
shiyongCompanyList.add(shiyongdiantiMap);
//使用锅炉
Map<String,Object> shiyongguoluMap = new HashMap<>();
shiyongguoluMap.put("key","key02");
shiyongguoluMap.put("name","锅炉");
shiyongguoluMap.put("value",dataMap.getOrDefault("使用单位1000",0));
shiyongCompanyList.add(shiyongguoluMap);
//使用锅炉
Map<String,Object> shiyongjidongcheMap = new HashMap<>();
shiyongjidongcheMap.put("key","key03");
shiyongjidongcheMap.put("name","场内机动车");
shiyongjidongcheMap.put("value",dataMap.getOrDefault("使用单位5000",0));
shiyongCompanyList.add(shiyongjidongcheMap);
//使用压力容器
Map<String,Object> shiyongyalirongqiMap = new HashMap<>();
shiyongyalirongqiMap.put("key","key04");
shiyongyalirongqiMap.put("name","压力容器");
shiyongyalirongqiMap.put("value",dataMap.getOrDefault("使用单位2000",0));
shiyongCompanyList.add(shiyongyalirongqiMap);
//使用压力管道
Map<String,Object> shiyongyaliguandaoMap = new HashMap<>();
shiyongyaliguandaoMap.put("key","key05");
shiyongyaliguandaoMap.put("name","压力管道");
shiyongyaliguandaoMap.put("value",dataMap.getOrDefault("使用单位9000",0));
shiyongCompanyList.add(shiyongyaliguandaoMap);
//使用起重机械
Map<String,Object> shiyongqizhongjixieMap = new HashMap<>();
shiyongqizhongjixieMap.put("key","key06");
shiyongqizhongjixieMap.put("name","起重机械");
shiyongqizhongjixieMap.put("value",dataMap.getOrDefault("使用单位4000",0));
shiyongCompanyList.add(shiyongqizhongjixieMap);
//使用游乐设施
Map<String,Object> shiyongyoulesheshiMap = new HashMap<>();
shiyongyoulesheshiMap.put("key","key07");
shiyongyoulesheshiMap.put("name","大型游乐设施");
shiyongyoulesheshiMap.put("value",dataMap.getOrDefault("使用单位6000",0));
shiyongCompanyList.add(shiyongyoulesheshiMap);
//使用客运索道
Map<String,Object> shiyongkeyunsuodaoMap = new HashMap<>();
shiyongkeyunsuodaoMap.put("key","key08");
shiyongkeyunsuodaoMap.put("name","客运索道");
shiyongkeyunsuodaoMap.put("value",dataMap.getOrDefault("使用单位9000",0));
shiyongCompanyList.add(shiyongkeyunsuodaoMap);
shiyongMap.put("data",shiyongCompanyList);
returnList.add(zhizaoMap);
returnList.add(angaiweiMap);
returnList.add(shiyongMap);
returnList.add(shejiMap);
returnList.add(chongzhuangMap);
return returnList;
}
@Override
public List<Map<String, Object>> testOrg(ScreenDto screenDto) {
List<Map<String,Object>> list = screenMapper.testOrg(screenDto);
List<Map<String,Object>> returnList = new ArrayList<>();
Map<String,Object> dataMap = new HashMap<>();
for(int i=0;i<list.size();i++){
dataMap.put((String) list.get(i).get("agencyType"),list.get(i).get("count"));
}
/**
* 1 甲类检验机构A1级
* 2 甲类检验机构A2级
* 4 甲类检验机构B1级
* 5 甲类检验机构B2级
* 6 乙类检验机构
* 7 丙类检验机构
* 8 检测机构
* 9 综合检验机构甲类(旧规)
* 10 综合检验机构乙类(旧规)
* 11 综合检验机构丙类(旧规)
* 12 自检机构(旧规)
* 13 气瓶检验机构(旧规)
* 14 无损检测机构(旧规)
*/
Map<String,Object> newMap = new HashMap<>();
newMap.put("key","new");
newMap.put("name","新分类");
List<Map<String,Object>> newList = new ArrayList<>();
Map<String,Object> newMap1 = new HashMap<>();
newMap1.put("name","甲类检验机构A1级");
newMap1.put("value",dataMap.getOrDefault("1",0));
newList.add(newMap1);
Map<String,Object> newMap2 = new HashMap<>();
newMap2.put("name","甲类检验机构A2级");
newMap2.put("value",dataMap.getOrDefault("2",0));
newList.add(newMap2);
Map<String,Object> newMap3 = new HashMap<>();
newMap3.put("name","甲类检验机构B1级");
newMap3.put("value",dataMap.getOrDefault("4",0));
newList.add(newMap3);
Map<String,Object> newMap4 = new HashMap<>();
newMap4.put("name","甲类检验机构B2级");
newMap4.put("value",dataMap.getOrDefault("5",0));
newList.add(newMap4);
Map<String,Object> newMap5 = new HashMap<>();
newMap5.put("name","乙类检验机构");
newMap5.put("value",dataMap.getOrDefault("6",0));
newList.add(newMap5);
Map<String,Object> newMap6 = new HashMap<>();
newMap6.put("name","丙类检验机构");
newMap6.put("value",dataMap.getOrDefault("7",0));
newList.add(newMap6);
Map<String,Object> newMap7 = new HashMap<>();
newMap7.put("name","检测机构");
newMap7.put("value",dataMap.getOrDefault("8",0));
newList.add(newMap7);
newMap.put("data",newList);
Map<String,Object> oldMap = new HashMap<>();
oldMap.put("key","old");
oldMap.put("name","旧分类");
List<Map<String,Object>> oldList = new ArrayList<>();
Map<String,Object> oldMap1 = new HashMap<>();
oldMap1.put("name","综合检验机构甲类(旧规)");
oldMap1.put("value",dataMap.getOrDefault("9",0));
oldList.add(oldMap1);
Map<String,Object> oldMap2 = new HashMap<>();
oldMap2.put("name","综合检验机构乙类(旧规)");
oldMap2.put("value",dataMap.getOrDefault("10",0));
oldList.add(oldMap2);
Map<String,Object> oldMap3 = new HashMap<>();
oldMap3.put("name","综合检验机构丙类(旧规)");
oldMap3.put("value",dataMap.getOrDefault("11",0));
oldList.add(oldMap3);
Map<String,Object> oldMap4 = new HashMap<>();
oldMap4.put("name","自检机构(旧规)");
oldMap4.put("value",dataMap.getOrDefault("12",0));
oldList.add(oldMap4);
Map<String,Object> oldMap5 = new HashMap<>();
oldMap5.put("name","气瓶检验机构(旧规)");
oldMap5.put("value",dataMap.getOrDefault("13",0));
oldList.add(oldMap5);
Map<String,Object> oldMap6 = new HashMap<>();
oldMap6.put("name","无损检测机构(旧规)");
oldMap6.put("value",dataMap.getOrDefault("14",0));
oldList.add(oldMap6);
oldMap.put("data",oldList);
returnList.add(newMap);
returnList.add(oldMap);
return returnList;
}
@Override
public Map<String, Object> userCount(ScreenDto screenDto) {
List<Map<String,String>> list = screenMapper.userCount(screenDto);
Map<String,Integer> dataMap = new HashMap<>();
for(Map<String,String> map : list){
String[] split = map.get("unitType").split("#");
for(int i=0;i<split.length;i++){
if(dataMap.containsKey(split[i])){
dataMap.put(split[i],dataMap.get(split[i])+1);
}else{
dataMap.put(split[i],1);
}
}
}
List<String> xlist = new ArrayList();
xlist.add("制造单位");
xlist.add("安改维单位");
xlist.add("使用单位");
xlist.add("设计单位");
xlist.add("充装单位");
List<Integer> ylist = new ArrayList();
ylist.add(dataMap.getOrDefault("制造单位",0));
ylist.add(dataMap.getOrDefault("安装改造维修单位",0));
ylist.add(dataMap.getOrDefault("使用单位",0));
ylist.add(dataMap.getOrDefault("设计单位",0));
ylist.add(dataMap.getOrDefault("充装单位",0));
Map<String,Object> returnMap = new HashMap<>();
returnMap.put("xdata",xlist);
returnMap.put("ydata",ylist);
return returnMap;
}
@Override
public Map<String, Object> supervisorCount(ScreenDto screenDto) {
List<Map<String,Object>> list = screenMapper.supervisorCount(screenDto);
Map<String,Integer> dataMap = new HashMap<>();
for(Map<String,Object> map : list){
dataMap.put((String) map.get("industrySupervisor"),Integer.valueOf(map.get("count").toString()));
}
/**
* 6513 公安
* 6515 能源电力
* 6516 商务
* 6517 应急管理(危化品)
* 6519 文化和旅游
* 6520 卫健
* 6521 教育
* 6522 住建
* 6523 工信
* 6524 交通运输
* 6526 国资
* 6527 其他
* 6525 农业
* 6514 林业
* 6518 消防
*/
List<String> xlist = new ArrayList();
xlist.add("公安");
xlist.add("能源电力");
xlist.add("商务");
xlist.add("应急管理(危化品)");
xlist.add("文化和旅游");
xlist.add("卫健");
xlist.add("教育");
xlist.add("住建");
xlist.add("工信");
xlist.add("交通运输");
xlist.add("国资");
xlist.add("其他");
xlist.add("农业");
xlist.add("林业");
xlist.add("消防");
List<Object> ylist = new ArrayList();
ylist.add(dataMap.getOrDefault("6513",0));
ylist.add(dataMap.getOrDefault("6515",0));
ylist.add(dataMap.getOrDefault("6516",0));
ylist.add(dataMap.getOrDefault("6517",0));
ylist.add(dataMap.getOrDefault("6519",0));
ylist.add(dataMap.getOrDefault("6520",0));
ylist.add(dataMap.getOrDefault("6521",0));
ylist.add(dataMap.getOrDefault("6522",0));
ylist.add(dataMap.getOrDefault("6523",0));
ylist.add(dataMap.getOrDefault("6524",0));
ylist.add(dataMap.getOrDefault("6526",0));
ylist.add(dataMap.getOrDefault("6527",0));
ylist.add(dataMap.getOrDefault("6525",0));
ylist.add(dataMap.getOrDefault("6514",0));
ylist.add(dataMap.getOrDefault("6518",0));
Map<String,Object> returnMap = new HashMap<>();
returnMap.put("xdata",xlist);
returnMap.put("ydata",ylist);
return returnMap;
}
@Override
public List<Map<String, Object>> equipmentInformCount(ScreenDto screenDto) {
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//设置模糊搜索
String orgCode = getAndSetOrgCode(screenDto.getCityCode());
searchSourceBuilder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*")));
searchSourceBuilder.aggregation(
AggregationBuilders.terms("USE_SITE_CODE").field("USE_SITE_CODE")
);
searchRequest.source(searchSourceBuilder);
Map<String,Integer> dataMap = new HashMap<>();
List<Map<String,Object>> returnList = new ArrayList<>();
try {
// 执行搜索请求
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 获取所有聚合结果
Aggregations aggregations = searchResponse.getAggregations();
Terms termsResult = aggregations.get("USE_SITE_CODE");
for (Terms.Bucket bucket : termsResult.getBuckets()) {
String category = bucket.getKeyAsString(); // 或者使用 bucket.getKey() 对于非字符串类型
long docCount = bucket.getDocCount();
dataMap.put(category, (int) docCount);
}
/**
* 6008 住宅小区
* 6009 商业单位
* 6010 学校
* 6012 政府机关
* 6011 医疗机构
* 6013 公共场所
* 6528 工业场所
* 6529 工业场所(户外)
* 6530 养老机构
* 6531 旅游景区
* 6532 游乐场所
*/
Map<String,Object> zhuzhaiMap = new HashMap<>();
zhuzhaiMap.put("name","住宅小区");
zhuzhaiMap.put("value",dataMap.getOrDefault("6008",0));
returnList.add(zhuzhaiMap);
Map<String,Object> shangyeMap = new HashMap<>();
shangyeMap.put("name","商业单位");
shangyeMap.put("value",dataMap.getOrDefault("6009",0));
returnList.add(shangyeMap);
Map<String,Object> xuexiaoMap = new HashMap<>();
xuexiaoMap.put("name","学校");
xuexiaoMap.put("value",dataMap.getOrDefault("6010",0));
returnList.add(xuexiaoMap);
Map<String,Object> zhengfuMap = new HashMap<>();
zhengfuMap.put("name","政府机关");
zhengfuMap.put("value",dataMap.getOrDefault("6012",0));
returnList.add(zhengfuMap);
Map<String,Object> yiliaoMap = new HashMap<>();
yiliaoMap.put("name","医疗机构");
yiliaoMap.put("value",dataMap.getOrDefault("6011",0));
returnList.add(yiliaoMap);
Map<String,Object> gonggongMap = new HashMap<>();
gonggongMap.put("name","公共场所");
gonggongMap.put("value",dataMap.getOrDefault("6013",0));
returnList.add(gonggongMap);
Map<String,Object> gongyeMap = new HashMap<>();
gongyeMap.put("name","工业场所");
gongyeMap.put("value",dataMap.getOrDefault("6528",0));
returnList.add(gongyeMap);
Map<String,Object> gongyeMap1 = new HashMap<>();
gongyeMap1.put("name","工业场所(户外)");
gongyeMap1.put("value",dataMap.getOrDefault("6529",0));
returnList.add(gongyeMap1);
Map<String,Object> yanglaoMap = new HashMap<>();
yanglaoMap.put("name","养老机构");
yanglaoMap.put("value",dataMap.getOrDefault("6530",0));
returnList.add(yanglaoMap);
Map<String,Object> lvyouMap = new HashMap<>();
lvyouMap.put("name","旅游景区");
lvyouMap.put("value",dataMap.getOrDefault("6531",0));
returnList.add(lvyouMap);
Map<String,Object> yuleMap = new HashMap<>();
yuleMap.put("name","游乐场所");
yuleMap.put("value",dataMap.getOrDefault("6532",0));
returnList.add(yuleMap);
} catch (IOException e) {
e.printStackTrace();
}
return returnList;
}
private String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = screenMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode != null) {
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
}
return orgCode;
}
}
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.ymt.api.mapper; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledQueryDto; import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledRecordDto; import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledRecordDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertPaperInfoDto; import com.yeejoin.amos.boot.module.ymt.api.dto.AlertPaperInfoDto;
...@@ -111,4 +112,30 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> { ...@@ -111,4 +112,30 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
@Select("select count(1) from tz_alert_called where rec_user_name =#{userName} and rec_date >= #{startTime} and rec_date <= #{endTime}") @Select("select count(1) from tz_alert_called where rec_user_name =#{userName} and rec_date >= #{startTime} and rec_date <= #{endTime}")
Integer getCountNum(String userName, Date startTime, Date endTime); Integer getCountNum(String userName, Date startTime, Date endTime);
/**
* 接警情况统计
*
* @param beginDate
* @param endDate
* @return
*/
List<Map<String, Object>> queryNearlyList(@Param("beginDate") String beginDate,
@Param("endDate") String endDate,
@Param("regionCode") String regionCode
);
/**
* 接警情况统计(按场所)
*
* @return
*/
List<Map<String, Object>> queryListByLocation(@Param("regionCode") String regionCode, @Param("dto") DPFilterParamDto filterParamDto);
/**
* 接警情况统计(故障原因)
*
* @return
*/
List<Map<String, Object>> faultCauseRatio(@Param("regionCode") String regionCode);
} }
...@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.DispatchTask; ...@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.DispatchTask;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 派遣任务 Mapper 接口 * 派遣任务 Mapper 接口
...@@ -24,4 +25,6 @@ public interface DispatchTaskMapper extends BaseMapper<DispatchTask> { ...@@ -24,4 +25,6 @@ public interface DispatchTaskMapper extends BaseMapper<DispatchTask> {
List<WechatMyTaskListDto> getTaskListByPhonePager(@Param("phone") String phone, @Param("typeCode") String typeCode, @Param("current") Long current); List<WechatMyTaskListDto> getTaskListByPhonePager(@Param("phone") String phone, @Param("typeCode") String typeCode, @Param("current") Long current);
List<MainPersonDto> todayTaskPerson(); List<MainPersonDto> todayTaskPerson();
List<Map<String, Object>> rankUnitByRescueTime(@Param("regionCode") String regionCode);
} }
...@@ -79,4 +79,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI ...@@ -79,4 +79,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
* @return Long 统计数量 * @return Long 统计数量
*/ */
Long countByOperatingStatusAndOrgCode(@Param("orgCode") String orgCode, @Param("operatingStatus") String operatingStatus, @Param("cityCode") String cityCode); Long countByOperatingStatusAndOrgCode(@Param("orgCode") String orgCode, @Param("operatingStatus") String operatingStatus, @Param("cityCode") String cityCode);
List<TzBaseEnterpriseInfoDto> queryByUseCode(@Param("useCodes") List<String> useCode);
} }
package com.yeejoin.amos.boot.module.ymt.flc.api.mapper; package com.yeejoin.amos.boot.module.ymt.flc.api.mapper;
import com.yeejoin.amos.boot.module.ymt.flc.api.entity.CylinderAreaData;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.biz.common.dto.KeyValueDto;
import com.yeejoin.amos.boot.module.common.api.dto.CylinderInfoStatisticsDto;
import com.yeejoin.amos.boot.module.ymt.flc.api.entity.CylinderAreaData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/** /**
* 气瓶区域统计表 Mapper 接口 * 气瓶区域统计表 Mapper 接口
...@@ -11,4 +17,33 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -11,4 +17,33 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface CylinderAreaDataMapper extends BaseMapper<CylinderAreaData> { public interface CylinderAreaDataMapper extends BaseMapper<CylinderAreaData> {
Map<String, Object> getInspectionExpiredRate(@Param(value = "regionCode") String regionCode, @Param(value = "appId") String appId);
Map<String, Object> getInspectionResultRate(@Param(value = "regionCode") String regionCode, @Param(value = "appId") String appId);
/**
* 查询单个单位的有效期信息
*
* @param appId 公司唯一标识
* @return KeyValueDto
*/
KeyValueDto queryLicenseEfficiencyOneCompany(@Param(value = "appId") String appId);
/**
* 单位按照资质状态分组下的统计数量
*
* @param regionCode 区域
* @return List<KeyValueDto>
*/
List<KeyValueDto> queryLicenseEfficiencyOfRegion(@Param(value = "regionCode") String regionCode);
List<CylinderInfoStatisticsDto> getCylinderStatisticsData(@Param(value = "orgCode") String orgCode);
List<CylinderInfoStatisticsDto> getCylinderStatisticsDataByCity(String orgCode);
List<Map<String, Object>> getQiZhanStatisticsDataByCity(@Param(value = "orgCodes") List<String> orgCodes);
Long getOpertorStatisticsDataByCity(@Param(value = "orgCodes") List<String> orgCodes);
} }
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.ymt.flc.api.mapper; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.ymt.flc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.CylinderFillingRecordStatisticsDto;
import com.yeejoin.amos.boot.module.ymt.flc.api.dto.CylinderInfoDto; import com.yeejoin.amos.boot.module.ymt.flc.api.dto.CylinderInfoDto;
import com.yeejoin.amos.boot.module.ymt.flc.api.entity.CylinderInfo; import com.yeejoin.amos.boot.module.ymt.flc.api.entity.CylinderInfo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -87,4 +88,8 @@ public interface CylinderInfoMapper extends BaseMapper<CylinderInfo> { ...@@ -87,4 +88,8 @@ public interface CylinderInfoMapper extends BaseMapper<CylinderInfo> {
Integer getInfoTotal(); Integer getInfoTotal();
List<CylinderFillingRecordStatisticsDto> queryFillingRecordByOrgCode(@Param("orgCode") String orgCode, @Param("startTime") String startTime);
List<CylinderFillingRecordStatisticsDto> queryoffloadingByOrgCode(@Param("orgCode") String orgCode, @Param("startTime") String startTime);
} }
...@@ -624,7 +624,65 @@ ...@@ -624,7 +624,65 @@
</foreach> </foreach>
</if> </if>
</select> </select>
<select id="queryNearlyList" resultType="java.util.Map">
SELECT
date_format (call_time, '%Y-%m-%d') AS day,
alarm_type as alarmType,
ifnull ( SUM ( CASE WHEN father_alert IS NULL THEN 1 ELSE 0 END ), 0) AS majorAlertCount
FROM
tz_alert_called
WHERE
biz_org_code like concat(#{regionCode}, '%')
AND day BETWEEN #{beginDate} AND #{endDate}
GROUP BY
day, alarm_type
ORDER BY
day ASC
</select>
<select id="queryListByLocation" resultType="java.util.Map">
SELECT
ifnull ( SUM ( CASE WHEN father_alert IS NULL THEN 1 ELSE 0 END ), 0 ) AS majorAlertCount,
cdd.NAME as name
FROM
tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info ibjuj ON tac.equipment_id = ibjuj.RECORD
LEFT JOIN cb_data_dictionary cdd ON ibjuj.USE_PLACE = cdd.sequence_nbr
WHERE
tac.biz_org_code LIKE concat(#{regionCode}, '%')
AND (tac.alarm_type_code = '960' or tac.alarm_type_code = '961')
AND
ibjuj.USE_PLACE is NOT NULL
AND cdd.NAME is NOT NULL
<if test="dto.beginDate !=null and dto.beginDate !='' and dto.endDate !=null and dto.endDate !=''">
AND tac.call_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
</if>
GROUP BY
cdd.NAME
ORDER BY ibjuj.USE_PLACE ASC
</select>
<select id="faultCauseRatio" resultType="java.util.Map">
SELECT
tafv.field_value AS errorResult,
ifnull ( SUM ( CASE WHEN tac.father_alert IS NULL THEN 1 ELSE 0 END ), 0 ) AS majorAlertCount
FROM
tz_alert_called tac
LEFT JOIN tz_dispatch_task tdt ON tac.sequence_nbr = tdt.alert_id
LEFT JOIN tz_alert_form_value tafv ON tac.sequence_nbr = tafv.alert_called_id
LEFT JOIN cb_data_dictionary cdd ON cdd.NAME = tafv.field_value
WHERE
tac.biz_org_code LIKE concat(#{regionCode}, '%')
AND tac.alarm_type_code = '961'
AND cdd.TYPE = 'GZYY'
AND tafv.field_code = 'error_result'
AND tafv.field_value IS NOT NULL
GROUP BY
tafv.field_value
ORDER BY
majorAlertCount ASC
LIMIT 5
</select>
</mapper> </mapper>
...@@ -2,4 +2,161 @@ ...@@ -2,4 +2,161 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.ymt.flc.api.mapper.CylinderAreaDataMapper"> <mapper namespace="com.yeejoin.amos.boot.module.ymt.flc.api.mapper.CylinderAreaDataMapper">
<select id="queryLicenseEfficiencyOneCompany" resultType="com.yeejoin.amos.boot.biz.common.dto.KeyValueDto">
SELECT
cu.sequence_nbr as strKey,
(select
case
when min(ul.expiry_date) >= now()
THEN '正常'
when min(ul.expiry_date) is null then '--'
ELSE '已超期'
END AS licenseOk from tz_base_unit_licence ul where cu.credit_code = ul.unit_code) as strValue
FROM
tz_cylinder_unit cu
where
cu.unit_status = '1210'
and cu.app_id = #{appId}
</select>
<select id="queryLicenseEfficiencyOfRegion" resultType="com.yeejoin.amos.boot.biz.common.dto.KeyValueDto">
SELECT
count(1) as iValue,
(select
case
when min(ul.expiry_date) >= now()
THEN '正常'
when min(ul.expiry_date) is null then '未提供'
ELSE '已超期'
END AS licenseOk from tz_base_unit_licence ul where cu.use_code = ul.unit_code) as strKey
FROM
tz_base_enterprise_info cu
where
cu.data_sources = '陕西省内企业'
AND cu.unit_type LIKE '%充装单位%'
and cu.org_code like concat('%', #{regionCode}, '%')
GROUP BY strKey
</select>
<select id="getInspectionExpiredRate" resultType="java.util.Map">
SELECT
CASE WHEN COUNT(*) = 0 THEN 0 ELSE ROUND((COUNT(CASE WHEN ci.next_inspection_date <![CDATA[<=]]> now() THEN 1 END) * 100.0 / COUNT(*)), 2) END AS expiredRate
FROM
"tz_cylinder_inspection" ci
LEFT JOIN tz_base_enterprise_info cu on ci.app_id = cu.app_id
<where>
cu.data_sources = '陕西省内企业'
AND cu.unit_type LIKE '%充装单位%'
<if test="regionCode != null and regionCode != ''">
and cu.org_code like concat(#{regionCode}, '%')
</if>
<if test="appId != null and appId != ''">
and cu.app_id = #{appId}
</if>
</where>
</select>
<select id="getInspectionResultRate" resultType="java.util.Map">
SELECT
CASE WHEN COUNT(*) = 0 THEN 0 ELSE ROUND((COUNT(CASE WHEN ci.inspection_result = '3123' THEN 1 END) * 100.0 / COUNT(*)), 2) END AS resultRate
FROM
"tz_cylinder_inspection" ci
LEFT JOIN tz_base_enterprise_info cu on ci.app_id = cu.app_id
<where>
cu.data_sources = '陕西省内企业'
AND cu.unit_type LIKE '%充装单位%'
<if test="regionCode != null and regionCode != ''">
and cu.org_code like concat( #{regionCode}, '%')
</if>
<if test="appId != null and appId != ''">
and cu.app_id = #{appId}
</if>
</where>
</select>
<select id="getCylinderStatisticsData" resultType="com.yeejoin.amos.boot.module.common.api.dto.CylinderInfoStatisticsDto">
SELECT
t1.unit_name unitName,
i.city,
i.province,
i.district,
ROUND( COUNT ( t1.sequence_code ) / 10000.00, 2 ) num
FROM
tz_base_enterprise_info i
RIGHT JOIN tz_cylinder_info t1 ON t1.app_id = i.app_id
WHERE
i.data_sources = '陕西省内企业'
AND i.unit_type LIKE'%充装单位%'
AND i.industry_supervisor like concat(#{orgCode}, '%')
GROUP BY
t1.unit_name
ORDER BY
num DESC
</select>
<select id="getCylinderStatisticsDataByCity" resultType="com.yeejoin.amos.boot.module.common.api.dto.CylinderInfoStatisticsDto">
SELECT
i.city,
i.province
ROUND( COUNT ( t1.sequence_code ) / 10000.00, 2 ) num
FROM
tz_base_enterprise_info i
RIGHT JOIN tz_cylinder_info t1 ON t1.app_id = i.app_id
WHERE
i.data_sources = '陕西省内企业'
AND i.unit_type LIKE'%充装单位%'
AND i.industry_supervisor like concat(#{orgCode}, '%')
GROUP BY
i.city,
i.province
ORDER BY
num DESC
</select>
<select id="getQiZhanStatisticsDataByCity" resultType="Map">
select a.* from (
SELECT
case
<if test="orgCodes != null and orgCodes.size > 0">
<foreach collection="orgCodes" item="orgCode">
when i.supervise_org_code like concat ( #{orgCode}, '%' ) then
#{orgCode}
</foreach>
</if>
end orgCode,
COUNT ( i.use_unit ) unitCount
FROM
tz_base_enterprise_info i
WHERE
i.data_sources = '陕西省内企业'
AND i.unit_type LIKE'%充装单位%'
<if test="orgCodes != null and orgCodes.size > 0">
AND
<foreach collection="orgCodes" open="(" item="orgCode" close=")" separator=" or ">
(i.org_code like concat(#{orgCode}, '%') )
</foreach>
</if>
) a
where a.orgCode is not null
GROUP BY
a.orgCode
</select>
<select id="getOpertorStatisticsDataByCity" resultType="Long">
SELECT
count(1)
FROM
tz_base_enterprise_info u
RIGHT JOIN tzs_user_info ui ON ui.unit_code = u.use_code
WHERE
u.data_sources = '陕西省内企业'
AND u.unit_type LIKE'%充装单位%'
AND ui.post like '%"6552"%'
<if test="orgCodes != null and orgCodes.size > 0">
AND
<foreach collection="orgCodes" open="(" item="orgCode" close=")" separator=" or ">
(u.org_code like concat(#{orgCode}, '%') )
</foreach>
</if>
</select>
</mapper> </mapper>
...@@ -338,4 +338,37 @@ ...@@ -338,4 +338,37 @@
where ci.is_not_es IS NULL where ci.is_not_es IS NULL
AND region_code is not null AND region_code is not null
</select> </select>
<select id="queryFillingRecordByOrgCode" resultType="com.yeejoin.amos.boot.module.common.api.dto.CylinderFillingRecordStatisticsDto">
SELECT
SUBSTR( f.filling_endtime, 0, 10 ) filling_time,
SUM ( f.filling_quantity ) filling_quantity
FROM
tz_cylinder_filling_record f ,
tz_base_enterprise_info i
WHERE
i.app_id = f.app_id
AND f.filling_endtime >= concat(#{startTime}, ' 00:00:00')
AND i.org_code like concat(#{orgCode}, '%')
GROUP BY
filling_time
ORDER BY
filling_time DESC
</select>
<select id="queryoffloadingByOrgCode" resultType="com.yeejoin.amos.boot.module.common.api.dto.CylinderFillingRecordStatisticsDto">
SELECT
f.statistics_sync_date filling_time,
SUM ( f.offloading_volume ) filling_quantity
FROM
tz_cylinder_offloading f,
tz_base_enterprise_info i
WHERE
i.app_id = f.app_id
AND f.statistics_sync_date >= #{startTime}
AND i.org_code like concat(#{orgCode}, '%')
GROUP BY
filling_time
ORDER BY
filling_time DESC
</select>
</mapper> </mapper>
...@@ -105,6 +105,26 @@ ...@@ -105,6 +105,26 @@
left JOIN tcb_use_unit u on u.sequence_nbr = t.response_org_id left JOIN tcb_use_unit u on u.sequence_nbr = t.response_org_id
where to_days(t.dispatch_time) = TO_DAYS(now()) where to_days(t.dispatch_time) = TO_DAYS(now())
</select> </select>
<select id="rankUnitByRescueTime" resultType="java.util.Map">
SELECT
tac.city,
tdt.sequence_nbr as sequenceNbr,
tdt.response_org_name as maintUnit,
AVG (TIMESTAMPDIFF (SECOND, tdt.arrive_time, tdt.save_time)) AS avgTime
FROM
tz_dispatch_task tdt
LEFT JOIN tz_alert_called tac ON tdt.alert_id = tac.sequence_nbr
LEFT JOIN tz_base_enterprise_info tbei ON tdt.response_org_id = tbei.sequence_nbr
WHERE
tac.alarm_type_code = '960'
AND tdt.org_type_code = 'repairUnit'
AND tac.biz_org_code LIKE concat(#{regionCode}, '%')
AND tdt.arrive_time IS NOT NULL
AND tdt.save_time IS NOT NULL
GROUP BY
tdt.response_org_id
ORDER BY
avgTime
</select>
</mapper> </mapper>
...@@ -225,4 +225,12 @@ ...@@ -225,4 +225,12 @@
and ((supervise_org_code != '50' and supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (supervise_org_code = '50' and office_region LIKE CONCAT ('%', #{cityCode}, '%'))) and ((supervise_org_code != '50' and supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (supervise_org_code = '50' and office_region LIKE CONCAT ('%', #{cityCode}, '%')))
and operating_status = #{operatingStatus} and operating_status = #{operatingStatus}
</select> </select>
<select id="queryByUseCode" resultType="com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto">
select * from tz_base_enterprise_info where use_code in
<if test="useCodes != null">
<foreach collection="useCodes" item="useCode" open="(" close=")" separator=",">
#{useCode}
</foreach>
</if>
</select>
</mapper> </mapper>
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<module>amos-boot-module-tcm</module> <module>amos-boot-module-tcm</module>
<module>amos-boot-module-app</module> <module>amos-boot-module-app</module>
<module>amos-boot-module-tzspatrol</module> <module>amos-boot-module-tzspatrol</module>
<module>amos-boot-module-statistics</module>
</modules> </modules>
<properties> <properties>
<amos.version.tzs>1.8.5</amos.version.tzs> <amos.version.tzs>1.8.5</amos.version.tzs>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment