diff --git a/web-adapter/src/main/java/com/zcloud/eightwork/web/EightworkInfoController.java b/web-adapter/src/main/java/com/zcloud/eightwork/web/EightworkInfoController.java index 85799db..fc09a2b 100644 --- a/web-adapter/src/main/java/com/zcloud/eightwork/web/EightworkInfoController.java +++ b/web-adapter/src/main/java/com/zcloud/eightwork/web/EightworkInfoController.java @@ -8,9 +8,17 @@ 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.ScreenStatisticsQry; +import com.zcloud.eightwork.dto.ScreenWorkPageQry; +import com.zcloud.eightwork.dto.ScreenWorkRecordQry; +import com.zcloud.eightwork.dto.ScreenWorkTrendQry; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; +import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkTrendCO; import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.Response; @@ -120,5 +128,29 @@ public class EightworkInfoController { return SingleResponse.of(eightworkInfoService.dangerWorkStatistics(qry)); } + @ApiOperation("可视化大屏-安全作业状态统计") + @PostMapping("/screenStatusStatistics") + public SingleResponse screenStatusStatistics(@RequestBody ScreenStatisticsQry qry) { + return SingleResponse.of(eightworkInfoService.screenStatusStatistics(qry)); + } + + @ApiOperation("可视化大屏-作业情况统计") + @PostMapping("/screenWorkTrend") + public MultiResponse screenWorkTrend(@RequestBody ScreenWorkTrendQry qry) { + return MultiResponse.of(eightworkInfoService.screenWorkTrend(qry)); + } + + @ApiOperation("可视化大屏-安全作业记录") + @PostMapping("/screenWorkRecord") + public PageResponse screenWorkRecord(@RequestBody ScreenWorkRecordQry qry) { + return eightworkInfoService.screenWorkRecord(qry); + } + + @ApiOperation("可视化大屏-作业分页查询") + @PostMapping("/screenWorkPage") + public PageResponse screenWorkPage(@RequestBody ScreenWorkPageQry qry) { + return eightworkInfoService.screenWorkPage(qry); + } + } diff --git a/web-app/src/main/java/com/zcloud/eightwork/command/query/EightworkInfoQueryExe.java b/web-app/src/main/java/com/zcloud/eightwork/command/query/EightworkInfoQueryExe.java index ce0b08b..311c397 100644 --- a/web-app/src/main/java/com/zcloud/eightwork/command/query/EightworkInfoQueryExe.java +++ b/web-app/src/main/java/com/zcloud/eightwork/command/query/EightworkInfoQueryExe.java @@ -1,5 +1,6 @@ package com.zcloud.eightwork.command.query; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; import com.alibaba.fastjson.JSONObject; import com.jjb.saas.framework.auth.utils.AuthContext; @@ -8,12 +9,23 @@ 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.ScreenStatisticsQry; +import com.zcloud.eightwork.dto.ScreenWorkPageQry; +import com.zcloud.eightwork.dto.ScreenWorkRecordQry; +import com.zcloud.eightwork.dto.ScreenWorkTrendQry; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; +import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkTrendCO; 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.ScreenStatusStatisticsDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO; import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository; import com.zcloud.eightwork.persistence.repository.EightworkSupplementaryInfoRepository; @@ -27,6 +39,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletResponse; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -86,10 +100,8 @@ public class EightworkInfoQueryExe { } public DangerWorkStatisticsCO dangerWorkStatistics(DangerWorkStatisticsQry qry) { - Map params = new HashMap<>(); - if (qry != null) { - params.put("corpinfoId", qry.getCorpinfoId()); - } + + Map params = PageQueryHelper.toHashMap(qry); DangerWorkStatisticsDTO statisticsDTO = eightworkInfoRepository.dangerWorkStatistics(params); if (statisticsDTO == null) { return new DangerWorkStatisticsCO(); @@ -105,6 +117,164 @@ public class EightworkInfoQueryExe { return statisticsCO; } + public ScreenStatusStatisticsCO screenStatusStatistics(ScreenStatisticsQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + ScreenStatusStatisticsDTO statisticsDTO = eightworkInfoRepository.screenStatusStatistics(params); + if (statisticsDTO == null) { + return new ScreenStatusStatisticsCO(); + } + ScreenStatusStatisticsCO statisticsCO = new ScreenStatusStatisticsCO(); + BeanUtils.copyProperties(statisticsDTO, statisticsCO); + if (statisticsCO.getAppliedCount() == null) { + statisticsCO.setAppliedCount(0L); + } + if (statisticsCO.getApprovingCount() == null) { + statisticsCO.setApprovingCount(0L); + } + if (statisticsCO.getArchivedCount() == null) { + statisticsCO.setArchivedCount(0L); + } + return statisticsCO; + } + + public List screenWorkTrend(ScreenWorkTrendQry qry) { + Map params = new HashMap<>(); + List dates = buildDateRange(qry); + if (qry != null) { + params.put("corpinfoId", qry.getCorpinfoId()); + } + if(qry.getPortArea() != null){ + params.put("portArea", qry.getPortArea()); + } + params.put("startDate", dates.get(0).format(DateTimeFormatter.ISO_LOCAL_DATE)); + params.put("endDate", dates.get(dates.size() - 1).format(DateTimeFormatter.ISO_LOCAL_DATE)); + List trendDTOS = eightworkInfoRepository.screenWorkTrend(params); + if (trendDTOS == null) { + return new ArrayList<>(); + } + Map countMap = trendDTOS.stream() + .collect(Collectors.toMap(dto -> dto.getWorkDate() + "#" + dto.getWorkType(), ScreenWorkTrendDTO::getCount)); + List trendCOS = new ArrayList<>(); + for (LocalDate date : dates) { + String workDate = date.format(DateTimeFormatter.ISO_LOCAL_DATE); + for (WorkCodeEnum workCodeEnum : WorkCodeEnum.values()) { + ScreenWorkTrendCO trendCO = new ScreenWorkTrendCO(); + trendCO.setWorkDate(workDate); + trendCO.setWorkType(workCodeEnum.getWorkType()); + trendCO.setWorkTypeName(workCodeEnum.getName()); + trendCO.setCount(countMap.getOrDefault(workDate + "#" + workCodeEnum.getWorkType(), 0L)); + trendCOS.add(trendCO); + } + } + return trendCOS; + } + + public PageResponse screenWorkRecord(ScreenWorkRecordQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = eightworkInfoRepository.screenWorkRecord(params); + if (CollUtil.isEmpty(pageResponse.getData())) { + return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + List records = pageResponse.getData().stream() + .map(this::toScreenWorkRecordCO) + .collect(Collectors.toList()); + return PageResponse.of(records, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public PageResponse screenWorkPage(ScreenWorkPageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = eightworkInfoRepository.screenWorkPage(params); + if (CollUtil.isEmpty(pageResponse.getData())) { + return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + List records = pageResponse.getData().stream() + .map(this::toScreenWorkPageCO) + .collect(Collectors.toList()); + return PageResponse.of(records, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + private List buildDateRange(ScreenWorkTrendQry qry) { + LocalDate endDate = LocalDate.now(); + LocalDate startDate = endDate.minusDays(6); + if (qry != null && StringUtils.isNotBlank(qry.getEndDate())) { + endDate = LocalDate.parse(qry.getEndDate(), DateTimeFormatter.ISO_LOCAL_DATE); + } + if (qry != null && StringUtils.isNotBlank(qry.getStartDate())) { + startDate = LocalDate.parse(qry.getStartDate(), DateTimeFormatter.ISO_LOCAL_DATE); + } + if (startDate.isAfter(endDate)) { + LocalDate tempDate = startDate; + startDate = endDate; + endDate = tempDate; + } + List dates = new ArrayList<>(); + LocalDate currentDate = startDate; + while (!currentDate.isAfter(endDate)) { + dates.add(currentDate); + currentDate = currentDate.plusDays(1); + } + return dates; + } + + private ScreenWorkRecordCO toScreenWorkRecordCO(ScreenWorkRecordDTO recordDTO) { + ScreenWorkRecordCO recordCO = new ScreenWorkRecordCO(); + BeanUtils.copyProperties(recordDTO, recordCO); + recordCO.setWorkTypeName(WorkCodeEnum.getNameByWorkType(recordDTO.getWorkType())); + recordCO.setStatusName(StringUtils.isNotBlank(recordDTO.getCurrentStepName()) ? recordDTO.getCurrentStepName() : getStatusName(recordDTO.getStatus())); + recordCO.setCreateTime(formatDateTime(recordDTO.getCreateTime())); + return recordCO; + } + + private ScreenWorkPageCO toScreenWorkPageCO(ScreenWorkRecordDTO recordDTO) { + ScreenWorkPageCO pageCO = new ScreenWorkPageCO(); + BeanUtils.copyProperties(recordDTO, pageCO); + pageCO.setWorkTypeName(WorkCodeEnum.getNameByWorkType(recordDTO.getWorkType())); + pageCO.setInfo(parseJson(recordDTO.getInfo())); + pageCO.setCreateTime(formatDateTime(recordDTO.getCreateTime())); + return pageCO; + } + + private String getStatusName(Integer status) { + if (status == null) { + return null; + } + if (status == 1) { + return "审批中"; + } + if (status == 999) { + return "已归档"; + } + if (status == 998) { + return "强制终止"; + } + if (status == 2) { + return "已打回"; + } + if (status == 0) { + return "暂存"; + } + return String.valueOf(status); + } + + private String formatDateTime(java.time.LocalDateTime dateTime) { + if (dateTime == null) { + return null; + } + return dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } + + private JSONObject parseJson(String value) { + if (StringUtils.isBlank(value)) { + return null; + } + try { + return JSONObject.parseObject(value); + } catch (Exception e) { + log.warn("解析作业详情失败,使用空对象", e); + return new JSONObject(); + } + } + public void exportConfinedspace(EightworkInfoPageQry qry, HttpServletResponse httpServletResponse) { // Map params = new HashMap<>(); // params.put("ids",ids); diff --git a/web-app/src/main/java/com/zcloud/eightwork/service/EightworkInfoServiceImpl.java b/web-app/src/main/java/com/zcloud/eightwork/service/EightworkInfoServiceImpl.java index 13f5a1b..194ffb6 100644 --- a/web-app/src/main/java/com/zcloud/eightwork/service/EightworkInfoServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/eightwork/service/EightworkInfoServiceImpl.java @@ -17,9 +17,17 @@ 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.ScreenStatisticsQry; +import com.zcloud.eightwork.dto.ScreenWorkPageQry; +import com.zcloud.eightwork.dto.ScreenWorkRecordQry; +import com.zcloud.eightwork.dto.ScreenWorkTrendQry; 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.ScreenStatusStatisticsCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkTrendCO; import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO; import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository; @@ -174,5 +182,25 @@ public class EightworkInfoServiceImpl implements EightworkInfoServiceI { public DangerWorkStatisticsCO dangerWorkStatistics(DangerWorkStatisticsQry qry) { return eightworkInfoQueryExe.dangerWorkStatistics(qry); } + + @Override + public ScreenStatusStatisticsCO screenStatusStatistics(ScreenStatisticsQry qry) { + return eightworkInfoQueryExe.screenStatusStatistics(qry); + } + + @Override + public List screenWorkTrend(ScreenWorkTrendQry qry) { + return eightworkInfoQueryExe.screenWorkTrend(qry); + } + + @Override + public PageResponse screenWorkRecord(ScreenWorkRecordQry qry) { + return eightworkInfoQueryExe.screenWorkRecord(qry); + } + + @Override + public PageResponse screenWorkPage(ScreenWorkPageQry qry) { + return eightworkInfoQueryExe.screenWorkPage(qry); + } } diff --git a/web-client/src/main/java/com/zcloud/eightwork/api/EightworkInfoServiceI.java b/web-client/src/main/java/com/zcloud/eightwork/api/EightworkInfoServiceI.java index dd2d9d0..298a60b 100644 --- a/web-client/src/main/java/com/zcloud/eightwork/api/EightworkInfoServiceI.java +++ b/web-client/src/main/java/com/zcloud/eightwork/api/EightworkInfoServiceI.java @@ -6,8 +6,16 @@ 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.ScreenStatisticsQry; +import com.zcloud.eightwork.dto.ScreenWorkPageQry; +import com.zcloud.eightwork.dto.ScreenWorkRecordQry; +import com.zcloud.eightwork.dto.ScreenWorkTrendQry; import com.zcloud.eightwork.dto.clientobject.DangerWorkStatisticsCO; import com.zcloud.eightwork.dto.clientobject.EightworkInfoCO; +import com.zcloud.eightwork.dto.clientobject.ScreenStatusStatisticsCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkPageCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkRecordCO; +import com.zcloud.eightwork.dto.clientobject.ScreenWorkTrendCO; import com.zcloud.eightwork.dto.clientobject.StatisticsByWorkTypeCO; import javax.servlet.http.HttpServletResponse; @@ -53,5 +61,13 @@ public interface EightworkInfoServiceI { void exportConfinedspace(EightworkInfoPageQry ids, HttpServletResponse httpServletResponse); DangerWorkStatisticsCO dangerWorkStatistics(DangerWorkStatisticsQry qry); + + ScreenStatusStatisticsCO screenStatusStatistics(ScreenStatisticsQry qry); + + List screenWorkTrend(ScreenWorkTrendQry qry); + + PageResponse screenWorkRecord(ScreenWorkRecordQry qry); + + PageResponse screenWorkPage(ScreenWorkPageQry qry); } diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenStatisticsQry.java b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenStatisticsQry.java new file mode 100644 index 0000000..13c45e2 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenStatisticsQry.java @@ -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 ScreenStatisticsQry implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkPageQry.java b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkPageQry.java new file mode 100644 index 0000000..7e7d9ed --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkPageQry.java @@ -0,0 +1,21 @@ +package com.zcloud.eightwork.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 可视化大屏作业分页查询 + * + * @author codex + */ +@Data +public class ScreenWorkPageQry extends PageQuery { + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "作业类型,枚举") + private String workType; + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkRecordQry.java b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkRecordQry.java new file mode 100644 index 0000000..43afd17 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkRecordQry.java @@ -0,0 +1,19 @@ +package com.zcloud.eightwork.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 可视化大屏安全作业记录查询 + * + * @author codex + */ +@Data +public class ScreenWorkRecordQry extends PageQuery { + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkTrendQry.java b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkTrendQry.java new file mode 100644 index 0000000..a8a4f09 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/ScreenWorkTrendQry.java @@ -0,0 +1,27 @@ +package com.zcloud.eightwork.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏作业情况统计查询 + * + * @author codex + */ +@Data +public class ScreenWorkTrendQry implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "开始日期,格式:yyyy-MM-dd") + private String startDate; + + @ApiModelProperty(value = "结束日期,格式:yyyy-MM-dd") + private String endDate; + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenStatusStatisticsCO.java b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenStatusStatisticsCO.java new file mode 100644 index 0000000..4a249c2 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenStatusStatisticsCO.java @@ -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 ScreenStatusStatisticsCO extends ClientObject { + @ApiModelProperty(value = "申请数") + private Long appliedCount; + + @ApiModelProperty(value = "审批中数量") + private Long approvingCount; + + @ApiModelProperty(value = "归档数") + private Long archivedCount; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkPageCO.java b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkPageCO.java new file mode 100644 index 0000000..8f7d52e --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkPageCO.java @@ -0,0 +1,44 @@ +package com.zcloud.eightwork.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 可视化大屏作业分页数据 + * + * @author codex + */ +@Data +public class ScreenWorkPageCO extends ClientObject { + @ApiModelProperty(value = "主键") + private Long id; + + @ApiModelProperty(value = "业务主键ID") + private String workId; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "企业名称") + private String corpinfoName; + + @ApiModelProperty(value = "票号") + private String checkNo; + + @ApiModelProperty(value = "作业类型") + private String workType; + + @ApiModelProperty(value = "作业类型名称") + private String workTypeName; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "详情信息") + private JSONObject info; + + @ApiModelProperty(value = "创建时间") + private String createTime; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkRecordCO.java b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkRecordCO.java new file mode 100644 index 0000000..ddc4b03 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkRecordCO.java @@ -0,0 +1,49 @@ +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 ScreenWorkRecordCO extends ClientObject { + @ApiModelProperty(value = "主键") + private Long id; + + @ApiModelProperty(value = "业务主键ID") + private String workId; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "企业名称") + private String corpinfoName; + + @ApiModelProperty(value = "票号") + private String checkNo; + + @ApiModelProperty(value = "作业类型") + private String workType; + + @ApiModelProperty(value = "作业类型名称") + private String workTypeName; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "状态名称") + private String statusName; + + @ApiModelProperty(value = "当前步骤名称") + private String currentStepName; + + @ApiModelProperty(value = "下一步操作人") + private String nextStepName; + + @ApiModelProperty(value = "创建时间") + private String createTime; +} diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkTrendCO.java b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkTrendCO.java new file mode 100644 index 0000000..0669ac7 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/ScreenWorkTrendCO.java @@ -0,0 +1,25 @@ +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 ScreenWorkTrendCO extends ClientObject { + @ApiModelProperty(value = "日期") + private String workDate; + + @ApiModelProperty(value = "作业类型") + private String workType; + + @ApiModelProperty(value = "作业类型名称") + private String workTypeName; + + @ApiModelProperty(value = "数量") + private Long count; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenStatusStatisticsDTO.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenStatusStatisticsDTO.java new file mode 100644 index 0000000..7c83ab0 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenStatusStatisticsDTO.java @@ -0,0 +1,15 @@ +package com.zcloud.eightwork.persistence.dataobject.dto; + +import lombok.Data; + +/** + * 可视化大屏安全作业状态统计 + * + * @author codex + */ +@Data +public class ScreenStatusStatisticsDTO { + private Long appliedCount; + private Long approvingCount; + private Long archivedCount; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenWorkRecordDTO.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenWorkRecordDTO.java new file mode 100644 index 0000000..9dda141 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenWorkRecordDTO.java @@ -0,0 +1,25 @@ +package com.zcloud.eightwork.persistence.dataobject.dto; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 可视化大屏作业数据 + * + * @author codex + */ +@Data +public class ScreenWorkRecordDTO { + private Long id; + private String workId; + private Long corpinfoId; + private String corpinfoName; + private String checkNo; + private String workType; + private Integer status; + private String currentStepName; + private String nextStepName; + private String info; + private LocalDateTime createTime; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenWorkTrendDTO.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenWorkTrendDTO.java new file mode 100644 index 0000000..cec2e46 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/dto/ScreenWorkTrendDTO.java @@ -0,0 +1,15 @@ +package com.zcloud.eightwork.persistence.dataobject.dto; + +import lombok.Data; + +/** + * 可视化大屏作业情况统计 + * + * @author codex + */ +@Data +public class ScreenWorkTrendDTO { + private String workDate; + private String workType; + private Long count; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/EightworkInfoMapper.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/EightworkInfoMapper.java index cfc7c39..f588025 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/EightworkInfoMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/EightworkInfoMapper.java @@ -7,6 +7,9 @@ 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.ScreenStatusStatisticsDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -31,5 +34,13 @@ public interface EightworkInfoMapper extends BaseMapper { List statisticsByWorkType(@Param("params") Map params); DangerWorkStatisticsDTO dangerWorkStatistics(@Param("params") Map params); + + ScreenStatusStatisticsDTO screenStatusStatistics(@Param("params") Map params); + + List screenWorkTrend(@Param("params") Map params); + + IPage screenWorkRecord(Page> page, @Param("params") Map params); + + IPage screenWorkPage(Page> page, @Param("params") Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/EightworkInfoRepository.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/EightworkInfoRepository.java index 896bbc8..9496e31 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/EightworkInfoRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/EightworkInfoRepository.java @@ -4,6 +4,9 @@ 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.ScreenStatusStatisticsDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO; import java.util.List; @@ -28,6 +31,14 @@ public interface EightworkInfoRepository extends BaseRepository DangerWorkStatisticsDTO dangerWorkStatistics(Map params); + ScreenStatusStatisticsDTO screenStatusStatistics(Map params); + + List screenWorkTrend(Map params); + + PageResponse screenWorkRecord(Map params); + + PageResponse screenWorkPage(Map params); + /** * 使用 CAS 方式更新 lockFlag(乐观锁) * 只有当 lockFlag 和 status 都匹配时才更新 diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/EightworkInfoRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/EightworkInfoRepositoryImpl.java index bd04cb7..5b11cc1 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/EightworkInfoRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/EightworkInfoRepositoryImpl.java @@ -11,6 +11,9 @@ 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.ScreenStatusStatisticsDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkRecordDTO; +import com.zcloud.eightwork.persistence.dataobject.dto.ScreenWorkTrendDTO; import com.zcloud.eightwork.persistence.dataobject.dto.StatisticsByWorkTypeDTO; import com.zcloud.eightwork.persistence.mapper.EightworkInfoMapper; import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository; @@ -79,6 +82,30 @@ public class EightworkInfoRepositoryImpl extends BaseRepositoryImpl params) { + return eightworkInfoMapper.screenStatusStatistics(params); + } + + @Override + public List screenWorkTrend(Map params) { + return eightworkInfoMapper.screenWorkTrend(params); + } + + @Override + public PageResponse screenWorkRecord(Map params) { + Page> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()), Integer.parseInt(params.get("pageSize").toString())); + IPage iPage = eightworkInfoMapper.screenWorkRecord(page, params); + return PageHelper.pageToResponse(iPage, iPage.getRecords()); + } + + @Override + public PageResponse screenWorkPage(Map params) { + Page> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()), Integer.parseInt(params.get("pageSize").toString())); + IPage iPage = eightworkInfoMapper.screenWorkPage(page, params); + return PageHelper.pageToResponse(iPage, iPage.getRecords()); + } + @Override public boolean updateLockFlagToLocked(Long id, Integer expectedLockFlag, Integer newLockFlag, Integer expectedStatus) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); diff --git a/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml b/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml index a4b0b74..3fd76c1 100644 --- a/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml @@ -144,4 +144,105 @@ + + + + + + + +