From e6cd88d54abb392a4abd977959676abcce439d13 Mon Sep 17 00:00:00 2001 From: fangjiakai <450850793@qq.com> Date: Thu, 8 Jan 2026 10:02:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(accident):=20=E6=B7=BB=E5=8A=A0=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BA=8B=E6=95=85=E6=95=B0=E6=8D=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增EventExportConvertor转换器和EventExportCO导出对象 - 实现根据eqType区分事故和事件的导出功能 - 优化AccidentRepositoryImpl数据访问层方法 - 更新DTO对象添加departmentId和reportUser字段 - 修改Excel导出样式配置和列宽设置 - 调整查询条件处理逻辑和数据权限控制 - 优化Mapper层SQL查询语句和数据过滤规则 --- .../accident/web/AccidentController.java | 39 ++++--- .../convertor/EventExportConvertor.java | 29 +++++ .../command/query/AccidentQueryExe.java | 16 ++- .../zcloud/accident/dto/AccidentAddCmd.java | 15 ++- .../zcloud/accident/dto/AccidentPageQry.java | 8 +- .../accident/dto/AccidentUpdateCmd.java | 28 +---- .../accident/dto/clientobject/AccidentCO.java | 4 + .../dto/clientobject/AccidentExportCO.java | 60 ++++++---- .../dto/clientobject/EventExportCO.java | 107 ++++++++++++++++++ .../accident/domain/model/AccidentE.java | 7 +- .../persistence/dataobject/AccidentDO.java | 5 + .../persistence/mapper/AccidentMapper.java | 26 +++-- .../repository/AccidentRepository.java | 8 +- .../impl/AccidentRepositoryImpl.java | 40 +++---- .../main/resources/mapper/AccidentMapper.xml | 65 +++++++++++ 15 files changed, 345 insertions(+), 112 deletions(-) create mode 100644 web-app/src/main/java/com/zcloud/accident/command/convertor/EventExportConvertor.java create mode 100644 web-client/src/main/java/com/zcloud/accident/dto/clientobject/EventExportCO.java diff --git a/web-adapter/src/main/java/com/zcloud/accident/web/AccidentController.java b/web-adapter/src/main/java/com/zcloud/accident/web/AccidentController.java index 8a8e957..407a01e 100644 --- a/web-adapter/src/main/java/com/zcloud/accident/web/AccidentController.java +++ b/web-adapter/src/main/java/com/zcloud/accident/web/AccidentController.java @@ -6,10 +6,10 @@ import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; -import com.jjb.saas.framework.auth.model.SSOUser; import com.jjb.saas.framework.auth.utils.AuthContext; -import com.jjb.saas.framework.event.producer.RemoteEventPublisher; import com.zcloud.accident.api.AccidentServiceI; +import com.zcloud.accident.command.convertor.AccidentExportConvertor; +import com.zcloud.accident.command.convertor.EventExportConvertor; import com.zcloud.accident.dto.AccidentAddCmd; import com.zcloud.accident.dto.AccidentCountQry; import com.zcloud.accident.dto.AccidentPageQry; @@ -17,13 +17,11 @@ import com.zcloud.accident.dto.AccidentUpdateCmd; import com.zcloud.accident.dto.clientobject.AccidentCO; import com.zcloud.accident.dto.clientobject.AccidentCountStatCO; import com.zcloud.accident.dto.clientobject.AccidentExportCO; -import com.zcloud.accident.command.convertor.AccidentExportConvertor; +import com.zcloud.accident.dto.clientobject.EventExportCO; import com.zcloud.accident.util.ExcelUtils; -import com.zcloud.gbscommon.event.user.ZcUserEvent; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.springframework.messaging.MessageChannel; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -47,19 +45,18 @@ import java.util.List; public class AccidentController { private final AccidentServiceI accidentService; private final AccidentExportConvertor accidentExportConvertor; - private final RemoteEventPublisher remoteEventPublisher ; + private final EventExportConvertor eventExportConvertor; + @ApiOperation("新增") @PostMapping("/save") public SingleResponse add(@Validated @RequestBody AccidentAddCmd cmd) { + cmd.setDepartmentId(AuthContext.getOrgId()); return accidentService.add(cmd); } @ApiOperation("分页") @PostMapping("/list") public PageResponse page(@RequestBody AccidentPageQry qry) { - if(ObjectUtil.isNull(qry.getEqCorpinfoId())){ - qry.setEqCorpinfoId(AuthContext.getTenantId()); - } return accidentService.listPage(qry); } @@ -99,14 +96,26 @@ public class AccidentController { @ApiOperation("导出Excel") @GetMapping("/export") public void export(AccidentPageQry qry, HttpServletResponse response) throws IOException { + if(ObjectUtil.isNull(qry.getEqCorpinfoId())){ + qry.setEqCorpinfoId(AuthContext.getTenantId()); + } // 使用listAll方法获取所有符合条件的数据 List accidentCOList = accidentService.listAll(qry); - // 转换为导出CO - List exportCOList = accidentExportConvertor.convertToExportCOList(accidentCOList); - // 生成文件名 - String fileName = "事故数据_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - // 调用工具类导出Excel - ExcelUtils.exportExcel(response, AccidentExportCO.class, fileName, exportCOList); + if(qry.getEqType() == 1){ + // 转换为导出CO + List exportCOList = eventExportConvertor.convertToExportCOList(accidentCOList); + // 生成文件名 + String fileName = "事件数据_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + // 调用工具类导出Excel + ExcelUtils.exportExcel(response, EventExportCO.class, fileName, exportCOList); + }else{ + // 转换为导出CO + List exportCOList = accidentExportConvertor.convertToExportCOList(accidentCOList); + // 生成文件名 + String fileName = "事故数据_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + // 调用工具类导出Excel + ExcelUtils.exportExcel(response, AccidentExportCO.class, fileName, exportCOList); + } } @ApiOperation("按照公司和事故类型统计个数") diff --git a/web-app/src/main/java/com/zcloud/accident/command/convertor/EventExportConvertor.java b/web-app/src/main/java/com/zcloud/accident/command/convertor/EventExportConvertor.java new file mode 100644 index 0000000..9dc5087 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/accident/command/convertor/EventExportConvertor.java @@ -0,0 +1,29 @@ +package com.zcloud.accident.command.convertor; + +import com.zcloud.accident.dto.clientobject.AccidentCO; +import com.zcloud.accident.dto.clientobject.AccidentExportCO; +import com.zcloud.accident.dto.clientobject.EventExportCO; +import org.mapstruct.Mapper; + +import java.util.List; + +/** + * 事故导出转换器 + */ +@Mapper(componentModel = "spring") +public interface EventExportConvertor { + + /** + * 将AccidentCO转换为AccidentExportCO + * @param accidentCO AccidentCO对象 + * @return AccidentExportCO对象 + */ + EventExportCO convertToExportCO(AccidentCO accidentCO); + + /** + * 将AccidentCO列表转换为AccidentExportCO列表 + * @param accidentCOList AccidentCO列表 + * @return AccidentExportCO列表 + */ + List convertToExportCOList(List accidentCOList); +} diff --git a/web-app/src/main/java/com/zcloud/accident/command/query/AccidentQueryExe.java b/web-app/src/main/java/com/zcloud/accident/command/query/AccidentQueryExe.java index 2750428..73164aa 100644 --- a/web-app/src/main/java/com/zcloud/accident/command/query/AccidentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/accident/command/query/AccidentQueryExe.java @@ -49,7 +49,13 @@ public class AccidentQueryExe { */ public PageResponse execute(AccidentPageQry accidentPageQry) { Map params = PageQueryHelper.toHashMap(accidentPageQry); - PageResponse pageResponse = accidentRepository.listPage(params); + String menuPerms = ""; + if(accidentPageQry.getEqType() == 1){ + menuPerms = "zcloud-event"; + }else{ + menuPerms = "zcloud-accident"; + } + PageResponse pageResponse = accidentRepository.listPage(params,menuPerms); List examCenterCOS = accidentCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } @@ -62,7 +68,13 @@ public class AccidentQueryExe { */ public List listAll(AccidentPageQry accidentPageQry) { Map params = PageQueryHelper.toHashMap(accidentPageQry); - List accidentDOs = accidentRepository.listAll(params); + String menuPerms = ""; + if(accidentPageQry.getEqType() == 1){ + menuPerms = "zcloud-event"; + }else{ + menuPerms = "zcloud-accident"; + } + List accidentDOs = accidentRepository.listAll(params,menuPerms); return accidentCoConvertor.converDOsToCOs(accidentDOs); } /** diff --git a/web-client/src/main/java/com/zcloud/accident/dto/AccidentAddCmd.java b/web-client/src/main/java/com/zcloud/accident/dto/AccidentAddCmd.java index bc76b31..40e44ce 100644 --- a/web-client/src/main/java/com/zcloud/accident/dto/AccidentAddCmd.java +++ b/web-client/src/main/java/com/zcloud/accident/dto/AccidentAddCmd.java @@ -24,9 +24,8 @@ import java.time.LocalDateTime; @NoArgsConstructor @AllArgsConstructor public class AccidentAddCmd extends Command { - @ApiModelProperty(value = "主键", name = "id", required = true) - @NotNull(message = "主键不能为空") - private Long id; + @ApiModelProperty(value = "业务主键id", name = "id", required = true) + private String accidentId; @ApiModelProperty(value = "事故案号", name = "incidentNumber", required = true) @NotEmpty(message = "事故案号不能为空") private String incidentNumber; @@ -42,7 +41,6 @@ public class AccidentAddCmd extends Command { private String incidentLevel; private String incidentLevelName; @ApiModelProperty(value = "事故性质", name = "incidentNature", required = true) - @NotEmpty(message = "事故性质不能为空") private String incidentNature; @ApiModelProperty(value = "事故发生地点", name = "location", required = true) @NotEmpty(message = "事故发生地点不能为空") @@ -52,16 +50,12 @@ public class AccidentAddCmd extends Command { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime incidentDate; @ApiModelProperty(value = "直接经济损失(万元)", name = "directLoss", required = true) - @NotNull(message = "直接经济损失(万元)不能为空") private BigDecimal directLoss; @ApiModelProperty(value = "受伤人数", name = "injured", required = true) - @NotNull(message = "受伤人数不能为空") private Integer injured; @ApiModelProperty(value = "死亡人数", name = "fatalities", required = true) - @NotNull(message = "死亡人数不能为空") private Integer fatalities; @ApiModelProperty(value = "重伤人数", name = "seriouslyInjured", required = true) - @NotNull(message = "重伤人数不能为空") private Integer seriouslyInjured; @ApiModelProperty(value = "事故起因", name = "cause", required = true) @NotEmpty(message = "事故起因不能为空") @@ -78,6 +72,9 @@ public class AccidentAddCmd extends Command { @ApiModelProperty(value = "整改措施", name = "measures", required = true) @NotEmpty(message = "整改措施不能为空") private String measures; + @ApiModelProperty(value = "填报人", name = "reportUser", required = true) + @NotEmpty(message = "填报人不能为空") + private String reportUser; @ApiModelProperty(value = "报出日期", name = "reportDate", required = true) @NotNull(message = "报出日期不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -85,5 +82,7 @@ public class AccidentAddCmd extends Command { @ApiModelProperty(value = "1事件/2事故", name = "type", required = true) @NotNull(message = "1事件/2事故不能为空") private Integer type; + @ApiModelProperty(value = "部门id", name = "departmentId") + private Long departmentId; } diff --git a/web-client/src/main/java/com/zcloud/accident/dto/AccidentPageQry.java b/web-client/src/main/java/com/zcloud/accident/dto/AccidentPageQry.java index 90ca7aa..89f4e85 100644 --- a/web-client/src/main/java/com/zcloud/accident/dto/AccidentPageQry.java +++ b/web-client/src/main/java/com/zcloud/accident/dto/AccidentPageQry.java @@ -40,13 +40,9 @@ public class AccidentPageQry extends PageQuery { @ApiModelProperty(value = "事故级别", name = "likeIncidentLevel") private String eqIncidentLevel; @ApiModelProperty(value = "开始时间", name = "geIncidentDate") - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate geIncidentDate; + private String geIncidentDate; @ApiModelProperty(value = "结束时间", name = "leIncidentDate") - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate leIncidentDate; + private String leIncidentDate; @ApiModelProperty(value = "类型1事件2事故", name = "eqType") private Integer eqType; } diff --git a/web-client/src/main/java/com/zcloud/accident/dto/AccidentUpdateCmd.java b/web-client/src/main/java/com/zcloud/accident/dto/AccidentUpdateCmd.java index 4f8a18a..5ef61f1 100644 --- a/web-client/src/main/java/com/zcloud/accident/dto/AccidentUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/accident/dto/AccidentUpdateCmd.java @@ -26,69 +26,47 @@ public class AccidentUpdateCmd extends Command { @NotNull(message = "主键id不能为空") private Long id; @ApiModelProperty(value = "事故案号", name = "incidentNumber", required = true) - @NotEmpty(message = "事故案号不能为空") private String incidentNumber; @ApiModelProperty(value = "事故名称", name = "incidentName", required = true) - @NotEmpty(message = "事故名称不能为空") private String incidentName; @ApiModelProperty(value = "事故类型", name = "incidentType", required = true) - @NotEmpty(message = "事故类型不能为空") private String incidentType; @ApiModelProperty(value = "事故类型", name = "incidentTypeName", required = true) - @NotEmpty(message = "事故类型不能为空") private String incidentTypeName; - @ApiModelProperty(value = "公司id", name = "corpinfoId", required = true) - @NotNull(message = "公司id不能为空") - private Long corpinfoId; @ApiModelProperty(value = "事故级别", name = "incidentLevel", required = true) - @NotEmpty(message = "事故级别不能为空") private String incidentLevel; @ApiModelProperty(value = "事故级别", name = "incidentLevelName", required = true) - @NotEmpty(message = "事故级别不能为空") private String incidentLevelName; @ApiModelProperty(value = "事故性质", name = "incidentNature", required = true) - @NotEmpty(message = "事故性质不能为空") private String incidentNature; @ApiModelProperty(value = "事故发生地点", name = "location", required = true) - @NotEmpty(message = "事故发生地点不能为空") private String location; @ApiModelProperty(value = "事故发生时间", name = "incidentDate", required = true) - @NotNull(message = "事故发生时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime incidentDate; @ApiModelProperty(value = "直接经济损失(万元)", name = "directLoss", required = true) - @NotNull(message = "直接经济损失(万元)不能为空") private BigDecimal directLoss; @ApiModelProperty(value = "受伤人数", name = "injured", required = true) - @NotNull(message = "受伤人数不能为空") private Integer injured; @ApiModelProperty(value = "死亡人数", name = "fatalities", required = true) - @NotNull(message = "死亡人数不能为空") private Integer fatalities; @ApiModelProperty(value = "重伤人数", name = "seriouslyInjured", required = true) - @NotNull(message = "重伤人数不能为空") private Integer seriouslyInjured; @ApiModelProperty(value = "事故起因", name = "cause", required = true) - @NotEmpty(message = "事故起因不能为空") private String cause; @ApiModelProperty(value = "事故概述", name = "summary", required = true) - @NotEmpty(message = "事故概述不能为空") private String summary; @ApiModelProperty(value = "原因分析及责任认定", name = "analysis", required = true) - @NotEmpty(message = "原因分析及责任认定不能为空") private String analysis; @ApiModelProperty(value = "考核建议", name = "suggestions", required = true) - @NotEmpty(message = "考核建议不能为空") private String suggestions; @ApiModelProperty(value = "整改措施", name = "measures", required = true) - @NotEmpty(message = "整改措施不能为空") private String measures; + @ApiModelProperty(value = "填报人", name = "reportUser", required = true) + @NotEmpty(message = "填报人不能为空") + private String reportUser; @ApiModelProperty(value = "报出日期", name = "reportDate", required = true) - @NotNull(message = "报出日期不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime reportDate; - @ApiModelProperty(value = "1事件/2事故", name = "type", required = true) - @NotNull(message = "1事件/2事故不能为空") - private Integer type; } diff --git a/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentCO.java b/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentCO.java index b87d544..514cc6a 100644 --- a/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentCO.java +++ b/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentCO.java @@ -6,6 +6,7 @@ import com.jjb.saas.framework.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotEmpty; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -85,8 +86,11 @@ public class AccidentCO extends ClientObject { //整改措施 @ApiModelProperty(value = "整改措施") private String measures; + @ApiModelProperty(value = "填报人") + private String reportUser; //报出日期 @ApiModelProperty(value = "报出日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime reportDate; //1事件/2事故 @ApiModelProperty(value = "1事件/2事故") diff --git a/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentExportCO.java b/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentExportCO.java index 56fe22f..ab0a8c2 100644 --- a/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentExportCO.java +++ b/web-client/src/main/java/com/zcloud/accident/dto/clientobject/AccidentExportCO.java @@ -2,6 +2,7 @@ package com.zcloud.accident.dto.clientobject; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,77 +16,90 @@ import java.time.LocalDateTime; @Data public class AccidentExportCO { + @ApiModelProperty(value = "所属公司") + @ExcelProperty(value = "所属公司", index = 0) + @ColumnWidth(20) + private String corpinfoName; + @ApiModelProperty(value = "事故案号") - @ExcelProperty(value = "事故案号", index = 0) + @ExcelProperty(value = "事故案号", index = 1) + @ColumnWidth(20) private String incidentNumber; @ApiModelProperty(value = "事故名称") - @ExcelProperty(value = "事故名称", index = 1) + @ExcelProperty(value = "事故名称", index = 2) + @ColumnWidth(20) private String incidentName; @ApiModelProperty(value = "事故类型") - @ExcelProperty(value = "事故类型", index = 2) + @ExcelProperty(value = "事故类型", index = 3) + @ColumnWidth(20) private String incidentTypeName; - @ApiModelProperty(value = "公司") - @ExcelProperty(value = "公司", index = 3) - private String corpinfoName; - @ApiModelProperty(value = "事故级别") @ExcelProperty(value = "事故级别", index = 4) + @ColumnWidth(20) private String incidentLevelName; - @ApiModelProperty(value = "事故性质") - @ExcelProperty(value = "事故性质", index = 5) - private String incidentNature; - @ApiModelProperty(value = "事故发生地点") - @ExcelProperty(value = "事故发生地点", index = 6) + @ExcelProperty(value = "事故发生地点", index = 5) + @ColumnWidth(20) private String location; @ApiModelProperty(value = "事故发生时间") @DateTimeFormat("yyyy-MM-dd HH:mm:ss") - @ExcelProperty(value = "事故发生时间", index = 7) + @ExcelProperty(value = "事故发生时间", index = 6) + @ColumnWidth(20) private LocalDateTime incidentDate; @ApiModelProperty(value = "直接经济损失(万元)") - @ExcelProperty(value = "直接经济损失(万元)", index = 8) + @ExcelProperty(value = "直接经济损失(万元)", index = 7) + @ColumnWidth(20) private BigDecimal directLoss; @ApiModelProperty(value = "受伤人数") - @ExcelProperty(value = "受伤人数", index = 9) + @ExcelProperty(value = "受伤人数", index = 8) + @ColumnWidth(20) private Integer injured; @ApiModelProperty(value = "死亡人数") - @ExcelProperty(value = "死亡人数", index = 10) + @ExcelProperty(value = "死亡人数", index = 9) + @ColumnWidth(20) private Integer fatalities; @ApiModelProperty(value = "重伤人数") - @ExcelProperty(value = "重伤人数", index = 11) + @ExcelProperty(value = "重伤人数", index = 10) + @ColumnWidth(20) private Integer seriouslyInjured; @ApiModelProperty(value = "事故起因") - @ExcelProperty(value = "事故起因", index = 12) + @ExcelProperty(value = "事故起因", index = 11) + @ColumnWidth(20) private String cause; @ApiModelProperty(value = "事故概述") - @ExcelProperty(value = "事故概述", index = 13) + @ExcelProperty(value = "事故概述", index = 12) + @ColumnWidth(20) private String summary; @ApiModelProperty(value = "原因分析及责任认定") - @ExcelProperty(value = "原因分析及责任认定", index = 14) + @ExcelProperty(value = "原因分析及责任认定", index = 13) + @ColumnWidth(20) private String analysis; @ApiModelProperty(value = "考核建议") - @ExcelProperty(value = "考核建议", index = 15) + @ExcelProperty(value = "考核建议", index = 14) + @ColumnWidth(20) private String suggestions; @ApiModelProperty(value = "整改措施") - @ExcelProperty(value = "整改措施", index = 16) + @ExcelProperty(value = "整改措施", index = 15) + @ColumnWidth(20) private String measures; @ApiModelProperty(value = "报出日期") - @ExcelProperty(value = "报出日期", index = 17) + @ExcelProperty(value = "报出日期", index = 16) + @ColumnWidth(20) @DateTimeFormat("yyyy-MM-dd HH:mm:ss") private LocalDateTime reportDate; diff --git a/web-client/src/main/java/com/zcloud/accident/dto/clientobject/EventExportCO.java b/web-client/src/main/java/com/zcloud/accident/dto/clientobject/EventExportCO.java new file mode 100644 index 0000000..0468895 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/accident/dto/clientobject/EventExportCO.java @@ -0,0 +1,107 @@ +package com.zcloud.accident.dto.clientobject; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 事件导出客户端对象 + * 用于Excel导出 + */ +@Data +public class EventExportCO { + + @ApiModelProperty(value = "所属公司") + @ExcelProperty(value = "所属公司", index = 0) + @ColumnWidth(20) + private String corpinfoName; + + @ApiModelProperty(value = "事件案号") + @ExcelProperty(value = "事件案号", index = 1) + @ColumnWidth(20) + private String incidentNumber; + + @ApiModelProperty(value = "事件名称") + @ExcelProperty(value = "事件名称", index = 2) + @ColumnWidth(20) + private String incidentName; + + @ApiModelProperty(value = "事件类型") + @ExcelProperty(value = "事件类型", index = 3) + @ColumnWidth(20) + private String incidentTypeName; + + + @ApiModelProperty(value = "事件级别") + @ExcelProperty(value = "事件级别", index = 4) + @ColumnWidth(20) + private String incidentLevelName; + + @ApiModelProperty(value = "事件发生地点") + @ExcelProperty(value = "事件发生地点", index = 5) + @ColumnWidth(20) + private String location; + + @ApiModelProperty(value = "事件发生时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + @ExcelProperty(value = "事件发生时间", index = 6) + @ColumnWidth(20) + private LocalDateTime incidentDate; + + @ApiModelProperty(value = "直接经济损失(万元)") + @ExcelProperty(value = "直接经济损失(万元)", index = 7) + @ColumnWidth(20) + private BigDecimal directLoss; + + @ApiModelProperty(value = "受伤人数") + @ExcelProperty(value = "受伤人数", index = 8) + @ColumnWidth(20) + private Integer injured; + + @ApiModelProperty(value = "死亡人数") + @ExcelProperty(value = "死亡人数", index = 9) + @ColumnWidth(20) + private Integer fatalities; + + @ApiModelProperty(value = "重伤人数") + @ExcelProperty(value = "重伤人数", index = 10) + @ColumnWidth(20) + private Integer seriouslyInjured; + + @ApiModelProperty(value = "事件起因") + @ExcelProperty(value = "事件起因", index = 11) + @ColumnWidth(20) + private String cause; + + @ApiModelProperty(value = "事件概述") + @ExcelProperty(value = "事件概述", index = 12) + @ColumnWidth(20) + private String summary; + + @ApiModelProperty(value = "原因分析及责任认定") + @ExcelProperty(value = "原因分析及责任认定", index = 13) + @ColumnWidth(20) + private String analysis; + + @ApiModelProperty(value = "考核建议") + @ExcelProperty(value = "考核建议", index = 14) + @ColumnWidth(20) + private String suggestions; + + @ApiModelProperty(value = "整改措施") + @ExcelProperty(value = "整改措施", index = 15) + @ColumnWidth(20) + private String measures; + + @ApiModelProperty(value = "报出日期") + @ExcelProperty(value = "报出日期", index = 16) + @ColumnWidth(20) + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime reportDate; + +} diff --git a/web-domain/src/main/java/com/zcloud/accident/domain/model/AccidentE.java b/web-domain/src/main/java/com/zcloud/accident/domain/model/AccidentE.java index 3fae72c..5e00f41 100644 --- a/web-domain/src/main/java/com/zcloud/accident/domain/model/AccidentE.java +++ b/web-domain/src/main/java/com/zcloud/accident/domain/model/AccidentE.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotEmpty; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -17,7 +18,7 @@ import java.time.LocalDateTime; @Data public class AccidentE extends BaseE { //主键id - private Long id; + private String accidentId; //事故案号 private String incidentNumber; //事故名称 @@ -54,9 +55,13 @@ public class AccidentE extends BaseE { private String suggestions; //整改措施 private String measures; + //填报人 + private String reportUser; //报出日期 private LocalDateTime reportDate; //1事件/2事故 private Integer type; + //部门id + private Long departmentId; } diff --git a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/dataobject/AccidentDO.java b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/dataobject/AccidentDO.java index d84d876..7b24fc8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/dataobject/AccidentDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/dataobject/AccidentDO.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotEmpty; import java.math.BigDecimal; import java.sql.Date; import java.time.LocalDateTime; @@ -86,6 +87,8 @@ public class AccidentDO extends BaseDO { //整改措施 @ApiModelProperty(value = "整改措施") private String measures; + @ApiModelProperty(value = "填报人") + private String reportUser; //报出日期 @ApiModelProperty(value = "报出日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -93,6 +96,8 @@ public class AccidentDO extends BaseDO { //1事件/2事故 @ApiModelProperty(value = "1事件/2事故") private Integer type; + @ApiModelProperty(value = "部门id") + private Long departmentId; public AccidentDO(String accidentId) { this.accidentId = accidentId; diff --git a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/mapper/AccidentMapper.java b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/mapper/AccidentMapper.java index 6347dcd..d163e9b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/mapper/AccidentMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/mapper/AccidentMapper.java @@ -1,19 +1,27 @@ package com.zcloud.accident.persistence.mapper; -import com.zcloud.accident.persistence.dataobject.AccidentDO; -import com.zcloud.accident.domain.model.AccidentCountStat; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; +import com.zcloud.accident.domain.model.AccidentCountStat; +import com.zcloud.accident.persistence.dataobject.AccidentDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** -* web-infrastructure -* @Author fangjiakai -* @Date 2025-10-29 14:28:43 -*/ + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-10-29 14:28:43 + */ @Mapper +@DataScopes({ + @DataScope(method = "listPage", menuPerms = ""), + @DataScope(method = "list", menuPerms = "")}) public interface AccidentMapper extends BaseMapper { /** @@ -23,6 +31,10 @@ public interface AccidentMapper extends BaseMapper { * @param eqAccidentType * @return 统计结果列表,包含corpinfoId、incidentType和count字段 */ - List countByCorpinfoIdAndIncidentType(@Param("corpinfoIds") List corpinfoIds,@Param("eqAccidentType") Integer eqAccidentType); + List countByCorpinfoIdAndIncidentType(@Param("corpinfoIds") List corpinfoIds, @Param("eqAccidentType") Integer eqAccidentType); + + IPage listPage(IPage iPage, @Param("params") Map params,String menuPerms); + + List list(@Param("params") Map params, String menuPerms); } diff --git a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/AccidentRepository.java b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/AccidentRepository.java index 2dc4d96..85c8fd5 100644 --- a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/AccidentRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/AccidentRepository.java @@ -15,14 +15,16 @@ import java.util.Map; * @Date 2025-10-29 14:28:45 */ public interface AccidentRepository extends BaseRepository { - PageResponse listPage(Map params); + PageResponse listPage(Map params,String menuPerms); /** * 获取所有符合条件的数据 - * @param params 查询参数 + * + * @param params 查询参数 + * @param menuPerms * @return 数据列表 */ - List listAll(Map params); + List listAll(Map params,String menuPerms); /** * 按照corpinfoId和incidentType统计个数 diff --git a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/impl/AccidentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/impl/AccidentRepositoryImpl.java index 255e9d3..6ad6435 100644 --- a/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/impl/AccidentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/accident/persistence/repository/impl/AccidentRepositoryImpl.java @@ -1,52 +1,48 @@ package com.zcloud.accident.persistence.repository.impl; -import com.jjb.saas.framework.repository.common.PageHelper; -import com.zcloud.accident.persistence.dataobject.AccidentDO; -import com.zcloud.accident.domain.model.AccidentCountStat; -import com.zcloud.accident.persistence.mapper.AccidentMapper; -import com.zcloud.accident.persistence.repository.AccidentRepository; import com.alibaba.cola.dto.PageResponse; -import com.zcloud.gbscommon.utils.PageQueryHelper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import com.zcloud.accident.domain.model.AccidentCountStat; +import com.zcloud.accident.persistence.dataobject.AccidentDO; +import com.zcloud.accident.persistence.mapper.AccidentMapper; +import com.zcloud.accident.persistence.repository.AccidentRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; + import java.util.List; import java.util.Map; /** -* web-infrastructure -* @Author fangjiakai -* @Date 2025-10-29 14:28:49 -*/ + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-10-29 14:28:49 + */ @Service @RequiredArgsConstructor public class AccidentRepositoryImpl extends BaseRepositoryImpl implements AccidentRepository { private final AccidentMapper accidentMapper; @Override - public PageResponse listPage(Map params) { - IPage iPage = new Query().getPage(params); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.orderByDesc("create_time"); - IPage result = accidentMapper.selectPage(iPage, queryWrapper); + public PageResponse listPage(Map params,String menuPerms) { + IPage iPage = new Query().getPage(params); + IPage result = accidentMapper.listPage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } @Override - public List listAll(Map params) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.orderByDesc("create_time"); - return accidentMapper.selectList(queryWrapper); + public List listAll(Map params, String menuPerms) { + return accidentMapper.list(params, menuPerms); } @Override public List countByCorpinfoIdAndIncidentType(List corpinfoIds, Integer eqAccidentType) { - return accidentMapper.countByCorpinfoIdAndIncidentType(corpinfoIds,eqAccidentType); + return accidentMapper.countByCorpinfoIdAndIncidentType(corpinfoIds, eqAccidentType); } } diff --git a/web-infrastructure/src/main/resources/mapper/AccidentMapper.xml b/web-infrastructure/src/main/resources/mapper/AccidentMapper.xml index 46b5d2e..6fae35c 100644 --- a/web-infrastructure/src/main/resources/mapper/AccidentMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/AccidentMapper.xml @@ -4,6 +4,70 @@ + + + +