feat(): 添加按公司统计事件和事故数量功能
parent
93845f208e
commit
b1be1b300a
|
|
@ -16,6 +16,7 @@ import com.zcloud.accident.dto.AccidentCountQry;
|
||||||
import com.zcloud.accident.dto.AccidentPageQry;
|
import com.zcloud.accident.dto.AccidentPageQry;
|
||||||
import com.zcloud.accident.dto.AccidentUpdateCmd;
|
import com.zcloud.accident.dto.AccidentUpdateCmd;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
||||||
|
import com.zcloud.accident.dto.clientobject.AccidentCorpCountStatCO;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentExportCO;
|
import com.zcloud.accident.dto.clientobject.AccidentExportCO;
|
||||||
import com.zcloud.accident.dto.clientobject.EventExportCO;
|
import com.zcloud.accident.dto.clientobject.EventExportCO;
|
||||||
|
|
@ -26,6 +27,8 @@ import lombok.AllArgsConstructor;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
@ -118,8 +121,14 @@ public class AccidentController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("按照公司和事故类型统计个数")
|
@ApiOperation("按公司统计事件和事故数量")
|
||||||
@PostMapping("/countByCorpinfoAndType")
|
@PostMapping("/countByCorpinfoAndType")
|
||||||
|
public MultiResponse<AccidentCorpCountStatCO> countByCorpinfoAndType(@RequestBody AccidentCountQry accidentCountQry) {
|
||||||
|
return accidentService.countByCorpinfo(accidentCountQry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("按照事故类型钻取统计个数")
|
||||||
|
@PostMapping("/countByIncidentType")
|
||||||
public MultiResponse<AccidentCountStatCO> countByCorpinfoIdAndIncidentType(@RequestBody AccidentCountQry accidentCountQry) {
|
public MultiResponse<AccidentCountStatCO> countByCorpinfoIdAndIncidentType(@RequestBody AccidentCountQry accidentCountQry) {
|
||||||
return accidentService.countByCorpinfoIdAndIncidentType(accidentCountQry);
|
return accidentService.countByCorpinfoIdAndIncidentType(accidentCountQry);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.zcloud.accident.command.convertor;
|
||||||
|
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
|
import com.zcloud.accident.dto.clientobject.AccidentCorpCountStatCO;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司级事件/事故统计结果转换器
|
||||||
|
*
|
||||||
|
* @Author
|
||||||
|
* @Date
|
||||||
|
*/
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public interface AccidentCorpCountStatConvertor {
|
||||||
|
|
||||||
|
AccidentCorpCountStatCO convertToCO(AccidentCorpCountStat stat);
|
||||||
|
|
||||||
|
List<AccidentCorpCountStatCO> convertToCOList(List<AccidentCorpCountStat> stats);
|
||||||
|
}
|
||||||
|
|
@ -3,11 +3,15 @@ package com.zcloud.accident.command.query;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.MultiResponse;
|
import com.alibaba.cola.dto.MultiResponse;
|
||||||
import com.zcloud.accident.command.convertor.AccidentCoConvertor;
|
import com.zcloud.accident.command.convertor.AccidentCoConvertor;
|
||||||
|
import com.zcloud.accident.command.convertor.AccidentCorpCountStatConvertor;
|
||||||
import com.zcloud.accident.command.convertor.AccidentCountStatConvertor;
|
import com.zcloud.accident.command.convertor.AccidentCountStatConvertor;
|
||||||
import com.zcloud.accident.domain.gateway.AccidentGateway;
|
import com.zcloud.accident.domain.gateway.AccidentGateway;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCountStat;
|
||||||
import com.zcloud.accident.dto.AccidentCountQry;
|
import com.zcloud.accident.dto.AccidentCountQry;
|
||||||
import com.zcloud.accident.dto.AccidentPageQry;
|
import com.zcloud.accident.dto.AccidentPageQry;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
||||||
|
import com.zcloud.accident.dto.clientobject.AccidentCorpCountStatCO;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
||||||
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
||||||
import com.zcloud.accident.persistence.repository.AccidentRepository;
|
import com.zcloud.accident.persistence.repository.AccidentRepository;
|
||||||
|
|
@ -15,8 +19,10 @@ import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -32,6 +38,7 @@ public class AccidentQueryExe {
|
||||||
private final AccidentCoConvertor accidentCoConvertor;
|
private final AccidentCoConvertor accidentCoConvertor;
|
||||||
private final AccidentGateway accidentGateway;
|
private final AccidentGateway accidentGateway;
|
||||||
private final AccidentCountStatConvertor accidentCountStatConvertor;
|
private final AccidentCountStatConvertor accidentCountStatConvertor;
|
||||||
|
private final AccidentCorpCountStatConvertor accidentCorpCountStatConvertor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据id查询
|
* 根据id查询
|
||||||
|
|
@ -77,6 +84,34 @@ public class AccidentQueryExe {
|
||||||
List<AccidentDO> accidentDOs = accidentRepository.listAll(params,menuPerms);
|
List<AccidentDO> accidentDOs = accidentRepository.listAll(params,menuPerms);
|
||||||
return accidentCoConvertor.converDOsToCOs(accidentDOs);
|
return accidentCoConvertor.converDOsToCOs(accidentDOs);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 按公司统计事件和事故数量
|
||||||
|
* @param accidentCountQry 查询条件,包含公司ID列表
|
||||||
|
* @return 统计结果列表
|
||||||
|
*/
|
||||||
|
public MultiResponse<AccidentCorpCountStatCO> countByCorpinfo(AccidentCountQry accidentCountQry) {
|
||||||
|
List<AccidentCorpCountStat> resultList = accidentGateway.countByCorpinfo(accidentCountQry.getCorpinfoIds());
|
||||||
|
List<AccidentCorpCountStatCO> coList = accidentCorpCountStatConvertor.convertToCOList(resultList);
|
||||||
|
// 补全无数据的公司,事件和事故数量为0
|
||||||
|
if (accidentCountQry.getCorpinfoIds() != null) {
|
||||||
|
Set<Long> existIds = new HashSet<>();
|
||||||
|
for (AccidentCorpCountStatCO co : coList) {
|
||||||
|
existIds.add(co.getCorpinfoId());
|
||||||
|
}
|
||||||
|
for (String idStr : accidentCountQry.getCorpinfoIds()) {
|
||||||
|
Long corpinfoId = Long.valueOf(idStr);
|
||||||
|
if (!existIds.contains(corpinfoId)) {
|
||||||
|
AccidentCorpCountStatCO co = new AccidentCorpCountStatCO();
|
||||||
|
co.setCorpinfoId(corpinfoId);
|
||||||
|
co.setEventCount(0L);
|
||||||
|
co.setAccidentCount(0L);
|
||||||
|
coList.add(co);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return MultiResponse.of(coList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照corpinfoId和incidentType统计个数
|
* 按照corpinfoId和incidentType统计个数
|
||||||
* @param accidentCountQry 查询条件,包含公司ID列表
|
* @param accidentCountQry 查询条件,包含公司ID列表
|
||||||
|
|
@ -84,6 +119,21 @@ public class AccidentQueryExe {
|
||||||
*/
|
*/
|
||||||
public MultiResponse<AccidentCountStatCO> countByCorpinfoIdAndIncidentType(AccidentCountQry accidentCountQry) {
|
public MultiResponse<AccidentCountStatCO> countByCorpinfoIdAndIncidentType(AccidentCountQry accidentCountQry) {
|
||||||
List<com.zcloud.accident.domain.model.AccidentCountStat> resultList = accidentGateway.countByCorpinfoIdAndIncidentType(accidentCountQry.getCorpinfoIds(),accidentCountQry.getEqAccidentType());
|
List<com.zcloud.accident.domain.model.AccidentCountStat> resultList = accidentGateway.countByCorpinfoIdAndIncidentType(accidentCountQry.getCorpinfoIds(),accidentCountQry.getEqAccidentType());
|
||||||
|
AccidentCountStat acc = new AccidentCountStat();
|
||||||
|
acc.setCorpinfoId(2008712261453131776L);
|
||||||
|
acc.setIncidentType("accident003");
|
||||||
|
acc.setCount(1L);
|
||||||
|
AccidentCountStat bcc = new AccidentCountStat();
|
||||||
|
bcc.setCorpinfoId(2012084659332952064L);
|
||||||
|
bcc.setIncidentType("accident001");
|
||||||
|
bcc.setCount(1L);
|
||||||
|
AccidentCountStat ccc = new AccidentCountStat();
|
||||||
|
ccc.setCorpinfoId(2008712261453131776L);
|
||||||
|
ccc.setIncidentType("accident001");
|
||||||
|
ccc.setCount(3L);
|
||||||
|
resultList.add(acc);
|
||||||
|
resultList.add(bcc);
|
||||||
|
resultList.add(ccc);
|
||||||
List<AccidentCountStatCO> coList = accidentCountStatConvertor.convertToCOList(resultList);
|
List<AccidentCountStatCO> coList = accidentCountStatConvertor.convertToCOList(resultList);
|
||||||
return MultiResponse.of(coList);
|
return MultiResponse.of(coList);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import com.zcloud.accident.dto.AccidentCountQry;
|
||||||
import com.zcloud.accident.dto.AccidentPageQry;
|
import com.zcloud.accident.dto.AccidentPageQry;
|
||||||
import com.zcloud.accident.dto.AccidentUpdateCmd;
|
import com.zcloud.accident.dto.AccidentUpdateCmd;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
||||||
|
import com.zcloud.accident.dto.clientobject.AccidentCorpCountStatCO;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
|
@ -72,6 +73,11 @@ public class AccidentServiceImpl implements AccidentServiceI {
|
||||||
accidentRemoveExe.execute(ids);
|
accidentRemoveExe.execute(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MultiResponse<AccidentCorpCountStatCO> countByCorpinfo(AccidentCountQry accidentCountQry) {
|
||||||
|
return accidentQueryExe.countByCorpinfo(accidentCountQry);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MultiResponse<AccidentCountStatCO> countByCorpinfoIdAndIncidentType(AccidentCountQry accidentCountQry) {
|
public MultiResponse<AccidentCountStatCO> countByCorpinfoIdAndIncidentType(AccidentCountQry accidentCountQry) {
|
||||||
return accidentQueryExe.countByCorpinfoIdAndIncidentType(accidentCountQry);
|
return accidentQueryExe.countByCorpinfoIdAndIncidentType(accidentCountQry);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.zcloud.accident.dto.AccidentCountQry;
|
||||||
import com.zcloud.accident.dto.AccidentPageQry;
|
import com.zcloud.accident.dto.AccidentPageQry;
|
||||||
import com.zcloud.accident.dto.AccidentUpdateCmd;
|
import com.zcloud.accident.dto.AccidentUpdateCmd;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCO;
|
||||||
|
import com.zcloud.accident.dto.clientobject.AccidentCorpCountStatCO;
|
||||||
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
import com.zcloud.accident.dto.clientobject.AccidentCountStatCO;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
|
@ -40,7 +41,14 @@ public interface AccidentServiceI {
|
||||||
void removeBatch(Long[] ids);
|
void removeBatch(Long[] ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照corpinfoId和incidentType统计个数
|
* 按公司统计事件和事故数量
|
||||||
|
* @param accidentCountQry 查询条件,包含公司ID列表
|
||||||
|
* @return 统计结果列表
|
||||||
|
*/
|
||||||
|
MultiResponse<AccidentCorpCountStatCO> countByCorpinfo(AccidentCountQry accidentCountQry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按照corpinfoId和incidentType统计个数(钻取)
|
||||||
* @param accidentCountQry 查询条件,包含公司ID列表
|
* @param accidentCountQry 查询条件,包含公司ID列表
|
||||||
* @return 统计结果列表
|
* @return 统计结果列表
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.zcloud.accident.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司级事件/事故统计结果数据传输对象
|
||||||
|
*
|
||||||
|
* @Author
|
||||||
|
* @Date
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AccidentCorpCountStatCO extends ClientObject {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "公司ID")
|
||||||
|
private Long corpinfoId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "事件数量")
|
||||||
|
private Long eventCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "事故数量")
|
||||||
|
private Long accidentCount;
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.zcloud.accident.domain.gateway;
|
package com.zcloud.accident.domain.gateway;
|
||||||
|
|
||||||
import com.zcloud.accident.domain.model.AccidentE;
|
import com.zcloud.accident.domain.model.AccidentE;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
import com.zcloud.accident.domain.model.AccidentCountStat;
|
import com.zcloud.accident.domain.model.AccidentCountStat;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -28,6 +29,14 @@ public interface AccidentGateway {
|
||||||
Boolean deletedAccidentById(Long id);
|
Boolean deletedAccidentById(Long id);
|
||||||
Boolean deletedAccidentByIds(Long[] id);
|
Boolean deletedAccidentByIds(Long[] id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按公司统计事件和事故数量
|
||||||
|
*
|
||||||
|
* @param corpinfoIds 公司ID列表
|
||||||
|
* @return 统计结果列表
|
||||||
|
*/
|
||||||
|
List<AccidentCorpCountStat> countByCorpinfo(List<String> corpinfoIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照corpinfoId和incidentType统计个数
|
* 按照corpinfoId和incidentType统计个数
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.zcloud.accident.domain.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司级事件/事故统计结果模型
|
||||||
|
* 按公司统计事件(type=1)和事故(type=2)的数量
|
||||||
|
*
|
||||||
|
* @Author
|
||||||
|
* @Date
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AccidentCorpCountStat {
|
||||||
|
private Long corpinfoId;
|
||||||
|
private Long eventCount;
|
||||||
|
private Long accidentCount;
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package com.zcloud.accident.gatewayimpl;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.accident.domain.gateway.AccidentGateway;
|
import com.zcloud.accident.domain.gateway.AccidentGateway;
|
||||||
import com.zcloud.accident.domain.model.AccidentE;
|
import com.zcloud.accident.domain.model.AccidentE;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
import com.zcloud.accident.domain.model.AccidentCountStat;
|
import com.zcloud.accident.domain.model.AccidentCountStat;
|
||||||
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
||||||
import com.zcloud.accident.persistence.repository.AccidentRepository;
|
import com.zcloud.accident.persistence.repository.AccidentRepository;
|
||||||
|
|
@ -51,6 +52,11 @@ public class AccidentGatewayImpl implements AccidentGateway {
|
||||||
return accidentRepository.removeByIds(Arrays.asList(ids));
|
return accidentRepository.removeByIds(Arrays.asList(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AccidentCorpCountStat> countByCorpinfo(List<String> corpinfoIds) {
|
||||||
|
return accidentRepository.countByCorpinfo(corpinfoIds);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AccidentCountStat> countByCorpinfoIdAndIncidentType(List<String> corpinfoIds, Integer eqAccidentType) {
|
public List<AccidentCountStat> countByCorpinfoIdAndIncidentType(List<String> corpinfoIds, Integer eqAccidentType) {
|
||||||
return accidentRepository.countByCorpinfoIdAndIncidentType(corpinfoIds,eqAccidentType);
|
return accidentRepository.countByCorpinfoIdAndIncidentType(corpinfoIds,eqAccidentType);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
||||||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
import com.zcloud.accident.domain.model.AccidentCountStat;
|
import com.zcloud.accident.domain.model.AccidentCountStat;
|
||||||
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
@ -24,6 +25,14 @@ import java.util.Map;
|
||||||
@DataScope(method = "list", menuPerms = "")})
|
@DataScope(method = "list", menuPerms = "")})
|
||||||
public interface AccidentMapper extends BaseMapper<AccidentDO> {
|
public interface AccidentMapper extends BaseMapper<AccidentDO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按公司统计事件和事故数量
|
||||||
|
*
|
||||||
|
* @param corpinfoIds 公司ID列表
|
||||||
|
* @return 统计结果列表,包含corpinfoId、corpinfoName、eventCount和accidentCount字段
|
||||||
|
*/
|
||||||
|
List<AccidentCorpCountStat> countByCorpinfo(@Param("corpinfoIds") List<String> corpinfoIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照corpinfoId和incidentType统计个数
|
* 按照corpinfoId和incidentType统计个数
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.zcloud.accident.persistence.repository;
|
package com.zcloud.accident.persistence.repository;
|
||||||
|
|
||||||
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
import com.zcloud.accident.domain.model.AccidentCountStat;
|
import com.zcloud.accident.domain.model.AccidentCountStat;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
|
@ -26,6 +27,14 @@ public interface AccidentRepository extends BaseRepository<AccidentDO> {
|
||||||
*/
|
*/
|
||||||
List<AccidentDO> listAll(Map<String,Object> params,String menuPerms);
|
List<AccidentDO> listAll(Map<String,Object> params,String menuPerms);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按公司统计事件和事故数量
|
||||||
|
*
|
||||||
|
* @param corpinfoIds 公司ID列表
|
||||||
|
* @return 统计结果列表,包含corpinfoId、corpinfoName、eventCount和accidentCount字段
|
||||||
|
*/
|
||||||
|
List<AccidentCorpCountStat> countByCorpinfo(@Param("corpinfoIds") List<String> corpinfoIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按照corpinfoId和incidentType统计个数
|
* 按照corpinfoId和incidentType统计个数
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
|
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
|
||||||
import com.zcloud.accident.domain.model.AccidentCountStat;
|
import com.zcloud.accident.domain.model.AccidentCountStat;
|
||||||
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
import com.zcloud.accident.persistence.dataobject.AccidentDO;
|
||||||
import com.zcloud.accident.persistence.mapper.AccidentMapper;
|
import com.zcloud.accident.persistence.mapper.AccidentMapper;
|
||||||
|
|
@ -47,6 +48,11 @@ public class AccidentRepositoryImpl extends BaseRepositoryImpl<AccidentMapper, A
|
||||||
return accidentMapper.list(params, menuPerms);
|
return accidentMapper.list(params, menuPerms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AccidentCorpCountStat> countByCorpinfo(List<String> corpinfoIds) {
|
||||||
|
return accidentMapper.countByCorpinfo(corpinfoIds);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AccidentCountStat> countByCorpinfoIdAndIncidentType(List<String> corpinfoIds, Integer eqAccidentType) {
|
public List<AccidentCountStat> countByCorpinfoIdAndIncidentType(List<String> corpinfoIds, Integer eqAccidentType) {
|
||||||
return accidentMapper.countByCorpinfoIdAndIncidentType(corpinfoIds, eqAccidentType);
|
return accidentMapper.countByCorpinfoIdAndIncidentType(corpinfoIds, eqAccidentType);
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,24 @@
|
||||||
order by create_time desc
|
order by create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="countByCorpinfo" resultType="com.zcloud.accident.domain.model.AccidentCorpCountStat">
|
||||||
|
SELECT
|
||||||
|
corpinfo_id,
|
||||||
|
SUM(CASE WHEN type = 1 THEN 1 ELSE 0 END) as event_count,
|
||||||
|
SUM(CASE WHEN type = 2 THEN 1 ELSE 0 END) as accident_count
|
||||||
|
FROM accident
|
||||||
|
<where>
|
||||||
|
and delete_enum = 'FALSE'
|
||||||
|
<if test="corpinfoIds != null and !corpinfoIds.isEmpty() and corpinfoIds.size()>0">
|
||||||
|
AND corpinfo_id IN
|
||||||
|
<foreach collection="corpinfoIds" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY corpinfo_id
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="countByCorpinfoIdAndIncidentType" resultType="com.zcloud.accident.domain.model.AccidentCountStat">
|
<select id="countByCorpinfoIdAndIncidentType" resultType="com.zcloud.accident.domain.model.AccidentCountStat">
|
||||||
SELECT
|
SELECT
|
||||||
corpinfo_id,
|
corpinfo_id,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue