Commit 3aeb1c02 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 # Conflicts: # amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/ZLDPStatisticsServiceImpl.java
parents 9111e398 f12aee6e
......@@ -13,6 +13,4 @@ public interface IAlertStatisticsService {
void statisticalGeneration(String type);
List<AlertStatistics> getList(String date) throws ParseException;
JSONArray statisticInfoByRegionAndDate(DPFilterParamDto queryParams);
}
......@@ -350,14 +350,4 @@ public class StatisticsController extends BaseController {
ExcelUtil.createTemplate(response, "困人救援超时情况统计", "困人救援超时情况统计", exportVos, AlertDispatchStatisticsExportVo.class, null, false);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping (value = "/region/info")
@ApiOperation(httpMethod = "POST", value = "查询区域统计信息", notes = "查询区域统计信息")
public ResponseModel<JSONArray> statisticsRegionInfo(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(alertStatisticsService.statisticInfoByRegionAndDate(dpFilterParamDto));
}
}
......@@ -73,7 +73,6 @@ public class TzsAuthController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "获取用户regionCode", notes = "获取用户regionCode")
public ResponseModel<List<String>> getUserRegincode() {
List<String> regionList = tzsAuthService.getUserRegionCode();
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
return ResponseHelper.buildResponse(regionList);
}
......
......@@ -168,100 +168,4 @@ public class AlertStatisticsServiceImpl extends BaseService<AlertStatisticsDto,
return alertStatistics;
}
@Override
public JSONArray statisticInfoByRegionAndDate(DPFilterParamDto params) {
LocalDate today = LocalDate.now();
LocalDate startDate;
LocalDate endDate;
String regionCode = params.getCityCode();
if (ObjectUtils.isEmpty(params.getBeginDate()) || ObjectUtils.isEmpty(params.getBeginDate())) {
startDate = today.minusDays(6);
endDate = today;
} else {
startDate = LocalDate.parse(params.getBeginDate());
endDate = LocalDate.parse(params.getEndDate());
}
params.setBeginDate(startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
params.setEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
AlertStatistics statistics = this.baseMapper.statisticsInfoByRegionAndDate(regionCode, startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
JSONArray jsonArray = new JSONArray();
if (!ObjectUtils.isEmpty(statistics)) {
JSONObject jsonObject0 = new JSONObject();
jsonObject0.put("key", "dtkr");
jsonObject0.put("value", ValidationUtil.isEmpty(statistics.getTrappedPeople()) ? 0 : statistics.getTrappedPeople());
jsonObject0.put("name", "电梯困人");
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("key", "slts");
jsonObject1.put("value", ValidationUtil.isEmpty(statistics.getComplaint()) ? 0 : statistics.getComplaint());
jsonObject1.put("name", "受理投诉");
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("key", "gzbx");
jsonObject2.put("value", ValidationUtil.isEmpty(statistics.getBreakdownRescue()) ? 0 : statistics.getBreakdownRescue());
jsonObject2.put("name", "故障维修");
JSONObject jsonObject3 = new JSONObject();
jsonObject3.put("key", "jjbkck");
jsonObject3.put("value", ValidationUtil.isEmpty(statistics.getRescuePersonnel()) ? 0 : statistics.getRescuePersonnel());
jsonObject3.put("name", "解救被困乘客");
JSONObject jsonObject4 = new JSONObject();
jsonObject4.put("key", "30fzdd");
jsonObject4.put("value", ValidationUtil.isEmpty(statistics.getWithinThirtyRescue()) ? 0 : statistics.getWithinThirtyRescue());
jsonObject4.put("name", "30分钟内到达");
JSONObject jsonObject5 = new JSONObject();
jsonObject5.put("key", "pjjysj");
jsonObject5.put("value", ValidationUtil.isEmpty(statistics.getAvgTime()) ? 0 : statistics.getAvgTime());
jsonObject5.put("name", "平均救援时间");
String orgCode = this.getAndSetOrgCode(regionCode);
JSONObject jsonObject6 = new JSONObject();
jsonObject6.put("key", "jycq");
jsonObject6.put("value", this.getQuestionNumber("检验超期",params, orgCode));
jsonObject6.put("name", "检验超期");
JSONObject jsonObject7 = new JSONObject();
jsonObject7.put("key", "jybhg");
jsonObject7.put("value", this.getQuestionNumber("检验不合格",params, orgCode));
jsonObject7.put("name", "检验不合格");
JSONObject jsonObject8 = new JSONObject();
jsonObject8.put("key", "wbcq");
jsonObject8.put("value", this.getQuestionNumber("维保超期",params, orgCode));
jsonObject8.put("name", "维保超期");
JSONObject jsonObject9 = new JSONObject();
jsonObject9.put("key", "csjsynx");
jsonObject9.put("value", this.getQuestionNumber("超设计使用年限",params, orgCode));
jsonObject9.put("name", "超设计使用年限");
jsonArray.add(jsonObject0);
jsonArray.add(jsonObject1);
jsonArray.add(jsonObject2);
jsonArray.add(jsonObject3);
jsonArray.add(jsonObject4);
jsonArray.add(jsonObject5);
jsonArray.add(jsonObject6);
jsonArray.add(jsonObject7);
jsonArray.add(jsonObject8);
jsonArray.add(jsonObject9);
}
return jsonArray;
}
private Long getQuestionNumber(String problemType, DPFilterParamDto params, String orgCode) {
return this.getBaseMapper().countProblemByTypeDateAndOrgCode(problemType, params, orgCode);
}
private String getAndSetOrgCode(String region) {
String orgCode = regionCodeOrgCodeMap.get(region);
if (orgCode == null) {
orgCode = this.getBaseMapper().getOrgCodeByCompanyCode(region);
if (orgCode != null) {
regionCodeOrgCodeMap.put(region, orgCode);
}
}
return orgCode;
}
}
\ No newline at end of file
......@@ -64,7 +64,9 @@ public class JgReformNoticeController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/update")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新改造告知", notes = "根据sequenceNbr更新改造告知")
public ResponseModel<JgReformNoticeDto> updateBySequenceNbrJgReformNotice(@RequestParam String submitType, @RequestBody JgReformNoticeDto installationInfo, @RequestParam(value = "op", required = false) String op) {
public ResponseModel<JgReformNoticeDto> updateBySequenceNbrJgReformNotice(@RequestParam String submitType,
@RequestBody JgReformNoticeDto installationInfo,
@RequestParam(value = "op", required = false) String op) {
if (Objects.isNull(installationInfo)) {
throw new IllegalArgumentException("参数installationInfo不能为空");
}
......
......@@ -5,6 +5,7 @@ import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
......@@ -77,7 +78,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
private static final String SUBMIT_TYPE_FLOW = "1";
private static final String PROCESS_DEFINITION_KEY = "renovationNoticeNew";
private static final String TABLE_PAGE_ID = "reformNoticeAdd";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("6610", "6614", "6615", "6617", "6616");
// 西安行政区划code
private static final String XIAN = "610100";
......@@ -245,7 +246,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
dto.setNextExecuteUserCompanyCode(notice.getReceiveCompanyCode());
dto.setVariable(commMap);
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(notice.getNextTaskId(), dto, op);
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(notice.getNextTaskId(), dto, "2");
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(noticeDto, notice);
......@@ -273,6 +274,19 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
BeanUtils.copyProperties(noticeDto, bean);
jgReformNoticeMapper.updateById(bean);
}
List<Map<String, Object>> deviceList = noticeDto.getDeviceList();
jgReformNoticeEqMapper.delete(new QueryWrapper<JgReformNoticeEq>()
.eq("equip_transfer_id", notice.getSequenceNbr()));
// eq关系表
List<JgReformNoticeEq> noticeEqs = new ArrayList<>();
// 更新设备关系表
deviceList.forEach(obj -> {
JgReformNoticeEq jgRelationEquip = new JgReformNoticeEq();
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(String.valueOf(notice.getSequenceNbr()));
noticeEqs.add(jgRelationEquip);
});
jgReformNoticeEqMapper.insertBatchSomeColumn(noticeEqs);
return noticeDto;
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
......@@ -514,10 +528,13 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
* 删除 redis校验重复引用设备的数据
*/
private void delRepeatUseEquipData(JgReformNotice notice) {
LambdaQueryWrapper<JgReformNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgReformNoticeEq::getEquipTransferId, notice.getSequenceNbr());
JgReformNoticeEq jgRelationEquip = jgReformNoticeEqMapper.selectOne(queryWrapper);
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).delDataForCheckEquipRepeatUsed(Collections.singletonList(jgRelationEquip.getEquId()), notice.getInstallUnitCreditCode());
if (NOT_FLOWING_STATE.contains(notice.getNoticeStatus())) {
LambdaQueryWrapper<JgReformNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgReformNoticeEq::getEquipTransferId, notice.getSequenceNbr());
List<JgReformNoticeEq> noticeEqs = jgReformNoticeEqMapper.selectList(queryWrapper);
List<String> ids = noticeEqs.stream().map(JgReformNoticeEq::getEquId).collect(Collectors.toList());
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).delDataForCheckEquipRepeatUsed(ids, notice.getInstallUnitCreditCode());
}
}
private void rollBackForDelRedisData() {
......@@ -546,7 +563,11 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
private TaskModelDto buildTempTaskModelDto(JgReformNotice item) {
return TaskModelDto.builder().model(item).taskContent(String.format("来自%s的业务办理,【申请单号:%s】", item.getEquListName(), item.getApplyNo())).taskCode(item.getApplyNo()).taskType(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getCode()).relationId(item.getSequenceNbr() + "").build();
return TaskModelDto.builder().model(item)
.taskContent(String.format("来自%s的业务办理,【申请单号:%s】", item.getEquListName(), item.getApplyNo()))
.taskCode(item.getApplyNo())
.taskType(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getCode())
.relationId(item.getSequenceNbr() + "").build();
}
/**
......@@ -570,7 +591,28 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
private TaskModelDto buildTaskModelDto(JgReformNotice item, WorkflowResultDto workflowResultDto) {
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(item, taskMessageDto);
return TaskModelDto.builder().flowCreateDate(item.getCreateDate()).taskName(workflowResultDto.getNextTaskName()).taskCode(item.getApplyNo()).relationId(workflowResultDto.getInstanceId()).taskType(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getCode()).taskTypeLabel(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getName()).relationId(item.getInstanceId()).executeUserIds(workflowResultDto.getNextExecutorUserIds()).taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode()).taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()).flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode()).flowCode(workflowResultDto.getNextTaskId()).flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()).taskContent(String.format("来自%s的业务办理,【申请单号:%s】", item.getEquList(), item.getApplyNo())).taskDesc(String.format("来自%s的业务办理,【申请单号:%s】", item.getEquList(), item.getApplyNo())).startUserId(item.getCreateUserId()).startUser(item.getCreateUserName()).startUserCompanyName(item.getCreateUserCompanyName()).startDate(item.getCreateDate()).model(taskMessageDto).nextExecuteUser(item.getNextExecuteIds()).build();
return TaskModelDto.builder()
.flowCreateDate(item.getCreateDate())
.taskName(workflowResultDto.getNextTaskName())
.taskCode(item.getApplyNo())
.relationId(workflowResultDto.getInstanceId())
.taskType(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getCode())
.taskTypeLabel(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getName())
.relationId(item.getInstanceId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.flowCode(workflowResultDto.getNextTaskId())
.flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.taskContent(String.format("来自%s的业务办理,【申请单号:%s】", item.getEquListName(), item.getApplyNo()))
.taskDesc(String.format("来自%s的业务办理,【申请单号:%s】", item.getEquListName(), item.getApplyNo()))
.startUserId(item.getCreateUserId()).startUser(item.getCreateUserName())
.startUserCompanyName(item.getCreateUserCompanyName())
.startDate(item.getCreateDate())
.model(taskMessageDto)
.nextExecuteUser(item.getNextExecuteIds())
.build();
}
/**
......@@ -841,9 +883,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
taskV2Model = this.updateLastTodo(jgReformNotice, FlowStatusEnum.REJECTED);
this.createNewTodo(jgReformNotice, workflowResultDto, taskV2Model, FlowStatusEnum.REJECTED);
jgReformNoticeMapper.updateById(jgReformNotice);
this.delRepeatUseEquipData(jgReformNotice);
}
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jgReformNotice));
this.delRepeatUseEquipData(jgReformNotice);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
......@@ -882,7 +924,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
private void createNewTodo(JgReformNotice transfer, WorkflowResultDto workflowResultDto, TaskV2Model taskV2Model, FlowStatusEnum statusEnum) {
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(transfer, taskMessageDto);
TaskModelDto taskModelDto = TaskModelDto.builder().flowCreateDate(taskV2Model.getFlowCreateDate()).taskName(workflowResultDto.getNextTaskName()).taskCode(taskV2Model.getTaskCode()).taskType(taskV2Model.getTaskType()).taskTypeLabel(taskV2Model.getTaskTypeLabel()).relationId(taskV2Model.getRelationId()).executeUserIds(workflowResultDto.getNextExecutorUserIds()).taskStatusLabel(statusEnum.getName()).flowStatus(statusEnum.getCode()).flowCode(workflowResultDto.getNextTaskId()).flowStatusLabel(statusEnum.getName()).taskContent(String.format("来自%s的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getApplyNo())).taskDesc(String.format("来自%s的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getApplyNo())).startUserCompanyName(transfer.getCreateUserCompanyName()).startUserId(taskV2Model.getStartUserId()).startUser(taskV2Model.getStartUser()).startDate(taskV2Model.getStartDate()).model(taskMessageDto).pageType(statusEnum.getCode() == 6614 ? "edit" : "look").nextExecuteUser(workflowResultDto.getNextExecutorRoleIds()).build();
TaskModelDto taskModelDto = TaskModelDto.builder().flowCreateDate(taskV2Model.getFlowCreateDate()).taskName(workflowResultDto.getNextTaskName()).taskCode(taskV2Model.getTaskCode()).taskType(taskV2Model.getTaskType()).taskTypeLabel(taskV2Model.getTaskTypeLabel()).relationId(taskV2Model.getRelationId()).executeUserIds(workflowResultDto.getNextExecutorUserIds()).taskStatusLabel(statusEnum.getName()).flowStatus(statusEnum.getCode()).flowCode(workflowResultDto.getNextTaskId()).flowStatusLabel(statusEnum.getName()).taskContent(String.format("来自%s的业务办理,【申请单号:%s】", transfer.getEquListName(), transfer.getApplyNo())).taskDesc(String.format("来自%s的业务办理,【申请单号:%s】", transfer.getEquList(), transfer.getApplyNo())).startUserCompanyName(transfer.getCreateUserCompanyName()).startUserId(taskV2Model.getStartUserId()).startUser(taskV2Model.getStartUser()).startDate(taskV2Model.getStartDate()).model(taskMessageDto).pageType(statusEnum.getCode() == 6614 ? "edit" : "look").nextExecuteUser(workflowResultDto.getNextExecutorRoleIds()).build();
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
}
\ No newline at end of file
......@@ -228,7 +228,7 @@ public class JGDPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏监管-中屏-各地市数据统计", notes = "大屏监管-中屏-各地市数据统计")
@PostMapping(value = "/jg/centre/dataStatistic")
@PostMapping(value = "/centre/dataStatistic")
public ResponseModel<List<Map<String, Object>>> dataStatisticByReginCode(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
......@@ -239,7 +239,7 @@ public class JGDPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏监管-中屏-当前区域数据统计", notes = "大屏监管-中屏-当前区域数据统计")
@PostMapping(value = "/jg/centre/dataStatisticCount")
@PostMapping(value = "/centre/dataStatisticCount")
public ResponseModel<Map<String, Object>> dataStatisticCountByReginCode(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
......
package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.StCommonServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
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.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
@RestController
@Api(tags = "统计公共API")
@RequestMapping(value = "/st-common")
public class StCommonController {
StCommonServiceImpl commonService;
/**
* 获取用户regionCode
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getUserRegincode")
@ApiOperation(httpMethod = "GET", value = "获取用户regionCode", notes = "获取用户regionCode")
public ResponseModel<List<String>> getUserRegincode() {
List<String> regionList = commonService.getUserRegionCode();
return ResponseHelper.buildResponse(regionList);
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ZLDPStatisticsServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.annotation.Validated;
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.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;
......@@ -76,4 +81,15 @@ public class ZLDPStatisticsController {
public ResponseModel<List<Map<String, Object>>> equipmentInformCount(@RequestBody DPFilterParamDto screenDto) {
return ResponseHelper.buildResponse(statisticsService.equipmentInformCount(screenDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping (value = "/region/info")
@ApiOperation(httpMethod = "POST", value = "查询区域统计信息", notes = "查询区域统计信息")
public ResponseModel<JSONArray> statisticsRegionInfo(@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.statisticInfoByRegionAndDate(dpFilterParamDto));
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
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.model.RegionModel;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
*/
@Service
public class StCommonServiceImpl {
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;
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.common.api.entity.AlertStatistics;
import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertStatisticsMapper;
import com.yeejoin.amos.boot.module.common.api.enums.UnitTypeEnum;
import com.yeejoin.amos.boot.module.common.api.enums.UserPostEnum;
import com.yeejoin.amos.boot.module.statistics.api.mapper.ZLStatisticsMapper;
......@@ -17,12 +20,14 @@ 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 org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.Resource;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
......@@ -30,16 +35,25 @@ import java.util.stream.Collectors;
@Service
public class ZLDPStatisticsServiceImpl {
@Resource
private ZLStatisticsMapper screenMapper;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RestHighLevelClient restHighLevelClient;
private DataDictionaryServiceImpl iDataDictionaryService;
private AlertStatisticsMapper alertStatisticsMapper;
private RestHighLevelClient restHighLevelClient;
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
public ZLDPStatisticsServiceImpl(ZLStatisticsMapper screenMapper, DataDictionaryServiceImpl iDataDictionaryService, AlertStatisticsMapper alertStatisticsMapper, RestHighLevelClient restHighLevelClient) {
this.screenMapper = screenMapper;
this.iDataDictionaryService = iDataDictionaryService;
this.alertStatisticsMapper = alertStatisticsMapper;
this.restHighLevelClient = restHighLevelClient;
}
public List<Map<String, Object>> companyInfo(DPFilterParamDto screenDto) {
......@@ -517,4 +531,89 @@ public class ZLDPStatisticsServiceImpl {
returnMap.put("ydata", ydata);
return returnMap;
}
public JSONArray statisticInfoByRegionAndDate(DPFilterParamDto params) {
LocalDate today = LocalDate.now();
LocalDate startDate;
LocalDate endDate;
String regionCode = params.getCityCode();
if (ObjectUtils.isEmpty(params.getBeginDate()) || ObjectUtils.isEmpty(params.getBeginDate())) {
startDate = today.minusDays(6);
endDate = today;
} else {
startDate = LocalDate.parse(params.getBeginDate());
endDate = LocalDate.parse(params.getEndDate());
}
params.setBeginDate(startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
params.setEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
AlertStatistics statistics = alertStatisticsMapper.statisticsInfoByRegionAndDate(regionCode, startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
JSONArray jsonArray = new JSONArray();
if (!ObjectUtils.isEmpty(statistics)) {
JSONObject jsonObject0 = new JSONObject();
jsonObject0.put("key", "dtkr");
jsonObject0.put("value", ValidationUtil.isEmpty(statistics.getTrappedPeople()) ? 0 : statistics.getTrappedPeople());
jsonObject0.put("name", "电梯困人");
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("key", "slts");
jsonObject1.put("value", ValidationUtil.isEmpty(statistics.getComplaint()) ? 0 : statistics.getComplaint());
jsonObject1.put("name", "受理投诉");
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("key", "gzbx");
jsonObject2.put("value", ValidationUtil.isEmpty(statistics.getBreakdownRescue()) ? 0 : statistics.getBreakdownRescue());
jsonObject2.put("name", "故障维修");
JSONObject jsonObject3 = new JSONObject();
jsonObject3.put("key", "jjbkck");
jsonObject3.put("value", ValidationUtil.isEmpty(statistics.getRescuePersonnel()) ? 0 : statistics.getRescuePersonnel());
jsonObject3.put("name", "解救被困乘客");
JSONObject jsonObject4 = new JSONObject();
jsonObject4.put("key", "30fzdd");
jsonObject4.put("value", ValidationUtil.isEmpty(statistics.getWithinThirtyRescue()) ? 0 : statistics.getWithinThirtyRescue());
jsonObject4.put("name", "30分钟内到达");
JSONObject jsonObject5 = new JSONObject();
jsonObject5.put("key", "pjjysj");
jsonObject5.put("value", ValidationUtil.isEmpty(statistics.getAvgTime()) ? 0 : statistics.getAvgTime());
jsonObject5.put("name", "平均救援时间");
String orgCode = this.getAndSetOrgCode(regionCode);
JSONObject jsonObject6 = new JSONObject();
jsonObject6.put("key", "jycq");
jsonObject6.put("value", this.getQuestionNumber("检验超期",params, orgCode));
jsonObject6.put("name", "检验超期");
JSONObject jsonObject7 = new JSONObject();
jsonObject7.put("key", "jybhg");
jsonObject7.put("value", this.getQuestionNumber("检验不合格",params, orgCode));
jsonObject7.put("name", "检验不合格");
JSONObject jsonObject8 = new JSONObject();
jsonObject8.put("key", "wbcq");
jsonObject8.put("value", this.getQuestionNumber("维保超期",params, orgCode));
jsonObject8.put("name", "维保超期");
JSONObject jsonObject9 = new JSONObject();
jsonObject9.put("key", "csjsynx");
jsonObject9.put("value", this.getQuestionNumber("超设计使用年限",params, orgCode));
jsonObject9.put("name", "超设计使用年限");
jsonArray.add(jsonObject0);
jsonArray.add(jsonObject1);
jsonArray.add(jsonObject2);
jsonArray.add(jsonObject3);
jsonArray.add(jsonObject4);
jsonArray.add(jsonObject5);
jsonArray.add(jsonObject6);
jsonArray.add(jsonObject7);
jsonArray.add(jsonObject8);
jsonArray.add(jsonObject9);
}
return jsonArray;
}
private Long getQuestionNumber(String problemType, DPFilterParamDto params, String orgCode) {
return alertStatisticsMapper.countProblemByTypeDateAndOrgCode(problemType, params, orgCode);
}
}
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