feat(web): 添加可视化大屏危险作业统计数据接口

dev_visual_page
zhaokai 2026-07-16 17:22:04 +08:00
parent 8d497c65f0
commit 1837d83259
11 changed files with 117 additions and 0 deletions

View File

@ -2,11 +2,13 @@ package com.zcloud.eightwork.web;
import com.zcloud.eightwork.api.EightworkInfoServiceI;
import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoAddCmd;
import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd;
import com.zcloud.eightwork.dto.EightworkInfoWithdrawCmd;
import com.zcloud.eightwork.dto.ForceTerminateCmd;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.alibaba.cola.dto.MultiResponse;
@ -112,5 +114,11 @@ public class EightworkInfoController {
eightworkInfoService.exportConfinedspace(qry,httpServletResponse);
}
@ApiOperation("可视化大屏-危险作业统计数量")
@PostMapping("/dangerWorkStatistics")
public SingleResponse<DangerWorkStatisticsCO> dangerWorkStatistics(@RequestBody DangerWorkStatisticsQry qry) {
return SingleResponse.of(eightworkInfoService.dangerWorkStatistics(qry));
}
}

View File

@ -6,11 +6,14 @@ import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.eightwork.command.convertor.EightworkInfoCoConvertor;
import com.zcloud.eightwork.domain.model.EightworkInfoE;
import com.zcloud.eightwork.domain.model.enums.WorkCodeEnum;
import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.EightworkSupplementaryInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO;
import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository;
import com.zcloud.eightwork.persistence.repository.EightworkSupplementaryInfoRepository;
@ -82,6 +85,26 @@ public class EightworkInfoQueryExe {
}).collect(Collectors.toList());
}
public DangerWorkStatisticsCO dangerWorkStatistics(DangerWorkStatisticsQry qry) {
Map<String, Object> params = new HashMap<>();
if (qry != null) {
params.put("corpinfoId", qry.getCorpinfoId());
}
DangerWorkStatisticsDTO statisticsDTO = eightworkInfoRepository.dangerWorkStatistics(params);
if (statisticsDTO == null) {
return new DangerWorkStatisticsCO();
}
DangerWorkStatisticsCO statisticsCO = new DangerWorkStatisticsCO();
BeanUtils.copyProperties(statisticsDTO, statisticsCO);
if (statisticsCO.getDoingCount() == null) {
statisticsCO.setDoingCount(0L);
}
if (statisticsCO.getAppliedCount() == null) {
statisticsCO.setAppliedCount(0L);
}
return statisticsCO;
}
public void exportConfinedspace(EightworkInfoPageQry qry, HttpServletResponse httpServletResponse) {
// Map<String, Object> params = new HashMap<>();
// params.put("ids",ids);

View File

@ -13,10 +13,12 @@ import com.zcloud.eightwork.command.query.EightworkInfoQueryExe;
import com.zcloud.eightwork.domain.gateway.TaskLogGateway;
import com.zcloud.eightwork.domain.model.TaskLogE;
import com.zcloud.eightwork.domain.model.enums.TaskLogStatus;
import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoAddCmd;
import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd;
import com.zcloud.eightwork.dto.TaskLogNextCmd;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
@ -167,5 +169,10 @@ public class EightworkInfoServiceImpl implements EightworkInfoServiceI {
public void exportConfinedspace(EightworkInfoPageQry qry, HttpServletResponse httpServletResponse) {
eightworkInfoQueryExe.exportConfinedspace(qry,httpServletResponse);
}
@Override
public DangerWorkStatisticsCO dangerWorkStatistics(DangerWorkStatisticsQry qry) {
return eightworkInfoQueryExe.dangerWorkStatistics(qry);
}
}

View File

@ -2,9 +2,11 @@ package com.zcloud.eightwork.api;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoAddCmd;
import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO;
@ -49,5 +51,7 @@ public interface EightworkInfoServiceI {
void withdraw(Long id, String reason);
void exportConfinedspace(EightworkInfoPageQry ids, HttpServletResponse httpServletResponse);
DangerWorkStatisticsCO dangerWorkStatistics(DangerWorkStatisticsQry qry);
}

View File

@ -0,0 +1,19 @@
package com.zcloud.eightwork.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
*
* @author codex
*/
@Data
public class DangerWorkStatisticsQry implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
}

View File

@ -0,0 +1,19 @@
package com.zcloud.eightwork.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
*
* @author codex
*/
@Data
public class DangerWorkStatisticsCO extends ClientObject {
@ApiModelProperty(value = "进行中数量")
private Long doingCount;
@ApiModelProperty(value = "已申请数量")
private Long appliedCount;
}

View File

@ -0,0 +1,14 @@
package com.zcloud.eightwork.persistence.dataobject.dto;
import lombok.Data;
/**
*
*
* @author codex
*/
@Data
public class DangerWorkStatisticsDTO {
private Long doingCount;
private Long appliedCount;
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -28,5 +29,7 @@ public interface EightworkInfoMapper extends BaseMapper<EightworkInfoDO> {
IPage<EightworkInfoDO> listPage(Page<Map<String, Object>> page, @Param("params") Map<String, Object> parmas, String menuPerms);
List<StatisticsByWorkTypeDTO> statisticsByWorkType(@Param("params") Map<String, Object> params);
DangerWorkStatisticsDTO dangerWorkStatistics(@Param("params") Map<String, Object> params);
}

View File

@ -3,6 +3,7 @@ package com.zcloud.eightwork.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO;
import java.util.List;
@ -25,6 +26,8 @@ public interface EightworkInfoRepository extends BaseRepository<EightworkInfoDO>
List<StatisticsByWorkTypeDTO> statisticsByWorkType(Map<String, Object> params);
DangerWorkStatisticsDTO dangerWorkStatistics(Map<String, Object> params);
/**
* 使 CAS lockFlag
* lockFlag status

View File

@ -10,6 +10,7 @@ import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.eightwork.domain.model.enums.MenuEnum;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO;
import com.zcloud.eightwork.persistence.mapper.EightworkInfoMapper;
import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository;
@ -73,6 +74,11 @@ public class EightworkInfoRepositoryImpl extends BaseRepositoryImpl<EightworkInf
return eightworkInfoMapper.statisticsByWorkType(params);
}
@Override
public DangerWorkStatisticsDTO dangerWorkStatistics(Map<String, Object> params) {
return eightworkInfoMapper.dangerWorkStatistics(params);
}
@Override
public boolean updateLockFlagToLocked(Long id, Integer expectedLockFlag, Integer newLockFlag, Integer expectedStatus) {
LambdaUpdateWrapper<EightworkInfoDO> updateWrapper = new LambdaUpdateWrapper<>();

View File

@ -133,4 +133,15 @@
group by t.corpinfo_id
</select>
<select id="dangerWorkStatistics" resultType="com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO">
select
coalesce(sum(case when t.status = 1 then 1 else 0 end), 0) as doingCount,
coalesce(sum(case when t.status != 0 then 1 else 0 end), 0) as appliedCount
from eightwork_info t
where t.delete_enum = 'FALSE'
<if test="params.corpinfoId != null">
and t.corpinfo_id = #{params.corpinfoId}
</if>
</select>
</mapper>