Commit 0aca5dd1 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 6712e6b8 4b72267d
package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 大屏筛选过滤对象
*
* @author Administrator
*/
@Data
public class DPFilterParamDto {
/**
* 区域
*/
@NotBlank(message = "区域编码不能为空!")
private String cityCode;
/**
* 数据统计的开始日期
*/
private String beginDate;
/**
* 数据统计的结束日期
*/
private String endDate;
}
package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Builder;
import lombok.Data;
/**
* @author Administrator
*/
@Data
@Builder
public class LegendDataDto {
/**
* 唯一标识code
*/
private String dataKey;
/**
* 图列名称
*/
private String value;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
*/
@Data
@ApiModel
public class EquipBizCountDto {
@ApiModelProperty(value = "设备种类code")
private String equList;
@ApiModelProperty(value = "设备类别code")
private String equCategory;
@ApiModelProperty(value = "设备品种code")
private String equipDefine;
@ApiModelProperty(value = "次数")
private Integer num;
@ApiModelProperty(value = "区域信息省#市#区,按照#分割")
private String areaCode;
}
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEnableDisableDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisable;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
......@@ -24,4 +27,6 @@ public interface JgEnableDisableMapper extends BaseMapper<JgEnableDisable> {
@Param("userId") String userId);
Map<String, Object> getDetail(@Param("sequenceNbr") Long sequenceNbr);
List<EquipBizCountDto> queryStoppedDeviceStaticListData(DPFilterParamDto dpFilterParamDto);
}
......@@ -2,6 +2,8 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgScrapCancelDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgScrapCancel;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
......@@ -43,4 +45,5 @@ public interface JgScrapCancelMapper extends BaseMapper<JgScrapCancel> {
*/
Map<String, Object> queryEquipInformation(@Param("sequenceNbr") long sequenceNbr);
List<EquipBizCountDto> queryScrappedDeviceStaticListData(DPFilterParamDto dpFilterParamDto);
}
......@@ -3,7 +3,9 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
......@@ -75,4 +77,6 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> {
@Select("select name from tz_equipment_category where code=#{code}")
String getEquCategoryNameByCode(String code);
List<EquipBizCountDto> queryNewDeviceStaticListData(DPFilterParamDto dpFilterParamDto);
}
......@@ -115,4 +115,40 @@
LEFT JOIN idx_biz_jg_use_info use on jede.equ_id = use.RECORD
where jed.sequence_nbr = #{sequenceNbr}
</select>
<select id="queryStoppedDeviceStaticListData"
resultType="com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto">
select
c.equ_list,
c.equ_category,
c.equ_define,
count(1) as num
from
(SELECT
ri.equ_list,
ri.equ_category,
ri.equ_define,
concat(u.PROVINCE,'#', u.CITY,'#', u.COUNTY) as areaCode
FROM
"tzs_jg_enable_disable_eq" ae,
tzs_jg_enable_disable a,
"idx_biz_jg_use_info" u,
idx_biz_jg_register_info ri
where
a.sequence_nbr = ae.enable_disable_apply_id
and ae.equ_id = u."RECORD"
and u."RECORD" = ri."RECORD"
and (a.audit_pass_date between #{beginDate} and #{endDate})
and a.apply_type ='SB_TY'
and a.audit_status='已完成'
and u."PROVINCE" <![CDATA[<>]]> ''
and u."CITY" <![CDATA[<>]]> ''
and u."COUNTY" <![CDATA[<>]]> ''
) c
where
c.areaCode like concat('%',#{cityCode}, '%')
group by
c.equ_list,
c.equ_category,
c.equ_define
</select>
</mapper>
......@@ -253,4 +253,40 @@
WHERE ur.sequence_nbr = #{sequenceNbr}
LIMIT 1
</select>
<select id="queryScrappedDeviceStaticListData"
resultType="com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto">
select
c.equ_list,
c.equ_category,
c.equ_define,
count(1) as num
from
(SELECT
ri.equ_list,
ri.equ_category,
ri.equ_define,
concat(u.PROVINCE,'#', u.CITY,'#', u.COUNTY) as areaCode
FROM
"tzs_jg_scrap_cancel_eq" ae,
tzs_jg_scrap_cancel a,
"idx_biz_jg_use_info" u,
idx_biz_jg_register_info ri
where
a.sequence_nbr = ae.equip_transfer_id
and ae.equ_id = u."RECORD"
and u."RECORD" = ri."RECORD"
and (a.audit_pass_date between #{beginDate} and #{endDate})
and a.cancel_type ='1'
and a.audit_status='已完成'
and u."PROVINCE" <![CDATA[<>]]> ''
and u."CITY" <![CDATA[<>]]> ''
and u."COUNTY" <![CDATA[<>]]> ''
) c
where
c.areaCode like concat('%',#{cityCode}, '%')
group by
c.equ_list,
c.equ_category,
c.equ_define
</select>
</mapper>
......@@ -557,4 +557,39 @@
LEFT JOIN idx_biz_jg_register_info jri ON re.equ_id = jri.RECORD
where ur.sequence_nbr = #{sequenceNbr}
</select>
<select id="queryNewDeviceStaticListData"
resultType="com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto">
select
c.equ_list,
c.equ_category,
c.equ_define,
count(1) as num
from
(SELECT
ri.equ_list,
ri.equ_category,
ri.equ_define,
concat(u.PROVINCE,'#', u.CITY,'#', u.COUNTY) as areaCode
FROM
"tzs_jg_use_registration_eq" ae,
tzs_jg_use_registration a,
"idx_biz_jg_use_info" u,
idx_biz_jg_register_info ri
where
ae.equ_id = u."RECORD"
and a.sequence_nbr = ae.equip_transfer_id
and u."RECORD" = ri."RECORD"
and (a.audit_pass_date between #{beginDate} and #{endDate})
and a.status='已完成'
and u."PROVINCE" <![CDATA[<>]]> ''
and u."CITY" <![CDATA[<>]]> ''
and u."COUNTY" <![CDATA[<>]]> ''
) c
where
c.areaCode like concat('%',#{cityCode}, '%')
group by
c.equ_list,
c.equ_category,
c.equ_define
</select>
</mapper>
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.DPStatisticsServiceImpl;
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;
import java.util.List;
import java.util.Map;
/**
* 大屏统计controller
*
* @author Administrator
*/
@RestController
@RequestMapping("/db/statistics")
@Api(tags = "大屏统计")
public class DPStatisticsController {
private DPStatisticsServiceImpl statisticsService;
public DPStatisticsController(DPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService;
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏总览右侧-使用登记统计", notes = "大屏总览右侧-使用登记统计")
@PostMapping(value = "/useRegister/count/byEquList")
public ResponseModel<Map<String, Object>> useRegisterCountByEquList(@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.useRegisterCountByEquList(dpFilterParamDto));
}
}
......@@ -135,7 +135,7 @@ public class JgChangeRegistrationNameController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getTableData")
@ApiOperation(httpMethod = "GET", value = "获取", notes = "根据sequenceNbr查询单个详情")
@ApiOperation(httpMethod = "GET", value = "获取当前企业下,某个接收机构下的使用登记证信息", notes = "获取当前企业下,某个接收机构下的使用登记证信息")
public ResponseModel<Map<String, Object>> getTableData(JgUseRegistrationManageDto dto) {
if (ValidationUtil.isEmpty(dto.getUseUnitCreditCode())) {
// 不传的话取当前登录单位的统一信用代码
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationReformDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -127,4 +132,56 @@ public class JgChangeRegistrationReformController extends BaseController {
@RequestParam(value = "printType", defaultValue = "0") String printType){
jgChangeRegistrationReformServiceImpl.exportUseRegistrationCertificate(sequenceNbr, response, printType);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping (value = "/getEquDetail")
@ApiOperation(httpMethod = "GET", value = "根据使用登记证查询设备详情(前端组件默认传参record)", notes = "根据使用登记证查询设备详情")
public ResponseModel<Map<String, Object>> getEquDetail(@RequestParam String record) {
return ResponseHelper.buildResponse(jgChangeRegistrationReformServiceImpl.getEquDetail(record));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping (value = "/getUseRegistrationCodeData")
@ApiOperation(httpMethod = "GET", value = "获取当前企业,某接收机构审批的使用登记证信息", notes = "获取当前企业,某接收机构审批的使用登记证信息")
public ResponseModel<Page<JgUseRegistrationManageDto>> getUseRegistrationCodeData(
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "EQU_LIST_CODE", required = false) String EQU_LIST_CODE,
@RequestParam(value = "EQU_CATEGORY_CODE", required = false) String EQU_CATEGORY_CODE,
@RequestParam(value = "equList", required = false) String equList,
@RequestParam(value = "receiveCompanyCode") String receiveCompanyCode
) {
JgUseRegistrationManageDto dto = new JgUseRegistrationManageDto();
Page<JgUseRegistrationManageDto> page = new Page<JgUseRegistrationManageDto>();
page.setCurrent(current);
page.setSize(size);
ReginParams info = getSelectedOrgInfo();
if (info.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) {
dto.setDataType(BaseController.COMPANY_TYPE_COMPANY);
dto.setUseUnitCreditCode(CompanyTypeEnum.INDIVIDUAL.getName().equals(info.getCompany().getCompanyType()) ?
info.getCompany().getCompanyCode().split("_")[1] : info.getCompany().getCompanyCode());
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
dto.setReceiveCompanyCode(info.getCompany().getCompanyCode());
}
// 新增时使用EQU_LIST_CODE,适配组件,适配原有表单
if (!ObjectUtils.isEmpty(EQU_LIST_CODE)){
dto.setEquListCode(EQU_LIST_CODE);
}
// 流程页面使用equList,适配组件,适配原有表单
if (!ObjectUtils.isEmpty(equList)){
dto.setEquListCode(equList);
}
// 流程页面使用equList,适配组件,适配原有表单
if (!ObjectUtils.isEmpty(EQU_CATEGORY_CODE)){
dto.setEquCategoryCode(EQU_CATEGORY_CODE);
}
if (!ValidationUtil.isEmpty(receiveCompanyCode)){
String[] codes = receiveCompanyCode.split("_");
if (!ValidationUtil.isEmpty(codes)){
dto.setReceiveCompanyCode(codes[0]);
}
}
return ResponseHelper.buildResponse(jgChangeRegistrationReformServiceImpl.getUseRegistrationCodeData(page, dto));
}
}
......@@ -30,6 +30,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -112,6 +113,7 @@ public class JgUseRegistrationManageController extends BaseController {
public ResponseModel<JgUseRegistrationManage> detail(@RequestParam(value = "sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryDetailBySeq(sequenceNbr));
}
/**
* 根据sequenceNbr查询使用登记证操作流水---使用登记证详情用
*
......@@ -124,9 +126,11 @@ public class JgUseRegistrationManageController extends BaseController {
public ResponseModel<List<Map<String, String>>> operationRecord(@RequestParam(value = "sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.operationRecord(sequenceNbr));
}
/**
* 根据sequenceNbr查询使用登记证对应设备列表---使用登记证详情用
* 分页接口
*
* @param sequenceNbr 主键
* @return
*/
......@@ -134,9 +138,9 @@ public class JgUseRegistrationManageController extends BaseController {
@GetMapping(value = "/detail/equList")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询使用登记证对应设备列表---使用登记证详情用", notes = "根据sequenceNbr查询使用登记证对应设备列表---使用登记证详情用")
public ResponseModel<Page<JSONObject>> certificateEquList(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.certificateEquList(current,size,sequenceNbr));
@RequestParam(value = "size") int size,
@RequestParam(value = "sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.certificateEquList(current, size, sequenceNbr));
}
/**
......@@ -238,4 +242,25 @@ public class JgUseRegistrationManageController extends BaseController {
.collect(Collectors.toList());
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryEquForPageByCertificateSeqList(collect, current, size));
}
/**
* 证的 相关打印
* @param response 响应
* @param printType certificateNormalPrint:使用登记证 普打
* certificateNestedPrint:使用登记证 套打
* useFlagNormalPrint:使用标志 普打
* useFlagNestedPrint:使用标志 套打
* exportSummaryTable;工业管道和气瓶 汇总表下载
* @param certificateSeq 证书的seq
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/printCertificate")
@ApiOperation(httpMethod = "GET", value = "使用登记证 相关打印", notes = "使用登记证 相关打印")
public void printCertificate(HttpServletResponse response,
@RequestParam(value = "printType") String printType,
@RequestParam(value = "certificateSeq") String certificateSeq) {
jgUseRegistrationManageServiceImpl.printCertificate(response,printType, certificateSeq);
}
}
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.date.DateUtil;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.LegendDataDto;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEnableDisableMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 大屏统计实现类
*
* @author Administrator
*/
@Service
public class DPStatisticsServiceImpl {
/**
* 压力容器设备种类
*/
private final static String EQU_LIST_CYLINDER = "2000";
/**
* 气瓶设备类别
*/
private final static String EQU_CATEGORY_CYLINDER = "2300";
private EquipmentCategoryMapper equipmentCategoryMapper;
private JgUseRegistrationMapper useRegistrationMapper;
private JgEnableDisableMapper enableDisableMapper;
private JgScrapCancelMapper scrapCancelMapper;
public DPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JgUseRegistrationMapper useRegistrationMapper, JgEnableDisableMapper enableDisableMapper, JgScrapCancelMapper scrapCancelMapper) {
this.equipmentCategoryMapper = equipmentCategoryMapper;
this.useRegistrationMapper = useRegistrationMapper;
this.enableDisableMapper = enableDisableMapper;
this.scrapCancelMapper = scrapCancelMapper;
}
public Map<String, Object> useRegisterCountByEquList(DPFilterParamDto dpFilterParamDto) {
// 1.查询条件构造未上送时间时,默认查询数据为近一个月数据
this.setDefaultFilter(dpFilterParamDto);
// 2.按照前端约定格式返回数据
Map<String, Object> result = new HashMap<>();
List<LegendDataDto> legendDataDtos = this.buildLegendDataList();
//2.1 图列数据构造
result.put("legendData", legendDataDtos);
// 8大类设备种类
List<EquipmentCategoryDto> equipmentCategoryDtos = equipmentCategoryMapper.selectClassify();
//2.2 x轴数据构造
result.put("xdata", this.getXData(equipmentCategoryDtos));
//2.3 y轴数据构造
this.buildYData(result, legendDataDtos, dpFilterParamDto, equipmentCategoryDtos);
return result;
}
private List<LegendDataDto> buildLegendDataList() {
List<LegendDataDto> legendDataDtos = new ArrayList<>();
legendDataDtos.add(LegendDataDto.builder().dataKey("newDevice").value("新增登记设备").build());
legendDataDtos.add(LegendDataDto.builder().dataKey("stoppedDevice").value("报停设备").build());
legendDataDtos.add(LegendDataDto.builder().dataKey("scrappedDevice").value("报废设备").build());
return legendDataDtos;
}
private void buildYData(Map<String, Object> result, List<LegendDataDto> legendDataDtos, DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) {
// 待统计的数据本来sql可以单独统计,但是要求气瓶单独从压力容器里拎出来,与八大类同级,故java处理
// 1.新增登记统计
result.put("newDevice", this.getNewDeviceCountData(dpFilterParamDto, equipmentCategoryDtos));
// 2.新增报停设备统计
result.put("stoppedDevice", this.getStoppedDeviceCountData(dpFilterParamDto, equipmentCategoryDtos));
// 3.新增报废设备统计
result.put("scrappedDevice", this.getScrappedDeviceCountData(dpFilterParamDto, equipmentCategoryDtos));
}
private List<Integer> getNewDeviceCountData(DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) {
List<EquipBizCountDto> staticsData = useRegistrationMapper.queryNewDeviceStaticListData(dpFilterParamDto);
return countNumByEquList(equipmentCategoryDtos, staticsData);
}
private List<Integer> getStoppedDeviceCountData(DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) {
List<EquipBizCountDto> staticsData = enableDisableMapper.queryStoppedDeviceStaticListData(dpFilterParamDto);
return countNumByEquList(equipmentCategoryDtos, staticsData);
}
private List<Integer> getScrappedDeviceCountData(DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) {
List<EquipBizCountDto> staticsData = scrapCancelMapper.queryScrappedDeviceStaticListData(dpFilterParamDto);
return countNumByEquList(equipmentCategoryDtos, staticsData);
}
private List<Integer> countNumByEquList(List<EquipmentCategoryDto> equipmentCategoryDtos, List<EquipBizCountDto> bizCountDtos) {
List<Integer> lineData = new ArrayList<>();
// 8大类数据统计数量
equipmentCategoryDtos.forEach(equipmentCategoryDto -> {
int num = 0;
// 压力容器要去掉气瓶2300,气瓶单独统计
if (EQU_LIST_CYLINDER.equals(equipmentCategoryDto.getCode())) {
num = bizCountDtos.stream().filter(c -> c.getEquList().equals(equipmentCategoryDto.getCode()) && !EQU_CATEGORY_CYLINDER.equals(c.getEquCategory())).mapToInt(EquipBizCountDto::getNum).sum();
} else {
num = bizCountDtos.stream().filter(c -> c.getEquList().equals(equipmentCategoryDto.getCode())).mapToInt(EquipBizCountDto::getNum).sum();
}
lineData.add(num);
});
// 再增加气瓶(设备类别2300)专项
int num = bizCountDtos.stream().filter(c -> EQU_CATEGORY_CYLINDER.equals(c.getEquCategory())).mapToInt(EquipBizCountDto::getNum).sum();
lineData.add(num);
return lineData;
}
private List<String> getXData(List<EquipmentCategoryDto> equipmentCategoryDtos) {
// 8大类 + 气瓶 注意数据顺序和要和这个x轴一致
List<String> names = equipmentCategoryDtos.stream().map(EquipmentCategoryDto::getName).collect(Collectors.toList());
names.add("气瓶");
return names;
}
private void setDefaultFilter(DPFilterParamDto dpFilterParamDto) {
if (StringUtils.isEmpty(dpFilterParamDto.getBeginDate())) {
dpFilterParamDto.setBeginDate(DateUtil.lastMonth().toDateStr());
}
if (StringUtils.isEmpty(dpFilterParamDto.getEndDate())) {
dpFilterParamDto.setEndDate(DateUtil.today());
}
}
}
......@@ -123,6 +123,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
public static final String WHETHER_SKID_MOUNTED_PRESSURE_VESSEL = "WHETHER_SKID_MOUNTED_PRESSURE_VESSEL";
// 检验检测机构
public static final String INSPECTION_AND_TESTING_INSTITUTIONS = "检验检测机构";
// 设备纳管 纳管:true 未纳管:false
public static final String IS_INTO_MANAGEMENT = "IS_INTO_MANAGEMENT";
/**
* 设备来源 new:新设备录入 his:历史数据录入
*/
public static final String EQUIP_SOURCE = "EQUIP_SOURCE";
/**
* 业务类型 0:单个新增 1:批量导入
*/
public static final String BUSINESS_SCENARIOS = "businessScenarios";
// 需要转化成jsonObject的附件字段
public static String[] jsonFields = {"insOtherAccessories", "installContractAttachment", "installProxyStatementAttachment"};
@Autowired
......@@ -557,6 +567,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
registerInfoMap.put("registerinfoSeq", registerInfo.getSequenceNbr());
registerInfoMap.put("sequenceNbr", registerInfo.getSequenceNbr());
registerInfoMap.put("productPhoto", JSON.parseArray(registerInfo.getProductPhoto()));
registerInfoMap.put("useRegistrationCode", registerInfo.getUseOrgCode());
if (CollectionUtils.isNotEmpty(categoryList0)) {
registerInfoMap.put("equListDesc", categoryList0.get(0).getName());
}
......@@ -1307,6 +1318,13 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
seqBuilder.must(QueryBuilders.termsQuery("SEQUENCE_NBR.keyword", strings));
boolMust.must(seqBuilder);
}
if (!ObjectUtils.isEmpty(map.getString(IS_INTO_MANAGEMENT))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String param = QueryParser.escape(map.getString(IS_INTO_MANAGEMENT));
pBuilder.must(QueryBuilders.matchQuery(IS_INTO_MANAGEMENT, param));
boolMust.must(pBuilder);
}
if (!ObjectUtils.isEmpty(map.getString(EQU_CATEGORY))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String param = QueryParser.escape(map.getString(EQU_CATEGORY));
......@@ -1589,18 +1607,20 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 设备品种
String equDefine = String.valueOf(equipmentClassForm.get(EQU_DEFINE));
// 业务场景
String businessScenarios = String.valueOf(equipmentClassForm.get("businessScenarios"));
String businessScenarios = String.valueOf(equipmentClassForm.get(BUSINESS_SCENARIOS));
// 数据来源 历史数据his 新数据new
String equipSource = String.valueOf(equipmentClassForm.get(EQUIP_SOURCE));
// 操作类型
String operateType = ValidationUtil.isEmpty(equipmentInfoForm.get(SEQUENCE_NBR)) ? OPERATESAVE : OPERATEEDIT;
// 设备是否复制而来,复制来的设备走新增
boolean isCopy = !ValidationUtil.isEmpty(equipmentInfoForm.get(IS_COPY));
operateType = isCopy ? OPERATESAVE : operateType;
String dataSource = OPERATESAVE.equals(operateType) ? "jg" : equipmentInfoForm.get("DATA_SOURCE").toString();
// 新增设备保存时 : 历史设备=》dataSource为"his" jg新录入设备dataSource为"jg"
String dataSource = OPERATESAVE.equals(operateType) ? ("new".equals(equipSource) ? "jg" : "his") : equipmentInfoForm.get("DATA_SOURCE").toString();
if (isCopy) {
String sourceRecord = equipmentClassForm.get(RECORD).toString();
dataSource = "jg_" + sourceRecord;
dataSource = "new".equals(equipSource) ? ("jg_" + sourceRecord) : ("his_" + sourceRecord);
}
record = OPERATESAVE.equals(operateType) ? UUID.randomUUID().toString() : equipmentInfoForm.get(RECORD).toString();
......@@ -1629,6 +1649,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
useInfo.setRecord(record);
useInfo.setRecDate(date);
useInfo.setDataSource(dataSource);
useInfo.setIsIntoManagement(Boolean.FALSE);
useInfo.setSequenceNbr(OPERATESAVE.equals(operateType) ? null : String.valueOf(equipmentInfoForm.get("USEINFO_SEQ")));
if (companyTypeStr.contains(CompanyTypeEnum.USE.getCode()) || companyTypeStr.contains(CompanyTypeEnum.INDIVIDUAL.getCode())) {
useInfo.setUseUnitCreditCode(companyInfoMap.get("creditCode").toString());
......
......@@ -44,6 +44,7 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import io.seata.spring.annotation.GlobalTransactional;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
......@@ -148,6 +149,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
private JgCertificateChangeRecordEqServiceImpl jgCertificateChangeRecordEqService;
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationName> save2(String submitType, JSONObject requestParam) {
Map<String, JSONObject> jgRegistrationInfoMap = (Map<String, JSONObject>) JSONObject.parseObject(JSONObject.toJSONString(requestParam), Map.class);
return Collections.singletonList(this.save(submitType, jgRegistrationInfoMap));
......@@ -211,6 +213,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
tzsServiceFeignClient.commonUpdateEsDataByIds(objMap);
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public JgChangeRegistrationName save(String submitType, Map<String, JSONObject> jgRegistrationInfoMap) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String[] taskName = new String[]{"流程结束"};
......@@ -381,6 +385,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public JgChangeRegistrationNameDto updateInfo(String submitType, JgChangeRegistrationNameDto jgChangeRegistrationNameDto, String op) {
if (Objects.isNull(jgChangeRegistrationNameDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空");
......@@ -553,6 +558,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void revocation(String instanceId, String taskId) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
......@@ -624,6 +630,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void flowExecute(Long id, String instanceId, String operate, String comment, String nextTaskId) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
......@@ -725,10 +732,10 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
// 完成时 下一步骤可执行人清空
jgChangeRegistrationName.setNextExecuteUserIds("");
jgChangeRegistrationName.setNextTaskId(nextTaskId);
// 修改业务信息
updateInfoOther(jgChangeRegistrationName);
// 更新代办
updateTaskModel(jgChangeRegistrationName, operate);
TaskV2Model taskV2Model = updateTaskModel(jgChangeRegistrationName, operate);
// 修改业务信息
updateInfoOther(taskV2Model, jgChangeRegistrationName);
}
// 保存redis最新流程数据
commonService.saveExecuteFlowData2Redis(jgChangeRegistrationName.getInstanceId(), this.buildInstanceRuntimeData(jgChangeRegistrationName));
......@@ -769,7 +776,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
return commonService.getDictionaryCodeByName(auditStatus);
}
public void updateInfoOther(JgChangeRegistrationName jgChangeRegistrationName) {
public void updateInfoOther(TaskV2Model taskV2Model, JgChangeRegistrationName jgChangeRegistrationName) {
// LambdaQueryWrapper<JgChangeRegistrationNameEq> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(JgChangeRegistrationNameEq::getNameChangeRegistrationId, jgChangeRegistrationName.getSequenceNbr());
// List<String> collect = jgChangeRegistrationNameEqService.list(wrapper).stream().map(JgChangeRegistrationNameEq::getEquId).collect(Collectors.toList());
......@@ -846,6 +853,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
lambda.in(JgUseRegistrationManage::getSequenceNbr, collect);
JgUseRegistrationManage jgUseRegistrationManage = new JgUseRegistrationManage();
jgUseRegistrationManage.setUseUnitName(jgChangeRegistrationName.getNewUseUnitName());
jgUseRegistrationManage.setAuditPassDate(new Date());
jgUseRegistrationManageService.update(jgUseRegistrationManage, lambda);
// 业务流水生成
......@@ -874,6 +882,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgCertificateChangeRecord.setUseUnitName(jgChangeRegistrationName.getUseUnitName());
jgCertificateChangeRecord.setEquCategory(!ObjectUtils.isEmpty(object.get("equCategoryCode")) ? object.get("equCategoryCode").toString() : null);
jgCertificateChangeRecord.setReceiveCompanyCode(jgChangeRegistrationName.getReceiveOrgCode());
jgCertificateChangeRecord.setRoutePath(taskV2Model.getRoutePath());
// 保存证流水信息
jgCertificateChangeRecordService.save(jgCertificateChangeRecord);
// 生成证下设备流水信息
......
......@@ -1215,8 +1215,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
map1.put("IS_INTO_MANAGEMENT ", true);
map1.put("USC_UNIT_CREDIT_CODE", jgInstallationNotice.getInstallUnitCreditCode());
map1.put("USC_UNIT_NAME", jgInstallationNotice.getInstallUnitName());
map1.put("USE_PLACE", String.format("%s/%s/%s", jgInstallationNotice.getProvinceName(), jgInstallationNotice.getCityName(), jgInstallationNotice.getCounty()));
map1.put("ADDRESS", String.format("%s/%s", jgInstallationNotice.getStreetName(), jgInstallationNotice.getAddress()));
map1.put("USE_PLACE", String.format("%s/%s/%s/%s", jgInstallationNotice.getProvinceName(), jgInstallationNotice.getCityName(), jgInstallationNotice.getCountyName(), jgInstallationNotice.getStreetName()));
map1.put("ADDRESS",jgInstallationNotice.getAddress());
objMap.put(tzsJgOtherInfo.getRecord(), map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(objMap);
}
......
......@@ -1169,7 +1169,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
LambdaQueryWrapper<IdxBizJgUseInfo> lambda = new QueryWrapper<IdxBizJgUseInfo>().lambda();
lambda.eq(IdxBizJgUseInfo::getRecord, String.valueOf(mapData.get("equipId")));
IdxBizJgUseInfo useInfo = useInfoMapper.selectOne(lambda);
String usePlace = useInfo.getProvinceName() + "/" + useInfo.getCityName() + "/" + useInfo.getCountyName() + useInfo.getStreetName();
String usePlace = useInfo.getProvinceName() + "/" + useInfo.getCityName() + "/" + useInfo.getCountyName() +"/" + useInfo.getStreetName();
// 更新es
updateEsData(usePlace, mapData, otherInfo, jgUseRegistration);
jgResumeInfoService.createWithModel(JgResumeInfoDto.builder()
......
......@@ -129,19 +129,19 @@
"type": "108",
"pageType": "draft",
"name": "更名变更登记-暂存打开",
"url": "/mixuap?appId=1742358052905971713&id=1739168596900212738&roleIds={roleIds}&userId={userId}&formType=edit"
"url": "/mixuap?appId=1742358052905971713&id=1739168596900212738&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "108",
"pageType": "look",
"name": "更名变更登记-查看",
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&formType=detail"
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&pageType=detail"
},
{
"type": "108",
"pageType": "edit",
"name": "更名变更登记",
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&formType=edit"
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "109",
......
package com.yeejoin.amos.boot.module.jyjc.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
*/
@Data
@ApiModel
public class InspectTimeCountDto {
@ApiModelProperty(value = "检验类型")
private String bizType;
@ApiModelProperty(value = "设备种类code")
private String equList;
@ApiModelProperty(value = "设备类别code")
private String equCategory;
@ApiModelProperty(value = "设备品种code")
private String equipDefine;
@ApiModelProperty(value = "次数")
private Integer num;
@ApiModelProperty(value = "区域信息省#市#区,按照#分割")
private String areaCode;
}
package com.yeejoin.amos.boot.module.jyjc.api.mapper;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectTimeCountDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.DPFilterParamDto;
import java.util.List;
/**
* Mapper 接口
......@@ -11,4 +15,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface JyjcInspectionApplicationEquipMapper extends BaseMapper<JyjcInspectionApplicationEquip> {
public void deleteByApplicationSeq(Long applicationSeq);
/**
* 检验检测次数统计维度按照设备种类、检验类型进行统计
* @param dpFilterParamDto g过滤条件
* @return 统计列表
*/
List<InspectTimeCountDto> countInspectTimeCountByTypeAndEquList(DPFilterParamDto dpFilterParamDto);
}
package com.yeejoin.amos.boot.module.jyjc.api.model;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 大屏筛选过滤对象
*
* @author Administrator
*/
@Data
public class DPFilterParamDto {
/**
* 区域
*/
@NotBlank(message = "区域编码不能为空!")
private String cityCode;
/**
* 数据统计的开始日期
*/
private String beginDate;
/**
* 数据统计的结束日期
*/
private String endDate;
}
......@@ -12,4 +12,39 @@
</delete>
<select id="countInspectTimeCountByTypeAndEquList"
resultType="com.yeejoin.amos.boot.module.jyjc.api.dto.InspectTimeCountDto">
select
c.biz_type,
c.equ_list,
c.equ_category,
c.equ_define,
count(1) as num
from
(SELECT
ae.equ_list,
ae.equ_category,
ae.equ_define,
a.biz_type,
concat(u.PROVINCE,'#', u.CITY,'#', u.COUNTY) as areaCode
FROM
"tz_jyjc_inspection_application_equip" ae,
tz_jyjc_inspection_application a,
"idx_biz_jg_use_info" u
where
ae.equip_unicode = u."RECORD"
and a.sequence_nbr = ae.application_seq
and (a.application_date between #{beginDate} and #{endDate})
and a.status='6616'
and u."PROVINCE" <![CDATA[<>]]> ''
and u."CITY" <![CDATA[<>]]> ''
and u."COUNTY" <![CDATA[<>]]> ''
) c
where
c.areaCode like concat('%',#{cityCode}, '%')
group by c.biz_type,
c.equ_list,
c.equ_category,
c.equ_define
</select>
</mapper>
package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import com.yeejoin.amos.boot.module.jyjc.api.model.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.DPStatisticsServiceImpl;
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;
import java.util.List;
import java.util.Map;
/**
* 大屏统计controller
*
* @author Administrator
*/
@RestController
@RequestMapping("/db/statistics")
@Api(tags = "大屏统计")
public class DPStatisticsController {
private DPStatisticsServiceImpl statisticsService;
public DPStatisticsController(DPStatisticsServiceImpl statisticsService) {
this.statisticsService = statisticsService;
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "检验检测次数统计", notes = "按照维度设备种类、检验类型进行统计")
@PostMapping(value = "/inspectTime/count/byEquListAndInspectType")
public ResponseModel<Map<String, Object>> inspectTimeCountByTypeAndEquList(@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.inspectTimeCountByTypeAndEquList(dpFilterParamDto));
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.date.DateUtil;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectTimeCountDto;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.DPFilterParamDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* 大屏统计实现类
*
* @author Administrator
*/
@Service
public class DPStatisticsServiceImpl {
/**
* 压力容器设备种类
*/
private final static String EQU_LIST_CYLINDER = "2000";
/**
* 气瓶设备类别
*/
private final static String EQU_CATEGORY_CYLINDER = "2300";
private EquipmentCategoryMapper equipmentCategoryMapper;
private JyjcInspectionApplicationEquipMapper inspectionApplicationEquipMapper;
public DPStatisticsServiceImpl(EquipmentCategoryMapper equipmentCategoryMapper, JyjcInspectionApplicationEquipMapper inspectionApplicationEquipMapper) {
this.equipmentCategoryMapper = equipmentCategoryMapper;
this.inspectionApplicationEquipMapper = inspectionApplicationEquipMapper;
}
public Map<String, Object> inspectTimeCountByTypeAndEquList(DPFilterParamDto dpFilterParamDto) {
// 1.查询条件构造未上送时间时,默认查询数据为近一个月数据
this.setDefaultFilter(dpFilterParamDto);
// 2.按照前端约定格式返回数据
Map<String, Object> result = new HashMap<>();
//2.1 图列数据构造
List<BizTypeEnum> bizTypeEnums = getBizTypeList();
result.put("legendData", this.getLegendData(bizTypeEnums));
// 8大类设备种类
List<EquipmentCategoryDto> equipmentCategoryDtos = equipmentCategoryMapper.selectClassify();
//2.2 x轴数据构造
result.put("xdata", this.getXData(equipmentCategoryDtos));
//2.3 y轴数据构造
this.buildYData(result, bizTypeEnums, dpFilterParamDto, equipmentCategoryDtos);
return result;
}
private void buildYData(Map<String, Object> result, List<BizTypeEnum> bizTypeEnums, DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) {
// 待统计的数据本来sql可以单独统计,但是要求气瓶单独从压力容器里拎出来,与八大类同级,故java处理
List<InspectTimeCountDto> inspectTimeCountDtos = inspectionApplicationEquipMapper.countInspectTimeCountByTypeAndEquList(dpFilterParamDto);
bizTypeEnums.forEach(bizTypeEnum -> {
result.put(bizTypeEnum.getCode(), this.countNumByBizTypeAndEquList(equipmentCategoryDtos, bizTypeEnum.getCode(), inspectTimeCountDtos));
});
}
private List<Integer> countNumByBizTypeAndEquList(List<EquipmentCategoryDto> equipmentCategoryDtos, String bizType, List<InspectTimeCountDto> inspectTimeCountDtos) {
List<Integer> item = new ArrayList<>();
// 8大类数据统计数量
equipmentCategoryDtos.forEach(equipmentCategoryDto -> {
int num = 0;
// 压力容器要去掉气瓶2300,气瓶单独统计
if (EQU_LIST_CYLINDER.equals(equipmentCategoryDto.getCode())) {
num = inspectTimeCountDtos.stream().filter(c -> c.getBizType().equals(bizType) && c.getEquList().equals(equipmentCategoryDto.getCode()) && !EQU_CATEGORY_CYLINDER.equals(c.getEquCategory())).mapToInt(InspectTimeCountDto::getNum).sum();
} else {
num = inspectTimeCountDtos.stream().filter(c -> c.getBizType().equals(bizType) && c.getEquList().equals(equipmentCategoryDto.getCode())).mapToInt(InspectTimeCountDto::getNum).sum();
}
item.add(num);
});
// 再增加气瓶(设备类别2300)专项
int num = inspectTimeCountDtos.stream().filter(c -> c.getBizType().equals(bizType) && EQU_CATEGORY_CYLINDER.equals(c.getEquCategory())).mapToInt(InspectTimeCountDto::getNum).sum();
item.add(num);
return item;
}
private List<String> getXData(List<EquipmentCategoryDto> equipmentCategoryDtos) {
// 8大类 + 气瓶 注意数据顺序和要和这个x轴一致
List<String> names = equipmentCategoryDtos.stream().map(EquipmentCategoryDto::getName).collect(Collectors.toList());
names.add("气瓶");
return names;
}
private List<BizTypeEnum> getBizTypeList() {
return Arrays.asList(BizTypeEnum.FIRST_INSPECTION, BizTypeEnum.SUPERVISE, BizTypeEnum.DETECTION);
}
private List<Map<String, Object>> getLegendData(List<BizTypeEnum> bizTypeEnums) {
return bizTypeEnums.stream().map(b->{
Map<String, Object> item = new HashMap<>();
item.put("dataKey", b.getCode());
item.put("value", b.getName());
return item;
}).collect(Collectors.toList());
}
private void setDefaultFilter(DPFilterParamDto dpFilterParamDto) {
if (StringUtils.isEmpty(dpFilterParamDto.getBeginDate())) {
dpFilterParamDto.setBeginDate(DateUtil.lastMonth().toDateStr());
}
if (StringUtils.isEmpty(dpFilterParamDto.getEndDate())) {
dpFilterParamDto.setEndDate(DateUtil.today());
}
}
}
......@@ -231,4 +231,12 @@ public class IdxBizJgUseInfo extends TzsBaseEntity {
@TableField("\"SAFETY_MANAGER_ID\"")
private String safetyManagerId;
/**
* 是否是否纳管:true - 已纳管 false-未纳管
*/
@TableField("\"IS_INTO_MANAGEMENT\"")
private Boolean isIntoManagement;
}
......@@ -101,6 +101,7 @@
BRAND_NAME,
EQU_TYPE,
DATA_SOURCE,
IS_INTO_MANAGEMENT,
WHETHER_VEHICLE_CYLINDER,
WHETHER_SKID_MOUNTED_PRESSURE_VESSEL,
DATE_FORMAT(PRODUCE_DATE, '%Y-%m-%d %H:%i:%s') as PRODUCE_DATE
......
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