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 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 5 import jodd.util.StringUtil;
  6 +import org.springframework.util.CollectionUtils;
4 7 import org.springframework.web.bind.annotation.*;
5 8 import jakarta.annotation.Resource;
6 9 import org.springframework.validation.annotation.Validated;
... ... @@ -13,6 +16,7 @@ import jakarta.validation.*;
13 16 import jakarta.servlet.http.*;
14 17 import java.util.*;
15 18 import java.io.IOException;
  19 +import java.util.stream.Collectors;
16 20  
17 21 import com.zteits.urbanops.framework.common.pojo.PageParam;
18 22 import com.zteits.urbanops.framework.common.pojo.PageResult;
... ... @@ -89,7 +93,7 @@ public class EmergencyTaskController {
89 93  
90 94 @GetMapping("/page")
91 95 @Operation(summary = "获得抢险任务主分页")
92   - //@PreAuthorize("@ss.hasPermission('garden:emergency-task:query')")
  96 + // @PreAuthorize("@ss.hasPermission('garden:emergency-task:query')")
93 97 public CommonResult<PageResult<EmergencyTaskRespVO>> getEmergencyTaskPage(@Valid EmergencyTaskPageReqVO pageReqVO) {
94 98 PageResult<EmergencyTaskRespVO> pageResult = emergencyTaskService.getEmergencyTaskPage(pageReqVO);
95 99 return success(pageResult);
... ... @@ -97,14 +101,83 @@ public class EmergencyTaskController {
97 101  
98 102 @GetMapping("/export-excel")
99 103 @Operation(summary = "导出抢险任务主 Excel")
100   - //@PreAuthorize("@ss.hasPermission('garden:emergency-task:export')")
  104 + @PreAuthorize("@ss.hasPermission('garden:emergency-task:export')")
101 105 @ApiAccessLog(operateType = EXPORT)
102 106 public void exportEmergencyTaskExcel(@Valid EmergencyTaskPageReqVO pageReqVO,
103 107 HttpServletResponse response) throws IOException {
104 108 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
105 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 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 20 private Integer busiStatus;
21 21  
22 22 @Schema(description = "审批备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "审批备注")
  23 + @Max(value = 64, message = "审批备注长度不能超过64")
23 24 private String approvalRemarks;
24 25  
25 26 }
26 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 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 32  
33 33 @Schema(description = "险情地点", requiredMode = Schema.RequiredMode.REQUIRED)
34 34 @NotEmpty(message = "险情地点不能为空")
  35 + @Size(max = 100, message = "险情地点长度不能超过 100 个字符")
35 36 private String emergencyLocation;
36 37  
37 38 @Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
... ... @@ -53,9 +54,11 @@ public class EmergencyTaskSaveReqVO {
53 54 private List<String> emergencyImg;
54 55  
55 56 @Schema(description = "树种(如:国槐)")
  57 + @Size(max = 100, message = "险情地点长度不能超过 255 个字符")
56 58 private String treeSpecies;
57 59  
58 60 @Schema(description = "树木规格(如:胸径20厘米)")
  61 + @Size(max = 100, message = "树木规格100个字符")
59 62 private String treeSpec;
60 63  
61 64 @Schema(description = "抢险完成时间", requiredMode = Schema.RequiredMode.REQUIRED)
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyTaskService.java
1 1 package com.zteits.urbanops.module.garden.service.emergencytask;
2 2  
3 3 import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
4 6 import jakarta.validation.*;
5 7 import com.zteits.urbanops.module.garden.controller.admin.emergencytask.vo.*;
6 8 import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyTaskDO;
... ... @@ -81,4 +83,6 @@ public interface EmergencyTaskService {
81 83 */
82 84 PageResult<EmergencyTaskRespVO> getEmergencyTaskPage(EmergencyTaskPageReqVO pageReqVO);
83 85  
  86 + List<DictDataRespDTO> getDictDataList(String dictType);
  87 +
84 88 }
85 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 7 import com.alibaba.fastjson.JSONObject;
8 8 import com.baomidou.mybatisplus.core.conditions.Wrapper;
9 9 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  10 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
10 11 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
11 12 import com.zteits.urbanops.module.garden.controller.admin.road.vo.RoadRespVO;
12 13 import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyMachineryDO;
13 14 import com.zteits.urbanops.module.garden.dal.mysql.emergencytask.EmergencyMachineryMapper;
14 15 import com.zteits.urbanops.module.system.api.dept.DeptApi;
15 16 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
  17 +import com.zteits.urbanops.module.system.api.dict.DictDataApi;
16 18 import jodd.util.StringUtil;
17 19 import org.apache.commons.lang3.StringUtils;
18 20 import org.springframework.stereotype.Service;
... ... @@ -55,6 +57,9 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService {
55 57 @Resource
56 58 protected DeptApi deptApi;
57 59  
  60 + @Resource
  61 + private DictDataApi dictDataApi;
  62 +
58 63 @Transactional(rollbackFor = Exception.class)
59 64 @Override
60 65 public Long createEmergencyTask(EmergencyTaskSaveReqVO createReqVO) {
... ... @@ -214,6 +219,8 @@ public class EmergencyTaskServiceImpl implements EmergencyTaskService {
214 219  
215 220 }
216 221  
  222 +
  223 +
217 224 /**
218 225 * 回填部门/公司/角色
219 226 * @param list 分页对象
... ... @@ -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 260 \ No newline at end of file
... ...