Commit d845e6f7780c579470c2ae08706e20665dfd35cf

Authored by wangqian
2 parents 63cde4db e5a12b7a

Merge remote-tracking branch 'origin/dev' into dev

urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/EmergencyTaskController.java
1 package com.zteits.urbanops.module.garden.controller.admin.emergencytask; 1 package com.zteits.urbanops.module.garden.controller.admin.emergencytask;
2 2
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
3 import jodd.util.StringUtil; 5 import jodd.util.StringUtil;
  6 +import org.springframework.util.CollectionUtils;
4 import org.springframework.web.bind.annotation.*; 7 import org.springframework.web.bind.annotation.*;
5 import jakarta.annotation.Resource; 8 import jakarta.annotation.Resource;
6 import org.springframework.validation.annotation.Validated; 9 import org.springframework.validation.annotation.Validated;
@@ -13,6 +16,7 @@ import jakarta.validation.*; @@ -13,6 +16,7 @@ import jakarta.validation.*;
13 import jakarta.servlet.http.*; 16 import jakarta.servlet.http.*;
14 import java.util.*; 17 import java.util.*;
15 import java.io.IOException; 18 import java.io.IOException;
  19 +import java.util.stream.Collectors;
16 20
17 import com.zteits.urbanops.framework.common.pojo.PageParam; 21 import com.zteits.urbanops.framework.common.pojo.PageParam;
18 import com.zteits.urbanops.framework.common.pojo.PageResult; 22 import com.zteits.urbanops.framework.common.pojo.PageResult;
@@ -89,7 +93,7 @@ public class EmergencyTaskController { @@ -89,7 +93,7 @@ public class EmergencyTaskController {
89 93
90 @GetMapping("/page") 94 @GetMapping("/page")
91 @Operation(summary = "获得抢险任务主分页") 95 @Operation(summary = "获得抢险任务主分页")
92 - //@PreAuthorize("@ss.hasPermission('garden:emergency-task:query')") 96 + // @PreAuthorize("@ss.hasPermission('garden:emergency-task:query')")
93 public CommonResult<PageResult<EmergencyTaskRespVO>> getEmergencyTaskPage(@Valid EmergencyTaskPageReqVO pageReqVO) { 97 public CommonResult<PageResult<EmergencyTaskRespVO>> getEmergencyTaskPage(@Valid EmergencyTaskPageReqVO pageReqVO) {
94 PageResult<EmergencyTaskRespVO> pageResult = emergencyTaskService.getEmergencyTaskPage(pageReqVO); 98 PageResult<EmergencyTaskRespVO> pageResult = emergencyTaskService.getEmergencyTaskPage(pageReqVO);
95 return success(pageResult); 99 return success(pageResult);
@@ -97,14 +101,83 @@ public class EmergencyTaskController { @@ -97,14 +101,83 @@ public class EmergencyTaskController {
97 101
98 @GetMapping("/export-excel") 102 @GetMapping("/export-excel")
99 @Operation(summary = "导出抢险任务主 Excel") 103 @Operation(summary = "导出抢险任务主 Excel")
100 - //@PreAuthorize("@ss.hasPermission('garden:emergency-task:export')") 104 + @PreAuthorize("@ss.hasPermission('garden:emergency-task:export')")
101 @ApiAccessLog(operateType = EXPORT) 105 @ApiAccessLog(operateType = EXPORT)
102 public void exportEmergencyTaskExcel(@Valid EmergencyTaskPageReqVO pageReqVO, 106 public void exportEmergencyTaskExcel(@Valid EmergencyTaskPageReqVO pageReqVO,
103 HttpServletResponse response) throws IOException { 107 HttpServletResponse response) throws IOException {
104 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); 108 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
105 List<EmergencyTaskRespVO> list = emergencyTaskService.getEmergencyTaskPage(pageReqVO).getList(); 109 List<EmergencyTaskRespVO> list = emergencyTaskService.getEmergencyTaskPage(pageReqVO).getList();
  110 + List<EmergencyTaskExcleRespVO> respList = new ArrayList<>();
  111 +
  112 + //险情类型 1:树木倒伏 2:树木折枝
  113 + List<DictDataRespDTO> dictDataList = emergencyTaskService.getDictDataList("hazard_type");
  114 +
  115 + //险情危害 1:砸车 2:砸房 3:砸人 4:无
  116 + List<DictDataRespDTO> hazardRiskList = emergencyTaskService.getDictDataList("hazard_risk");
  117 + //树木权属 1:专业权属 2:街道权属 3:其他
  118 + List<DictDataRespDTO> treePermissionsList = emergencyTaskService.getDictDataList("tree_permissions");
  119 + //机械类型 1:三轮车;2:货车;3:挖掘机
  120 + List<DictDataRespDTO> mechanicalTypeNameList = emergencyTaskService.getDictDataList("mechanical_type_name");
  121 +
  122 + //案件状态 1-待提交 2-待审核 3-驳回
  123 + List<DictDataRespDTO> rescueStatusList = emergencyTaskService.getDictDataList("rescue_status");
  124 +
  125 +
  126 + list.forEach(emergencyTask -> {
  127 + EmergencyTaskExcleRespVO emergencyTaskExcleRespVO = new EmergencyTaskExcleRespVO();
  128 + emergencyTaskExcleRespVO.setTaskNo(emergencyTask.getTaskNo());
  129 + emergencyTaskExcleRespVO.setDiscoveryTime(emergencyTask.getDiscoveryTime());
  130 + emergencyTaskExcleRespVO.setEmergencyTypeName(getLabel(dictDataList, emergencyTask.getEmergencyTypeId()));
  131 + emergencyTaskExcleRespVO.setEmergencyHarmName(getLabel(hazardRiskList, emergencyTask.getEmergencyHarmId()));
  132 + emergencyTaskExcleRespVO.setTreeOwnershipName(getLabel(treePermissionsList, emergencyTask.getTreeOwnershipId()));
  133 + emergencyTaskExcleRespVO.setEmergencyLocation(emergencyTask.getEmergencyLocation());
  134 + emergencyTaskExcleRespVO.setReporter(emergencyTask.getReporter());
  135 + emergencyTaskExcleRespVO.setContactPhone(emergencyTask.getContactPhone());
  136 + emergencyTaskExcleRespVO.setEmergencyImg(emergencyTask.getEmergencyImg());
  137 + emergencyTaskExcleRespVO.setTreeSpecies(emergencyTask.getTreeSpecies());
  138 + emergencyTaskExcleRespVO.setTreeSpec(emergencyTask.getTreeSpec());
  139 + emergencyTaskExcleRespVO.setRescueStartTime(emergencyTask.getRescueStartTime());
  140 + emergencyTaskExcleRespVO.setRescueCompleteTime(emergencyTask.getRescueCompleteTime());
  141 + emergencyTaskExcleRespVO.setPersonnelCount(emergencyTask.getPersonnelCount());
  142 + emergencyTaskExcleRespVO.setEmergencyEndImg(emergencyTask.getEmergencyEndImg());
  143 + emergencyTaskExcleRespVO.setRemarks(emergencyTask.getRemarks());
  144 + emergencyTaskExcleRespVO.setBusiStatus(getLabel(rescueStatusList, emergencyTask.getBusiStatus()));
  145 + emergencyTaskExcleRespVO.setCompanyName(emergencyTask.getCompanyName());
  146 + emergencyTaskExcleRespVO.setDeptName(emergencyTask.getDeptName());
  147 + emergencyTaskExcleRespVO.setApprovalUserName(emergencyTask.getApprovalUserName());
  148 + emergencyTaskExcleRespVO.setApprovalRemarks(emergencyTask.getApprovalRemarks());
  149 + emergencyTaskExcleRespVO.setCreatorName(emergencyTask.getCreatorName());
  150 + emergencyTaskExcleRespVO.setCreateTime(emergencyTask.getCreateTime());
  151 + List<String> machineryList = new ArrayList<>();
  152 + if(CollectionUtils.isEmpty(emergencyTask.getEmergencyMachineryList())){
  153 + emergencyTaskExcleRespVO.setMachineryInfo(Collections.EMPTY_LIST);
  154 + }else{
  155 + emergencyTask.getEmergencyMachineryList().forEach(emergencyMachinery -> {
  156 + String machineryName = getLabel(mechanicalTypeNameList, emergencyMachinery.getMachineryNameId());
  157 + Integer machineryCount = emergencyMachinery.getMachineryCount();
  158 + machineryList.add(machineryName + ":" + machineryCount);
  159 + });
  160 + respList.add(emergencyTaskExcleRespVO);
  161 + emergencyTaskExcleRespVO.setMachineryInfo(machineryList);
  162 + }
  163 + });
  164 +
  165 +
106 // 导出 Excel 166 // 导出 Excel
107 - ExcelUtils.write(response, "抢险任务主.xls", "数据", EmergencyTaskRespVO.class, list); 167 + ExcelUtils.write(response, "抢险任务主.xls", "数据", EmergencyTaskExcleRespVO.class, respList);
  168 + }
  169 +
  170 + private String getLabel(List<DictDataRespDTO> dictDataList, Integer id){
  171 + if(CollectionUtils.isEmpty(dictDataList)){
  172 + return "";
  173 + }
  174 + Map<String, String> nameMap = dictDataList.stream()
  175 + .collect(Collectors.toMap(
  176 + DictDataRespDTO::getValue, // Key=id
  177 + DictDataRespDTO::getLabel // Value=name
  178 + ));
  179 +
  180 + return nameMap.get(String.valueOf( id));
108 } 181 }
109 182
110 } 183 }
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskApprovalReqVO.java
@@ -20,6 +20,7 @@ public class EmergencyTaskApprovalReqVO { @@ -20,6 +20,7 @@ public class EmergencyTaskApprovalReqVO {
20 private Integer busiStatus; 20 private Integer busiStatus;
21 21
22 @Schema(description = "审批备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "审批备注") 22 @Schema(description = "审批备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "审批备注")
  23 + @Max(value = 64, message = "审批备注长度不能超过64")
23 private String approvalRemarks; 24 private String approvalRemarks;
24 25
25 } 26 }
26 \ No newline at end of file 27 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.emergencytask.vo;
  2 +
  3 +import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
  4 +import cn.idev.excel.annotation.ExcelProperty;
  5 +import com.zteits.urbanops.framework.excel.core.convert.ListToStringConverter;
  6 +import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyMachineryDO;
  7 +import io.swagger.v3.oas.annotations.media.Schema;
  8 +import lombok.Data;
  9 +
  10 +import java.time.LocalDateTime;
  11 +import java.util.List;
  12 +
  13 +@Schema(description = "管理后台 - 抢险任务主 Response VO")
  14 +@Data
  15 +@ExcelIgnoreUnannotated
  16 +public class EmergencyTaskExcleRespVO {
  17 +
  18 + @Schema(description = "任务编号(唯一标识,如生成规则:TASK+时间戳)", requiredMode = Schema.RequiredMode.REQUIRED)
  19 + @ExcelProperty("任务编号")
  20 + private String taskNo;
  21 +
  22 + @Schema(description = "发现险情时间", requiredMode = Schema.RequiredMode.REQUIRED)
  23 + @ExcelProperty("发现险情时间")
  24 + private LocalDateTime discoveryTime;
  25 +
  26 + @Schema(description = "险情类型(如:树木倒伏)", requiredMode = Schema.RequiredMode.REQUIRED, example = "5209")
  27 + @ExcelProperty("险情类型")
  28 + private String emergencyTypeName;
  29 +
  30 + @Schema(description = "险情危害(如:无)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16325")
  31 + @ExcelProperty("险情危害")
  32 + private String emergencyHarmName;
  33 +
  34 + @Schema(description = "树木权属(如:专业权属)", requiredMode = Schema.RequiredMode.REQUIRED, example = "19498")
  35 + @ExcelProperty("树木权属")
  36 + private String treeOwnershipName;
  37 +
  38 + @Schema(description = "险情地点", requiredMode = Schema.RequiredMode.REQUIRED)
  39 + @ExcelProperty("险情地点")
  40 + private String emergencyLocation;
  41 +
  42 + @Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
  43 + @ExcelProperty("上报人")
  44 + private String reporter;
  45 +
  46 + @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED)
  47 + @ExcelProperty("联系电话")
  48 + private String contactPhone;
  49 +
  50 + @Schema(description = "抢险开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
  51 + @ExcelProperty("抢险开始时间")
  52 + private LocalDateTime rescueStartTime;
  53 +
  54 + @Schema(description = "抢险中照片", requiredMode = Schema.RequiredMode.REQUIRED)
  55 + @ExcelProperty(value="抢险中照片", converter = ListToStringConverter.class)
  56 + private List<String> emergencyImg;
  57 +
  58 + @Schema(description = "树种(如:国槐)")
  59 + @ExcelProperty("树种")
  60 + private String treeSpecies;
  61 +
  62 + @Schema(description = "树木规格")
  63 + @ExcelProperty("树木规格")
  64 + private String treeSpec;
  65 +
  66 + @Schema(description = "抢险完成时间", requiredMode = Schema.RequiredMode.REQUIRED)
  67 + @ExcelProperty("抢险完成时间")
  68 + private LocalDateTime rescueCompleteTime;
  69 +
  70 + @Schema(description = "出动人员数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3371")
  71 + @ExcelProperty("出动人员数量")
  72 + private Integer personnelCount;
  73 +
  74 + @Schema(description = "抢险结束照片", requiredMode = Schema.RequiredMode.REQUIRED)
  75 + @ExcelProperty(value="抢险结束照片", converter = ListToStringConverter.class)
  76 + private List<String> emergencyEndImg;
  77 +
  78 + @Schema(description = "备注")
  79 + @ExcelProperty("备注")
  80 + private String remarks;
  81 +
  82 + @Schema(description = "案件状态 1-待提交 2-待审核 3-驳回 4-关闭;5-完结", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  83 + @ExcelProperty("案件状态")
  84 + private String busiStatus;
  85 +
  86 + @Schema(description = "审批人", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
  87 + @ExcelProperty("审批人")
  88 + private String approvalUserName;
  89 +
  90 + @Schema(description = "审批备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "审批备注")
  91 + @ExcelProperty("审批备注")
  92 + private String approvalRemarks;
  93 +
  94 +
  95 + @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
  96 + @ExcelProperty("创建者")
  97 + private String creatorName;
  98 +
  99 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  100 + @ExcelProperty("创建时间")
  101 + private LocalDateTime createTime;
  102 +
  103 + @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  104 + @ExcelProperty("更新者")
  105 + private String updaterName;
  106 +
  107 + @ExcelProperty(value="机械信息", converter = ListToStringConverter.class)
  108 + private List<String> machineryInfo;
  109 +
  110 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "20800")
  111 + @ExcelProperty("归属公司")
  112 + private String companyName;
  113 +
  114 +
  115 + @Schema(description = "部门(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "12055")
  116 + @ExcelProperty("果蔬部门")
  117 + private String deptName;
  118 +
  119 +}
0 \ No newline at end of file 120 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskSaveReqVO.java
@@ -32,6 +32,7 @@ public class EmergencyTaskSaveReqVO { @@ -32,6 +32,7 @@ public class EmergencyTaskSaveReqVO {
32 32
33 @Schema(description = "险情地点", requiredMode = Schema.RequiredMode.REQUIRED) 33 @Schema(description = "险情地点", requiredMode = Schema.RequiredMode.REQUIRED)
34 @NotEmpty(message = "险情地点不能为空") 34 @NotEmpty(message = "险情地点不能为空")
  35 + @Size(max = 100, message = "险情地点长度不能超过 100 个字符")
35 private String emergencyLocation; 36 private String emergencyLocation;
36 37
37 @Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED) 38 @Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -53,9 +54,11 @@ public class EmergencyTaskSaveReqVO { @@ -53,9 +54,11 @@ public class EmergencyTaskSaveReqVO {
53 private List<String> emergencyImg; 54 private List<String> emergencyImg;
54 55
55 @Schema(description = "树种(如:国槐)") 56 @Schema(description = "树种(如:国槐)")
  57 + @Size(max = 100, message = "险情地点长度不能超过 255 个字符")
56 private String treeSpecies; 58 private String treeSpecies;
57 59
58 @Schema(description = "树木规格(如:胸径20厘米)") 60 @Schema(description = "树木规格(如:胸径20厘米)")
  61 + @Size(max = 100, message = "树木规格100个字符")
59 private String treeSpec; 62 private String treeSpec;
60 63
61 @Schema(description = "抢险完成时间", requiredMode = Schema.RequiredMode.REQUIRED) 64 @Schema(description = "抢险完成时间", requiredMode = Schema.RequiredMode.REQUIRED)
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyTaskService.java
1 package com.zteits.urbanops.module.garden.service.emergencytask; 1 package com.zteits.urbanops.module.garden.service.emergencytask;
2 2
3 import java.util.*; 3 import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
4 import jakarta.validation.*; 6 import jakarta.validation.*;
5 import com.zteits.urbanops.module.garden.controller.admin.emergencytask.vo.*; 7 import com.zteits.urbanops.module.garden.controller.admin.emergencytask.vo.*;
6 import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyTaskDO; 8 import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyTaskDO;
@@ -81,4 +83,6 @@ public interface EmergencyTaskService { @@ -81,4 +83,6 @@ public interface EmergencyTaskService {
81 */ 83 */
82 PageResult<EmergencyTaskRespVO> getEmergencyTaskPage(EmergencyTaskPageReqVO pageReqVO); 84 PageResult<EmergencyTaskRespVO> getEmergencyTaskPage(EmergencyTaskPageReqVO pageReqVO);
83 85
  86 + List<DictDataRespDTO> getDictDataList(String dictType);
  87 +
84 } 88 }
85 \ No newline at end of file 89 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyTaskServiceImpl.java
@@ -7,12 +7,14 @@ import com.alibaba.fastjson.JSON; @@ -7,12 +7,14 @@ import com.alibaba.fastjson.JSON;
7 import com.alibaba.fastjson.JSONObject; 7 import com.alibaba.fastjson.JSONObject;
8 import com.baomidou.mybatisplus.core.conditions.Wrapper; 8 import com.baomidou.mybatisplus.core.conditions.Wrapper;
9 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 9 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  10 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
10 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; 11 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
11 import com.zteits.urbanops.module.garden.controller.admin.road.vo.RoadRespVO; 12 import com.zteits.urbanops.module.garden.controller.admin.road.vo.RoadRespVO;
12 import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyMachineryDO; 13 import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyMachineryDO;
13 import com.zteits.urbanops.module.garden.dal.mysql.emergencytask.EmergencyMachineryMapper; 14 import com.zteits.urbanops.module.garden.dal.mysql.emergencytask.EmergencyMachineryMapper;
14 import com.zteits.urbanops.module.system.api.dept.DeptApi; 15 import com.zteits.urbanops.module.system.api.dept.DeptApi;
15 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; 16 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
  17 +import com.zteits.urbanops.module.system.api.dict.DictDataApi;
16 import jodd.util.StringUtil; 18 import jodd.util.StringUtil;
17 import org.apache.commons.lang3.StringUtils; 19 import org.apache.commons.lang3.StringUtils;
18 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
@@ -55,6 +57,9 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService { @@ -55,6 +57,9 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService {
55 @Resource 57 @Resource
56 protected DeptApi deptApi; 58 protected DeptApi deptApi;
57 59
  60 + @Resource
  61 + private DictDataApi dictDataApi;
  62 +
58 @Transactional(rollbackFor = Exception.class) 63 @Transactional(rollbackFor = Exception.class)
59 @Override 64 @Override
60 public Long createEmergencyTask(EmergencyTaskSaveReqVO createReqVO) { 65 public Long createEmergencyTask(EmergencyTaskSaveReqVO createReqVO) {
@@ -214,6 +219,8 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService { @@ -214,6 +219,8 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService {
214 219
215 } 220 }
216 221
  222 +
  223 +
217 /** 224 /**
218 * 回填部门/公司/角色 225 * 回填部门/公司/角色
219 * @param list 分页对象 226 * @param list 分页对象
@@ -243,5 +250,10 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService { @@ -243,5 +250,10 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService {
243 }); 250 });
244 } 251 }
245 252
  253 + @Override
  254 + public List<DictDataRespDTO> getDictDataList(String dataType){
  255 + return dictDataApi.getDictDataList(dataType);
  256 + }
  257 +
246 258
247 } 259 }
248 \ No newline at end of file 260 \ No newline at end of file