feat(api): 添加危险作业统计数据接口和部门统计功能

dev_visual_page
zhaokai 2026-07-22 11:29:39 +08:00
parent 43eece07c2
commit 2cff61eb31
16 changed files with 292 additions and 1 deletions

View File

@ -8,6 +8,8 @@ import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd; import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd;
import com.zcloud.eightwork.dto.EightworkInfoWithdrawCmd; import com.zcloud.eightwork.dto.EightworkInfoWithdrawCmd;
import com.zcloud.eightwork.dto.ForceTerminateCmd; import com.zcloud.eightwork.dto.ForceTerminateCmd;
import com.zcloud.eightwork.dto.ScreenDangerWorkDataStatisticsQry;
import com.zcloud.eightwork.dto.ScreenDepartmentStatisticsQry;
import com.zcloud.eightwork.dto.ScreenStatisticsQry; import com.zcloud.eightwork.dto.ScreenStatisticsQry;
import com.zcloud.eightwork.dto.ScreenWorkPageQry; import com.zcloud.eightwork.dto.ScreenWorkPageQry;
import com.zcloud.eightwork.dto.ScreenWorkRecordQry; import com.zcloud.eightwork.dto.ScreenWorkRecordQry;
@ -15,6 +17,8 @@ import com.zcloud.eightwork.dto.ScreenWorkTrendQry;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO; import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDangerWorkDataStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDepartmentStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO;
@ -152,5 +156,17 @@ public class EightworkInfoController {
return eightworkInfoService.screenWorkPage(qry); return eightworkInfoService.screenWorkPage(qry);
} }
@ApiOperation("可视化大屏-部门统计")
@PostMapping("/screenDepartmentStatistics")
public MultiResponse<ScreenDepartmentStatisticsCO> screenDepartmentStatistics(@RequestBody ScreenDepartmentStatisticsQry qry) {
return MultiResponse.of(eightworkInfoService.screenDepartmentStatistics(qry));
}
@ApiOperation("可视化大屏-危险作业数据统计")
@PostMapping("/screenDangerWorkDataStatistics")
public MultiResponse<ScreenDangerWorkDataStatisticsCO> screenDangerWorkDataStatistics(@RequestBody ScreenDangerWorkDataStatisticsQry qry) {
return MultiResponse.of(eightworkInfoService.screenDangerWorkDataStatistics(qry));
}
} }

View File

@ -2,6 +2,7 @@ package com.zcloud.eightwork.command.query;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.exception.BizException;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.eightwork.command.convertor.EightworkInfoCoConvertor; import com.zcloud.eightwork.command.convertor.EightworkInfoCoConvertor;
@ -9,12 +10,16 @@ import com.zcloud.eightwork.domain.model.EightworkInfoE;
import com.zcloud.eightwork.domain.model.enums.WorkCodeEnum; import com.zcloud.eightwork.domain.model.enums.WorkCodeEnum;
import com.zcloud.eightwork.dto.DangerWorkStatisticsQry; import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoPageQry; import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.ScreenDangerWorkDataStatisticsQry;
import com.zcloud.eightwork.dto.ScreenDepartmentStatisticsQry;
import com.zcloud.eightwork.dto.ScreenStatisticsQry; import com.zcloud.eightwork.dto.ScreenStatisticsQry;
import com.zcloud.eightwork.dto.ScreenWorkPageQry; import com.zcloud.eightwork.dto.ScreenWorkPageQry;
import com.zcloud.eightwork.dto.ScreenWorkRecordQry; import com.zcloud.eightwork.dto.ScreenWorkRecordQry;
import com.zcloud.eightwork.dto.ScreenWorkTrendQry; import com.zcloud.eightwork.dto.ScreenWorkTrendQry;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDangerWorkDataStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDepartmentStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO;
@ -23,6 +28,8 @@ import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.EightworkSupplementaryInfoDO; import com.zcloud.eightwork.persistence.dataobject.EightworkSupplementaryInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDangerWorkDataStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDepartmentStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO;
@ -114,6 +121,12 @@ public class EightworkInfoQueryExe {
if (statisticsCO.getAppliedCount() == null) { if (statisticsCO.getAppliedCount() == null) {
statisticsCO.setAppliedCount(0L); statisticsCO.setAppliedCount(0L);
} }
if (statisticsCO.getWorkingCount() == null) {
statisticsCO.setWorkingCount(0L);
}
if (statisticsCO.getArchivedCount() == null) {
statisticsCO.setArchivedCount(0L);
}
return statisticsCO; return statisticsCO;
} }
@ -193,6 +206,46 @@ public class EightworkInfoQueryExe {
return PageResponse.of(records, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(records, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public List<ScreenDepartmentStatisticsCO> screenDepartmentStatistics(ScreenDepartmentStatisticsQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<ScreenDepartmentStatisticsDTO> statisticsDTOS = eightworkInfoRepository.screenDepartmentStatistics(params);
if (CollUtil.isEmpty(statisticsDTOS)) {
return new ArrayList<>();
}
return statisticsDTOS.stream().map(statisticsDTO -> {
ScreenDepartmentStatisticsCO statisticsCO = new ScreenDepartmentStatisticsCO();
BeanUtils.copyProperties(statisticsDTO, statisticsCO);
if (statisticsCO.getWorkCount() == null) {
statisticsCO.setWorkCount(0L);
}
return statisticsCO;
}).collect(Collectors.toList());
}
public List<ScreenDangerWorkDataStatisticsCO> screenDangerWorkDataStatistics(ScreenDangerWorkDataStatisticsQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<ScreenDangerWorkDataStatisticsDTO> statisticsDTOS = eightworkInfoRepository.screenDangerWorkDataStatistics(params);
Map<String, ScreenDangerWorkDataStatisticsDTO> statisticsMap = new HashMap<>();
if (CollUtil.isNotEmpty(statisticsDTOS)) {
statisticsMap = statisticsDTOS.stream()
.collect(Collectors.toMap(ScreenDangerWorkDataStatisticsDTO::getWorkType, item -> item, (oldItem, newItem) -> oldItem));
}
List<ScreenDangerWorkDataStatisticsCO> statisticsCOS = new ArrayList<>();
for (WorkCodeEnum workCodeEnum : WorkCodeEnum.values()) {
ScreenDangerWorkDataStatisticsDTO statisticsDTO = statisticsMap.get(workCodeEnum.getWorkType());
ScreenDangerWorkDataStatisticsCO statisticsCO = new ScreenDangerWorkDataStatisticsCO();
statisticsCO.setWorkType(workCodeEnum.getWorkType());
statisticsCO.setWorkTypeName(workCodeEnum.getName());
statisticsCO.setWorkCount(statisticsDTO == null || statisticsDTO.getWorkCount() == null ? 0L : statisticsDTO.getWorkCount());
statisticsCO.setDoingCount(statisticsDTO == null || statisticsDTO.getDoingCount() == null ? 0L : statisticsDTO.getDoingCount());
statisticsCO.setPersonCount(statisticsDTO == null || statisticsDTO.getPersonCount() == null ? 0L : statisticsDTO.getPersonCount());
statisticsCOS.add(statisticsCO);
}
return statisticsCOS;
}
private List<LocalDate> buildDateRange(ScreenWorkTrendQry qry) { private List<LocalDate> buildDateRange(ScreenWorkTrendQry qry) {
LocalDate endDate = LocalDate.now(); LocalDate endDate = LocalDate.now();
LocalDate startDate = endDate.minusDays(6); LocalDate startDate = endDate.minusDays(6);

View File

@ -17,6 +17,8 @@ import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoAddCmd; import com.zcloud.eightwork.dto.EightworkInfoAddCmd;
import com.zcloud.eightwork.dto.EightworkInfoPageQry; import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd; import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd;
import com.zcloud.eightwork.dto.ScreenDangerWorkDataStatisticsQry;
import com.zcloud.eightwork.dto.ScreenDepartmentStatisticsQry;
import com.zcloud.eightwork.dto.ScreenStatisticsQry; import com.zcloud.eightwork.dto.ScreenStatisticsQry;
import com.zcloud.eightwork.dto.ScreenWorkPageQry; import com.zcloud.eightwork.dto.ScreenWorkPageQry;
import com.zcloud.eightwork.dto.ScreenWorkRecordQry; import com.zcloud.eightwork.dto.ScreenWorkRecordQry;
@ -24,6 +26,8 @@ import com.zcloud.eightwork.dto.ScreenWorkTrendQry;
import com.zcloud.eightwork.dto.TaskLogNextCmd; import com.zcloud.eightwork.dto.TaskLogNextCmd;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDangerWorkDataStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDepartmentStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO;
@ -202,5 +206,15 @@ public class EightworkInfoServiceImpl implements EightworkInfoServiceI {
public PageResponse<ScreenWorkPageCO> screenWorkPage(ScreenWorkPageQry qry) { public PageResponse<ScreenWorkPageCO> screenWorkPage(ScreenWorkPageQry qry) {
return eightworkInfoQueryExe.screenWorkPage(qry); return eightworkInfoQueryExe.screenWorkPage(qry);
} }
@Override
public List<ScreenDepartmentStatisticsCO> screenDepartmentStatistics(ScreenDepartmentStatisticsQry qry) {
return eightworkInfoQueryExe.screenDepartmentStatistics(qry);
}
@Override
public List<ScreenDangerWorkDataStatisticsCO> screenDangerWorkDataStatistics(ScreenDangerWorkDataStatisticsQry qry) {
return eightworkInfoQueryExe.screenDangerWorkDataStatistics(qry);
}
} }

View File

@ -6,12 +6,16 @@ import com.zcloud.eightwork.dto.DangerWorkStatisticsQry;
import com.zcloud.eightwork.dto.EightworkInfoAddCmd; import com.zcloud.eightwork.dto.EightworkInfoAddCmd;
import com.zcloud.eightwork.dto.EightworkInfoPageQry; import com.zcloud.eightwork.dto.EightworkInfoPageQry;
import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd; import com.zcloud.eightwork.dto.EightworkInfoUpdateCmd;
import com.zcloud.eightwork.dto.ScreenDangerWorkDataStatisticsQry;
import com.zcloud.eightwork.dto.ScreenDepartmentStatisticsQry;
import com.zcloud.eightwork.dto.ScreenStatisticsQry; import com.zcloud.eightwork.dto.ScreenStatisticsQry;
import com.zcloud.eightwork.dto.ScreenWorkPageQry; import com.zcloud.eightwork.dto.ScreenWorkPageQry;
import com.zcloud.eightwork.dto.ScreenWorkRecordQry; import com.zcloud.eightwork.dto.ScreenWorkRecordQry;
import com.zcloud.eightwork.dto.ScreenWorkTrendQry; import com.zcloud.eightwork.dto.ScreenWorkTrendQry;
import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDangerWorkDataStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenDepartmentStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO;
import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO;
@ -69,5 +73,9 @@ public interface EightworkInfoServiceI {
PageResponse<ScreenWorkRecordCO> screenWorkRecord(ScreenWorkRecordQry qry); PageResponse<ScreenWorkRecordCO> screenWorkRecord(ScreenWorkRecordQry qry);
PageResponse<ScreenWorkPageCO> screenWorkPage(ScreenWorkPageQry qry); PageResponse<ScreenWorkPageCO> screenWorkPage(ScreenWorkPageQry qry);
List<ScreenDepartmentStatisticsCO> screenDepartmentStatistics(ScreenDepartmentStatisticsQry qry);
List<ScreenDangerWorkDataStatisticsCO> screenDangerWorkDataStatistics(ScreenDangerWorkDataStatisticsQry qry);
} }

View File

@ -0,0 +1,22 @@
package com.zcloud.eightwork.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
*
* @author codex
*/
@Data
public class ScreenDangerWorkDataStatisticsQry implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "企业id", name = "corpinfoId")
private Long corpinfoId;
@ApiModelProperty(value = "港区1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea")
private Integer portArea;
}

View File

@ -0,0 +1,22 @@
package com.zcloud.eightwork.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
*
* @author codex
*/
@Data
public class ScreenDepartmentStatisticsQry implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "企业id", name = "corpinfoId")
private Long corpinfoId;
@ApiModelProperty(value = "港区1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea")
private Integer portArea;
}

View File

@ -16,4 +16,10 @@ public class DangerWorkStatisticsCO extends ClientObject {
@ApiModelProperty(value = "已申请数量") @ApiModelProperty(value = "已申请数量")
private Long appliedCount; private Long appliedCount;
@ApiModelProperty(value = "作业中数量")
private Long workingCount;
@ApiModelProperty(value = "已归档数量")
private Long archivedCount;
} }

View File

@ -0,0 +1,28 @@
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 ScreenDangerWorkDataStatisticsCO extends ClientObject {
@ApiModelProperty(value = "作业类型")
private String workType;
@ApiModelProperty(value = "作业类型名称")
private String workTypeName;
@ApiModelProperty(value = "作业数量")
private Long workCount;
@ApiModelProperty(value = "进行中作业数")
private Long doingCount;
@ApiModelProperty(value = "人员数")
private Long personCount;
}

View File

@ -0,0 +1,22 @@
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 ScreenDepartmentStatisticsCO extends ClientObject {
@ApiModelProperty(value = "部门id")
private Long departmentId;
@ApiModelProperty(value = "部门名称")
private String departmentName;
@ApiModelProperty(value = "作业数量")
private Long workCount;
}

View File

@ -11,4 +11,6 @@ import lombok.Data;
public class DangerWorkStatisticsDTO { public class DangerWorkStatisticsDTO {
private Long doingCount; private Long doingCount;
private Long appliedCount; private Long appliedCount;
private Long workingCount;
private Long archivedCount;
} }

View File

@ -0,0 +1,16 @@
package com.zcloud.eightwork.persistence.dataobject.dto;
import lombok.Data;
/**
*
*
* @author codex
*/
@Data
public class ScreenDangerWorkDataStatisticsDTO {
private String workType;
private Long workCount;
private Long doingCount;
private Long personCount;
}

View File

@ -0,0 +1,15 @@
package com.zcloud.eightwork.persistence.dataobject.dto;
import lombok.Data;
/**
*
*
* @author codex
*/
@Data
public class ScreenDepartmentStatisticsDTO {
private Long departmentId;
private String departmentName;
private Long workCount;
}

View File

@ -7,6 +7,8 @@ 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.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDangerWorkDataStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDepartmentStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO;
@ -42,5 +44,9 @@ public interface EightworkInfoMapper extends BaseMapper<EightworkInfoDO> {
IPage<ScreenWorkRecordDTO> screenWorkRecord(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params); IPage<ScreenWorkRecordDTO> screenWorkRecord(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params);
IPage<ScreenWorkRecordDTO> screenWorkPage(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params); IPage<ScreenWorkRecordDTO> screenWorkPage(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params);
List<ScreenDepartmentStatisticsDTO> screenDepartmentStatistics(@Param("params") Map<String, Object> params);
List<ScreenDangerWorkDataStatisticsDTO> screenDangerWorkDataStatistics(@Param("params") Map<String, Object> params);
} }

View File

@ -4,6 +4,8 @@ import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository; import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDangerWorkDataStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDepartmentStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO;
@ -39,6 +41,10 @@ public interface EightworkInfoRepository extends BaseRepository<EightworkInfoDO>
PageResponse<ScreenWorkRecordDTO> screenWorkPage(Map<String, Object> params); PageResponse<ScreenWorkRecordDTO> screenWorkPage(Map<String, Object> params);
List<ScreenDepartmentStatisticsDTO> screenDepartmentStatistics(Map<String, Object> params);
List<ScreenDangerWorkDataStatisticsDTO> screenDangerWorkDataStatistics(Map<String, Object> params);
/** /**
* 使 CAS lockFlag * 使 CAS lockFlag
* lockFlag status * lockFlag status

View File

@ -11,6 +11,8 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.eightwork.domain.model.enums.MenuEnum; import com.zcloud.eightwork.domain.model.enums.MenuEnum;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDangerWorkDataStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenDepartmentStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenStatusStatisticsDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO;
import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO;
@ -106,6 +108,16 @@ public class EightworkInfoRepositoryImpl extends BaseRepositoryImpl<EightworkInf
return PageHelper.pageToResponse(iPage, iPage.getRecords()); return PageHelper.pageToResponse(iPage, iPage.getRecords());
} }
@Override
public List<ScreenDepartmentStatisticsDTO> screenDepartmentStatistics(Map<String, Object> params) {
return eightworkInfoMapper.screenDepartmentStatistics(params);
}
@Override
public List<ScreenDangerWorkDataStatisticsDTO> screenDangerWorkDataStatistics(Map<String, Object> params) {
return eightworkInfoMapper.screenDangerWorkDataStatistics(params);
}
@Override @Override
public boolean updateLockFlagToLocked(Long id, Integer expectedLockFlag, Integer newLockFlag, Integer expectedStatus) { public boolean updateLockFlagToLocked(Long id, Integer expectedLockFlag, Integer newLockFlag, Integer expectedStatus) {
LambdaUpdateWrapper<EightworkInfoDO> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<EightworkInfoDO> updateWrapper = new LambdaUpdateWrapper<>();

View File

@ -136,7 +136,9 @@
<select id="dangerWorkStatistics" resultType="com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO"> <select id="dangerWorkStatistics" resultType="com.zcloud.eightwork.persistence.dataobject.dto.DangerWorkStatisticsDTO">
select select
coalesce(sum(case when t.status = 1 then 1 else 0 end), 0) as doingCount, 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 coalesce(sum(case when t.status != 0 then 1 else 0 end), 0) as appliedCount,
coalesce(sum(case when t.status = 1 then 1 else 0 end), 0) as workingCount,
coalesce(sum(case when t.status = 999 then 1 else 0 end), 0) as archivedCount
from eightwork_info t from eightwork_info t
where t.delete_enum = 'FALSE' where t.delete_enum = 'FALSE'
<if test="params.corpinfoId != null"> <if test="params.corpinfoId != null">
@ -245,4 +247,45 @@
order by t.create_time desc order by t.create_time desc
</select> </select>
<select id="screenDepartmentStatistics" resultType="com.zcloud.eightwork.persistence.dataobject.dto.ScreenDepartmentStatisticsDTO">
select
t.department_id as departmentId,
max(t.department_name) as departmentName,
count(1) as workCount
from eightwork_info t
left join vi_corp_info c on t.corpinfo_id = c.id
where t.delete_enum = 'FALSE'
and c.delete_enum = 'FALSE'
and t.status != 0
<if test="params.corpinfoId != null">
and t.corpinfo_id = #{params.corpinfoId}
</if>
<if test="params.portArea != null">
and c.port_area = #{params.portArea}
</if>
group by t.department_id
order by workCount desc
</select>
<select id="screenDangerWorkDataStatistics" resultType="com.zcloud.eightwork.persistence.dataobject.dto.ScreenDangerWorkDataStatisticsDTO">
select
t.work_type as workType,
count(distinct case when t.status != 0 then t.work_id end) as workCount,
count(distinct case when t.status = 1 then t.work_id end) as doingCount,
count(distinct case when log.act_user is not null then log.act_user end) as personCount
from eightwork_info t
left join vi_corp_info c on t.corpinfo_id = c.id
left join task_log log on log.work_id = t.work_id
where t.delete_enum = 'FALSE'
and c.delete_enum = 'FALSE'
and t.status != 0
<if test="params.corpinfoId != null">
and t.corpinfo_id = #{params.corpinfoId}
</if>
<if test="params.portArea != null">
and c.port_area = #{params.portArea}
</if>
group by t.work_type
</select>
</mapper> </mapper>