Commit 32410eb7e5eda5428b92f21a914ed6f01129f881
Merge branch 'dev' into de_wangfs_202511
Showing
82 changed files
with
6340 additions
and
528 deletions
pom.xml
| @@ -17,6 +17,7 @@ | @@ -17,6 +17,7 @@ | ||
| 17 | <module>urbanops-module-infra</module> | 17 | <module>urbanops-module-infra</module> |
| 18 | <module>urbanops-module-gloabl</module> | 18 | <module>urbanops-module-gloabl</module> |
| 19 | <module>urbanops-module-garden</module> | 19 | <module>urbanops-module-garden</module> |
| 20 | + <module>urbanops-module-workorder</module> | ||
| 20 | <!-- <module>urbanops-module-member</module>--> | 21 | <!-- <module>urbanops-module-member</module>--> |
| 21 | <module>urbanops-module-bpm</module> | 22 | <module>urbanops-module-bpm</module> |
| 22 | <!-- <module>urbanops-module-report</module>--> | 23 | <!-- <module>urbanops-module-report</module>--> |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtrees/OldtreesController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtrees; | ||
| 2 | + | ||
| 3 | +import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; | ||
| 4 | +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; | ||
| 5 | +import org.apache.catalina.security.SecurityUtil; | ||
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 7 | +import org.springframework.web.bind.annotation.*; | ||
| 8 | +import jakarta.annotation.Resource; | ||
| 9 | +import org.springframework.validation.annotation.Validated; | ||
| 10 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 11 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 14 | + | ||
| 15 | +import jakarta.validation.constraints.*; | ||
| 16 | +import jakarta.validation.*; | ||
| 17 | +import jakarta.servlet.http.*; | ||
| 18 | + | ||
| 19 | +import java.time.LocalDateTime; | ||
| 20 | +import java.util.*; | ||
| 21 | +import java.io.IOException; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 24 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 25 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 26 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 27 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 28 | + | ||
| 29 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 30 | + | ||
| 31 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 32 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 33 | + | ||
| 34 | +import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*; | ||
| 35 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtrees.OldtreesDO; | ||
| 36 | +import com.zteits.urbanops.module.garden.service.oldtrees.OldtreesService; | ||
| 37 | + | ||
| 38 | +@Tag(name = "管理后台 - 古树名木") | ||
| 39 | +@RestController | ||
| 40 | +@RequestMapping({"/garden/oldtrees","/treerecord/oldtrees"}) | ||
| 41 | +@Validated | ||
| 42 | +public class OldtreesController { | ||
| 43 | + | ||
| 44 | + @Resource | ||
| 45 | + private OldtreesService oldtreesService; | ||
| 46 | + @Autowired | ||
| 47 | + private DictFrameworkUtils dictUtils; | ||
| 48 | + | ||
| 49 | + @PostMapping({"/create",""}) | ||
| 50 | + @Operation(summary = "创建古树名木") | ||
| 51 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:create')") | ||
| 52 | + public CommonResult<String> createOldtrees(@Valid @RequestBody OldtreesSaveReqVO createReqVO) { | ||
| 53 | + return success(oldtreesService.createOldtrees(createReqVO)); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @PutMapping({"/update", ""}) | ||
| 57 | + @Operation(summary = "修改古树台账") | ||
| 58 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:update')") | ||
| 59 | + public CommonResult<Boolean> updateOldtrees(@Valid @RequestBody OldtreesSaveReqVO updateReqVO) { | ||
| 60 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | ||
| 61 | + updateReqVO.setUpdateby(String.valueOf(userId)); | ||
| 62 | + oldtreesService.updateOldtrees(updateReqVO); | ||
| 63 | + return success(true); | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + @DeleteMapping("/delete") | ||
| 67 | + @Operation(summary = "删除古树名木") | ||
| 68 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 69 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:delete')") | ||
| 70 | + public CommonResult<Boolean> deleteOldtrees(@RequestParam("id") String id) { | ||
| 71 | + oldtreesService.deleteOldtrees(id); | ||
| 72 | + return success(true); | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + @DeleteMapping("/delete-list") | ||
| 76 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 77 | + @Operation(summary = "批量删除古树名木") | ||
| 78 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:delete')") | ||
| 79 | + public CommonResult<Boolean> deleteOldtreesList(@RequestParam("ids") List<String> ids) { | ||
| 80 | + oldtreesService.deleteOldtreesListByIds(ids); | ||
| 81 | + return success(true); | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + @GetMapping("/get") | ||
| 85 | + @Operation(summary = "获取古树台账详细信息") | ||
| 86 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 87 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:query')") | ||
| 88 | + public CommonResult<OldtreesRespVO> getOldtrees(@RequestParam("id") String id) { | ||
| 89 | + OldtreesDO oldtrees = oldtreesService.getOldtrees(id); | ||
| 90 | + return success(BeanUtils.toBean(oldtrees, OldtreesRespVO.class)); | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + @GetMapping({"/page","/list"}) | ||
| 94 | + @Operation(summary = "获得古树台账分页") | ||
| 95 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:query')") | ||
| 96 | + public CommonResult<PageResult<OldtreesRespVO>> getOldtreesPage(@Valid OldtreesPageReqVO pageReqVO) { | ||
| 97 | + PageResult<OldtreesDO> pageResult = oldtreesService.getOldtreesPage(pageReqVO); | ||
| 98 | + return success(BeanUtils.toBean(pageResult, OldtreesRespVO.class)); | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + @GetMapping({"/export-excel","export"}) | ||
| 102 | + @Operation(summary = "导出古树台账 Excel") | ||
| 103 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees:export')") | ||
| 104 | + @ApiAccessLog(operateType = EXPORT) | ||
| 105 | + public void exportOldtreesExcel(@Valid OldtreesPageReqVO pageReqVO, | ||
| 106 | + HttpServletResponse response) throws IOException { | ||
| 107 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 108 | + List<OldtreesDO> list = oldtreesService.getOldtreesPage(pageReqVO).getList(); | ||
| 109 | + | ||
| 110 | + fillDictData(list); | ||
| 111 | + | ||
| 112 | + // 导出 Excel | ||
| 113 | + ExcelUtils.write(response, "古树台账.xls", "数据", OldtreesRespVO.class, | ||
| 114 | + BeanUtils.toBean(list, OldtreesRespVO.class)); | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + private void fillDictData(List<OldtreesDO> list) { | ||
| 118 | + for (OldtreesDO gardenTree : list) { | ||
| 119 | + String maintainUnit = DictFrameworkUtils.parseDictDataValue("maintain_unit", gardenTree.getMaintainunit()); | ||
| 120 | + gardenTree.setMaintainunit(maintainUnit); | ||
| 121 | + | ||
| 122 | + String street = DictFrameworkUtils.parseDictDataValue("street_belong", gardenTree.getStreet()); | ||
| 123 | + gardenTree.setStreet(street); | ||
| 124 | + | ||
| 125 | + String ownership = DictFrameworkUtils.parseDictDataValue("tree_ownership", gardenTree.getOldtreeownership()); | ||
| 126 | + gardenTree.setOldtreeownership(ownership); | ||
| 127 | + | ||
| 128 | + String growthVigor = DictFrameworkUtils.parseDictDataValue("growth_vigor", gardenTree.getGrowthvigor()); | ||
| 129 | + gardenTree.setGrowthvigor(growthVigor); | ||
| 130 | + String treeLevel = DictFrameworkUtils.parseDictDataValue("tree_level", gardenTree.getTreelevel()); | ||
| 131 | + gardenTree.setTreelevel(treeLevel); | ||
| 132 | + String dataState = DictFrameworkUtils.parseDictDataValue("data_state", gardenTree.getDatastate()); | ||
| 133 | + gardenTree.setDatastate(dataState); | ||
| 134 | + } | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | +} | ||
| 0 | \ No newline at end of file | 138 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtrees/vo/OldtreesPageReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 古树名木分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class OldtreesPageReqVO extends PageParam { | ||
| 15 | + | ||
| 16 | + @Schema(description = "编号") | ||
| 17 | + private String famoustreenumber; | ||
| 18 | + | ||
| 19 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 20 | + private String treelevel; | ||
| 21 | + | ||
| 22 | + @Schema(description = "树种", example = "2") | ||
| 23 | + private String treetype; | ||
| 24 | + | ||
| 25 | + @Schema(description = "所在地") | ||
| 26 | + private String location; | ||
| 27 | + | ||
| 28 | + @Schema(description = "养护单位") | ||
| 29 | + private String maintainunit; | ||
| 30 | + | ||
| 31 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 32 | + private String oldtreeownership; | ||
| 33 | + | ||
| 34 | + @Schema(description = "生长地点") | ||
| 35 | + private String growlocation; | ||
| 36 | + | ||
| 37 | + @Schema(description = "拉丁名", example = "李四") | ||
| 38 | + private String latinname; | ||
| 39 | + | ||
| 40 | + @Schema(description = "树高") | ||
| 41 | + private String treeheight; | ||
| 42 | + | ||
| 43 | + @Schema(description = "估测树龄") | ||
| 44 | + private String estimationtreeage; | ||
| 45 | + | ||
| 46 | + @Schema(description = "胸径") | ||
| 47 | + private String dbh; | ||
| 48 | + | ||
| 49 | + @Schema(description = "经度") | ||
| 50 | + private String longitude; | ||
| 51 | + | ||
| 52 | + @Schema(description = "纬度") | ||
| 53 | + private String latitude; | ||
| 54 | + | ||
| 55 | + @Schema(description = "冠幅东西") | ||
| 56 | + private String canopyeastwest; | ||
| 57 | + | ||
| 58 | + @Schema(description = "冠幅南北") | ||
| 59 | + private String canopysouthnorth; | ||
| 60 | + | ||
| 61 | + @Schema(description = "管护责任单位") | ||
| 62 | + private String managedutyunit; | ||
| 63 | + | ||
| 64 | + @Schema(description = "干周") | ||
| 65 | + private String weekday; | ||
| 66 | + | ||
| 67 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 68 | + private String growthvigor; | ||
| 69 | + | ||
| 70 | + @Schema(description = "生长环境") | ||
| 71 | + private String growthenvironment; | ||
| 72 | + | ||
| 73 | + @Schema(description = "古树照片一") | ||
| 74 | + private String treephotoone; | ||
| 75 | + | ||
| 76 | + @Schema(description = "春季养护管理措施") | ||
| 77 | + private String springmaintenance; | ||
| 78 | + | ||
| 79 | + @Schema(description = "夏季养护管理措施") | ||
| 80 | + private String summermaintenance; | ||
| 81 | + | ||
| 82 | + @Schema(description = "秋季养护管理措施") | ||
| 83 | + private String autumnmaintenance; | ||
| 84 | + | ||
| 85 | + @Schema(description = "冬季养护管理措施") | ||
| 86 | + private String wintermaintenance; | ||
| 87 | + | ||
| 88 | + @Schema(description = "年度") | ||
| 89 | + private String annual; | ||
| 90 | + | ||
| 91 | + @Schema(description = "养护记录备注", example = "随便") | ||
| 92 | + private String curingremark; | ||
| 93 | + | ||
| 94 | + @Schema(description = "古树照片二") | ||
| 95 | + private String treephototwo; | ||
| 96 | + | ||
| 97 | + @Schema(description = "古树照片三") | ||
| 98 | + private String treephotothree; | ||
| 99 | + | ||
| 100 | + @Schema(description = "古树铭牌照片") | ||
| 101 | + private String nameplatephoto; | ||
| 102 | + | ||
| 103 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 104 | + private String datastate; | ||
| 105 | + | ||
| 106 | + @Schema(description = "养护员工--作业队下派古树时选择的派发员工") | ||
| 107 | + private String curingstaff; | ||
| 108 | + | ||
| 109 | + @Schema(description = "状态(驳回/确认)") | ||
| 110 | + private String state; | ||
| 111 | + | ||
| 112 | + @Schema(description = "平台驳回状态(平台驳回)") | ||
| 113 | + private String platformstate; | ||
| 114 | + | ||
| 115 | + @Schema(description = "所属街道") | ||
| 116 | + private String street; | ||
| 117 | + | ||
| 118 | + @Schema(description = "责任人姓名", example = "赵六") | ||
| 119 | + private String responsibleusername; | ||
| 120 | + | ||
| 121 | + @Schema(description = "责任人电话") | ||
| 122 | + private String responsibleuserphone; | ||
| 123 | + | ||
| 124 | + @Schema(description = "创建者") | ||
| 125 | + private String createby; | ||
| 126 | + | ||
| 127 | + @Schema(description = "创建时间") | ||
| 128 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 129 | + private LocalDateTime[] createtime; | ||
| 130 | + | ||
| 131 | + @Schema(description = "更新者") | ||
| 132 | + private String updateby; | ||
| 133 | + | ||
| 134 | + @Schema(description = "更新时间") | ||
| 135 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 136 | + private String[] updatetime; | ||
| 137 | + | ||
| 138 | + @Schema(description = "部门id", example = "20245") | ||
| 139 | + private Long deptId; | ||
| 140 | + | ||
| 141 | +} | ||
| 0 | \ No newline at end of file | 142 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtrees/vo/OldtreesRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import cn.idev.excel.annotation.*; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 古树名木 Response VO") | ||
| 11 | +@Data | ||
| 12 | +@ExcelIgnoreUnannotated | ||
| 13 | +public class OldtreesRespVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "id", example = "4258") | ||
| 16 | + @ExcelProperty("id") | ||
| 17 | + private String id; | ||
| 18 | + | ||
| 19 | + @Schema(description = "编号") | ||
| 20 | + @ExcelProperty("编号") | ||
| 21 | + private String famoustreenumber; | ||
| 22 | + | ||
| 23 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 24 | + @ExcelProperty("级别--数据字典:一级、两级") | ||
| 25 | + private String treelevel; | ||
| 26 | + | ||
| 27 | + @Schema(description = "树种", example = "2") | ||
| 28 | + @ExcelProperty("树种") | ||
| 29 | + private String treetype; | ||
| 30 | + | ||
| 31 | + @Schema(description = "所在地") | ||
| 32 | + @ExcelProperty("所在地") | ||
| 33 | + private String location; | ||
| 34 | + | ||
| 35 | + @Schema(description = "养护单位") | ||
| 36 | + @ExcelProperty("养护单位") | ||
| 37 | + private String maintainunit; | ||
| 38 | + | ||
| 39 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 40 | + @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 41 | + private String oldtreeownership; | ||
| 42 | + | ||
| 43 | + @Schema(description = "生长地点") | ||
| 44 | + @ExcelProperty("生长地点") | ||
| 45 | + private String growlocation; | ||
| 46 | + | ||
| 47 | + @Schema(description = "拉丁名", example = "李四") | ||
| 48 | + @ExcelProperty("拉丁名") | ||
| 49 | + private String latinname; | ||
| 50 | + | ||
| 51 | + @Schema(description = "树高") | ||
| 52 | + @ExcelProperty("树高") | ||
| 53 | + private String treeheight; | ||
| 54 | + | ||
| 55 | + @Schema(description = "估测树龄") | ||
| 56 | + @ExcelProperty("估测树龄") | ||
| 57 | + private String estimationtreeage; | ||
| 58 | + | ||
| 59 | + @Schema(description = "胸径") | ||
| 60 | + @ExcelProperty("胸径") | ||
| 61 | + private String dbh; | ||
| 62 | + | ||
| 63 | + @Schema(description = "经度") | ||
| 64 | + @ExcelProperty("经度") | ||
| 65 | + private String longitude; | ||
| 66 | + | ||
| 67 | + @Schema(description = "纬度") | ||
| 68 | + @ExcelProperty("纬度") | ||
| 69 | + private String latitude; | ||
| 70 | + | ||
| 71 | + @Schema(description = "冠幅东西") | ||
| 72 | + @ExcelProperty("冠幅东西") | ||
| 73 | + private String canopyeastwest; | ||
| 74 | + | ||
| 75 | + @Schema(description = "冠幅南北") | ||
| 76 | + @ExcelProperty("冠幅南北") | ||
| 77 | + private String canopysouthnorth; | ||
| 78 | + | ||
| 79 | + @Schema(description = "管护责任单位") | ||
| 80 | + @ExcelProperty("管护责任单位") | ||
| 81 | + private String managedutyunit; | ||
| 82 | + | ||
| 83 | + @Schema(description = "干周") | ||
| 84 | + @ExcelProperty("干周") | ||
| 85 | + private String weekday; | ||
| 86 | + | ||
| 87 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 88 | + @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 89 | + private String growthvigor; | ||
| 90 | + | ||
| 91 | + @Schema(description = "生长环境") | ||
| 92 | + @ExcelProperty("生长环境") | ||
| 93 | + private String growthenvironment; | ||
| 94 | + | ||
| 95 | + @Schema(description = "古树照片一") | ||
| 96 | + @ExcelProperty("古树照片一") | ||
| 97 | + private String treephotoone; | ||
| 98 | + | ||
| 99 | + @Schema(description = "春季养护管理措施") | ||
| 100 | + @ExcelProperty("春季养护管理措施") | ||
| 101 | + private String springmaintenance; | ||
| 102 | + | ||
| 103 | + @Schema(description = "夏季养护管理措施") | ||
| 104 | + @ExcelProperty("夏季养护管理措施") | ||
| 105 | + private String summermaintenance; | ||
| 106 | + | ||
| 107 | + @Schema(description = "秋季养护管理措施") | ||
| 108 | + @ExcelProperty("秋季养护管理措施") | ||
| 109 | + private String autumnmaintenance; | ||
| 110 | + | ||
| 111 | + @Schema(description = "冬季养护管理措施") | ||
| 112 | + @ExcelProperty("冬季养护管理措施") | ||
| 113 | + private String wintermaintenance; | ||
| 114 | + | ||
| 115 | + @Schema(description = "年度") | ||
| 116 | + @ExcelProperty("年度") | ||
| 117 | + private String annual; | ||
| 118 | + | ||
| 119 | + @Schema(description = "养护记录备注", example = "随便") | ||
| 120 | + @ExcelProperty("养护记录备注") | ||
| 121 | + private String curingremark; | ||
| 122 | + | ||
| 123 | + @Schema(description = "古树照片二") | ||
| 124 | + @ExcelProperty("古树照片二") | ||
| 125 | + private String treephototwo; | ||
| 126 | + | ||
| 127 | + @Schema(description = "古树照片三") | ||
| 128 | + @ExcelProperty("古树照片三") | ||
| 129 | + private String treephotothree; | ||
| 130 | + | ||
| 131 | + @Schema(description = "古树铭牌照片") | ||
| 132 | + @ExcelProperty("古树铭牌照片") | ||
| 133 | + private String nameplatephoto; | ||
| 134 | + | ||
| 135 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 136 | + @ExcelProperty("数据状态(已更新、未更新)") | ||
| 137 | + private String datastate; | ||
| 138 | + | ||
| 139 | + @Schema(description = "养护员工--作业队下派古树时选择的派发员工") | ||
| 140 | + @ExcelProperty("养护员工--作业队下派古树时选择的派发员工") | ||
| 141 | + private String curingstaff; | ||
| 142 | + | ||
| 143 | + @Schema(description = "状态(驳回/确认)") | ||
| 144 | + @ExcelProperty("状态(驳回/确认)") | ||
| 145 | + private String state; | ||
| 146 | + | ||
| 147 | + @Schema(description = "平台驳回状态(平台驳回)") | ||
| 148 | + @ExcelProperty("平台驳回状态(平台驳回)") | ||
| 149 | + private String platformstate; | ||
| 150 | + | ||
| 151 | + @Schema(description = "所属街道") | ||
| 152 | + @ExcelProperty("所属街道") | ||
| 153 | + private String street; | ||
| 154 | + | ||
| 155 | + @Schema(description = "责任人姓名", example = "赵六") | ||
| 156 | + @ExcelProperty("责任人姓名") | ||
| 157 | + private String responsibleusername; | ||
| 158 | + | ||
| 159 | + @Schema(description = "责任人电话") | ||
| 160 | + @ExcelProperty("责任人电话") | ||
| 161 | + private String responsibleuserphone; | ||
| 162 | + | ||
| 163 | + @Schema(description = "创建者") | ||
| 164 | + @ExcelProperty("创建者") | ||
| 165 | + private String createby; | ||
| 166 | + | ||
| 167 | + @Schema(description = "创建时间") | ||
| 168 | + @ExcelProperty("创建时间") | ||
| 169 | + private LocalDateTime createtime; | ||
| 170 | + | ||
| 171 | + @Schema(description = "更新者") | ||
| 172 | + @ExcelProperty("更新者") | ||
| 173 | + private String updateby; | ||
| 174 | + | ||
| 175 | + @Schema(description = "更新时间") | ||
| 176 | + @ExcelProperty("更新时间") | ||
| 177 | + private String updatetime; | ||
| 178 | + | ||
| 179 | + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20245") | ||
| 180 | + @ExcelProperty("部门id") | ||
| 181 | + private Long deptId; | ||
| 182 | + | ||
| 183 | +} | ||
| 0 | \ No newline at end of file | 184 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtrees/vo/OldtreesSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 古树名木新增/修改 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class OldtreesSaveReqVO { | ||
| 13 | + | ||
| 14 | + @Schema(description = "id", example = "4258") | ||
| 15 | + private String id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "编号") | ||
| 18 | + private String famoustreenumber; | ||
| 19 | + | ||
| 20 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 21 | + private String treelevel; | ||
| 22 | + | ||
| 23 | + @Schema(description = "树种", example = "2") | ||
| 24 | + private String treetype; | ||
| 25 | + | ||
| 26 | + @Schema(description = "所在地") | ||
| 27 | + private String location; | ||
| 28 | + | ||
| 29 | + @Schema(description = "养护单位") | ||
| 30 | + private String maintainunit; | ||
| 31 | + | ||
| 32 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 33 | + private String oldtreeownership; | ||
| 34 | + | ||
| 35 | + @Schema(description = "生长地点") | ||
| 36 | + private String growlocation; | ||
| 37 | + | ||
| 38 | + @Schema(description = "拉丁名", example = "李四") | ||
| 39 | + private String latinname; | ||
| 40 | + | ||
| 41 | + @Schema(description = "树高") | ||
| 42 | + private String treeheight; | ||
| 43 | + | ||
| 44 | + @Schema(description = "估测树龄") | ||
| 45 | + private String estimationtreeage; | ||
| 46 | + | ||
| 47 | + @Schema(description = "胸径") | ||
| 48 | + private String dbh; | ||
| 49 | + | ||
| 50 | + @Schema(description = "经度") | ||
| 51 | + private String longitude; | ||
| 52 | + | ||
| 53 | + @Schema(description = "纬度") | ||
| 54 | + private String latitude; | ||
| 55 | + | ||
| 56 | + @Schema(description = "冠幅东西") | ||
| 57 | + private String canopyeastwest; | ||
| 58 | + | ||
| 59 | + @Schema(description = "冠幅南北") | ||
| 60 | + private String canopysouthnorth; | ||
| 61 | + | ||
| 62 | + @Schema(description = "管护责任单位") | ||
| 63 | + private String managedutyunit; | ||
| 64 | + | ||
| 65 | + @Schema(description = "干周") | ||
| 66 | + private String weekday; | ||
| 67 | + | ||
| 68 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 69 | + private String growthvigor; | ||
| 70 | + | ||
| 71 | + @Schema(description = "生长环境") | ||
| 72 | + private String growthenvironment; | ||
| 73 | + | ||
| 74 | + @Schema(description = "古树照片一") | ||
| 75 | + private String treephotoone; | ||
| 76 | + | ||
| 77 | + @Schema(description = "春季养护管理措施") | ||
| 78 | + private String springmaintenance; | ||
| 79 | + | ||
| 80 | + @Schema(description = "夏季养护管理措施") | ||
| 81 | + private String summermaintenance; | ||
| 82 | + | ||
| 83 | + @Schema(description = "秋季养护管理措施") | ||
| 84 | + private String autumnmaintenance; | ||
| 85 | + | ||
| 86 | + @Schema(description = "冬季养护管理措施") | ||
| 87 | + private String wintermaintenance; | ||
| 88 | + | ||
| 89 | + @Schema(description = "年度") | ||
| 90 | + private String annual; | ||
| 91 | + | ||
| 92 | + @Schema(description = "养护记录备注", example = "随便") | ||
| 93 | + private String curingremark; | ||
| 94 | + | ||
| 95 | + @Schema(description = "古树照片二") | ||
| 96 | + private String treephototwo; | ||
| 97 | + | ||
| 98 | + @Schema(description = "古树照片三") | ||
| 99 | + private String treephotothree; | ||
| 100 | + | ||
| 101 | + @Schema(description = "古树铭牌照片") | ||
| 102 | + private String nameplatephoto; | ||
| 103 | + | ||
| 104 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 105 | + private String datastate; | ||
| 106 | + | ||
| 107 | + @Schema(description = "养护员工--作业队下派古树时选择的派发员工") | ||
| 108 | + private String curingstaff; | ||
| 109 | + | ||
| 110 | + @Schema(description = "状态(驳回/确认)") | ||
| 111 | + private String state; | ||
| 112 | + | ||
| 113 | + @Schema(description = "平台驳回状态(平台驳回)") | ||
| 114 | + private String platformstate; | ||
| 115 | + | ||
| 116 | + @Schema(description = "所属街道") | ||
| 117 | + private String street; | ||
| 118 | + | ||
| 119 | + @Schema(description = "责任人姓名", example = "赵六") | ||
| 120 | + private String responsibleusername; | ||
| 121 | + | ||
| 122 | + @Schema(description = "责任人电话") | ||
| 123 | + private String responsibleuserphone; | ||
| 124 | + | ||
| 125 | + @Schema(description = "创建者") | ||
| 126 | + private String createby; | ||
| 127 | + | ||
| 128 | + @Schema(description = "创建时间") | ||
| 129 | + private LocalDateTime createtime; | ||
| 130 | + | ||
| 131 | + @Schema(description = "更新者") | ||
| 132 | + private String updateby; | ||
| 133 | + | ||
| 134 | + @Schema(description = "更新时间") | ||
| 135 | + private LocalDateTime updatetime; | ||
| 136 | + | ||
| 137 | + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20245") | ||
| 138 | + @NotNull(message = "部门id不能为空") | ||
| 139 | + private Long deptId; | ||
| 140 | + | ||
| 141 | + private List<String> treeImgList; | ||
| 142 | + | ||
| 143 | + private List<String> nameplatephotoList; | ||
| 144 | + | ||
| 145 | +} | ||
| 0 | \ No newline at end of file | 146 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtreeschangelog/OldtreesChangeLogController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog; | ||
| 2 | + | ||
| 3 | +import org.springframework.web.bind.annotation.*; | ||
| 4 | +import jakarta.annotation.Resource; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 8 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | + | ||
| 11 | +import jakarta.validation.constraints.*; | ||
| 12 | +import jakarta.validation.*; | ||
| 13 | +import jakarta.servlet.http.*; | ||
| 14 | +import java.util.*; | ||
| 15 | +import java.io.IOException; | ||
| 16 | + | ||
| 17 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 18 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 19 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 20 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 21 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 24 | + | ||
| 25 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 26 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 27 | + | ||
| 28 | +import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*; | ||
| 29 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO; | ||
| 30 | +import com.zteits.urbanops.module.garden.service.oldtreeschangelog.OldtreesChangeLogService; | ||
| 31 | + | ||
| 32 | +@Tag(name = "管理后台 - 古树名木修改记录") | ||
| 33 | +@RestController | ||
| 34 | +@RequestMapping({"/garden/oldtrees-change-log","/treerecord/logs"}) | ||
| 35 | +@Validated | ||
| 36 | +public class OldtreesChangeLogController { | ||
| 37 | + | ||
| 38 | + @Resource | ||
| 39 | + private OldtreesChangeLogService oldtreesChangeLogService; | ||
| 40 | + | ||
| 41 | + @PostMapping("/create") | ||
| 42 | + @Operation(summary = "创建古树名木修改记录") | ||
| 43 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:create')") | ||
| 44 | + public CommonResult<String> createOldtreesChangeLog(@Valid @RequestBody OldtreesChangeLogSaveReqVO createReqVO) { | ||
| 45 | + return success(oldtreesChangeLogService.createOldtreesChangeLog(createReqVO)); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @PutMapping("/update") | ||
| 49 | + @Operation(summary = "更新古树名木修改记录") | ||
| 50 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:update')") | ||
| 51 | + public CommonResult<Boolean> updateOldtreesChangeLog(@Valid @RequestBody OldtreesChangeLogSaveReqVO updateReqVO) { | ||
| 52 | + oldtreesChangeLogService.updateOldtreesChangeLog(updateReqVO); | ||
| 53 | + return success(true); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @DeleteMapping("/delete") | ||
| 57 | + @Operation(summary = "删除古树名木修改记录") | ||
| 58 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 59 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:delete')") | ||
| 60 | + public CommonResult<Boolean> deleteOldtreesChangeLog(@RequestParam("id") String id) { | ||
| 61 | + oldtreesChangeLogService.deleteOldtreesChangeLog(id); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @DeleteMapping("/delete-list") | ||
| 66 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 67 | + @Operation(summary = "批量删除古树名木修改记录") | ||
| 68 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:delete')") | ||
| 69 | + public CommonResult<Boolean> deleteOldtreesChangeLogList(@RequestParam("ids") List<String> ids) { | ||
| 70 | + oldtreesChangeLogService.deleteOldtreesChangeLogListByIds(ids); | ||
| 71 | + return success(true); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @GetMapping("/get") | ||
| 75 | + @Operation(summary = "获得古树名木修改记录") | ||
| 76 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 77 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:query')") | ||
| 78 | + public CommonResult<OldtreesChangeLogRespVO> getOldtreesChangeLog(@RequestParam("id") String id) { | ||
| 79 | + OldtreesChangeLogDO oldtreesChangeLog = oldtreesChangeLogService.getOldtreesChangeLog(id); | ||
| 80 | + return success(BeanUtils.toBean(oldtreesChangeLog, OldtreesChangeLogRespVO.class)); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + @GetMapping({"/page","/list"}) | ||
| 84 | + @Operation(summary = "查询古树名木修改记录列表") | ||
| 85 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:query')") | ||
| 86 | + public CommonResult<PageResult<OldtreesChangeLogRespVO>> getOldtreesChangeLogPage(@Valid OldtreesChangeLogPageReqVO pageReqVO) { | ||
| 87 | + PageResult<OldtreesChangeLogDO> pageResult = oldtreesChangeLogService.getOldtreesChangeLogPage(pageReqVO); | ||
| 88 | + return success(BeanUtils.toBean(pageResult, OldtreesChangeLogRespVO.class)); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + @GetMapping("/export-excel") | ||
| 92 | + @Operation(summary = "导出古树名木修改记录 Excel") | ||
| 93 | + @PreAuthorize("@ss.hasPermission('garden:oldtrees-change-log:export')") | ||
| 94 | + @ApiAccessLog(operateType = EXPORT) | ||
| 95 | + public void exportOldtreesChangeLogExcel(@Valid OldtreesChangeLogPageReqVO pageReqVO, | ||
| 96 | + HttpServletResponse response) throws IOException { | ||
| 97 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 98 | + List<OldtreesChangeLogDO> list = oldtreesChangeLogService.getOldtreesChangeLogPage(pageReqVO).getList(); | ||
| 99 | + // 导出 Excel | ||
| 100 | + ExcelUtils.write(response, "古树名木修改记录.xls", "数据", OldtreesChangeLogRespVO.class, | ||
| 101 | + BeanUtils.toBean(list, OldtreesChangeLogRespVO.class)); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | +} | ||
| 0 | \ No newline at end of file | 105 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtreeschangelog/vo/OldtreesChangeLogPageReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 古树名木修改记录分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class OldtreesChangeLogPageReqVO extends PageParam { | ||
| 15 | + | ||
| 16 | + @Schema(description = "garden_oldtrees 的主键", example = "32596") | ||
| 17 | + private String oldtreeid; | ||
| 18 | + | ||
| 19 | + @Schema(description = "编号") | ||
| 20 | + private String famoustreenumber; | ||
| 21 | + | ||
| 22 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 23 | + private String treelevel; | ||
| 24 | + | ||
| 25 | + @Schema(description = "树种", example = "2") | ||
| 26 | + private String treetype; | ||
| 27 | + | ||
| 28 | + @Schema(description = "所在地") | ||
| 29 | + private String location; | ||
| 30 | + | ||
| 31 | + @Schema(description = "养护单位") | ||
| 32 | + private String maintainunit; | ||
| 33 | + | ||
| 34 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 35 | + private String oldtreeownership; | ||
| 36 | + | ||
| 37 | + @Schema(description = "生长地点") | ||
| 38 | + private String growlocation; | ||
| 39 | + | ||
| 40 | + @Schema(description = "拉丁名", example = "张三") | ||
| 41 | + private String latinname; | ||
| 42 | + | ||
| 43 | + @Schema(description = "树高") | ||
| 44 | + private String treeheight; | ||
| 45 | + | ||
| 46 | + @Schema(description = "估测树龄") | ||
| 47 | + private String estimationtreeage; | ||
| 48 | + | ||
| 49 | + @Schema(description = "胸径") | ||
| 50 | + private String dbh; | ||
| 51 | + | ||
| 52 | + @Schema(description = "经度") | ||
| 53 | + private String longitude; | ||
| 54 | + | ||
| 55 | + @Schema(description = "纬度") | ||
| 56 | + private String latitude; | ||
| 57 | + | ||
| 58 | + @Schema(description = "冠幅东西") | ||
| 59 | + private String canopyeastwest; | ||
| 60 | + | ||
| 61 | + @Schema(description = "冠幅南北") | ||
| 62 | + private String canopysouthnorth; | ||
| 63 | + | ||
| 64 | + @Schema(description = "管护责任单位") | ||
| 65 | + private String managedutyunit; | ||
| 66 | + | ||
| 67 | + @Schema(description = "干周") | ||
| 68 | + private String weekday; | ||
| 69 | + | ||
| 70 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 71 | + private String growthvigor; | ||
| 72 | + | ||
| 73 | + @Schema(description = "生长环境") | ||
| 74 | + private String growthenvironment; | ||
| 75 | + | ||
| 76 | + @Schema(description = "古树照片一") | ||
| 77 | + private String treephotoone; | ||
| 78 | + | ||
| 79 | + @Schema(description = "春季养护管理措施") | ||
| 80 | + private String springmaintenance; | ||
| 81 | + | ||
| 82 | + @Schema(description = "夏季养护管理措施") | ||
| 83 | + private String summermaintenance; | ||
| 84 | + | ||
| 85 | + @Schema(description = "秋季养护管理措施") | ||
| 86 | + private String autumnmaintenance; | ||
| 87 | + | ||
| 88 | + @Schema(description = "冬季养护管理措施") | ||
| 89 | + private String wintermaintenance; | ||
| 90 | + | ||
| 91 | + @Schema(description = "年度") | ||
| 92 | + private String annual; | ||
| 93 | + | ||
| 94 | + @Schema(description = "养护记录备注", example = "你说的对") | ||
| 95 | + private String curingremark; | ||
| 96 | + | ||
| 97 | + @Schema(description = "古树照片二") | ||
| 98 | + private String treephototwo; | ||
| 99 | + | ||
| 100 | + @Schema(description = "古树照片三") | ||
| 101 | + private String treephotothree; | ||
| 102 | + | ||
| 103 | + @Schema(description = "古树铭牌照片") | ||
| 104 | + private String nameplatephoto; | ||
| 105 | + | ||
| 106 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 107 | + private String datastate; | ||
| 108 | + | ||
| 109 | + @Schema(description = "养护员工--作业队下派古树时选择的派发员工") | ||
| 110 | + private String curingstaff; | ||
| 111 | + | ||
| 112 | + @Schema(description = "状态(驳回/确认)") | ||
| 113 | + private String state; | ||
| 114 | + | ||
| 115 | + @Schema(description = "平台驳回状态(平台驳回)") | ||
| 116 | + private String platformstate; | ||
| 117 | + | ||
| 118 | + @Schema(description = "所属街道") | ||
| 119 | + private String street; | ||
| 120 | + | ||
| 121 | + @Schema(description = "负责人姓名", example = "芋艿") | ||
| 122 | + private String responsibleusername; | ||
| 123 | + | ||
| 124 | + @Schema(description = "负责人电话") | ||
| 125 | + private String responsibleuserphone; | ||
| 126 | + | ||
| 127 | + @Schema(description = "创建者") | ||
| 128 | + private String createby; | ||
| 129 | + | ||
| 130 | + @Schema(description = "创建时间") | ||
| 131 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 132 | + private LocalDateTime[] createtime; | ||
| 133 | + | ||
| 134 | + @Schema(description = "更新者") | ||
| 135 | + private String updateby; | ||
| 136 | + | ||
| 137 | + @Schema(description = "更新时间") | ||
| 138 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 139 | + private String[] updatetime; | ||
| 140 | + | ||
| 141 | +} | ||
| 0 | \ No newline at end of file | 142 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtreeschangelog/vo/OldtreesChangeLogRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import cn.idev.excel.annotation.*; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 古树名木修改记录 Response VO") | ||
| 11 | +@Data | ||
| 12 | +@ExcelIgnoreUnannotated | ||
| 13 | +public class OldtreesChangeLogRespVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "id", example = "148") | ||
| 16 | + @ExcelProperty("id") | ||
| 17 | + private String id; | ||
| 18 | + | ||
| 19 | + @Schema(description = "garden_oldtrees 的主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32596") | ||
| 20 | + @ExcelProperty("garden_oldtrees 的主键") | ||
| 21 | + private String oldtreeid; | ||
| 22 | + | ||
| 23 | + @Schema(description = "编号") | ||
| 24 | + @ExcelProperty("编号") | ||
| 25 | + private String famoustreenumber; | ||
| 26 | + | ||
| 27 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 28 | + @ExcelProperty("级别--数据字典:一级、两级") | ||
| 29 | + private String treelevel; | ||
| 30 | + | ||
| 31 | + @Schema(description = "树种", example = "2") | ||
| 32 | + @ExcelProperty("树种") | ||
| 33 | + private String treetype; | ||
| 34 | + | ||
| 35 | + @Schema(description = "所在地") | ||
| 36 | + @ExcelProperty("所在地") | ||
| 37 | + private String location; | ||
| 38 | + | ||
| 39 | + @Schema(description = "养护单位") | ||
| 40 | + @ExcelProperty("养护单位") | ||
| 41 | + private String maintainunit; | ||
| 42 | + | ||
| 43 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 44 | + @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 45 | + private String oldtreeownership; | ||
| 46 | + | ||
| 47 | + @Schema(description = "生长地点") | ||
| 48 | + @ExcelProperty("生长地点") | ||
| 49 | + private String growlocation; | ||
| 50 | + | ||
| 51 | + @Schema(description = "拉丁名", example = "张三") | ||
| 52 | + @ExcelProperty("拉丁名") | ||
| 53 | + private String latinname; | ||
| 54 | + | ||
| 55 | + @Schema(description = "树高") | ||
| 56 | + @ExcelProperty("树高") | ||
| 57 | + private String treeheight; | ||
| 58 | + | ||
| 59 | + @Schema(description = "估测树龄") | ||
| 60 | + @ExcelProperty("估测树龄") | ||
| 61 | + private String estimationtreeage; | ||
| 62 | + | ||
| 63 | + @Schema(description = "胸径") | ||
| 64 | + @ExcelProperty("胸径") | ||
| 65 | + private String dbh; | ||
| 66 | + | ||
| 67 | + @Schema(description = "经度") | ||
| 68 | + @ExcelProperty("经度") | ||
| 69 | + private String longitude; | ||
| 70 | + | ||
| 71 | + @Schema(description = "纬度") | ||
| 72 | + @ExcelProperty("纬度") | ||
| 73 | + private String latitude; | ||
| 74 | + | ||
| 75 | + @Schema(description = "冠幅东西") | ||
| 76 | + @ExcelProperty("冠幅东西") | ||
| 77 | + private String canopyeastwest; | ||
| 78 | + | ||
| 79 | + @Schema(description = "冠幅南北") | ||
| 80 | + @ExcelProperty("冠幅南北") | ||
| 81 | + private String canopysouthnorth; | ||
| 82 | + | ||
| 83 | + @Schema(description = "管护责任单位") | ||
| 84 | + @ExcelProperty("管护责任单位") | ||
| 85 | + private String managedutyunit; | ||
| 86 | + | ||
| 87 | + @Schema(description = "干周") | ||
| 88 | + @ExcelProperty("干周") | ||
| 89 | + private String weekday; | ||
| 90 | + | ||
| 91 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 92 | + @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 93 | + private String growthvigor; | ||
| 94 | + | ||
| 95 | + @Schema(description = "生长环境") | ||
| 96 | + @ExcelProperty("生长环境") | ||
| 97 | + private String growthenvironment; | ||
| 98 | + | ||
| 99 | + @Schema(description = "古树照片一") | ||
| 100 | + @ExcelProperty("古树照片一") | ||
| 101 | + private String treephotoone; | ||
| 102 | + | ||
| 103 | + @Schema(description = "春季养护管理措施") | ||
| 104 | + @ExcelProperty("春季养护管理措施") | ||
| 105 | + private String springmaintenance; | ||
| 106 | + | ||
| 107 | + @Schema(description = "夏季养护管理措施") | ||
| 108 | + @ExcelProperty("夏季养护管理措施") | ||
| 109 | + private String summermaintenance; | ||
| 110 | + | ||
| 111 | + @Schema(description = "秋季养护管理措施") | ||
| 112 | + @ExcelProperty("秋季养护管理措施") | ||
| 113 | + private String autumnmaintenance; | ||
| 114 | + | ||
| 115 | + @Schema(description = "冬季养护管理措施") | ||
| 116 | + @ExcelProperty("冬季养护管理措施") | ||
| 117 | + private String wintermaintenance; | ||
| 118 | + | ||
| 119 | + @Schema(description = "年度") | ||
| 120 | + @ExcelProperty("年度") | ||
| 121 | + private String annual; | ||
| 122 | + | ||
| 123 | + @Schema(description = "养护记录备注", example = "你说的对") | ||
| 124 | + @ExcelProperty("养护记录备注") | ||
| 125 | + private String curingremark; | ||
| 126 | + | ||
| 127 | + @Schema(description = "古树照片二") | ||
| 128 | + @ExcelProperty("古树照片二") | ||
| 129 | + private String treephototwo; | ||
| 130 | + | ||
| 131 | + @Schema(description = "古树照片三") | ||
| 132 | + @ExcelProperty("古树照片三") | ||
| 133 | + private String treephotothree; | ||
| 134 | + | ||
| 135 | + @Schema(description = "古树铭牌照片") | ||
| 136 | + @ExcelProperty("古树铭牌照片") | ||
| 137 | + private String nameplatephoto; | ||
| 138 | + | ||
| 139 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 140 | + @ExcelProperty("数据状态(已更新、未更新)") | ||
| 141 | + private String datastate; | ||
| 142 | + | ||
| 143 | + @Schema(description = "养护员工--作业队下派古树时选择的派发员工") | ||
| 144 | + @ExcelProperty("养护员工--作业队下派古树时选择的派发员工") | ||
| 145 | + private String curingstaff; | ||
| 146 | + | ||
| 147 | + @Schema(description = "状态(驳回/确认)") | ||
| 148 | + @ExcelProperty("状态(驳回/确认)") | ||
| 149 | + private String state; | ||
| 150 | + | ||
| 151 | + @Schema(description = "平台驳回状态(平台驳回)") | ||
| 152 | + @ExcelProperty("平台驳回状态(平台驳回)") | ||
| 153 | + private String platformstate; | ||
| 154 | + | ||
| 155 | + @Schema(description = "所属街道") | ||
| 156 | + @ExcelProperty("所属街道") | ||
| 157 | + private String street; | ||
| 158 | + | ||
| 159 | + @Schema(description = "负责人姓名", example = "芋艿") | ||
| 160 | + @ExcelProperty("负责人姓名") | ||
| 161 | + private String responsibleusername; | ||
| 162 | + | ||
| 163 | + @Schema(description = "负责人电话") | ||
| 164 | + @ExcelProperty("负责人电话") | ||
| 165 | + private String responsibleuserphone; | ||
| 166 | + | ||
| 167 | + @Schema(description = "创建者") | ||
| 168 | + @ExcelProperty("创建者") | ||
| 169 | + private String createby; | ||
| 170 | + | ||
| 171 | + @Schema(description = "创建时间") | ||
| 172 | + @ExcelProperty("创建时间") | ||
| 173 | + private LocalDateTime createtime; | ||
| 174 | + | ||
| 175 | + @Schema(description = "更新者") | ||
| 176 | + @ExcelProperty("更新者") | ||
| 177 | + private String updateby; | ||
| 178 | + | ||
| 179 | + @Schema(description = "更新时间") | ||
| 180 | + @ExcelProperty("更新时间") | ||
| 181 | + private String updatetime; | ||
| 182 | + | ||
| 183 | +} | ||
| 0 | \ No newline at end of file | 184 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtreeschangelog/vo/OldtreesChangeLogSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 古树名木修改记录新增/修改 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class OldtreesChangeLogSaveReqVO { | ||
| 13 | + | ||
| 14 | + @Schema(description = "id", example = "148") | ||
| 15 | + private String id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "garden_oldtrees 的主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32596") | ||
| 18 | + @NotEmpty(message = "garden_oldtrees 的主键不能为空") | ||
| 19 | + private String oldtreeid; | ||
| 20 | + | ||
| 21 | + @Schema(description = "编号") | ||
| 22 | + private String famoustreenumber; | ||
| 23 | + | ||
| 24 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 25 | + private String treelevel; | ||
| 26 | + | ||
| 27 | + @Schema(description = "树种", example = "2") | ||
| 28 | + private String treetype; | ||
| 29 | + | ||
| 30 | + @Schema(description = "所在地") | ||
| 31 | + private String location; | ||
| 32 | + | ||
| 33 | + @Schema(description = "养护单位") | ||
| 34 | + private String maintainunit; | ||
| 35 | + | ||
| 36 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 37 | + private String oldtreeownership; | ||
| 38 | + | ||
| 39 | + @Schema(description = "生长地点") | ||
| 40 | + private String growlocation; | ||
| 41 | + | ||
| 42 | + @Schema(description = "拉丁名", example = "张三") | ||
| 43 | + private String latinname; | ||
| 44 | + | ||
| 45 | + @Schema(description = "树高") | ||
| 46 | + private String treeheight; | ||
| 47 | + | ||
| 48 | + @Schema(description = "估测树龄") | ||
| 49 | + private String estimationtreeage; | ||
| 50 | + | ||
| 51 | + @Schema(description = "胸径") | ||
| 52 | + private String dbh; | ||
| 53 | + | ||
| 54 | + @Schema(description = "经度") | ||
| 55 | + private String longitude; | ||
| 56 | + | ||
| 57 | + @Schema(description = "纬度") | ||
| 58 | + private String latitude; | ||
| 59 | + | ||
| 60 | + @Schema(description = "冠幅东西") | ||
| 61 | + private String canopyeastwest; | ||
| 62 | + | ||
| 63 | + @Schema(description = "冠幅南北") | ||
| 64 | + private String canopysouthnorth; | ||
| 65 | + | ||
| 66 | + @Schema(description = "管护责任单位") | ||
| 67 | + private String managedutyunit; | ||
| 68 | + | ||
| 69 | + @Schema(description = "干周") | ||
| 70 | + private String weekday; | ||
| 71 | + | ||
| 72 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 73 | + private String growthvigor; | ||
| 74 | + | ||
| 75 | + @Schema(description = "生长环境") | ||
| 76 | + private String growthenvironment; | ||
| 77 | + | ||
| 78 | + @Schema(description = "古树照片一") | ||
| 79 | + private String treephotoone; | ||
| 80 | + | ||
| 81 | + @Schema(description = "春季养护管理措施") | ||
| 82 | + private String springmaintenance; | ||
| 83 | + | ||
| 84 | + @Schema(description = "夏季养护管理措施") | ||
| 85 | + private String summermaintenance; | ||
| 86 | + | ||
| 87 | + @Schema(description = "秋季养护管理措施") | ||
| 88 | + private String autumnmaintenance; | ||
| 89 | + | ||
| 90 | + @Schema(description = "冬季养护管理措施") | ||
| 91 | + private String wintermaintenance; | ||
| 92 | + | ||
| 93 | + @Schema(description = "年度") | ||
| 94 | + private String annual; | ||
| 95 | + | ||
| 96 | + @Schema(description = "养护记录备注", example = "你说的对") | ||
| 97 | + private String curingremark; | ||
| 98 | + | ||
| 99 | + @Schema(description = "古树照片二") | ||
| 100 | + private String treephototwo; | ||
| 101 | + | ||
| 102 | + @Schema(description = "古树照片三") | ||
| 103 | + private String treephotothree; | ||
| 104 | + | ||
| 105 | + @Schema(description = "古树铭牌照片") | ||
| 106 | + private String nameplatephoto; | ||
| 107 | + | ||
| 108 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 109 | + private String datastate; | ||
| 110 | + | ||
| 111 | + @Schema(description = "养护员工--作业队下派古树时选择的派发员工") | ||
| 112 | + private String curingstaff; | ||
| 113 | + | ||
| 114 | + @Schema(description = "状态(驳回/确认)") | ||
| 115 | + private String state; | ||
| 116 | + | ||
| 117 | + @Schema(description = "平台驳回状态(平台驳回)") | ||
| 118 | + private String platformstate; | ||
| 119 | + | ||
| 120 | + @Schema(description = "所属街道") | ||
| 121 | + private String street; | ||
| 122 | + | ||
| 123 | + @Schema(description = "负责人姓名", example = "芋艿") | ||
| 124 | + private String responsibleusername; | ||
| 125 | + | ||
| 126 | + @Schema(description = "负责人电话") | ||
| 127 | + private String responsibleuserphone; | ||
| 128 | + | ||
| 129 | + @Schema(description = "创建者") | ||
| 130 | + private String createby; | ||
| 131 | + | ||
| 132 | + @Schema(description = "创建时间") | ||
| 133 | + private LocalDateTime createtime; | ||
| 134 | + | ||
| 135 | + @Schema(description = "更新者") | ||
| 136 | + private String updateby; | ||
| 137 | + | ||
| 138 | + @Schema(description = "更新时间") | ||
| 139 | + private String updatetime; | ||
| 140 | + | ||
| 141 | +} | ||
| 0 | \ No newline at end of file | 142 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/TreeController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree; | ||
| 2 | + | ||
| 3 | +import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; | ||
| 4 | +import com.zteits.urbanops.framework.security.core.LoginUser; | ||
| 5 | +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; | ||
| 6 | +import org.springframework.web.bind.annotation.*; | ||
| 7 | +import jakarta.annotation.Resource; | ||
| 8 | +import org.springframework.validation.annotation.Validated; | ||
| 9 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 10 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 11 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 12 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 13 | + | ||
| 14 | +import jakarta.validation.constraints.*; | ||
| 15 | +import jakarta.validation.*; | ||
| 16 | +import jakarta.servlet.http.*; | ||
| 17 | + | ||
| 18 | +import java.time.LocalDateTime; | ||
| 19 | +import java.util.*; | ||
| 20 | +import java.io.IOException; | ||
| 21 | + | ||
| 22 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 23 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 24 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 25 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 26 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 27 | + | ||
| 28 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 29 | + | ||
| 30 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 31 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 32 | + | ||
| 33 | +import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*; | ||
| 34 | +import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; | ||
| 35 | +import com.zteits.urbanops.module.garden.service.tree.TreeService; | ||
| 36 | + | ||
| 37 | +@Tag(name = "管理后台 - 一树一档案") | ||
| 38 | +@RestController | ||
| 39 | +@RequestMapping({"/garden/tree","/business/tree"}) | ||
| 40 | +@Validated | ||
| 41 | +public class TreeController { | ||
| 42 | + | ||
| 43 | + @Resource | ||
| 44 | + private TreeService treeService; | ||
| 45 | + | ||
| 46 | + @PostMapping({"/create",""}) | ||
| 47 | + @Operation(summary = "创建一树一档案") | ||
| 48 | + @PreAuthorize("@ss.hasPermission('garden:tree:create')") | ||
| 49 | + public CommonResult<Long> createTree(@Valid @RequestBody TreeSaveReqVO createReqVO) { | ||
| 50 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | ||
| 51 | + Long loginUserDeptId = SecurityFrameworkUtils.getLoginUserDeptId(); | ||
| 52 | + createReqVO.setCreateby(String.valueOf(userId)); | ||
| 53 | + createReqVO.setCreatetime(LocalDateTime.now()); | ||
| 54 | + createReqVO.setUpdateby(String.valueOf(userId)); | ||
| 55 | + createReqVO.setUpdatetime(LocalDateTime.now()); | ||
| 56 | + createReqVO.setDeptId(loginUserDeptId); | ||
| 57 | + return success(treeService.createTree(createReqVO)); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + @PutMapping({"/update",""}) | ||
| 61 | + @Operation(summary = "更新一树一档案") | ||
| 62 | + @PreAuthorize("@ss.hasPermission('garden:tree:update')") | ||
| 63 | + public CommonResult<Boolean> updateTree(@Valid @RequestBody TreeSaveReqVO updateReqVO) { | ||
| 64 | + updateReqVO.setUpdateby(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); | ||
| 65 | + updateReqVO.setUpdatetime(LocalDateTime.now()); | ||
| 66 | + treeService.updateTree(updateReqVO); | ||
| 67 | + return success(true); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + @DeleteMapping("/delete") | ||
| 71 | + @Operation(summary = "删除一树一档案") | ||
| 72 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 73 | + @PreAuthorize("@ss.hasPermission('garden:tree:delete')") | ||
| 74 | + public CommonResult<Boolean> deleteTree(@RequestParam("id") Long id) { | ||
| 75 | + treeService.deleteTree(id); | ||
| 76 | + return success(true); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + @DeleteMapping("/delete-list") | ||
| 80 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 81 | + @Operation(summary = "批量删除一树一档案") | ||
| 82 | + @PreAuthorize("@ss.hasPermission('garden:tree:delete')") | ||
| 83 | + public CommonResult<Boolean> deleteTreeList(@RequestParam("ids") List<Long> ids) { | ||
| 84 | + treeService.deleteTreeListByIds(ids); | ||
| 85 | + return success(true); | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + @GetMapping("/get") | ||
| 89 | + @Operation(summary = "获得一树一档案") | ||
| 90 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 91 | + @PreAuthorize("@ss.hasPermission('garden:tree:query')") | ||
| 92 | + public CommonResult<TreeRespVO> getTree(@RequestParam("id") Long id) { | ||
| 93 | + TreeDO tree = treeService.getTree(id); | ||
| 94 | + return success(BeanUtils.toBean(tree, TreeRespVO.class)); | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + @GetMapping({"/page","/list"}) | ||
| 98 | + @Operation(summary = "获得一树一档案分页") | ||
| 99 | + @PreAuthorize("@ss.hasPermission('garden:tree:query')") | ||
| 100 | + public CommonResult<PageResult<TreeRespVO>> getTreePage(@Valid TreePageReqVO pageReqVO) { | ||
| 101 | + PageResult<TreeDO> pageResult = treeService.getTreePage(pageReqVO); | ||
| 102 | + return success(BeanUtils.toBean(pageResult, TreeRespVO.class)); | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + @GetMapping({"/export-excel","export"}) | ||
| 106 | + @Operation(summary = "导出一树一档案 Excel") | ||
| 107 | + @PreAuthorize("@ss.hasPermission('garden:tree:export')") | ||
| 108 | + @ApiAccessLog(operateType = EXPORT) | ||
| 109 | + public void exportTreeExcel(@Valid TreePageReqVO pageReqVO, | ||
| 110 | + HttpServletResponse response) throws IOException { | ||
| 111 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 112 | + List<TreeDO> list = treeService.getTreePage(pageReqVO).getList(); | ||
| 113 | + fillDictData(list); | ||
| 114 | + // 导出 Excel | ||
| 115 | + ExcelUtils.write(response, "一树一档案.xls", "数据", TreeRespVO.class, | ||
| 116 | + BeanUtils.toBean(list, TreeRespVO.class)); | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + @GetMapping("/dept/list") | ||
| 120 | + @PreAuthorize("@ss.hasPermission('garden:tree:list')") | ||
| 121 | + public CommonResult<List<CompanyDeptRoadVO>> list(@RequestParam Long companyId,@RequestParam(required = false) String roadName) { | ||
| 122 | + LoginUser user = SecurityFrameworkUtils.getLoginUser(); | ||
| 123 | + if (null == user) { | ||
| 124 | + return null; | ||
| 125 | + } | ||
| 126 | + TreeVO tree = new TreeVO(); | ||
| 127 | + tree.setBelongCompanyId(companyId); | ||
| 128 | + tree.setRoadName(roadName); | ||
| 129 | + tree.setDeptId(null); | ||
| 130 | + return success(treeService.getCompanyDeptRoadTreeData(tree)); | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + @GetMapping("/road/list") | ||
| 134 | + @PreAuthorize("@ss.hasPermission('garden:tree:list')") | ||
| 135 | + public CommonResult<PageResult<RoadTreeVO>> listTreesByRoad(@RequestParam(required = false) Long road) { | ||
| 136 | + TreePageReqVO pageReqVO = new TreePageReqVO(); | ||
| 137 | + pageReqVO.setRoad(road); | ||
| 138 | + PageResult<RoadTreeVO> pageResult = treeService.getTreesByRoadId(pageReqVO); | ||
| 139 | + return success(pageResult); | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + | ||
| 143 | + private void fillDictData(List<TreeDO> list) { | ||
| 144 | + for (TreeDO gardenTree : list) { | ||
| 145 | + String maintainUnit = DictFrameworkUtils.parseDictDataValue("maintain_unit", gardenTree.getMaintainunit()); | ||
| 146 | + gardenTree.setMaintainunit(maintainUnit); | ||
| 147 | + | ||
| 148 | + String street = DictFrameworkUtils.parseDictDataValue("street_belong", gardenTree.getStreet()); | ||
| 149 | + gardenTree.setStreet(street); | ||
| 150 | + | ||
| 151 | + String ownership = DictFrameworkUtils.parseDictDataValue("tree_ownership", gardenTree.getOldtreeownership()); | ||
| 152 | + gardenTree.setOldtreeownership(ownership); | ||
| 153 | + | ||
| 154 | + String growthVigor = DictFrameworkUtils.parseDictDataValue("growth_vigor", gardenTree.getGrowthvigor()); | ||
| 155 | + gardenTree.setGrowthvigor(growthVigor); | ||
| 156 | + String treeLevel = DictFrameworkUtils.parseDictDataValue("tree_level", gardenTree.getTreelevel()); | ||
| 157 | + gardenTree.setTreelevel(treeLevel); | ||
| 158 | + String dataState = DictFrameworkUtils.parseDictDataValue("data_state", gardenTree.getDatastate()); | ||
| 159 | + gardenTree.setDatastate(dataState); | ||
| 160 | + } | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | +} | ||
| 0 | \ No newline at end of file | 164 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treerecord/vo/CompanyDeptRoadVO.java renamed to urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/CompanyDeptRoadVO.java
| 1 | -package com.zteits.urbanops.module.garden.controller.admin.treerecord.vo; | 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree.vo; |
| 2 | 2 | ||
| 3 | import lombok.Data; | 3 | import lombok.Data; |
| 4 | 4 | ||
| 5 | import java.util.List; | 5 | import java.util.List; |
| 6 | 6 | ||
| 7 | +/** | ||
| 8 | + * Description: <p></p> | ||
| 9 | + * <p> | ||
| 10 | + * Author: gelinghu | ||
| 11 | + * Date: 2025年8月23 16:07 | ||
| 12 | + */ | ||
| 7 | @Data | 13 | @Data |
| 8 | public class CompanyDeptRoadVO { | 14 | public class CompanyDeptRoadVO { |
| 9 | - private String companyId; | 15 | + private Long companyId; |
| 10 | private String companyName; | 16 | private String companyName; |
| 17 | + | ||
| 11 | private List<DeptVO> depts; | 18 | private List<DeptVO> depts; |
| 12 | 19 | ||
| 13 | @Data | 20 | @Data |
| @@ -21,9 +28,11 @@ public class CompanyDeptRoadVO { | @@ -21,9 +28,11 @@ public class CompanyDeptRoadVO { | ||
| 21 | public static class RoadVO { | 28 | public static class RoadVO { |
| 22 | private Long roadId; | 29 | private Long roadId; |
| 23 | private String roadName; | 30 | private String roadName; |
| 24 | - private Long treeCount; | ||
| 25 | - private Long recordedCount; | ||
| 26 | - private String startRemark; | ||
| 27 | - private String endRemark; | 31 | + private Integer treeCount; // 总树木数 |
| 32 | + private Integer recordedCount; // 已录入行道树数 | ||
| 33 | + private String startRemark; // 起点 | ||
| 34 | + private String endRemark; // 终点 | ||
| 28 | } | 35 | } |
| 29 | -} | ||
| 30 | \ No newline at end of file | 36 | \ No newline at end of file |
| 37 | +} | ||
| 38 | + | ||
| 39 | + |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/RoadTreeVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree.vo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | +import java.util.Date; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * Description: <p></p> | ||
| 9 | + * <p> | ||
| 10 | + * Author: gelinghu | ||
| 11 | + * Date: 2025年8月23 16:07 | ||
| 12 | + */ | ||
| 13 | +@Data | ||
| 14 | +public class RoadTreeVO { | ||
| 15 | + private Long id; | ||
| 16 | + private String treetype; // 树种 | ||
| 17 | + private String treeheight; // 高度 | ||
| 18 | + private String dbh; // 胸径 | ||
| 19 | + private String treenumber; // 编号 | ||
| 20 | + private Date updatetime; // 最后修改时间 | ||
| 21 | + private String treephoto; // 图片 | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | + |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treerecord/GardenTreeDO.java renamed to urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/TreePageReqVO.java
| 1 | -package com.zteits.urbanops.module.garden.dal.dataobject.treerecord; | 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree.vo; |
| 2 | 2 | ||
| 3 | -import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 4 | -import com.baomidou.mybatisplus.annotation.TableId; | ||
| 5 | -import com.baomidou.mybatisplus.annotation.TableName; | ||
| 6 | -import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 7 | -import lombok.Data; | ||
| 8 | -import lombok.experimental.Accessors; | 3 | +import lombok.*; |
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | 9 | ||
| 10 | -@TableName("garden_tree") | ||
| 11 | -@KeySequence("garden_tree_seq") | 10 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 一树一档案分页 Request VO") | ||
| 12 | @Data | 13 | @Data |
| 13 | -@Accessors(chain = false) | ||
| 14 | -public class GardenTreeDO extends BaseDO { | ||
| 15 | - @TableId | ||
| 16 | - private Long id; | 14 | +public class TreePageReqVO extends PageParam { |
| 15 | + | ||
| 16 | + @Schema(description = "编号") | ||
| 17 | private String treenumber; | 17 | private String treenumber; |
| 18 | + | ||
| 19 | + @Schema(description = "拉丁名", example = "李四") | ||
| 18 | private String latinname; | 20 | private String latinname; |
| 21 | + | ||
| 22 | + @Schema(description = "树种", example = "2") | ||
| 19 | private String treetype; | 23 | private String treetype; |
| 24 | + | ||
| 25 | + @Schema(description = "树高") | ||
| 20 | private String treeheight; | 26 | private String treeheight; |
| 27 | + | ||
| 28 | + @Schema(description = "冠幅") | ||
| 21 | private String canopy; | 29 | private String canopy; |
| 30 | + | ||
| 31 | + @Schema(description = "胸径") | ||
| 22 | private String dbh; | 32 | private String dbh; |
| 33 | + | ||
| 34 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 23 | private String growthvigor; | 35 | private String growthvigor; |
| 36 | + | ||
| 37 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 24 | private String treelevel; | 38 | private String treelevel; |
| 39 | + | ||
| 40 | + @Schema(description = "经度") | ||
| 25 | private String longitude; | 41 | private String longitude; |
| 42 | + | ||
| 43 | + @Schema(description = "纬度") | ||
| 26 | private String latitude; | 44 | private String latitude; |
| 45 | + | ||
| 46 | + @Schema(description = "所在地") | ||
| 27 | private String location; | 47 | private String location; |
| 48 | + | ||
| 49 | + @Schema(description = "养护单位") | ||
| 28 | private String maintainunit; | 50 | private String maintainunit; |
| 51 | + | ||
| 52 | + @Schema(description = "管护单位") | ||
| 29 | private String managedutyunit; | 53 | private String managedutyunit; |
| 54 | + | ||
| 55 | + @Schema(description = "道路id") | ||
| 30 | private Long road; | 56 | private Long road; |
| 57 | + | ||
| 58 | + @Schema(description = "所属街道") | ||
| 31 | private String street; | 59 | private String street; |
| 60 | + | ||
| 61 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 32 | private String oldtreeownership; | 62 | private String oldtreeownership; |
| 63 | + | ||
| 64 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 33 | private String datastate; | 65 | private String datastate; |
| 66 | + | ||
| 67 | + @Schema(description = "估测树龄") | ||
| 34 | private String estimationtreeage; | 68 | private String estimationtreeage; |
| 69 | + | ||
| 70 | + @Schema(description = "冠幅东西") | ||
| 35 | private String canopyeastwest; | 71 | private String canopyeastwest; |
| 72 | + | ||
| 73 | + @Schema(description = "冠幅南北") | ||
| 36 | private String canopysouthnorth; | 74 | private String canopysouthnorth; |
| 75 | + | ||
| 76 | + @Schema(description = "干周") | ||
| 37 | private String weekday; | 77 | private String weekday; |
| 78 | + | ||
| 79 | + @Schema(description = "生长地点") | ||
| 38 | private String growlocation; | 80 | private String growlocation; |
| 81 | + | ||
| 82 | + @Schema(description = "生长环境") | ||
| 39 | private String growthenvironment; | 83 | private String growthenvironment; |
| 84 | + | ||
| 85 | + @Schema(description = "树木照片一") | ||
| 40 | private String treephotoone; | 86 | private String treephotoone; |
| 87 | + | ||
| 88 | + @Schema(description = "古树照片二") | ||
| 41 | private String treephototwo; | 89 | private String treephototwo; |
| 90 | + | ||
| 91 | + @Schema(description = "古树照片三") | ||
| 42 | private String treephotothree; | 92 | private String treephotothree; |
| 93 | + | ||
| 94 | + @Schema(description = "古树照片四") | ||
| 43 | private String treephotofour; | 95 | private String treephotofour; |
| 96 | + | ||
| 97 | + @Schema(description = "古树照片五") | ||
| 44 | private String treephotofive; | 98 | private String treephotofive; |
| 99 | + | ||
| 100 | + @Schema(description = "创建者") | ||
| 45 | private String createby; | 101 | private String createby; |
| 102 | + | ||
| 103 | + @Schema(description = "创建时间") | ||
| 104 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 105 | + private LocalDateTime[] createtime; | ||
| 106 | + | ||
| 107 | + @Schema(description = "更新者") | ||
| 46 | private String updateby; | 108 | private String updateby; |
| 47 | - private Long deptId; | 109 | + |
| 110 | + @Schema(description = "更新时间") | ||
| 111 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 112 | + private LocalDateTime[] updatetime; | ||
| 113 | + | ||
| 114 | + @Schema(description = "备注", example = "你说的对") | ||
| 48 | private String remark; | 115 | private String remark; |
| 116 | + | ||
| 117 | + @Schema(description = "部门id", example = "17101") | ||
| 118 | + private Long deptId; | ||
| 119 | + | ||
| 49 | } | 120 | } |
| 50 | \ No newline at end of file | 121 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/TreeRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import cn.idev.excel.annotation.*; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 一树一档案 Response VO") | ||
| 11 | +@Data | ||
| 12 | +@ExcelIgnoreUnannotated | ||
| 13 | +public class TreeRespVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28236") | ||
| 16 | + @ExcelProperty("id") | ||
| 17 | + private Long id; | ||
| 18 | + | ||
| 19 | + @Schema(description = "编号") | ||
| 20 | + @ExcelProperty("编号") | ||
| 21 | + private String treenumber; | ||
| 22 | + | ||
| 23 | + @Schema(description = "拉丁名", example = "李四") | ||
| 24 | + @ExcelProperty("拉丁名") | ||
| 25 | + private String latinname; | ||
| 26 | + | ||
| 27 | + @Schema(description = "树种", example = "2") | ||
| 28 | + @ExcelProperty("树种") | ||
| 29 | + private String treetype; | ||
| 30 | + | ||
| 31 | + @Schema(description = "树高") | ||
| 32 | + @ExcelProperty("树高") | ||
| 33 | + private String treeheight; | ||
| 34 | + | ||
| 35 | + @Schema(description = "冠幅") | ||
| 36 | + @ExcelProperty("冠幅") | ||
| 37 | + private String canopy; | ||
| 38 | + | ||
| 39 | + @Schema(description = "胸径") | ||
| 40 | + @ExcelProperty("胸径") | ||
| 41 | + private String dbh; | ||
| 42 | + | ||
| 43 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 44 | + @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 45 | + private String growthvigor; | ||
| 46 | + | ||
| 47 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 48 | + @ExcelProperty("级别--数据字典:一级、两级") | ||
| 49 | + private String treelevel; | ||
| 50 | + | ||
| 51 | + @Schema(description = "经度") | ||
| 52 | + @ExcelProperty("经度") | ||
| 53 | + private String longitude; | ||
| 54 | + | ||
| 55 | + @Schema(description = "纬度") | ||
| 56 | + @ExcelProperty("纬度") | ||
| 57 | + private String latitude; | ||
| 58 | + | ||
| 59 | + @Schema(description = "所在地") | ||
| 60 | + @ExcelProperty("所在地") | ||
| 61 | + private String location; | ||
| 62 | + | ||
| 63 | + @Schema(description = "养护单位") | ||
| 64 | + @ExcelProperty("养护单位") | ||
| 65 | + private String maintainunit; | ||
| 66 | + | ||
| 67 | + @Schema(description = "管护单位") | ||
| 68 | + @ExcelProperty("管护单位") | ||
| 69 | + private String managedutyunit; | ||
| 70 | + | ||
| 71 | + @Schema(description = "道路id") | ||
| 72 | + @ExcelProperty("道路id") | ||
| 73 | + private Long road; | ||
| 74 | + | ||
| 75 | + @Schema(description = "所属街道") | ||
| 76 | + @ExcelProperty("所属街道") | ||
| 77 | + private String street; | ||
| 78 | + | ||
| 79 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 80 | + @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 81 | + private String oldtreeownership; | ||
| 82 | + | ||
| 83 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 84 | + @ExcelProperty("数据状态(已更新、未更新)") | ||
| 85 | + private String datastate; | ||
| 86 | + | ||
| 87 | + @Schema(description = "估测树龄") | ||
| 88 | + @ExcelProperty("估测树龄") | ||
| 89 | + private String estimationtreeage; | ||
| 90 | + | ||
| 91 | + @Schema(description = "冠幅东西") | ||
| 92 | + @ExcelProperty("冠幅东西") | ||
| 93 | + private String canopyeastwest; | ||
| 94 | + | ||
| 95 | + @Schema(description = "冠幅南北") | ||
| 96 | + @ExcelProperty("冠幅南北") | ||
| 97 | + private String canopysouthnorth; | ||
| 98 | + | ||
| 99 | + @Schema(description = "干周") | ||
| 100 | + @ExcelProperty("干周") | ||
| 101 | + private String weekday; | ||
| 102 | + | ||
| 103 | + @Schema(description = "生长地点") | ||
| 104 | + @ExcelProperty("生长地点") | ||
| 105 | + private String growlocation; | ||
| 106 | + | ||
| 107 | + @Schema(description = "生长环境") | ||
| 108 | + @ExcelProperty("生长环境") | ||
| 109 | + private String growthenvironment; | ||
| 110 | + | ||
| 111 | + @Schema(description = "树木照片一") | ||
| 112 | + @ExcelProperty("树木照片一") | ||
| 113 | + private String treephotoone; | ||
| 114 | + | ||
| 115 | + @Schema(description = "古树照片二") | ||
| 116 | + @ExcelProperty("古树照片二") | ||
| 117 | + private String treephototwo; | ||
| 118 | + | ||
| 119 | + @Schema(description = "古树照片三") | ||
| 120 | + @ExcelProperty("古树照片三") | ||
| 121 | + private String treephotothree; | ||
| 122 | + | ||
| 123 | + @Schema(description = "古树照片四") | ||
| 124 | + @ExcelProperty("古树照片四") | ||
| 125 | + private String treephotofour; | ||
| 126 | + | ||
| 127 | + @Schema(description = "古树照片五") | ||
| 128 | + @ExcelProperty("古树照片五") | ||
| 129 | + private String treephotofive; | ||
| 130 | + | ||
| 131 | + @Schema(description = "创建者") | ||
| 132 | + @ExcelProperty("创建者") | ||
| 133 | + private String createby; | ||
| 134 | + | ||
| 135 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 136 | + @ExcelProperty("创建时间") | ||
| 137 | + private LocalDateTime createtime; | ||
| 138 | + | ||
| 139 | + @Schema(description = "更新者") | ||
| 140 | + @ExcelProperty("更新者") | ||
| 141 | + private String updateby; | ||
| 142 | + | ||
| 143 | + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 144 | + @ExcelProperty("更新时间") | ||
| 145 | + private LocalDateTime updatetime; | ||
| 146 | + | ||
| 147 | + @Schema(description = "备注", example = "你说的对") | ||
| 148 | + @ExcelProperty("备注") | ||
| 149 | + private String remark; | ||
| 150 | + | ||
| 151 | + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17101") | ||
| 152 | + @ExcelProperty("部门id") | ||
| 153 | + private Long deptId; | ||
| 154 | + | ||
| 155 | +} | ||
| 0 | \ No newline at end of file | 156 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/TreeSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 一树一档案新增/修改 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class TreeSaveReqVO { | ||
| 13 | + | ||
| 14 | + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28236") | ||
| 15 | + private Long id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "编号") | ||
| 18 | + private String treenumber; | ||
| 19 | + | ||
| 20 | + @Schema(description = "拉丁名", example = "李四") | ||
| 21 | + private String latinname; | ||
| 22 | + | ||
| 23 | + @Schema(description = "树种", example = "2") | ||
| 24 | + private String treetype; | ||
| 25 | + | ||
| 26 | + @Schema(description = "树高") | ||
| 27 | + private String treeheight; | ||
| 28 | + | ||
| 29 | + @Schema(description = "冠幅") | ||
| 30 | + private String canopy; | ||
| 31 | + | ||
| 32 | + @Schema(description = "胸径") | ||
| 33 | + private String dbh; | ||
| 34 | + | ||
| 35 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 36 | + private String growthvigor; | ||
| 37 | + | ||
| 38 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 39 | + private String treelevel; | ||
| 40 | + | ||
| 41 | + @Schema(description = "经度") | ||
| 42 | + private String longitude; | ||
| 43 | + | ||
| 44 | + @Schema(description = "纬度") | ||
| 45 | + private String latitude; | ||
| 46 | + | ||
| 47 | + @Schema(description = "所在地") | ||
| 48 | + private String location; | ||
| 49 | + | ||
| 50 | + @Schema(description = "养护单位") | ||
| 51 | + private String maintainunit; | ||
| 52 | + | ||
| 53 | + @Schema(description = "管护单位") | ||
| 54 | + private String managedutyunit; | ||
| 55 | + | ||
| 56 | + @Schema(description = "道路id") | ||
| 57 | + private Long road; | ||
| 58 | + | ||
| 59 | + @Schema(description = "所属街道") | ||
| 60 | + private String street; | ||
| 61 | + | ||
| 62 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 63 | + private String oldtreeownership; | ||
| 64 | + | ||
| 65 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 66 | + private String datastate; | ||
| 67 | + | ||
| 68 | + @Schema(description = "估测树龄") | ||
| 69 | + private String estimationtreeage; | ||
| 70 | + | ||
| 71 | + @Schema(description = "冠幅东西") | ||
| 72 | + private String canopyeastwest; | ||
| 73 | + | ||
| 74 | + @Schema(description = "冠幅南北") | ||
| 75 | + private String canopysouthnorth; | ||
| 76 | + | ||
| 77 | + @Schema(description = "干周") | ||
| 78 | + private String weekday; | ||
| 79 | + | ||
| 80 | + @Schema(description = "生长地点") | ||
| 81 | + private String growlocation; | ||
| 82 | + | ||
| 83 | + @Schema(description = "生长环境") | ||
| 84 | + private String growthenvironment; | ||
| 85 | + | ||
| 86 | + @Schema(description = "树木照片一") | ||
| 87 | + private String treephotoone; | ||
| 88 | + | ||
| 89 | + @Schema(description = "古树照片二") | ||
| 90 | + private String treephototwo; | ||
| 91 | + | ||
| 92 | + @Schema(description = "古树照片三") | ||
| 93 | + private String treephotothree; | ||
| 94 | + | ||
| 95 | + @Schema(description = "古树照片四") | ||
| 96 | + private String treephotofour; | ||
| 97 | + | ||
| 98 | + @Schema(description = "古树照片五") | ||
| 99 | + private String treephotofive; | ||
| 100 | + | ||
| 101 | + @Schema(description = "创建者") | ||
| 102 | + private String createby; | ||
| 103 | + | ||
| 104 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 105 | + @NotNull(message = "创建时间不能为空") | ||
| 106 | + private LocalDateTime createtime; | ||
| 107 | + | ||
| 108 | + @Schema(description = "更新者") | ||
| 109 | + private String updateby; | ||
| 110 | + | ||
| 111 | + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 112 | + @NotNull(message = "更新时间不能为空") | ||
| 113 | + private LocalDateTime updatetime; | ||
| 114 | + | ||
| 115 | + @Schema(description = "备注", example = "你说的对") | ||
| 116 | + private String remark; | ||
| 117 | + | ||
| 118 | + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17101") | ||
| 119 | + @NotNull(message = "部门id不能为空") | ||
| 120 | + private Long deptId; | ||
| 121 | + | ||
| 122 | + private List<String> treeImgList; | ||
| 123 | + | ||
| 124 | + | ||
| 125 | +} | ||
| 0 | \ No newline at end of file | 126 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/TreeVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.tree.vo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Description: <p></p> | ||
| 7 | + * <p> | ||
| 8 | + * Author: gelinghu | ||
| 9 | + * Date: 2025年8月23 16:07 | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +public class TreeVO { | ||
| 13 | + | ||
| 14 | + /** 部门ID */ | ||
| 15 | + private Long deptId; | ||
| 16 | + | ||
| 17 | + /** 归属单位ID */ | ||
| 18 | + private Long belongCompanyId; | ||
| 19 | + | ||
| 20 | + private String roadName; | ||
| 21 | + | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | + |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/TreeChangeLogController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.treechangelog; | ||
| 2 | + | ||
| 3 | +import org.springframework.web.bind.annotation.*; | ||
| 4 | +import jakarta.annotation.Resource; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 8 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | + | ||
| 11 | +import jakarta.validation.constraints.*; | ||
| 12 | +import jakarta.validation.*; | ||
| 13 | +import jakarta.servlet.http.*; | ||
| 14 | +import java.util.*; | ||
| 15 | +import java.io.IOException; | ||
| 16 | + | ||
| 17 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 18 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 19 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 20 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 21 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 24 | + | ||
| 25 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 26 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 27 | + | ||
| 28 | +import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*; | ||
| 29 | +import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; | ||
| 30 | +import com.zteits.urbanops.module.garden.service.treechangelog.TreeChangeLogService; | ||
| 31 | + | ||
| 32 | +@Tag(name = "管理后台 - 一树一档案修改记录") | ||
| 33 | +@RestController | ||
| 34 | +@RequestMapping({"/garden/tree-change-log","/gardentree/logs"}) | ||
| 35 | +@Validated | ||
| 36 | +public class TreeChangeLogController { | ||
| 37 | + | ||
| 38 | + @Resource | ||
| 39 | + private TreeChangeLogService treeChangeLogService; | ||
| 40 | + | ||
| 41 | + @PostMapping("/create") | ||
| 42 | + @Operation(summary = "创建一树一档案修改记录") | ||
| 43 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:create')") | ||
| 44 | + public CommonResult<Long> createTreeChangeLog(@Valid @RequestBody TreeChangeLogSaveReqVO createReqVO) { | ||
| 45 | + return success(treeChangeLogService.createTreeChangeLog(createReqVO)); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @PutMapping("/update") | ||
| 49 | + @Operation(summary = "更新一树一档案修改记录") | ||
| 50 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:update')") | ||
| 51 | + public CommonResult<Boolean> updateTreeChangeLog(@Valid @RequestBody TreeChangeLogSaveReqVO updateReqVO) { | ||
| 52 | + treeChangeLogService.updateTreeChangeLog(updateReqVO); | ||
| 53 | + return success(true); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @DeleteMapping("/delete") | ||
| 57 | + @Operation(summary = "删除一树一档案修改记录") | ||
| 58 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 59 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:delete')") | ||
| 60 | + public CommonResult<Boolean> deleteTreeChangeLog(@RequestParam("id") Long id) { | ||
| 61 | + treeChangeLogService.deleteTreeChangeLog(id); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @DeleteMapping("/delete-list") | ||
| 66 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 67 | + @Operation(summary = "批量删除一树一档案修改记录") | ||
| 68 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:delete')") | ||
| 69 | + public CommonResult<Boolean> deleteTreeChangeLogList(@RequestParam("ids") List<Long> ids) { | ||
| 70 | + treeChangeLogService.deleteTreeChangeLogListByIds(ids); | ||
| 71 | + return success(true); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @GetMapping("/get") | ||
| 75 | + @Operation(summary = "获得一树一档案修改记录") | ||
| 76 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 77 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:query')") | ||
| 78 | + public CommonResult<TreeChangeLogRespVO> getTreeChangeLog(@RequestParam("id") Long id) { | ||
| 79 | + TreeChangeLogDO treeChangeLog = treeChangeLogService.getTreeChangeLog(id); | ||
| 80 | + return success(BeanUtils.toBean(treeChangeLog, TreeChangeLogRespVO.class)); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + @GetMapping({"/page","/list"}) | ||
| 84 | + @Operation(summary = "查询一树一档案修改记录列表") | ||
| 85 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:query')") | ||
| 86 | + public CommonResult<PageResult<TreeChangeLogRespVO>> getTreeChangeLogPage(@Valid TreeChangeLogPageReqVO pageReqVO) { | ||
| 87 | + PageResult<TreeChangeLogDO> pageResult = treeChangeLogService.getTreeChangeLogPage(pageReqVO); | ||
| 88 | + return success(BeanUtils.toBean(pageResult, TreeChangeLogRespVO.class)); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + @GetMapping("/export-excel") | ||
| 92 | + @Operation(summary = "导出一树一档案修改记录 Excel") | ||
| 93 | + @PreAuthorize("@ss.hasPermission('garden:tree-change-log:export')") | ||
| 94 | + @ApiAccessLog(operateType = EXPORT) | ||
| 95 | + public void exportTreeChangeLogExcel(@Valid TreeChangeLogPageReqVO pageReqVO, | ||
| 96 | + HttpServletResponse response) throws IOException { | ||
| 97 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 98 | + List<TreeChangeLogDO> list = treeChangeLogService.getTreeChangeLogPage(pageReqVO).getList(); | ||
| 99 | + // 导出 Excel | ||
| 100 | + ExcelUtils.write(response, "一树一档案修改记录.xls", "数据", TreeChangeLogRespVO.class, | ||
| 101 | + BeanUtils.toBean(list, TreeChangeLogRespVO.class)); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | +} | ||
| 0 | \ No newline at end of file | 105 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogPageReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 一树一档案修改记录分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class TreeChangeLogPageReqVO extends PageParam { | ||
| 15 | + | ||
| 16 | + @Schema(description = "garden_tree 的主键", example = "26527") | ||
| 17 | + private Long treeid; | ||
| 18 | + | ||
| 19 | + @Schema(description = "编号") | ||
| 20 | + private String treenumber; | ||
| 21 | + | ||
| 22 | + @Schema(description = "拉丁名", example = "赵六") | ||
| 23 | + private String latinname; | ||
| 24 | + | ||
| 25 | + @Schema(description = "树种", example = "1") | ||
| 26 | + private String treetype; | ||
| 27 | + | ||
| 28 | + @Schema(description = "树高") | ||
| 29 | + private String treeheight; | ||
| 30 | + | ||
| 31 | + @Schema(description = "冠幅") | ||
| 32 | + private String canopy; | ||
| 33 | + | ||
| 34 | + @Schema(description = "胸径") | ||
| 35 | + private String dbh; | ||
| 36 | + | ||
| 37 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 38 | + private String growthvigor; | ||
| 39 | + | ||
| 40 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 41 | + private String treelevel; | ||
| 42 | + | ||
| 43 | + @Schema(description = "经度") | ||
| 44 | + private String longitude; | ||
| 45 | + | ||
| 46 | + @Schema(description = "纬度") | ||
| 47 | + private String latitude; | ||
| 48 | + | ||
| 49 | + @Schema(description = "所在地") | ||
| 50 | + private String location; | ||
| 51 | + | ||
| 52 | + @Schema(description = "养护单位") | ||
| 53 | + private String maintainunit; | ||
| 54 | + | ||
| 55 | + @Schema(description = "管护单位") | ||
| 56 | + private String managedutyunit; | ||
| 57 | + | ||
| 58 | + @Schema(description = "道路id") | ||
| 59 | + private Long road; | ||
| 60 | + | ||
| 61 | + @Schema(description = "所属街道") | ||
| 62 | + private String street; | ||
| 63 | + | ||
| 64 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 65 | + private String oldtreeownership; | ||
| 66 | + | ||
| 67 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 68 | + private String datastate; | ||
| 69 | + | ||
| 70 | + @Schema(description = "估测树龄") | ||
| 71 | + private String estimationtreeage; | ||
| 72 | + | ||
| 73 | + @Schema(description = "冠幅东西") | ||
| 74 | + private String canopyeastwest; | ||
| 75 | + | ||
| 76 | + @Schema(description = "冠幅南北") | ||
| 77 | + private String canopysouthnorth; | ||
| 78 | + | ||
| 79 | + @Schema(description = "干周") | ||
| 80 | + private String weekday; | ||
| 81 | + | ||
| 82 | + @Schema(description = "生长地点") | ||
| 83 | + private String growlocation; | ||
| 84 | + | ||
| 85 | + @Schema(description = "生长环境") | ||
| 86 | + private String growthenvironment; | ||
| 87 | + | ||
| 88 | + @Schema(description = "树木照片一") | ||
| 89 | + private String treephotoone; | ||
| 90 | + | ||
| 91 | + @Schema(description = "古树照片二") | ||
| 92 | + private String treephototwo; | ||
| 93 | + | ||
| 94 | + @Schema(description = "古树照片三") | ||
| 95 | + private String treephotothree; | ||
| 96 | + | ||
| 97 | + @Schema(description = "古树照片四") | ||
| 98 | + private String treephotofour; | ||
| 99 | + | ||
| 100 | + @Schema(description = "古树照片五") | ||
| 101 | + private String treephotofive; | ||
| 102 | + | ||
| 103 | + @Schema(description = "创建者") | ||
| 104 | + private String createby; | ||
| 105 | + | ||
| 106 | + @Schema(description = "创建时间") | ||
| 107 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 108 | + private LocalDateTime[] createtime; | ||
| 109 | + | ||
| 110 | + @Schema(description = "更新者") | ||
| 111 | + private String updateby; | ||
| 112 | + | ||
| 113 | + @Schema(description = "更新时间") | ||
| 114 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 115 | + private LocalDateTime[] updatetime; | ||
| 116 | + | ||
| 117 | + @Schema(description = "备注", example = "你猜") | ||
| 118 | + private String remark; | ||
| 119 | + | ||
| 120 | +} | ||
| 0 | \ No newline at end of file | 121 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import cn.idev.excel.annotation.*; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 一树一档案修改记录 Response VO") | ||
| 11 | +@Data | ||
| 12 | +@ExcelIgnoreUnannotated | ||
| 13 | +public class TreeChangeLogRespVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3528") | ||
| 16 | + @ExcelProperty("id") | ||
| 17 | + private Long id; | ||
| 18 | + | ||
| 19 | + @Schema(description = "garden_tree 的主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26527") | ||
| 20 | + @ExcelProperty("garden_tree 的主键") | ||
| 21 | + private Long treeid; | ||
| 22 | + | ||
| 23 | + @Schema(description = "编号") | ||
| 24 | + @ExcelProperty("编号") | ||
| 25 | + private String treenumber; | ||
| 26 | + | ||
| 27 | + @Schema(description = "拉丁名", example = "赵六") | ||
| 28 | + @ExcelProperty("拉丁名") | ||
| 29 | + private String latinname; | ||
| 30 | + | ||
| 31 | + @Schema(description = "树种", example = "1") | ||
| 32 | + @ExcelProperty("树种") | ||
| 33 | + private String treetype; | ||
| 34 | + | ||
| 35 | + @Schema(description = "树高") | ||
| 36 | + @ExcelProperty("树高") | ||
| 37 | + private String treeheight; | ||
| 38 | + | ||
| 39 | + @Schema(description = "冠幅") | ||
| 40 | + @ExcelProperty("冠幅") | ||
| 41 | + private String canopy; | ||
| 42 | + | ||
| 43 | + @Schema(description = "胸径") | ||
| 44 | + @ExcelProperty("胸径") | ||
| 45 | + private String dbh; | ||
| 46 | + | ||
| 47 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 48 | + @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 49 | + private String growthvigor; | ||
| 50 | + | ||
| 51 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 52 | + @ExcelProperty("级别--数据字典:一级、两级") | ||
| 53 | + private String treelevel; | ||
| 54 | + | ||
| 55 | + @Schema(description = "经度") | ||
| 56 | + @ExcelProperty("经度") | ||
| 57 | + private String longitude; | ||
| 58 | + | ||
| 59 | + @Schema(description = "纬度") | ||
| 60 | + @ExcelProperty("纬度") | ||
| 61 | + private String latitude; | ||
| 62 | + | ||
| 63 | + @Schema(description = "所在地") | ||
| 64 | + @ExcelProperty("所在地") | ||
| 65 | + private String location; | ||
| 66 | + | ||
| 67 | + @Schema(description = "养护单位") | ||
| 68 | + @ExcelProperty("养护单位") | ||
| 69 | + private String maintainunit; | ||
| 70 | + | ||
| 71 | + @Schema(description = "管护单位") | ||
| 72 | + @ExcelProperty("管护单位") | ||
| 73 | + private String managedutyunit; | ||
| 74 | + | ||
| 75 | + @Schema(description = "道路id") | ||
| 76 | + @ExcelProperty("道路id") | ||
| 77 | + private Long road; | ||
| 78 | + | ||
| 79 | + @Schema(description = "所属街道") | ||
| 80 | + @ExcelProperty("所属街道") | ||
| 81 | + private String street; | ||
| 82 | + | ||
| 83 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 84 | + @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 85 | + private String oldtreeownership; | ||
| 86 | + | ||
| 87 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 88 | + @ExcelProperty("数据状态(已更新、未更新)") | ||
| 89 | + private String datastate; | ||
| 90 | + | ||
| 91 | + @Schema(description = "估测树龄") | ||
| 92 | + @ExcelProperty("估测树龄") | ||
| 93 | + private String estimationtreeage; | ||
| 94 | + | ||
| 95 | + @Schema(description = "冠幅东西") | ||
| 96 | + @ExcelProperty("冠幅东西") | ||
| 97 | + private String canopyeastwest; | ||
| 98 | + | ||
| 99 | + @Schema(description = "冠幅南北") | ||
| 100 | + @ExcelProperty("冠幅南北") | ||
| 101 | + private String canopysouthnorth; | ||
| 102 | + | ||
| 103 | + @Schema(description = "干周") | ||
| 104 | + @ExcelProperty("干周") | ||
| 105 | + private String weekday; | ||
| 106 | + | ||
| 107 | + @Schema(description = "生长地点") | ||
| 108 | + @ExcelProperty("生长地点") | ||
| 109 | + private String growlocation; | ||
| 110 | + | ||
| 111 | + @Schema(description = "生长环境") | ||
| 112 | + @ExcelProperty("生长环境") | ||
| 113 | + private String growthenvironment; | ||
| 114 | + | ||
| 115 | + @Schema(description = "树木照片一") | ||
| 116 | + @ExcelProperty("树木照片一") | ||
| 117 | + private String treephotoone; | ||
| 118 | + | ||
| 119 | + @Schema(description = "古树照片二") | ||
| 120 | + @ExcelProperty("古树照片二") | ||
| 121 | + private String treephototwo; | ||
| 122 | + | ||
| 123 | + @Schema(description = "古树照片三") | ||
| 124 | + @ExcelProperty("古树照片三") | ||
| 125 | + private String treephotothree; | ||
| 126 | + | ||
| 127 | + @Schema(description = "古树照片四") | ||
| 128 | + @ExcelProperty("古树照片四") | ||
| 129 | + private String treephotofour; | ||
| 130 | + | ||
| 131 | + @Schema(description = "古树照片五") | ||
| 132 | + @ExcelProperty("古树照片五") | ||
| 133 | + private String treephotofive; | ||
| 134 | + | ||
| 135 | + @Schema(description = "创建者") | ||
| 136 | + @ExcelProperty("创建者") | ||
| 137 | + private String createby; | ||
| 138 | + | ||
| 139 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 140 | + @ExcelProperty("创建时间") | ||
| 141 | + private LocalDateTime createtime; | ||
| 142 | + | ||
| 143 | + @Schema(description = "更新者") | ||
| 144 | + @ExcelProperty("更新者") | ||
| 145 | + private String updateby; | ||
| 146 | + | ||
| 147 | + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 148 | + @ExcelProperty("更新时间") | ||
| 149 | + private LocalDateTime updatetime; | ||
| 150 | + | ||
| 151 | + @Schema(description = "备注", example = "你猜") | ||
| 152 | + @ExcelProperty("备注") | ||
| 153 | + private String remark; | ||
| 154 | + | ||
| 155 | +} | ||
| 0 | \ No newline at end of file | 156 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 一树一档案修改记录新增/修改 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class TreeChangeLogSaveReqVO { | ||
| 13 | + | ||
| 14 | + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3528") | ||
| 15 | + private Long id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "garden_tree 的主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26527") | ||
| 18 | + @NotNull(message = "garden_tree 的主键不能为空") | ||
| 19 | + private Long treeid; | ||
| 20 | + | ||
| 21 | + @Schema(description = "编号") | ||
| 22 | + private String treenumber; | ||
| 23 | + | ||
| 24 | + @Schema(description = "拉丁名", example = "赵六") | ||
| 25 | + private String latinname; | ||
| 26 | + | ||
| 27 | + @Schema(description = "树种", example = "1") | ||
| 28 | + private String treetype; | ||
| 29 | + | ||
| 30 | + @Schema(description = "树高") | ||
| 31 | + private String treeheight; | ||
| 32 | + | ||
| 33 | + @Schema(description = "冠幅") | ||
| 34 | + private String canopy; | ||
| 35 | + | ||
| 36 | + @Schema(description = "胸径") | ||
| 37 | + private String dbh; | ||
| 38 | + | ||
| 39 | + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡") | ||
| 40 | + private String growthvigor; | ||
| 41 | + | ||
| 42 | + @Schema(description = "级别--数据字典:一级、两级") | ||
| 43 | + private String treelevel; | ||
| 44 | + | ||
| 45 | + @Schema(description = "经度") | ||
| 46 | + private String longitude; | ||
| 47 | + | ||
| 48 | + @Schema(description = "纬度") | ||
| 49 | + private String latitude; | ||
| 50 | + | ||
| 51 | + @Schema(description = "所在地") | ||
| 52 | + private String location; | ||
| 53 | + | ||
| 54 | + @Schema(description = "养护单位") | ||
| 55 | + private String maintainunit; | ||
| 56 | + | ||
| 57 | + @Schema(description = "管护单位") | ||
| 58 | + private String managedutyunit; | ||
| 59 | + | ||
| 60 | + @Schema(description = "道路id") | ||
| 61 | + private Long road; | ||
| 62 | + | ||
| 63 | + @Schema(description = "所属街道") | ||
| 64 | + private String street; | ||
| 65 | + | ||
| 66 | + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") | ||
| 67 | + private String oldtreeownership; | ||
| 68 | + | ||
| 69 | + @Schema(description = "数据状态(已更新、未更新)") | ||
| 70 | + private String datastate; | ||
| 71 | + | ||
| 72 | + @Schema(description = "估测树龄") | ||
| 73 | + private String estimationtreeage; | ||
| 74 | + | ||
| 75 | + @Schema(description = "冠幅东西") | ||
| 76 | + private String canopyeastwest; | ||
| 77 | + | ||
| 78 | + @Schema(description = "冠幅南北") | ||
| 79 | + private String canopysouthnorth; | ||
| 80 | + | ||
| 81 | + @Schema(description = "干周") | ||
| 82 | + private String weekday; | ||
| 83 | + | ||
| 84 | + @Schema(description = "生长地点") | ||
| 85 | + private String growlocation; | ||
| 86 | + | ||
| 87 | + @Schema(description = "生长环境") | ||
| 88 | + private String growthenvironment; | ||
| 89 | + | ||
| 90 | + @Schema(description = "树木照片一") | ||
| 91 | + private String treephotoone; | ||
| 92 | + | ||
| 93 | + @Schema(description = "古树照片二") | ||
| 94 | + private String treephototwo; | ||
| 95 | + | ||
| 96 | + @Schema(description = "古树照片三") | ||
| 97 | + private String treephotothree; | ||
| 98 | + | ||
| 99 | + @Schema(description = "古树照片四") | ||
| 100 | + private String treephotofour; | ||
| 101 | + | ||
| 102 | + @Schema(description = "古树照片五") | ||
| 103 | + private String treephotofive; | ||
| 104 | + | ||
| 105 | + @Schema(description = "创建者") | ||
| 106 | + private String createby; | ||
| 107 | + | ||
| 108 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 109 | + @NotNull(message = "创建时间不能为空") | ||
| 110 | + private LocalDateTime createtime; | ||
| 111 | + | ||
| 112 | + @Schema(description = "更新者") | ||
| 113 | + private String updateby; | ||
| 114 | + | ||
| 115 | + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 116 | + @NotNull(message = "更新时间不能为空") | ||
| 117 | + private LocalDateTime updatetime; | ||
| 118 | + | ||
| 119 | + @Schema(description = "备注", example = "你猜") | ||
| 120 | + private String remark; | ||
| 121 | + | ||
| 122 | +} | ||
| 0 | \ No newline at end of file | 123 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treerecord/GardenTreeController.java deleted
| 1 | -package com.zteits.urbanops.module.garden.controller.admin.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 4 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 5 | -import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 6 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenTreeDO; | ||
| 7 | -import com.zteits.urbanops.module.garden.service.treerecord.GardenTreeService; | ||
| 8 | -import com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.CompanyDeptRoadVO; | ||
| 9 | -import com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.RoadTreeVO; | ||
| 10 | -import io.swagger.v3.oas.annotations.Operation; | ||
| 11 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 12 | -import jakarta.annotation.Resource; | ||
| 13 | -import jakarta.servlet.http.HttpServletResponse; | ||
| 14 | -import org.springframework.security.access.prepost.PreAuthorize; | ||
| 15 | -import org.springframework.web.bind.annotation.*; | ||
| 16 | - | ||
| 17 | -import java.io.IOException; | ||
| 18 | -import java.util.List; | ||
| 19 | - | ||
| 20 | -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 21 | -import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; | ||
| 22 | -import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 23 | - | ||
| 24 | -@Tag(name = "管理后台 - 一树一档案") | ||
| 25 | -@RestController | ||
| 26 | -@RequestMapping("/business/tree") | ||
| 27 | -public class GardenTreeController { | ||
| 28 | - | ||
| 29 | - @Resource | ||
| 30 | - private GardenTreeService gardenTreeService; | ||
| 31 | - | ||
| 32 | - @GetMapping("/list") | ||
| 33 | - @Operation(summary = "一树一档案-列表") | ||
| 34 | - @PreAuthorize("@ss.hasPermission('business:tree:list')") | ||
| 35 | - public CommonResult<PageResult<GardenTreeDO>> list(@RequestParam(required = false) Integer pageNum, | ||
| 36 | - @RequestParam(required = false) Integer pageSize, | ||
| 37 | - GardenTreeDO where) { | ||
| 38 | - int pn = pageNum == null ? 1 : pageNum; | ||
| 39 | - int ps = pageSize == null ? 10 : pageSize; | ||
| 40 | - return success(gardenTreeService.selectPage(where, pn, ps)); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - @GetMapping("/export") | ||
| 44 | - @Operation(summary = "一树一档案-导出") | ||
| 45 | - @PreAuthorize("@ss.hasPermission('business:tree:export')") | ||
| 46 | - @ApiAccessLog(operateType = EXPORT) | ||
| 47 | - public void export(GardenTreeDO where, HttpServletResponse response) throws IOException { | ||
| 48 | - List<GardenTreeDO> list = gardenTreeService.selectPage(where, 1, Integer.MAX_VALUE).getList(); | ||
| 49 | - ExcelUtils.write(response, "树木信息.xls", "数据", GardenTreeDO.class, list); | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - @GetMapping("/{id}") | ||
| 53 | - @Operation(summary = "一树一档案-详情") | ||
| 54 | - @PreAuthorize("@ss.hasPermission('business:tree:query')") | ||
| 55 | - public CommonResult<GardenTreeDO> getInfo(@PathVariable("id") Long id) { | ||
| 56 | - return success(gardenTreeService.selectById(id)); | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | - @PostMapping | ||
| 60 | - @Operation(summary = "一树一档案-新增") | ||
| 61 | - @PreAuthorize("@ss.hasPermission('business:tree:add')") | ||
| 62 | - public CommonResult<Boolean> add(@RequestBody GardenTreeDO entity) { | ||
| 63 | - entity.setDeleted(false); | ||
| 64 | - return success(gardenTreeService.insert(entity)); | ||
| 65 | - } | ||
| 66 | - | ||
| 67 | - @PutMapping | ||
| 68 | - @Operation(summary = "一树一档案-修改") | ||
| 69 | - @PreAuthorize("@ss.hasPermission('business:tree:edit')") | ||
| 70 | - public CommonResult<Boolean> edit(@RequestBody GardenTreeDO entity) { | ||
| 71 | - return success(gardenTreeService.update(entity)); | ||
| 72 | - } | ||
| 73 | - | ||
| 74 | - @DeleteMapping("/{ids}") | ||
| 75 | - @Operation(summary = "一树一档案-删除") | ||
| 76 | - @PreAuthorize("@ss.hasPermission('business:tree:remove')") | ||
| 77 | - public CommonResult<Boolean> remove(@PathVariable List<Long> ids) { | ||
| 78 | - return success(gardenTreeService.deleteByIds(ids)); | ||
| 79 | - } | ||
| 80 | - | ||
| 81 | - @GetMapping("/dept/list") | ||
| 82 | - @Operation(summary = "一树一档案-公司部门道路树结构") | ||
| 83 | - @PreAuthorize("@ss.hasPermission('business:tree:list')") | ||
| 84 | - public CommonResult<List<CompanyDeptRoadVO>> deptList(@RequestParam Long companyId, | ||
| 85 | - @RequestParam(required = false) String roadName, | ||
| 86 | - @RequestParam(required = false) Long deptId) { | ||
| 87 | - return success(gardenTreeService.getCompanyDeptRoadTreeData(companyId, roadName, deptId)); | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - @GetMapping("/road/list") | ||
| 91 | - @Operation(summary = "一树一档案-按道路查询树列表") | ||
| 92 | - @PreAuthorize("@ss.hasPermission('business:tree:list')") | ||
| 93 | - public CommonResult<List<RoadTreeVO>> listTreesByRoad(@RequestParam Long road) { | ||
| 94 | - return success(gardenTreeService.getTreesByRoadId(road)); | ||
| 95 | - } | ||
| 96 | -} | ||
| 97 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treerecord/OldTreesController.java deleted
| 1 | -package com.zteits.urbanops.module.garden.controller.admin.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 4 | -import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 5 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | -import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 7 | -import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; | ||
| 8 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenOldtreesDO; | ||
| 9 | -import com.zteits.urbanops.module.garden.service.treerecord.GardenOldtreesService; | ||
| 10 | -import io.swagger.v3.oas.annotations.Operation; | ||
| 11 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 12 | -import jakarta.annotation.Resource; | ||
| 13 | -import jakarta.servlet.http.HttpServletResponse; | ||
| 14 | -import org.springframework.security.access.prepost.PreAuthorize; | ||
| 15 | -import org.springframework.web.bind.annotation.*; | ||
| 16 | - | ||
| 17 | -import java.io.IOException; | ||
| 18 | -import java.util.List; | ||
| 19 | - | ||
| 20 | -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 21 | - | ||
| 22 | -@Tag(name = "管理后台 - 古树名木") | ||
| 23 | -@RestController | ||
| 24 | -@RequestMapping("/treerecord/oldtrees") | ||
| 25 | -public class OldTreesController { | ||
| 26 | - | ||
| 27 | - @Resource | ||
| 28 | - private GardenOldtreesService service; | ||
| 29 | - | ||
| 30 | - @GetMapping("/list") | ||
| 31 | - @Operation(summary = "古树台账-列表") | ||
| 32 | - @PreAuthorize("@ss.hasPermission('treerecord:oldtrees:list')") | ||
| 33 | - public CommonResult<PageResult<GardenOldtreesDO>> list(GardenOldtreesDO where, | ||
| 34 | - @RequestParam(value = "pageNum", required = false) Integer pageNum, | ||
| 35 | - @RequestParam(value = "pageSize", required = false) Integer pageSize) { | ||
| 36 | - where.setDeptId(SecurityFrameworkUtils.getLoginUserDeptId()); | ||
| 37 | - PageParam page = new PageParam(); | ||
| 38 | - page.setPageNo(pageNum == null ? 1 : pageNum); | ||
| 39 | - page.setPageSize(pageSize == null ? 10 : pageSize); | ||
| 40 | - return success(service.selectPage(page, where)); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - @GetMapping("/export") | ||
| 44 | - @Operation(summary = "古树台账-导出") | ||
| 45 | - @PreAuthorize("@ss.hasPermission('treerecord:oldtrees:export')") | ||
| 46 | - public void export(GardenOldtreesDO where, HttpServletResponse response) throws IOException { | ||
| 47 | - where.setDeptId(SecurityFrameworkUtils.getLoginUserDeptId()); | ||
| 48 | - List<GardenOldtreesDO> list = service.selectList(where); | ||
| 49 | - ExcelUtils.write(response, "古树信息.xls", "数据", GardenOldtreesDO.class, list); | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - @GetMapping("/{id}") | ||
| 53 | - @Operation(summary = "古树台账-详情") | ||
| 54 | - @PreAuthorize("@ss.hasPermission('treerecord:oldtrees:query')") | ||
| 55 | - public CommonResult<GardenOldtreesDO> getInfo(@PathVariable("id") String id) { | ||
| 56 | - return success(service.selectById(id)); | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | - @PostMapping | ||
| 60 | - @Operation(summary = "古树台账-新增") | ||
| 61 | - @PreAuthorize("@ss.hasPermission('treerecord:oldtrees:add')") | ||
| 62 | - public CommonResult<Boolean> add(@RequestBody GardenOldtreesDO entity) { | ||
| 63 | - entity.setCreator(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); | ||
| 64 | - entity.setUpdater(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); | ||
| 65 | - entity.setDeptId(SecurityFrameworkUtils.getLoginUserDeptId()); | ||
| 66 | - return success(service.insert(entity)); | ||
| 67 | - } | ||
| 68 | - | ||
| 69 | - @PutMapping | ||
| 70 | - @Operation(summary = "古树台账-修改") | ||
| 71 | - @PreAuthorize("@ss.hasPermission('treerecord:oldtrees:edit')") | ||
| 72 | - public CommonResult<Boolean> edit(@RequestBody GardenOldtreesDO entity) { | ||
| 73 | - entity.setUpdater(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); | ||
| 74 | - return success(service.update(entity)); | ||
| 75 | - } | ||
| 76 | - | ||
| 77 | - @DeleteMapping("/{ids}") | ||
| 78 | - @Operation(summary = "古树台账-删除") | ||
| 79 | - @PreAuthorize("@ss.hasPermission('treerecord:oldtrees:remove')") | ||
| 80 | - public CommonResult<Boolean> remove(@PathVariable List<String> ids) { | ||
| 81 | - return success(service.deleteByIds(ids)); | ||
| 82 | - } | ||
| 83 | -} | ||
| 84 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treerecord/vo/RoadTreeVO.java deleted
| 1 | -package com.zteits.urbanops.module.garden.controller.admin.treerecord.vo; | ||
| 2 | - | ||
| 3 | -import lombok.Data; | ||
| 4 | - | ||
| 5 | -@Data | ||
| 6 | -public class RoadTreeVO { | ||
| 7 | - private Long id; | ||
| 8 | - private String treetype; | ||
| 9 | - private String treeheight; | ||
| 10 | - private String dbh; | ||
| 11 | - private String treenumber; | ||
| 12 | - private String treephoto; | ||
| 13 | -} | ||
| 14 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/oldtrees/OldtreesDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.dataobject.oldtrees; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 8 | +import org.springframework.util.CollectionUtils; | ||
| 9 | +import org.springframework.util.StringUtils; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 古树名木 DO | ||
| 13 | + * | ||
| 14 | + * @author 超级管理员 | ||
| 15 | + */ | ||
| 16 | +@TableName("garden_oldtrees") | ||
| 17 | +@KeySequence("garden_oldtrees_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 18 | +@Data | ||
| 19 | +@ToString(callSuper = true) | ||
| 20 | +@Builder | ||
| 21 | +@NoArgsConstructor | ||
| 22 | +@AllArgsConstructor | ||
| 23 | +public class OldtreesDO { | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * id | ||
| 27 | + */ | ||
| 28 | + @TableId(type = IdType.INPUT) | ||
| 29 | + private String id; | ||
| 30 | + /** | ||
| 31 | + * 编号 | ||
| 32 | + */ | ||
| 33 | + private String famoustreenumber; | ||
| 34 | + /** | ||
| 35 | + * 级别--数据字典:一级、两级 | ||
| 36 | + */ | ||
| 37 | + private String treelevel; | ||
| 38 | + /** | ||
| 39 | + * 树种 | ||
| 40 | + */ | ||
| 41 | + private String treetype; | ||
| 42 | + /** | ||
| 43 | + * 所在地 | ||
| 44 | + */ | ||
| 45 | + private String location; | ||
| 46 | + /** | ||
| 47 | + * 养护单位 | ||
| 48 | + */ | ||
| 49 | + private String maintainunit; | ||
| 50 | + /** | ||
| 51 | + * 权属分类--数据字典:专业绿地和单位(居住区) | ||
| 52 | + */ | ||
| 53 | + private String oldtreeownership; | ||
| 54 | + /** | ||
| 55 | + * 生长地点 | ||
| 56 | + */ | ||
| 57 | + private String growlocation; | ||
| 58 | + /** | ||
| 59 | + * 拉丁名 | ||
| 60 | + */ | ||
| 61 | + private String latinname; | ||
| 62 | + /** | ||
| 63 | + * 树高 | ||
| 64 | + */ | ||
| 65 | + private String treeheight; | ||
| 66 | + /** | ||
| 67 | + * 估测树龄 | ||
| 68 | + */ | ||
| 69 | + private String estimationtreeage; | ||
| 70 | + /** | ||
| 71 | + * 胸径 | ||
| 72 | + */ | ||
| 73 | + private String dbh; | ||
| 74 | + /** | ||
| 75 | + * 经度 | ||
| 76 | + */ | ||
| 77 | + private String longitude; | ||
| 78 | + /** | ||
| 79 | + * 纬度 | ||
| 80 | + */ | ||
| 81 | + private String latitude; | ||
| 82 | + /** | ||
| 83 | + * 冠幅东西 | ||
| 84 | + */ | ||
| 85 | + private String canopyeastwest; | ||
| 86 | + /** | ||
| 87 | + * 冠幅南北 | ||
| 88 | + */ | ||
| 89 | + private String canopysouthnorth; | ||
| 90 | + /** | ||
| 91 | + * 管护责任单位 | ||
| 92 | + */ | ||
| 93 | + private String managedutyunit; | ||
| 94 | + /** | ||
| 95 | + * 干周 | ||
| 96 | + */ | ||
| 97 | + private String weekday; | ||
| 98 | + /** | ||
| 99 | + * 生长势--数据字典:正常,衰弱,濒危,死亡 | ||
| 100 | + */ | ||
| 101 | + private String growthvigor; | ||
| 102 | + /** | ||
| 103 | + * 生长环境 | ||
| 104 | + */ | ||
| 105 | + private String growthenvironment; | ||
| 106 | + /** | ||
| 107 | + * 古树照片一 | ||
| 108 | + */ | ||
| 109 | + private String treephotoone; | ||
| 110 | + /** | ||
| 111 | + * 春季养护管理措施 | ||
| 112 | + */ | ||
| 113 | + private String springmaintenance; | ||
| 114 | + /** | ||
| 115 | + * 夏季养护管理措施 | ||
| 116 | + */ | ||
| 117 | + private String summermaintenance; | ||
| 118 | + /** | ||
| 119 | + * 秋季养护管理措施 | ||
| 120 | + */ | ||
| 121 | + private String autumnmaintenance; | ||
| 122 | + /** | ||
| 123 | + * 冬季养护管理措施 | ||
| 124 | + */ | ||
| 125 | + private String wintermaintenance; | ||
| 126 | + /** | ||
| 127 | + * 年度 | ||
| 128 | + */ | ||
| 129 | + private String annual; | ||
| 130 | + /** | ||
| 131 | + * 养护记录备注 | ||
| 132 | + */ | ||
| 133 | + private String curingremark; | ||
| 134 | + /** | ||
| 135 | + * 古树照片二 | ||
| 136 | + */ | ||
| 137 | + private String treephototwo; | ||
| 138 | + /** | ||
| 139 | + * 古树照片三 | ||
| 140 | + */ | ||
| 141 | + private String treephotothree; | ||
| 142 | + /** | ||
| 143 | + * 古树铭牌照片 | ||
| 144 | + */ | ||
| 145 | + private String nameplatephoto; | ||
| 146 | + /** | ||
| 147 | + * 数据状态(已更新、未更新) | ||
| 148 | + */ | ||
| 149 | + private String datastate; | ||
| 150 | + /** | ||
| 151 | + * 养护员工--作业队下派古树时选择的派发员工 | ||
| 152 | + */ | ||
| 153 | + private String curingstaff; | ||
| 154 | + /** | ||
| 155 | + * 状态(驳回/确认) | ||
| 156 | + */ | ||
| 157 | + private String state; | ||
| 158 | + /** | ||
| 159 | + * 平台驳回状态(平台驳回) | ||
| 160 | + */ | ||
| 161 | + private String platformstate; | ||
| 162 | + /** | ||
| 163 | + * 所属街道 | ||
| 164 | + */ | ||
| 165 | + private String street; | ||
| 166 | + /** | ||
| 167 | + * 责任人姓名 | ||
| 168 | + */ | ||
| 169 | + private String responsibleusername; | ||
| 170 | + /** | ||
| 171 | + * 责任人电话 | ||
| 172 | + */ | ||
| 173 | + private String responsibleuserphone; | ||
| 174 | + /** | ||
| 175 | + * 创建者 | ||
| 176 | + */ | ||
| 177 | + private String createby; | ||
| 178 | + /** | ||
| 179 | + * 创建时间 | ||
| 180 | + */ | ||
| 181 | + private LocalDateTime createtime; | ||
| 182 | + /** | ||
| 183 | + * 更新者 | ||
| 184 | + */ | ||
| 185 | + private String updateby; | ||
| 186 | + /** | ||
| 187 | + * 更新时间 | ||
| 188 | + */ | ||
| 189 | + private String updatetime; | ||
| 190 | + /** | ||
| 191 | + * 部门id | ||
| 192 | + */ | ||
| 193 | + private Long deptId; | ||
| 194 | + | ||
| 195 | + @TableField(exist = false) | ||
| 196 | + private List<String> treeImgList; | ||
| 197 | + | ||
| 198 | + @TableField(exist = false) | ||
| 199 | + private List<String> nameplatephotoList; | ||
| 200 | + | ||
| 201 | + public OldtreesDO imgToDomain(){ | ||
| 202 | + if (!CollectionUtils.isEmpty(treeImgList)) { | ||
| 203 | + if (treeImgList.size() > 0) { | ||
| 204 | + this.treephotoone = treeImgList.get(0); | ||
| 205 | + } | ||
| 206 | + if (treeImgList.size() > 1) { | ||
| 207 | + this.treephototwo = treeImgList.get(1); | ||
| 208 | + } | ||
| 209 | + if (treeImgList.size() > 2) { | ||
| 210 | + this.treephotothree = treeImgList.get(2); | ||
| 211 | + } | ||
| 212 | + } | ||
| 213 | + if (!CollectionUtils.isEmpty(nameplatephotoList)) { | ||
| 214 | + if (nameplatephotoList.size() > 0) { | ||
| 215 | + this.nameplatephoto = nameplatephotoList.get(0); | ||
| 216 | + } | ||
| 217 | + } | ||
| 218 | + return this; | ||
| 219 | + } | ||
| 220 | + public OldtreesDO domainToImg(){ | ||
| 221 | + if (CollectionUtils.isEmpty(treeImgList)) { | ||
| 222 | + treeImgList = new ArrayList<>(); | ||
| 223 | + } | ||
| 224 | + if (CollectionUtils.isEmpty(nameplatephotoList)) { | ||
| 225 | + nameplatephotoList = new ArrayList<>(); | ||
| 226 | + } | ||
| 227 | + if (!StringUtils.isEmpty(treephotoone)) { | ||
| 228 | + treeImgList.add(treephotoone); | ||
| 229 | + } | ||
| 230 | + if (!StringUtils.isEmpty(treephototwo)) { | ||
| 231 | + treeImgList.add(treephototwo); | ||
| 232 | + } | ||
| 233 | + if (!StringUtils.isEmpty(treephotothree)) { | ||
| 234 | + treeImgList.add(treephotothree); | ||
| 235 | + } | ||
| 236 | + if (!StringUtils.isEmpty(nameplatephoto)) { | ||
| 237 | + nameplatephotoList.add(nameplatephoto); | ||
| 238 | + } | ||
| 239 | + return this; | ||
| 240 | + } | ||
| 241 | + | ||
| 242 | +} | ||
| 0 | \ No newline at end of file | 243 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/oldtreeschangelog/OldtreesChangeLogDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 8 | +import org.springframework.util.CollectionUtils; | ||
| 9 | +import org.springframework.util.StringUtils; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 古树名木修改记录 DO | ||
| 13 | + * | ||
| 14 | + * @author 超级管理员 | ||
| 15 | + */ | ||
| 16 | +@TableName("garden_oldtrees_change_log") | ||
| 17 | +@KeySequence("garden_oldtrees_change_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 18 | +@Data | ||
| 19 | +@EqualsAndHashCode(callSuper = true) | ||
| 20 | +@ToString(callSuper = true) | ||
| 21 | +@Builder | ||
| 22 | +@NoArgsConstructor | ||
| 23 | +@AllArgsConstructor | ||
| 24 | +public class OldtreesChangeLogDO extends BaseDO { | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * id | ||
| 28 | + */ | ||
| 29 | + @TableId(type = IdType.INPUT) | ||
| 30 | + private String id; | ||
| 31 | + /** | ||
| 32 | + * garden_oldtrees 的主键 | ||
| 33 | + */ | ||
| 34 | + private String oldtreeid; | ||
| 35 | + /** | ||
| 36 | + * 编号 | ||
| 37 | + */ | ||
| 38 | + private String famoustreenumber; | ||
| 39 | + /** | ||
| 40 | + * 级别--数据字典:一级、两级 | ||
| 41 | + */ | ||
| 42 | + private String treelevel; | ||
| 43 | + /** | ||
| 44 | + * 树种 | ||
| 45 | + */ | ||
| 46 | + private String treetype; | ||
| 47 | + /** | ||
| 48 | + * 所在地 | ||
| 49 | + */ | ||
| 50 | + private String location; | ||
| 51 | + /** | ||
| 52 | + * 养护单位 | ||
| 53 | + */ | ||
| 54 | + private String maintainunit; | ||
| 55 | + /** | ||
| 56 | + * 权属分类--数据字典:专业绿地和单位(居住区) | ||
| 57 | + */ | ||
| 58 | + private String oldtreeownership; | ||
| 59 | + /** | ||
| 60 | + * 生长地点 | ||
| 61 | + */ | ||
| 62 | + private String growlocation; | ||
| 63 | + /** | ||
| 64 | + * 拉丁名 | ||
| 65 | + */ | ||
| 66 | + private String latinname; | ||
| 67 | + /** | ||
| 68 | + * 树高 | ||
| 69 | + */ | ||
| 70 | + private String treeheight; | ||
| 71 | + /** | ||
| 72 | + * 估测树龄 | ||
| 73 | + */ | ||
| 74 | + private String estimationtreeage; | ||
| 75 | + /** | ||
| 76 | + * 胸径 | ||
| 77 | + */ | ||
| 78 | + private String dbh; | ||
| 79 | + /** | ||
| 80 | + * 经度 | ||
| 81 | + */ | ||
| 82 | + private String longitude; | ||
| 83 | + /** | ||
| 84 | + * 纬度 | ||
| 85 | + */ | ||
| 86 | + private String latitude; | ||
| 87 | + /** | ||
| 88 | + * 冠幅东西 | ||
| 89 | + */ | ||
| 90 | + private String canopyeastwest; | ||
| 91 | + /** | ||
| 92 | + * 冠幅南北 | ||
| 93 | + */ | ||
| 94 | + private String canopysouthnorth; | ||
| 95 | + /** | ||
| 96 | + * 管护责任单位 | ||
| 97 | + */ | ||
| 98 | + private String managedutyunit; | ||
| 99 | + /** | ||
| 100 | + * 干周 | ||
| 101 | + */ | ||
| 102 | + private String weekday; | ||
| 103 | + /** | ||
| 104 | + * 生长势--数据字典:正常,衰弱,濒危,死亡 | ||
| 105 | + */ | ||
| 106 | + private String growthvigor; | ||
| 107 | + /** | ||
| 108 | + * 生长环境 | ||
| 109 | + */ | ||
| 110 | + private String growthenvironment; | ||
| 111 | + /** | ||
| 112 | + * 古树照片一 | ||
| 113 | + */ | ||
| 114 | + private String treephotoone; | ||
| 115 | + /** | ||
| 116 | + * 春季养护管理措施 | ||
| 117 | + */ | ||
| 118 | + private String springmaintenance; | ||
| 119 | + /** | ||
| 120 | + * 夏季养护管理措施 | ||
| 121 | + */ | ||
| 122 | + private String summermaintenance; | ||
| 123 | + /** | ||
| 124 | + * 秋季养护管理措施 | ||
| 125 | + */ | ||
| 126 | + private String autumnmaintenance; | ||
| 127 | + /** | ||
| 128 | + * 冬季养护管理措施 | ||
| 129 | + */ | ||
| 130 | + private String wintermaintenance; | ||
| 131 | + /** | ||
| 132 | + * 年度 | ||
| 133 | + */ | ||
| 134 | + private String annual; | ||
| 135 | + /** | ||
| 136 | + * 养护记录备注 | ||
| 137 | + */ | ||
| 138 | + private String curingremark; | ||
| 139 | + /** | ||
| 140 | + * 古树照片二 | ||
| 141 | + */ | ||
| 142 | + private String treephototwo; | ||
| 143 | + /** | ||
| 144 | + * 古树照片三 | ||
| 145 | + */ | ||
| 146 | + private String treephotothree; | ||
| 147 | + /** | ||
| 148 | + * 古树铭牌照片 | ||
| 149 | + */ | ||
| 150 | + private String nameplatephoto; | ||
| 151 | + /** | ||
| 152 | + * 数据状态(已更新、未更新) | ||
| 153 | + */ | ||
| 154 | + private String datastate; | ||
| 155 | + /** | ||
| 156 | + * 养护员工--作业队下派古树时选择的派发员工 | ||
| 157 | + */ | ||
| 158 | + private String curingstaff; | ||
| 159 | + /** | ||
| 160 | + * 状态(驳回/确认) | ||
| 161 | + */ | ||
| 162 | + private String state; | ||
| 163 | + /** | ||
| 164 | + * 平台驳回状态(平台驳回) | ||
| 165 | + */ | ||
| 166 | + private String platformstate; | ||
| 167 | + /** | ||
| 168 | + * 所属街道 | ||
| 169 | + */ | ||
| 170 | + private String street; | ||
| 171 | + /** | ||
| 172 | + * 负责人姓名 | ||
| 173 | + */ | ||
| 174 | + private String responsibleusername; | ||
| 175 | + /** | ||
| 176 | + * 负责人电话 | ||
| 177 | + */ | ||
| 178 | + private String responsibleuserphone; | ||
| 179 | + /** | ||
| 180 | + * 创建者 | ||
| 181 | + */ | ||
| 182 | + private String createby; | ||
| 183 | + /** | ||
| 184 | + * 创建时间 | ||
| 185 | + */ | ||
| 186 | + private LocalDateTime createtime; | ||
| 187 | + /** | ||
| 188 | + * 更新者 | ||
| 189 | + */ | ||
| 190 | + private String updateby; | ||
| 191 | + /** | ||
| 192 | + * 更新时间 | ||
| 193 | + */ | ||
| 194 | + private LocalDateTime updatetime; | ||
| 195 | + | ||
| 196 | + @TableField(exist = false) | ||
| 197 | + private List<String> treeImgList; | ||
| 198 | + | ||
| 199 | + @TableField(exist = false) | ||
| 200 | + private List<String> nameplatephotoList; | ||
| 201 | + | ||
| 202 | + public OldtreesChangeLogDO imgToDomain(){ | ||
| 203 | + if (!CollectionUtils.isEmpty(treeImgList)) { | ||
| 204 | + if (treeImgList.size() > 0) { | ||
| 205 | + this.treephotoone = treeImgList.get(0); | ||
| 206 | + } | ||
| 207 | + if (treeImgList.size() > 1) { | ||
| 208 | + this.treephototwo = treeImgList.get(1); | ||
| 209 | + } | ||
| 210 | + if (treeImgList.size() > 2) { | ||
| 211 | + this.treephotothree = treeImgList.get(2); | ||
| 212 | + } | ||
| 213 | + } | ||
| 214 | + if (!CollectionUtils.isEmpty(nameplatephotoList)) { | ||
| 215 | + if (nameplatephotoList.size() > 0) { | ||
| 216 | + this.nameplatephoto = nameplatephotoList.get(0); | ||
| 217 | + } | ||
| 218 | + } | ||
| 219 | + return this; | ||
| 220 | + } | ||
| 221 | + public OldtreesChangeLogDO domainToImg(){ | ||
| 222 | + if (CollectionUtils.isEmpty(treeImgList)) { | ||
| 223 | + treeImgList = new ArrayList<>(); | ||
| 224 | + } | ||
| 225 | + if (CollectionUtils.isEmpty(nameplatephotoList)) { | ||
| 226 | + nameplatephotoList = new ArrayList<>(); | ||
| 227 | + } | ||
| 228 | + if (!StringUtils.isEmpty(treephotoone)) { | ||
| 229 | + treeImgList.add(treephotoone); | ||
| 230 | + } | ||
| 231 | + if (!StringUtils.isEmpty(treephototwo)) { | ||
| 232 | + treeImgList.add(treephototwo); | ||
| 233 | + } | ||
| 234 | + if (!StringUtils.isEmpty(treephotothree)) { | ||
| 235 | + treeImgList.add(treephotothree); | ||
| 236 | + } | ||
| 237 | + if (!StringUtils.isEmpty(nameplatephoto)) { | ||
| 238 | + nameplatephotoList.add(nameplatephoto); | ||
| 239 | + } | ||
| 240 | + return this; | ||
| 241 | + } | ||
| 242 | + | ||
| 243 | +} |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/road/RoadDO.java
| @@ -104,5 +104,8 @@ public class RoadDO extends BaseDO { | @@ -104,5 +104,8 @@ public class RoadDO extends BaseDO { | ||
| 104 | */ | 104 | */ |
| 105 | private String updaterName; | 105 | private String updaterName; |
| 106 | 106 | ||
| 107 | - | 107 | + /** |
| 108 | + * 方向 | ||
| 109 | + */ | ||
| 110 | + private String direction; | ||
| 108 | } | 111 | } |
| 109 | \ No newline at end of file | 112 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/tree/TreeDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.dataobject.tree; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.lang.tree.Tree; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 9 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 10 | +import org.springframework.util.CollectionUtils; | ||
| 11 | +import org.springframework.util.StringUtils; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 一树一档案 DO | ||
| 15 | + * | ||
| 16 | + * @author 超级管理员 | ||
| 17 | + */ | ||
| 18 | +@TableName("garden_tree") | ||
| 19 | +@KeySequence("garden_tree_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 20 | +@Data | ||
| 21 | +@ToString(callSuper = true) | ||
| 22 | +@Builder | ||
| 23 | +@NoArgsConstructor | ||
| 24 | +@AllArgsConstructor | ||
| 25 | +public class TreeDO { | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * id | ||
| 29 | + */ | ||
| 30 | + @TableId | ||
| 31 | + private Long id; | ||
| 32 | + /** | ||
| 33 | + * 编号 | ||
| 34 | + */ | ||
| 35 | + private String treenumber; | ||
| 36 | + /** | ||
| 37 | + * 拉丁名 | ||
| 38 | + */ | ||
| 39 | + private String latinname; | ||
| 40 | + /** | ||
| 41 | + * 树种 | ||
| 42 | + */ | ||
| 43 | + private String treetype; | ||
| 44 | + /** | ||
| 45 | + * 树高 | ||
| 46 | + */ | ||
| 47 | + private String treeheight; | ||
| 48 | + /** | ||
| 49 | + * 冠幅 | ||
| 50 | + */ | ||
| 51 | + private String canopy; | ||
| 52 | + /** | ||
| 53 | + * 胸径 | ||
| 54 | + */ | ||
| 55 | + private String dbh; | ||
| 56 | + /** | ||
| 57 | + * 生长势--数据字典:正常,衰弱,濒危,死亡 | ||
| 58 | + */ | ||
| 59 | + private String growthvigor; | ||
| 60 | + /** | ||
| 61 | + * 级别--数据字典:一级、两级 | ||
| 62 | + */ | ||
| 63 | + private String treelevel; | ||
| 64 | + /** | ||
| 65 | + * 经度 | ||
| 66 | + */ | ||
| 67 | + private String longitude; | ||
| 68 | + /** | ||
| 69 | + * 纬度 | ||
| 70 | + */ | ||
| 71 | + private String latitude; | ||
| 72 | + /** | ||
| 73 | + * 所在地 | ||
| 74 | + */ | ||
| 75 | + private String location; | ||
| 76 | + /** | ||
| 77 | + * 养护单位 | ||
| 78 | + */ | ||
| 79 | + private String maintainunit; | ||
| 80 | + /** | ||
| 81 | + * 管护单位 | ||
| 82 | + */ | ||
| 83 | + private String managedutyunit; | ||
| 84 | + /** | ||
| 85 | + * 道路id | ||
| 86 | + */ | ||
| 87 | + private Long road; | ||
| 88 | + /** | ||
| 89 | + * 所属街道 | ||
| 90 | + */ | ||
| 91 | + private String street; | ||
| 92 | + /** | ||
| 93 | + * 权属分类--数据字典:专业绿地和单位(居住区) | ||
| 94 | + */ | ||
| 95 | + private String oldtreeownership; | ||
| 96 | + /** | ||
| 97 | + * 数据状态(已更新、未更新) | ||
| 98 | + */ | ||
| 99 | + private String datastate; | ||
| 100 | + /** | ||
| 101 | + * 估测树龄 | ||
| 102 | + */ | ||
| 103 | + private String estimationtreeage; | ||
| 104 | + /** | ||
| 105 | + * 冠幅东西 | ||
| 106 | + */ | ||
| 107 | + private String canopyeastwest; | ||
| 108 | + /** | ||
| 109 | + * 冠幅南北 | ||
| 110 | + */ | ||
| 111 | + private String canopysouthnorth; | ||
| 112 | + /** | ||
| 113 | + * 干周 | ||
| 114 | + */ | ||
| 115 | + private String weekday; | ||
| 116 | + /** | ||
| 117 | + * 生长地点 | ||
| 118 | + */ | ||
| 119 | + private String growlocation; | ||
| 120 | + /** | ||
| 121 | + * 生长环境 | ||
| 122 | + */ | ||
| 123 | + private String growthenvironment; | ||
| 124 | + /** | ||
| 125 | + * 树木照片一 | ||
| 126 | + */ | ||
| 127 | + private String treephotoone; | ||
| 128 | + /** | ||
| 129 | + * 古树照片二 | ||
| 130 | + */ | ||
| 131 | + private String treephototwo; | ||
| 132 | + /** | ||
| 133 | + * 古树照片三 | ||
| 134 | + */ | ||
| 135 | + private String treephotothree; | ||
| 136 | + /** | ||
| 137 | + * 古树照片四 | ||
| 138 | + */ | ||
| 139 | + private String treephotofour; | ||
| 140 | + /** | ||
| 141 | + * 古树照片五 | ||
| 142 | + */ | ||
| 143 | + private String treephotofive; | ||
| 144 | + /** | ||
| 145 | + * 创建者 | ||
| 146 | + */ | ||
| 147 | + private String createby; | ||
| 148 | + /** | ||
| 149 | + * 创建时间 | ||
| 150 | + */ | ||
| 151 | + private LocalDateTime createtime; | ||
| 152 | + /** | ||
| 153 | + * 更新者 | ||
| 154 | + */ | ||
| 155 | + private String updateby; | ||
| 156 | + /** | ||
| 157 | + * 更新时间 | ||
| 158 | + */ | ||
| 159 | + private LocalDateTime updatetime; | ||
| 160 | + /** | ||
| 161 | + * 备注 | ||
| 162 | + */ | ||
| 163 | + private String remark; | ||
| 164 | + /** | ||
| 165 | + * 部门id | ||
| 166 | + */ | ||
| 167 | + private Long deptId; | ||
| 168 | + | ||
| 169 | + /** | ||
| 170 | + * 公司id | ||
| 171 | + */ | ||
| 172 | + private Long companyId; | ||
| 173 | + | ||
| 174 | + @TableField(exist = false) | ||
| 175 | + private List<String> treeImgList; | ||
| 176 | + | ||
| 177 | + @TableField(exist = false) | ||
| 178 | + private List<String> treeImgListFile; | ||
| 179 | + | ||
| 180 | + public TreeDO imgToDomain(){ | ||
| 181 | + if (!CollectionUtils.isEmpty(treeImgList)) { | ||
| 182 | + if (treeImgList.size() > 0) { | ||
| 183 | + this.treephotoone = treeImgList.get(0); | ||
| 184 | + } | ||
| 185 | + if (treeImgList.size() > 1) { | ||
| 186 | + this.treephototwo = treeImgList.get(1); | ||
| 187 | + } | ||
| 188 | + if (treeImgList.size() > 2) { | ||
| 189 | + this.treephotothree = treeImgList.get(2); | ||
| 190 | + } | ||
| 191 | + if (treeImgList.size() > 3) { | ||
| 192 | + this.treephotofour = treeImgList.get(3); | ||
| 193 | + } | ||
| 194 | + if (treeImgList.size() > 4) { | ||
| 195 | + this.treephotofive = treeImgList.get(4); | ||
| 196 | + } | ||
| 197 | + } | ||
| 198 | + return this; | ||
| 199 | + } | ||
| 200 | + public TreeDO domainToImg(){ | ||
| 201 | + if (CollectionUtils.isEmpty(treeImgList)) { | ||
| 202 | + treeImgList = new ArrayList<>(); | ||
| 203 | + } | ||
| 204 | + if (!StringUtils.isEmpty(treephotoone)) { | ||
| 205 | + treeImgList.add(treephotoone); | ||
| 206 | + } | ||
| 207 | + if (!StringUtils.isEmpty(treephototwo)) { | ||
| 208 | + treeImgList.add(treephototwo); | ||
| 209 | + } | ||
| 210 | + if (!StringUtils.isEmpty(treephotothree)) { | ||
| 211 | + treeImgList.add(treephotothree); | ||
| 212 | + } | ||
| 213 | + if (!StringUtils.isEmpty(treephotofour)) { | ||
| 214 | + treeImgList.add(treephotofour); | ||
| 215 | + } | ||
| 216 | + if (!StringUtils.isEmpty(treephotofive)) { | ||
| 217 | + treeImgList.add(treephotofive); | ||
| 218 | + } | ||
| 219 | + return this; | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | +} |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treechangelog/TreeChangeLogDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.dataobject.treechangelog; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 8 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 9 | +import org.springframework.util.CollectionUtils; | ||
| 10 | +import org.springframework.util.StringUtils; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 一树一档案修改记录 DO | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@TableName("garden_tree_change_log") | ||
| 18 | +@KeySequence("garden_tree_change_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 19 | +@Data | ||
| 20 | +@EqualsAndHashCode(callSuper = true) | ||
| 21 | +@ToString(callSuper = true) | ||
| 22 | +@Builder | ||
| 23 | +@NoArgsConstructor | ||
| 24 | +@AllArgsConstructor | ||
| 25 | +public class TreeChangeLogDO extends BaseDO { | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * id | ||
| 29 | + */ | ||
| 30 | + @TableId | ||
| 31 | + private Long id; | ||
| 32 | + /** | ||
| 33 | + * garden_tree 的主键 | ||
| 34 | + */ | ||
| 35 | + private Long treeid; | ||
| 36 | + /** | ||
| 37 | + * 编号 | ||
| 38 | + */ | ||
| 39 | + private String treenumber; | ||
| 40 | + /** | ||
| 41 | + * 拉丁名 | ||
| 42 | + */ | ||
| 43 | + private String latinname; | ||
| 44 | + /** | ||
| 45 | + * 树种 | ||
| 46 | + */ | ||
| 47 | + private String treetype; | ||
| 48 | + /** | ||
| 49 | + * 树高 | ||
| 50 | + */ | ||
| 51 | + private String treeheight; | ||
| 52 | + /** | ||
| 53 | + * 冠幅 | ||
| 54 | + */ | ||
| 55 | + private String canopy; | ||
| 56 | + /** | ||
| 57 | + * 胸径 | ||
| 58 | + */ | ||
| 59 | + private String dbh; | ||
| 60 | + /** | ||
| 61 | + * 生长势--数据字典:正常,衰弱,濒危,死亡 | ||
| 62 | + */ | ||
| 63 | + private String growthvigor; | ||
| 64 | + /** | ||
| 65 | + * 级别--数据字典:一级、两级 | ||
| 66 | + */ | ||
| 67 | + private String treelevel; | ||
| 68 | + /** | ||
| 69 | + * 经度 | ||
| 70 | + */ | ||
| 71 | + private String longitude; | ||
| 72 | + /** | ||
| 73 | + * 纬度 | ||
| 74 | + */ | ||
| 75 | + private String latitude; | ||
| 76 | + /** | ||
| 77 | + * 所在地 | ||
| 78 | + */ | ||
| 79 | + private String location; | ||
| 80 | + /** | ||
| 81 | + * 养护单位 | ||
| 82 | + */ | ||
| 83 | + private String maintainunit; | ||
| 84 | + /** | ||
| 85 | + * 管护单位 | ||
| 86 | + */ | ||
| 87 | + private String managedutyunit; | ||
| 88 | + /** | ||
| 89 | + * 道路id | ||
| 90 | + */ | ||
| 91 | + private Long road; | ||
| 92 | + /** | ||
| 93 | + * 所属街道 | ||
| 94 | + */ | ||
| 95 | + private String street; | ||
| 96 | + /** | ||
| 97 | + * 权属分类--数据字典:专业绿地和单位(居住区) | ||
| 98 | + */ | ||
| 99 | + private String oldtreeownership; | ||
| 100 | + /** | ||
| 101 | + * 数据状态(已更新、未更新) | ||
| 102 | + */ | ||
| 103 | + private String datastate; | ||
| 104 | + /** | ||
| 105 | + * 估测树龄 | ||
| 106 | + */ | ||
| 107 | + private String estimationtreeage; | ||
| 108 | + /** | ||
| 109 | + * 冠幅东西 | ||
| 110 | + */ | ||
| 111 | + private String canopyeastwest; | ||
| 112 | + /** | ||
| 113 | + * 冠幅南北 | ||
| 114 | + */ | ||
| 115 | + private String canopysouthnorth; | ||
| 116 | + /** | ||
| 117 | + * 干周 | ||
| 118 | + */ | ||
| 119 | + private String weekday; | ||
| 120 | + /** | ||
| 121 | + * 生长地点 | ||
| 122 | + */ | ||
| 123 | + private String growlocation; | ||
| 124 | + /** | ||
| 125 | + * 生长环境 | ||
| 126 | + */ | ||
| 127 | + private String growthenvironment; | ||
| 128 | + /** | ||
| 129 | + * 树木照片一 | ||
| 130 | + */ | ||
| 131 | + private String treephotoone; | ||
| 132 | + /** | ||
| 133 | + * 古树照片二 | ||
| 134 | + */ | ||
| 135 | + private String treephototwo; | ||
| 136 | + /** | ||
| 137 | + * 古树照片三 | ||
| 138 | + */ | ||
| 139 | + private String treephotothree; | ||
| 140 | + /** | ||
| 141 | + * 古树照片四 | ||
| 142 | + */ | ||
| 143 | + private String treephotofour; | ||
| 144 | + /** | ||
| 145 | + * 古树照片五 | ||
| 146 | + */ | ||
| 147 | + private String treephotofive; | ||
| 148 | + /** | ||
| 149 | + * 创建者 | ||
| 150 | + */ | ||
| 151 | + private String createby; | ||
| 152 | + /** | ||
| 153 | + * 创建时间 | ||
| 154 | + */ | ||
| 155 | + private LocalDateTime createtime; | ||
| 156 | + /** | ||
| 157 | + * 更新者 | ||
| 158 | + */ | ||
| 159 | + private String updateby; | ||
| 160 | + /** | ||
| 161 | + * 更新时间 | ||
| 162 | + */ | ||
| 163 | + private LocalDateTime updatetime; | ||
| 164 | + /** | ||
| 165 | + * 备注 | ||
| 166 | + */ | ||
| 167 | + private String remark; | ||
| 168 | + | ||
| 169 | + @TableField(exist = false) | ||
| 170 | + private List<String> treeImgList; | ||
| 171 | + | ||
| 172 | + public TreeChangeLogDO imgToDomain(){ | ||
| 173 | + if (!CollectionUtils.isEmpty(treeImgList)) { | ||
| 174 | + if (treeImgList.size() > 0) { | ||
| 175 | + this.treephotoone = treeImgList.get(0); | ||
| 176 | + } | ||
| 177 | + if (treeImgList.size() > 1) { | ||
| 178 | + this.treephototwo = treeImgList.get(1); | ||
| 179 | + } | ||
| 180 | + if (treeImgList.size() > 2) { | ||
| 181 | + this.treephotothree = treeImgList.get(2); | ||
| 182 | + } | ||
| 183 | + if (treeImgList.size() > 3) { | ||
| 184 | + this.treephotofour = treeImgList.get(3); | ||
| 185 | + } | ||
| 186 | + if (treeImgList.size() > 4) { | ||
| 187 | + this.treephotofive = treeImgList.get(4); | ||
| 188 | + } | ||
| 189 | + } | ||
| 190 | + return this; | ||
| 191 | + } | ||
| 192 | + public TreeChangeLogDO domainToImg(){ | ||
| 193 | + if (CollectionUtils.isEmpty(treeImgList)) { | ||
| 194 | + treeImgList = new ArrayList<>(); | ||
| 195 | + } | ||
| 196 | + if (!StringUtils.isEmpty(treephotoone)) { | ||
| 197 | + treeImgList.add(treephotoone); | ||
| 198 | + } | ||
| 199 | + if (!StringUtils.isEmpty(treephototwo)) { | ||
| 200 | + treeImgList.add(treephototwo); | ||
| 201 | + } | ||
| 202 | + if (!StringUtils.isEmpty(treephotothree)) { | ||
| 203 | + treeImgList.add(treephotothree); | ||
| 204 | + } | ||
| 205 | + if (!StringUtils.isEmpty(treephotofour)) { | ||
| 206 | + treeImgList.add(treephotofour); | ||
| 207 | + } | ||
| 208 | + if (!StringUtils.isEmpty(treephotofive)) { | ||
| 209 | + treeImgList.add(treephotofive); | ||
| 210 | + } | ||
| 211 | + return this; | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + | ||
| 215 | +} |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treerecord/GardenOldtreesDO.java deleted
| 1 | -package com.zteits.urbanops.module.garden.dal.dataobject.treerecord; | ||
| 2 | - | ||
| 3 | -import com.baomidou.mybatisplus.annotation.TableId; | ||
| 4 | -import com.baomidou.mybatisplus.annotation.TableName; | ||
| 5 | -import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 6 | -import lombok.Data; | ||
| 7 | - | ||
| 8 | -@TableName("garden_oldtrees") | ||
| 9 | -@Data | ||
| 10 | -public class GardenOldtreesDO extends BaseDO { | ||
| 11 | - @TableId | ||
| 12 | - private String id; | ||
| 13 | - private String treenumber; | ||
| 14 | - private String latinname; | ||
| 15 | - private String treetype; | ||
| 16 | - private String treeheight; | ||
| 17 | - private String canopy; | ||
| 18 | - private String dbh; | ||
| 19 | - private String growthvigor; | ||
| 20 | - private String treelevel; | ||
| 21 | - private String longitude; | ||
| 22 | - private String latitude; | ||
| 23 | - private String location; | ||
| 24 | - private String maintainunit; | ||
| 25 | - private String managedutyunit; | ||
| 26 | - private Long road; | ||
| 27 | - private String street; | ||
| 28 | - private String oldtreeownership; | ||
| 29 | - private String datastate; | ||
| 30 | - private String estimationtreeage; | ||
| 31 | - private String canopyeastwest; | ||
| 32 | - private String canopysouthnorth; | ||
| 33 | - private String weekday; | ||
| 34 | - private String growlocation; | ||
| 35 | - private String growthenvironment; | ||
| 36 | - private String treephotoone; | ||
| 37 | - private String treephototwo; | ||
| 38 | - private String treephotothree; | ||
| 39 | - private String treephotofour; | ||
| 40 | - private String treephotofive; | ||
| 41 | - private Long deptId; | ||
| 42 | -} | ||
| 43 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/oldtrees/OldtreesMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.mysql.oldtrees; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtrees.OldtreesDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 古树名木 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface OldtreesMapper extends BaseMapperX<OldtreesDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<OldtreesDO> selectPage(OldtreesPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<OldtreesDO>() | ||
| 22 | + .eqIfPresent(OldtreesDO::getFamoustreenumber, reqVO.getFamoustreenumber()) | ||
| 23 | + .eqIfPresent(OldtreesDO::getTreelevel, reqVO.getTreelevel()) | ||
| 24 | + .eqIfPresent(OldtreesDO::getTreetype, reqVO.getTreetype()) | ||
| 25 | + .eqIfPresent(OldtreesDO::getLocation, reqVO.getLocation()) | ||
| 26 | + .eqIfPresent(OldtreesDO::getMaintainunit, reqVO.getMaintainunit()) | ||
| 27 | + .eqIfPresent(OldtreesDO::getOldtreeownership, reqVO.getOldtreeownership()) | ||
| 28 | + .eqIfPresent(OldtreesDO::getGrowlocation, reqVO.getGrowlocation()) | ||
| 29 | + .likeIfPresent(OldtreesDO::getLatinname, reqVO.getLatinname()) | ||
| 30 | + .eqIfPresent(OldtreesDO::getTreeheight, reqVO.getTreeheight()) | ||
| 31 | + .eqIfPresent(OldtreesDO::getEstimationtreeage, reqVO.getEstimationtreeage()) | ||
| 32 | + .eqIfPresent(OldtreesDO::getDbh, reqVO.getDbh()) | ||
| 33 | + .eqIfPresent(OldtreesDO::getLongitude, reqVO.getLongitude()) | ||
| 34 | + .eqIfPresent(OldtreesDO::getLatitude, reqVO.getLatitude()) | ||
| 35 | + .eqIfPresent(OldtreesDO::getCanopyeastwest, reqVO.getCanopyeastwest()) | ||
| 36 | + .eqIfPresent(OldtreesDO::getCanopysouthnorth, reqVO.getCanopysouthnorth()) | ||
| 37 | + .eqIfPresent(OldtreesDO::getManagedutyunit, reqVO.getManagedutyunit()) | ||
| 38 | + .eqIfPresent(OldtreesDO::getWeekday, reqVO.getWeekday()) | ||
| 39 | + .eqIfPresent(OldtreesDO::getGrowthvigor, reqVO.getGrowthvigor()) | ||
| 40 | + .eqIfPresent(OldtreesDO::getGrowthenvironment, reqVO.getGrowthenvironment()) | ||
| 41 | + .eqIfPresent(OldtreesDO::getTreephotoone, reqVO.getTreephotoone()) | ||
| 42 | + .eqIfPresent(OldtreesDO::getSpringmaintenance, reqVO.getSpringmaintenance()) | ||
| 43 | + .eqIfPresent(OldtreesDO::getSummermaintenance, reqVO.getSummermaintenance()) | ||
| 44 | + .eqIfPresent(OldtreesDO::getAutumnmaintenance, reqVO.getAutumnmaintenance()) | ||
| 45 | + .eqIfPresent(OldtreesDO::getWintermaintenance, reqVO.getWintermaintenance()) | ||
| 46 | + .eqIfPresent(OldtreesDO::getAnnual, reqVO.getAnnual()) | ||
| 47 | + .eqIfPresent(OldtreesDO::getCuringremark, reqVO.getCuringremark()) | ||
| 48 | + .eqIfPresent(OldtreesDO::getTreephototwo, reqVO.getTreephototwo()) | ||
| 49 | + .eqIfPresent(OldtreesDO::getTreephotothree, reqVO.getTreephotothree()) | ||
| 50 | + .eqIfPresent(OldtreesDO::getNameplatephoto, reqVO.getNameplatephoto()) | ||
| 51 | + .eqIfPresent(OldtreesDO::getDatastate, reqVO.getDatastate()) | ||
| 52 | + .eqIfPresent(OldtreesDO::getCuringstaff, reqVO.getCuringstaff()) | ||
| 53 | + .eqIfPresent(OldtreesDO::getState, reqVO.getState()) | ||
| 54 | + .eqIfPresent(OldtreesDO::getPlatformstate, reqVO.getPlatformstate()) | ||
| 55 | + .eqIfPresent(OldtreesDO::getStreet, reqVO.getStreet()) | ||
| 56 | + .likeIfPresent(OldtreesDO::getResponsibleusername, reqVO.getResponsibleusername()) | ||
| 57 | + .eqIfPresent(OldtreesDO::getResponsibleuserphone, reqVO.getResponsibleuserphone()) | ||
| 58 | + .eqIfPresent(OldtreesDO::getCreateby, reqVO.getCreateby()) | ||
| 59 | + .betweenIfPresent(OldtreesDO::getCreatetime, reqVO.getCreatetime()) | ||
| 60 | + .eqIfPresent(OldtreesDO::getUpdateby, reqVO.getUpdateby()) | ||
| 61 | + .betweenIfPresent(OldtreesDO::getUpdatetime, reqVO.getUpdatetime()) | ||
| 62 | + .eqIfPresent(OldtreesDO::getDeptId, reqVO.getDeptId()) | ||
| 63 | + .orderByDesc(OldtreesDO::getId)); | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + default OldtreesDO selectByFamoustreenumber(String famoustreenumber) { | ||
| 67 | + return selectOne(new LambdaQueryWrapperX<OldtreesDO>() | ||
| 68 | + .eqIfPresent(OldtreesDO::getFamoustreenumber, famoustreenumber)); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | +} | ||
| 0 | \ No newline at end of file | 72 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/oldtreeschangelog/OldtreesChangeLogMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.mysql.oldtreeschangelog; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 古树名木修改记录 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface OldtreesChangeLogMapper extends BaseMapperX<OldtreesChangeLogDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<OldtreesChangeLogDO> selectPage(OldtreesChangeLogPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<OldtreesChangeLogDO>() | ||
| 22 | + .eqIfPresent(OldtreesChangeLogDO::getOldtreeid, reqVO.getOldtreeid()) | ||
| 23 | + .eqIfPresent(OldtreesChangeLogDO::getFamoustreenumber, reqVO.getFamoustreenumber()) | ||
| 24 | + .eqIfPresent(OldtreesChangeLogDO::getTreelevel, reqVO.getTreelevel()) | ||
| 25 | + .eqIfPresent(OldtreesChangeLogDO::getTreetype, reqVO.getTreetype()) | ||
| 26 | + .eqIfPresent(OldtreesChangeLogDO::getLocation, reqVO.getLocation()) | ||
| 27 | + .eqIfPresent(OldtreesChangeLogDO::getMaintainunit, reqVO.getMaintainunit()) | ||
| 28 | + .eqIfPresent(OldtreesChangeLogDO::getOldtreeownership, reqVO.getOldtreeownership()) | ||
| 29 | + .eqIfPresent(OldtreesChangeLogDO::getGrowlocation, reqVO.getGrowlocation()) | ||
| 30 | + .likeIfPresent(OldtreesChangeLogDO::getLatinname, reqVO.getLatinname()) | ||
| 31 | + .eqIfPresent(OldtreesChangeLogDO::getTreeheight, reqVO.getTreeheight()) | ||
| 32 | + .eqIfPresent(OldtreesChangeLogDO::getEstimationtreeage, reqVO.getEstimationtreeage()) | ||
| 33 | + .eqIfPresent(OldtreesChangeLogDO::getDbh, reqVO.getDbh()) | ||
| 34 | + .eqIfPresent(OldtreesChangeLogDO::getLongitude, reqVO.getLongitude()) | ||
| 35 | + .eqIfPresent(OldtreesChangeLogDO::getLatitude, reqVO.getLatitude()) | ||
| 36 | + .eqIfPresent(OldtreesChangeLogDO::getCanopyeastwest, reqVO.getCanopyeastwest()) | ||
| 37 | + .eqIfPresent(OldtreesChangeLogDO::getCanopysouthnorth, reqVO.getCanopysouthnorth()) | ||
| 38 | + .eqIfPresent(OldtreesChangeLogDO::getManagedutyunit, reqVO.getManagedutyunit()) | ||
| 39 | + .eqIfPresent(OldtreesChangeLogDO::getWeekday, reqVO.getWeekday()) | ||
| 40 | + .eqIfPresent(OldtreesChangeLogDO::getGrowthvigor, reqVO.getGrowthvigor()) | ||
| 41 | + .eqIfPresent(OldtreesChangeLogDO::getGrowthenvironment, reqVO.getGrowthenvironment()) | ||
| 42 | + .eqIfPresent(OldtreesChangeLogDO::getTreephotoone, reqVO.getTreephotoone()) | ||
| 43 | + .eqIfPresent(OldtreesChangeLogDO::getSpringmaintenance, reqVO.getSpringmaintenance()) | ||
| 44 | + .eqIfPresent(OldtreesChangeLogDO::getSummermaintenance, reqVO.getSummermaintenance()) | ||
| 45 | + .eqIfPresent(OldtreesChangeLogDO::getAutumnmaintenance, reqVO.getAutumnmaintenance()) | ||
| 46 | + .eqIfPresent(OldtreesChangeLogDO::getWintermaintenance, reqVO.getWintermaintenance()) | ||
| 47 | + .eqIfPresent(OldtreesChangeLogDO::getAnnual, reqVO.getAnnual()) | ||
| 48 | + .eqIfPresent(OldtreesChangeLogDO::getCuringremark, reqVO.getCuringremark()) | ||
| 49 | + .eqIfPresent(OldtreesChangeLogDO::getTreephototwo, reqVO.getTreephototwo()) | ||
| 50 | + .eqIfPresent(OldtreesChangeLogDO::getTreephotothree, reqVO.getTreephotothree()) | ||
| 51 | + .eqIfPresent(OldtreesChangeLogDO::getNameplatephoto, reqVO.getNameplatephoto()) | ||
| 52 | + .eqIfPresent(OldtreesChangeLogDO::getDatastate, reqVO.getDatastate()) | ||
| 53 | + .eqIfPresent(OldtreesChangeLogDO::getCuringstaff, reqVO.getCuringstaff()) | ||
| 54 | + .eqIfPresent(OldtreesChangeLogDO::getState, reqVO.getState()) | ||
| 55 | + .eqIfPresent(OldtreesChangeLogDO::getPlatformstate, reqVO.getPlatformstate()) | ||
| 56 | + .eqIfPresent(OldtreesChangeLogDO::getStreet, reqVO.getStreet()) | ||
| 57 | + .likeIfPresent(OldtreesChangeLogDO::getResponsibleusername, reqVO.getResponsibleusername()) | ||
| 58 | + .eqIfPresent(OldtreesChangeLogDO::getResponsibleuserphone, reqVO.getResponsibleuserphone()) | ||
| 59 | + .eqIfPresent(OldtreesChangeLogDO::getCreateby, reqVO.getCreateby()) | ||
| 60 | + .betweenIfPresent(OldtreesChangeLogDO::getCreatetime, reqVO.getCreatetime()) | ||
| 61 | + .eqIfPresent(OldtreesChangeLogDO::getUpdateby, reqVO.getUpdateby()) | ||
| 62 | + .betweenIfPresent(OldtreesChangeLogDO::getUpdatetime, reqVO.getUpdatetime()) | ||
| 63 | + .orderByDesc(OldtreesChangeLogDO::getId)); | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | +} | ||
| 0 | \ No newline at end of file | 67 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/tree/TreeMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.mysql.tree; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 一树一档案 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface TreeMapper extends BaseMapperX<TreeDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<TreeDO> selectPage(TreePageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<TreeDO>() | ||
| 22 | + .eqIfPresent(TreeDO::getTreenumber, reqVO.getTreenumber()) | ||
| 23 | + .likeIfPresent(TreeDO::getLatinname, reqVO.getLatinname()) | ||
| 24 | + .eqIfPresent(TreeDO::getTreetype, reqVO.getTreetype()) | ||
| 25 | + .eqIfPresent(TreeDO::getTreeheight, reqVO.getTreeheight()) | ||
| 26 | + .eqIfPresent(TreeDO::getCanopy, reqVO.getCanopy()) | ||
| 27 | + .eqIfPresent(TreeDO::getDbh, reqVO.getDbh()) | ||
| 28 | + .eqIfPresent(TreeDO::getGrowthvigor, reqVO.getGrowthvigor()) | ||
| 29 | + .eqIfPresent(TreeDO::getTreelevel, reqVO.getTreelevel()) | ||
| 30 | + .eqIfPresent(TreeDO::getLongitude, reqVO.getLongitude()) | ||
| 31 | + .eqIfPresent(TreeDO::getLatitude, reqVO.getLatitude()) | ||
| 32 | + .eqIfPresent(TreeDO::getLocation, reqVO.getLocation()) | ||
| 33 | + .eqIfPresent(TreeDO::getMaintainunit, reqVO.getMaintainunit()) | ||
| 34 | + .eqIfPresent(TreeDO::getManagedutyunit, reqVO.getManagedutyunit()) | ||
| 35 | + .eqIfPresent(TreeDO::getRoad, reqVO.getRoad()) | ||
| 36 | + .eqIfPresent(TreeDO::getStreet, reqVO.getStreet()) | ||
| 37 | + .eqIfPresent(TreeDO::getOldtreeownership, reqVO.getOldtreeownership()) | ||
| 38 | + .eqIfPresent(TreeDO::getDatastate, reqVO.getDatastate()) | ||
| 39 | + .eqIfPresent(TreeDO::getEstimationtreeage, reqVO.getEstimationtreeage()) | ||
| 40 | + .eqIfPresent(TreeDO::getCanopyeastwest, reqVO.getCanopyeastwest()) | ||
| 41 | + .eqIfPresent(TreeDO::getCanopysouthnorth, reqVO.getCanopysouthnorth()) | ||
| 42 | + .eqIfPresent(TreeDO::getWeekday, reqVO.getWeekday()) | ||
| 43 | + .eqIfPresent(TreeDO::getGrowlocation, reqVO.getGrowlocation()) | ||
| 44 | + .eqIfPresent(TreeDO::getGrowthenvironment, reqVO.getGrowthenvironment()) | ||
| 45 | + .eqIfPresent(TreeDO::getTreephotoone, reqVO.getTreephotoone()) | ||
| 46 | + .eqIfPresent(TreeDO::getTreephototwo, reqVO.getTreephototwo()) | ||
| 47 | + .eqIfPresent(TreeDO::getTreephotothree, reqVO.getTreephotothree()) | ||
| 48 | + .eqIfPresent(TreeDO::getTreephotofour, reqVO.getTreephotofour()) | ||
| 49 | + .eqIfPresent(TreeDO::getTreephotofive, reqVO.getTreephotofive()) | ||
| 50 | + .eqIfPresent(TreeDO::getCreateby, reqVO.getCreateby()) | ||
| 51 | + .betweenIfPresent(TreeDO::getCreatetime, reqVO.getCreatetime()) | ||
| 52 | + .eqIfPresent(TreeDO::getUpdateby, reqVO.getUpdateby()) | ||
| 53 | + .betweenIfPresent(TreeDO::getUpdatetime, reqVO.getUpdatetime()) | ||
| 54 | + .eqIfPresent(TreeDO::getRemark, reqVO.getRemark()) | ||
| 55 | + .eqIfPresent(TreeDO::getDeptId, reqVO.getDeptId()) | ||
| 56 | + .orderByDesc(TreeDO::getId)); | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + default TreeDO selectByTreeNumber(String treeNumber) { | ||
| 60 | + return selectOne(new LambdaQueryWrapperX<TreeDO>() | ||
| 61 | + .eqIfPresent(TreeDO::getTreenumber, treeNumber) | ||
| 62 | + ); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + List<CompanyDeptRoadVO> selectCompanyDeptRoadTreeData(TreeVO tree); | ||
| 66 | +} | ||
| 0 | \ No newline at end of file | 67 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/treechangelog/TreeChangeLogMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.dal.mysql.treechangelog; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 一树一档案修改记录 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface TreeChangeLogMapper extends BaseMapperX<TreeChangeLogDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<TreeChangeLogDO> selectPage(TreeChangeLogPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<TreeChangeLogDO>() | ||
| 22 | + .eqIfPresent(TreeChangeLogDO::getTreeid, reqVO.getTreeid()) | ||
| 23 | + .eqIfPresent(TreeChangeLogDO::getTreenumber, reqVO.getTreenumber()) | ||
| 24 | + .likeIfPresent(TreeChangeLogDO::getLatinname, reqVO.getLatinname()) | ||
| 25 | + .eqIfPresent(TreeChangeLogDO::getTreetype, reqVO.getTreetype()) | ||
| 26 | + .eqIfPresent(TreeChangeLogDO::getTreeheight, reqVO.getTreeheight()) | ||
| 27 | + .eqIfPresent(TreeChangeLogDO::getCanopy, reqVO.getCanopy()) | ||
| 28 | + .eqIfPresent(TreeChangeLogDO::getDbh, reqVO.getDbh()) | ||
| 29 | + .eqIfPresent(TreeChangeLogDO::getGrowthvigor, reqVO.getGrowthvigor()) | ||
| 30 | + .eqIfPresent(TreeChangeLogDO::getTreelevel, reqVO.getTreelevel()) | ||
| 31 | + .eqIfPresent(TreeChangeLogDO::getLongitude, reqVO.getLongitude()) | ||
| 32 | + .eqIfPresent(TreeChangeLogDO::getLatitude, reqVO.getLatitude()) | ||
| 33 | + .eqIfPresent(TreeChangeLogDO::getLocation, reqVO.getLocation()) | ||
| 34 | + .eqIfPresent(TreeChangeLogDO::getMaintainunit, reqVO.getMaintainunit()) | ||
| 35 | + .eqIfPresent(TreeChangeLogDO::getManagedutyunit, reqVO.getManagedutyunit()) | ||
| 36 | + .eqIfPresent(TreeChangeLogDO::getRoad, reqVO.getRoad()) | ||
| 37 | + .eqIfPresent(TreeChangeLogDO::getStreet, reqVO.getStreet()) | ||
| 38 | + .eqIfPresent(TreeChangeLogDO::getOldtreeownership, reqVO.getOldtreeownership()) | ||
| 39 | + .eqIfPresent(TreeChangeLogDO::getDatastate, reqVO.getDatastate()) | ||
| 40 | + .eqIfPresent(TreeChangeLogDO::getEstimationtreeage, reqVO.getEstimationtreeage()) | ||
| 41 | + .eqIfPresent(TreeChangeLogDO::getCanopyeastwest, reqVO.getCanopyeastwest()) | ||
| 42 | + .eqIfPresent(TreeChangeLogDO::getCanopysouthnorth, reqVO.getCanopysouthnorth()) | ||
| 43 | + .eqIfPresent(TreeChangeLogDO::getWeekday, reqVO.getWeekday()) | ||
| 44 | + .eqIfPresent(TreeChangeLogDO::getGrowlocation, reqVO.getGrowlocation()) | ||
| 45 | + .eqIfPresent(TreeChangeLogDO::getGrowthenvironment, reqVO.getGrowthenvironment()) | ||
| 46 | + .eqIfPresent(TreeChangeLogDO::getTreephotoone, reqVO.getTreephotoone()) | ||
| 47 | + .eqIfPresent(TreeChangeLogDO::getTreephototwo, reqVO.getTreephototwo()) | ||
| 48 | + .eqIfPresent(TreeChangeLogDO::getTreephotothree, reqVO.getTreephotothree()) | ||
| 49 | + .eqIfPresent(TreeChangeLogDO::getTreephotofour, reqVO.getTreephotofour()) | ||
| 50 | + .eqIfPresent(TreeChangeLogDO::getTreephotofive, reqVO.getTreephotofive()) | ||
| 51 | + .eqIfPresent(TreeChangeLogDO::getCreateby, reqVO.getCreateby()) | ||
| 52 | + .betweenIfPresent(TreeChangeLogDO::getCreatetime, reqVO.getCreatetime()) | ||
| 53 | + .eqIfPresent(TreeChangeLogDO::getUpdateby, reqVO.getUpdateby()) | ||
| 54 | + .betweenIfPresent(TreeChangeLogDO::getUpdatetime, reqVO.getUpdatetime()) | ||
| 55 | + .eqIfPresent(TreeChangeLogDO::getRemark, reqVO.getRemark()) | ||
| 56 | + .orderByDesc(TreeChangeLogDO::getId)); | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | +} | ||
| 0 | \ No newline at end of file | 60 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/treerecord/GardenOldtreesMapper.java deleted
| 1 | -package com.zteits.urbanops.module.garden.dal.mysql.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 4 | -import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenOldtreesDO; | ||
| 7 | -import org.apache.ibatis.annotations.Mapper; | ||
| 8 | - | ||
| 9 | -@Mapper | ||
| 10 | -public interface GardenOldtreesMapper extends BaseMapperX<GardenOldtreesDO> { | ||
| 11 | - default PageResult<GardenOldtreesDO> selectPage(com.zteits.urbanops.framework.common.pojo.PageParam pageParam, GardenOldtreesDO where) { | ||
| 12 | - return selectPage(pageParam, null, new LambdaQueryWrapperX<GardenOldtreesDO>() | ||
| 13 | - .likeIfPresent(GardenOldtreesDO::getTreenumber, where.getTreenumber()) | ||
| 14 | - .likeIfPresent(GardenOldtreesDO::getLatinname, where.getLatinname()) | ||
| 15 | - .eqIfPresent(GardenOldtreesDO::getStreet, where.getStreet()) | ||
| 16 | - .eqIfPresent(GardenOldtreesDO::getMaintainunit, where.getMaintainunit()) | ||
| 17 | - .eqIfPresent(GardenOldtreesDO::getDeptId, where.getDeptId()) | ||
| 18 | - .orderByDesc(GardenOldtreesDO::getUpdateTime)); | ||
| 19 | - } | ||
| 20 | -} | ||
| 21 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/treerecord/GardenTreeMapper.java deleted
| 1 | -package com.zteits.urbanops.module.garden.dal.mysql.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 4 | -import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenTreeDO; | ||
| 7 | -import org.apache.ibatis.annotations.Mapper; | ||
| 8 | - | ||
| 9 | -@Mapper | ||
| 10 | -public interface GardenTreeMapper extends BaseMapperX<GardenTreeDO> { | ||
| 11 | - default PageResult<GardenTreeDO> selectPage(com.zteits.urbanops.framework.common.pojo.PageParam pageParam, GardenTreeDO where) { | ||
| 12 | - return selectPage(pageParam, null, new LambdaQueryWrapperX<GardenTreeDO>() | ||
| 13 | - .likeIfPresent(GardenTreeDO::getTreenumber, where.getTreenumber()) | ||
| 14 | - .likeIfPresent(GardenTreeDO::getLatinname, where.getLatinname()) | ||
| 15 | - .likeIfPresent(GardenTreeDO::getTreetype, where.getTreetype()) | ||
| 16 | - .eqIfPresent(GardenTreeDO::getTreeheight, where.getTreeheight()) | ||
| 17 | - .eqIfPresent(GardenTreeDO::getCanopy, where.getCanopy()) | ||
| 18 | - .eqIfPresent(GardenTreeDO::getDbh, where.getDbh()) | ||
| 19 | - .eqIfPresent(GardenTreeDO::getGrowthvigor, where.getGrowthvigor()) | ||
| 20 | - .eqIfPresent(GardenTreeDO::getTreelevel, where.getTreelevel()) | ||
| 21 | - .eqIfPresent(GardenTreeDO::getLongitude, where.getLongitude()) | ||
| 22 | - .eqIfPresent(GardenTreeDO::getLatitude, where.getLatitude()) | ||
| 23 | - .eqIfPresent(GardenTreeDO::getLocation, where.getLocation()) | ||
| 24 | - .eqIfPresent(GardenTreeDO::getMaintainunit, where.getMaintainunit()) | ||
| 25 | - .eqIfPresent(GardenTreeDO::getManagedutyunit, where.getManagedutyunit()) | ||
| 26 | - .eqIfPresent(GardenTreeDO::getStreet, where.getStreet()) | ||
| 27 | - .eqIfPresent(GardenTreeDO::getOldtreeownership, where.getOldtreeownership()) | ||
| 28 | - .eqIfPresent(GardenTreeDO::getDatastate, where.getDatastate()) | ||
| 29 | - .eqIfPresent(GardenTreeDO::getEstimationtreeage, where.getEstimationtreeage()) | ||
| 30 | - .eqIfPresent(GardenTreeDO::getCanopyeastwest, where.getCanopyeastwest()) | ||
| 31 | - .eqIfPresent(GardenTreeDO::getCanopysouthnorth, where.getCanopysouthnorth()) | ||
| 32 | - .eqIfPresent(GardenTreeDO::getWeekday, where.getWeekday()) | ||
| 33 | - .eqIfPresent(GardenTreeDO::getGrowlocation, where.getGrowlocation()) | ||
| 34 | - .eqIfPresent(GardenTreeDO::getGrowthenvironment, where.getGrowthenvironment()) | ||
| 35 | - .eqIfPresent(GardenTreeDO::getDeleted, where.getDeleted()) | ||
| 36 | - .orderByDesc(GardenTreeDO::getUpdateTime)); | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - class CompanyDeptRoadRow { | ||
| 40 | - public String companyId; | ||
| 41 | - public String companyName; | ||
| 42 | - public Long deptId; | ||
| 43 | - public String deptName; | ||
| 44 | - public Long roadId; | ||
| 45 | - public String roadName; | ||
| 46 | - public String startRemark; | ||
| 47 | - public String endRemark; | ||
| 48 | - public Long treeCount; | ||
| 49 | - public Long recordedCount; | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - @org.apache.ibatis.annotations.Select("SELECT c.dict_value AS companyId, c.dict_label AS companyName, d.dept_id AS deptId, d.dept_name AS deptName, r.id AS roadId, r.road_name AS roadName, r.starting_remark AS startRemark, r.end_remark AS endRemark, COALESCE(r.tree_area, 0) AS treeCount, COUNT(t.id) AS recordedCount FROM sys_dict_data c JOIN sys_dept d ON d.belong_company_id = c.dict_value AND d.del_flag = '0' LEFT JOIN td_road_manager r ON d.dept_id = r.dept_id LEFT JOIN garden_tree t ON r.id = t.road AND t.deleted = 0 WHERE c.dict_type = 'belongCompanyId' AND d.dept_id NOT IN (SELECT DISTINCT parent_id FROM sys_dept WHERE parent_id IS NOT NULL) GROUP BY c.dict_value, c.dict_label, d.dept_id, d.dept_name, r.id, r.road_name, r.starting_remark, r.end_remark, r.tree_area ORDER BY treeCount DESC, recordedCount DESC") | ||
| 53 | - java.util.List<CompanyDeptRoadRow> selectCompanyDeptRoadRows(); | ||
| 54 | - | ||
| 55 | - @org.apache.ibatis.annotations.Select("SELECT t.id, t.treetype, t.treeheight, t.dbh, t.treenumber, t.treephotoone AS treephoto FROM garden_tree t WHERE t.deleted = 0 AND t.road = #{road} ORDER BY t.update_time DESC") | ||
| 56 | - java.util.List<com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.RoadTreeVO> selectTreesByRoadId(@org.apache.ibatis.annotations.Param("road") Long road); | ||
| 57 | -} | ||
| 58 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java
| @@ -88,4 +88,21 @@ public interface ErrorCodeConstants { | @@ -88,4 +88,21 @@ public interface ErrorCodeConstants { | ||
| 88 | 88 | ||
| 89 | ErrorCode MATERIAL_INVENTORY_OUT_NOT_EXISTS = new ErrorCode(1-100-004-005, "物料出库不存在"); | 89 | ErrorCode MATERIAL_INVENTORY_OUT_NOT_EXISTS = new ErrorCode(1-100-004-005, "物料出库不存在"); |
| 90 | ErrorCode MATERIAL_INVENTORY_NOT_EXISTS = new ErrorCode(1-100-004-006, "物料库存不存在"); | 90 | ErrorCode MATERIAL_INVENTORY_NOT_EXISTS = new ErrorCode(1-100-004-006, "物料库存不存在"); |
| 91 | + | ||
| 92 | + ErrorCode OLDTREES_NOT_EXISTS = new ErrorCode(1-100-005-001, "古树名木不存在"); | ||
| 93 | + | ||
| 94 | + ErrorCode OLDTREES_CHANGE_LOG_NOT_EXISTS = new ErrorCode(1-100-005-002, "古树名木修改记录不存在"); | ||
| 95 | + | ||
| 96 | + ErrorCode TREE_CHANGE_LOG_NOT_EXISTS = new ErrorCode(1-100-005-003, "一树一档案修改记录不存在"); | ||
| 97 | + | ||
| 98 | + ErrorCode TREE_NOT_EXISTS = new ErrorCode(1-100-005-004, "一树一档案不存在"); | ||
| 99 | + ErrorCode OLDTREES_FAMOUSTREENUMBER_EXISTS = new ErrorCode(1-100-005-006, "古树编号已存在"); | ||
| 100 | + ErrorCode TREE_ROAD_NOT_EXISTS = new ErrorCode(1-100-005-007, "所属道路不能为空"); | ||
| 101 | + ErrorCode TREE_NUMBER_EXISTS = new ErrorCode(1-100-005-010, "树木编码已存在"); | ||
| 102 | + | ||
| 103 | + | ||
| 104 | + ErrorCode ROAD_MANAGER_NOT_EXISTS = new ErrorCode(1-100-006-001, "道路管理不存在"); | ||
| 105 | + | ||
| 106 | + | ||
| 107 | + | ||
| 91 | } | 108 | } |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/costfee/CostFeeServiceImpl.java
| @@ -47,8 +47,7 @@ import java.util.stream.IntStream; | @@ -47,8 +47,7 @@ import java.util.stream.IntStream; | ||
| 47 | import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; | 47 | import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; |
| 48 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | 48 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 49 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception0; | 49 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception0; |
| 50 | -import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; | ||
| 51 | -import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserDeptId; | 50 | +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.*; |
| 52 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.COST_FEE_NOT_EXISTS_001; | 51 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.COST_FEE_NOT_EXISTS_001; |
| 53 | 52 | ||
| 54 | /** | 53 | /** |
| @@ -227,8 +226,8 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -227,8 +226,8 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 227 | .map(importObj -> { | 226 | .map(importObj -> { |
| 228 | WaterFeeDO fee = new WaterFeeDO(); | 227 | WaterFeeDO fee = new WaterFeeDO(); |
| 229 | BeanUtils.copyProperties(importObj, fee); | 228 | BeanUtils.copyProperties(importObj, fee); |
| 230 | - fee.setCompanyId(String.valueOf(getLoginUserDeptId())); | ||
| 231 | - if (getLoginUserDeptId() == 100) { | 229 | + fee.setCompanyId(String.valueOf(getCompanyId())); |
| 230 | + if (getCompanyId() == 100) { | ||
| 232 | fee.setCompanyName("蓟城山水"); | 231 | fee.setCompanyName("蓟城山水"); |
| 233 | } else { | 232 | } else { |
| 234 | // 设置单位id | 233 | // 设置单位id |
| @@ -502,8 +501,8 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -502,8 +501,8 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 502 | if (CollectionUtils.isEmpty(dataList)) { | 501 | if (CollectionUtils.isEmpty(dataList)) { |
| 503 | return; // 空列表无需校验 | 502 | return; // 空列表无需校验 |
| 504 | } | 503 | } |
| 505 | - //登录用户部门 | ||
| 506 | - Long deptId = getLoginUserDeptId(); | 504 | + //登录用户单位 |
| 505 | + Long belongCompanyId = getCompanyId(); | ||
| 507 | //单位集合 | 506 | //单位集合 |
| 508 | List<DeptRespDTO> companyList = deptApi.getSubDeptList(); | 507 | List<DeptRespDTO> companyList = deptApi.getSubDeptList(); |
| 509 | List<Long> deptIds = companyList.stream().map(DeptRespDTO::getId).collect(Collectors.toList()); | 508 | List<Long> deptIds = companyList.stream().map(DeptRespDTO::getId).collect(Collectors.toList()); |
| @@ -577,7 +576,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -577,7 +576,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 577 | } | 576 | } |
| 578 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); | 577 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); |
| 579 | //单位校验 | 578 | //单位校验 |
| 580 | - validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); | 579 | + validatecompany(rowNum, importBean.getCompanyName(), companyId, belongCompanyId); |
| 581 | //部门名称校验 | 580 | //部门名称校验 |
| 582 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); | 581 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); |
| 583 | 582 | ||
| @@ -612,7 +611,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -612,7 +611,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 612 | } | 611 | } |
| 613 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); | 612 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); |
| 614 | //单位校验 | 613 | //单位校验 |
| 615 | - validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); | 614 | + validatecompany(rowNum, importBean.getCompanyName(), companyId, belongCompanyId); |
| 616 | //部门名称校验 | 615 | //部门名称校验 |
| 617 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); | 616 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); |
| 618 | 617 | ||
| @@ -646,7 +645,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -646,7 +645,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 646 | } | 645 | } |
| 647 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); | 646 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); |
| 648 | //单位校验 | 647 | //单位校验 |
| 649 | - validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); | 648 | + validatecompany(rowNum, importBean.getCompanyName(), companyId, belongCompanyId); |
| 650 | //部门名称校验 | 649 | //部门名称校验 |
| 651 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); | 650 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); |
| 652 | 651 | ||
| @@ -716,7 +715,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -716,7 +715,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 716 | } | 715 | } |
| 717 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); | 716 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); |
| 718 | //单位校验 | 717 | //单位校验 |
| 719 | - validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); | 718 | + validatecompany(rowNum, importBean.getCompanyName(), companyId, belongCompanyId); |
| 720 | //部门名称校验 | 719 | //部门名称校验 |
| 721 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); | 720 | validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); |
| 722 | 721 | ||
| @@ -752,7 +751,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -752,7 +751,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 752 | 751 | ||
| 753 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); | 752 | Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); |
| 754 | //单位校验 | 753 | //单位校验 |
| 755 | - validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); | 754 | + validatecompany(rowNum, importBean.getCompanyName(), companyId, belongCompanyId); |
| 756 | } catch (ConstraintViolationException ex) { | 755 | } catch (ConstraintViolationException ex) { |
| 757 | // 5. 包装异常,明确行号 + 真实校验错误( | 756 | // 5. 包装异常,明确行号 + 真实校验错误( |
| 758 | throw exception0(BAD_REQUEST.getCode(), String.format("第%d条数据校验失败:%s", rowNum, ex.getMessage()), ex); | 757 | throw exception0(BAD_REQUEST.getCode(), String.format("第%d条数据校验失败:%s", rowNum, ex.getMessage()), ex); |
| @@ -761,7 +760,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -761,7 +760,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 761 | } | 760 | } |
| 762 | } | 761 | } |
| 763 | 762 | ||
| 764 | - private void validatecompany(int rowNum, String companyName, Long companyId, Long deptId){ | 763 | + private void validatecompany(int rowNum, String companyName, Long companyId, Long belongCompanyId){ |
| 765 | // 校验数组长度是否一致 | 764 | // 校验数组长度是否一致 |
| 766 | if (companyId == null) { | 765 | if (companyId == null) { |
| 767 | throw exception0(BAD_REQUEST.getCode(), String.format( | 766 | throw exception0(BAD_REQUEST.getCode(), String.format( |
| @@ -770,7 +769,7 @@ public class CostFeeServiceImpl implements CostFeeService { | @@ -770,7 +769,7 @@ public class CostFeeServiceImpl implements CostFeeService { | ||
| 770 | )); | 769 | )); |
| 771 | } | 770 | } |
| 772 | // 校验导入单位 | 771 | // 校验导入单位 |
| 773 | - if (deptId != 100 && !deptId.equals(companyId)) { | 772 | + if (belongCompanyId != 100 && !belongCompanyId.equals(companyId)) { |
| 774 | throw exception0(BAD_REQUEST.getCode(), String.format( | 773 | throw exception0(BAD_REQUEST.getCode(), String.format( |
| 775 | "第%d条数据:导入单位%s与当前操作员单位不一致", | 774 | "第%d条数据:导入单位%s与当前操作员单位不一致", |
| 776 | rowNum, companyName | 775 | rowNum, companyName |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/oldtrees/OldtreesService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.oldtrees; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtrees.OldtreesDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 古树名木 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface OldtreesService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建古树名木 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + String createOldtrees(@Valid OldtreesSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新古树名木 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateOldtrees(@Valid OldtreesSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除古树名木 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteOldtrees(String id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除古树名木 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteOldtreesListByIds(List<String> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得古树名木 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 古树名木 | ||
| 51 | + */ | ||
| 52 | + OldtreesDO getOldtrees(String id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得古树名木分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 古树名木分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<OldtreesDO> getOldtreesPage(OldtreesPageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | +} | ||
| 0 | \ No newline at end of file | 63 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/oldtrees/OldtreesServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.oldtrees; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import com.zteits.urbanops.framework.common.exception.ServiceException; | ||
| 5 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO; | ||
| 6 | +import com.zteits.urbanops.module.garden.dal.mysql.oldtreeschangelog.OldtreesChangeLogMapper; | ||
| 7 | +import org.springframework.stereotype.Service; | ||
| 8 | +import jakarta.annotation.Resource; | ||
| 9 | +import org.springframework.util.CollectionUtils; | ||
| 10 | +import org.springframework.util.ObjectUtils; | ||
| 11 | +import org.springframework.util.StringUtils; | ||
| 12 | +import org.springframework.validation.annotation.Validated; | ||
| 13 | +import org.springframework.transaction.annotation.Transactional; | ||
| 14 | + | ||
| 15 | +import java.time.LocalDateTime; | ||
| 16 | +import java.util.*; | ||
| 17 | +import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*; | ||
| 18 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtrees.OldtreesDO; | ||
| 19 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 20 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 21 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.module.garden.dal.mysql.oldtrees.OldtreesMapper; | ||
| 24 | + | ||
| 25 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 26 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 27 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 28 | +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; | ||
| 29 | + | ||
| 30 | +/** | ||
| 31 | + * 古树名木 Service 实现类 | ||
| 32 | + * | ||
| 33 | + * @author 超级管理员 | ||
| 34 | + */ | ||
| 35 | +@Service | ||
| 36 | +@Validated | ||
| 37 | +public class OldtreesServiceImpl implements OldtreesService { | ||
| 38 | + | ||
| 39 | + @Resource | ||
| 40 | + private OldtreesMapper oldtreesMapper; | ||
| 41 | + | ||
| 42 | + @Resource | ||
| 43 | + private OldtreesChangeLogMapper oldtreesChangeLogMapper; | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public String createOldtrees(OldtreesSaveReqVO createReqVO) { | ||
| 47 | + // 插入 | ||
| 48 | + OldtreesDO oldtrees = BeanUtils.toBean(createReqVO, OldtreesDO.class); | ||
| 49 | + | ||
| 50 | + if (!ObjectUtils.isEmpty(oldtrees)) { | ||
| 51 | + oldtrees.imgToDomain(); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + String id = oldtrees.getId(); | ||
| 55 | + if (!StringUtils.hasText(id)) { | ||
| 56 | + id = UUID.randomUUID().toString().replace("-", ""); | ||
| 57 | + oldtrees.setId(id); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + OldtreesDO exists = oldtreesMapper.selectByFamoustreenumber(oldtrees.getFamoustreenumber()); | ||
| 61 | + if (!ObjectUtils.isEmpty(exists)) { | ||
| 62 | + throw new ServiceException(OLDTREES_FAMOUSTREENUMBER_EXISTS); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + int insert = oldtreesMapper.insert(oldtrees); | ||
| 66 | + | ||
| 67 | + OldtreesChangeLogDO changeLog = new OldtreesChangeLogDO(); | ||
| 68 | + BeanUtils.copyProperties(createReqVO, changeLog); | ||
| 69 | + changeLog.setOldtreeid(id); | ||
| 70 | + changeLog.setCreateby(createReqVO.getCreateby()); | ||
| 71 | + changeLog.setCreatetime(createReqVO.getCreatetime()); | ||
| 72 | + changeLog.setUpdateby(createReqVO.getCreateby()); | ||
| 73 | + changeLog.setUpdatetime(createReqVO.getUpdatetime()); | ||
| 74 | + oldtreesChangeLogMapper.insert(changeLog); | ||
| 75 | + | ||
| 76 | + // 返回 | ||
| 77 | + return oldtrees.getId(); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public void updateOldtrees(OldtreesSaveReqVO updateReqVO) { | ||
| 82 | + // 校验存在 | ||
| 83 | + OldtreesDO dbOlderTree = validateOldtreesExists(updateReqVO.getId()); | ||
| 84 | + | ||
| 85 | + if (!ObjectUtils.isEmpty(dbOlderTree) && !dbOlderTree.getFamoustreenumber().equals(updateReqVO.getFamoustreenumber())) { | ||
| 86 | + | ||
| 87 | + OldtreesDO exists = oldtreesMapper.selectByFamoustreenumber(updateReqVO.getFamoustreenumber()); | ||
| 88 | + if (!ObjectUtils.isEmpty(exists)) { | ||
| 89 | + throw new ServiceException(OLDTREES_FAMOUSTREENUMBER_EXISTS); | ||
| 90 | + } | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + // 更新 | ||
| 94 | + OldtreesDO updateObj = BeanUtils.toBean(updateReqVO, OldtreesDO.class); | ||
| 95 | + | ||
| 96 | + updateObj.imgToDomain(); | ||
| 97 | + | ||
| 98 | + OldtreesChangeLogDO changeLog = new OldtreesChangeLogDO(); | ||
| 99 | + org.springframework.beans.BeanUtils.copyProperties(updateReqVO, changeLog); | ||
| 100 | + changeLog.setOldtreeid(updateReqVO.getId()); | ||
| 101 | + changeLog.setCreateby(updateReqVO.getUpdateby()); | ||
| 102 | + changeLog.setCreatetime(LocalDateTime.now()); | ||
| 103 | + changeLog.setUpdateby(updateReqVO.getUpdateby()); | ||
| 104 | + changeLog.setUpdatetime(LocalDateTime.now()); | ||
| 105 | + oldtreesChangeLogMapper.insert(changeLog); | ||
| 106 | + | ||
| 107 | + oldtreesMapper.updateById(updateObj); | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + @Override | ||
| 111 | + public void deleteOldtrees(String id) { | ||
| 112 | + // 校验存在 | ||
| 113 | + validateOldtreesExists(id); | ||
| 114 | + // 删除 | ||
| 115 | + oldtreesMapper.deleteById(id); | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + @Override | ||
| 119 | + public void deleteOldtreesListByIds(List<String> ids) { | ||
| 120 | + // 删除 | ||
| 121 | + oldtreesMapper.deleteByIds(ids); | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + | ||
| 125 | + private OldtreesDO validateOldtreesExists(String id) { | ||
| 126 | + OldtreesDO oldtreesDO = oldtreesMapper.selectById(id); | ||
| 127 | + if (oldtreesDO == null) { | ||
| 128 | + throw exception(OLDTREES_NOT_EXISTS); | ||
| 129 | + } | ||
| 130 | + return oldtreesDO; | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + @Override | ||
| 134 | + public OldtreesDO getOldtrees(String id) { | ||
| 135 | + OldtreesDO oldtreesDO = oldtreesMapper.selectById(id); | ||
| 136 | + if (!ObjectUtils.isEmpty(oldtreesDO)) { | ||
| 137 | + oldtreesDO.domainToImg(); | ||
| 138 | + } | ||
| 139 | + return oldtreesDO; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + @Override | ||
| 143 | + public PageResult<OldtreesDO> getOldtreesPage(OldtreesPageReqVO pageReqVO) { | ||
| 144 | + return oldtreesMapper.selectPage(pageReqVO); | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | +} | ||
| 0 | \ No newline at end of file | 148 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/oldtreeschangelog/OldtreesChangeLogService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.oldtreeschangelog; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 古树名木修改记录 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface OldtreesChangeLogService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建古树名木修改记录 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + String createOldtreesChangeLog(@Valid OldtreesChangeLogSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新古树名木修改记录 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateOldtreesChangeLog(@Valid OldtreesChangeLogSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除古树名木修改记录 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteOldtreesChangeLog(String id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除古树名木修改记录 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteOldtreesChangeLogListByIds(List<String> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得古树名木修改记录 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 古树名木修改记录 | ||
| 51 | + */ | ||
| 52 | + OldtreesChangeLogDO getOldtreesChangeLog(String id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得古树名木修改记录分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 古树名木修改记录分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<OldtreesChangeLogDO> getOldtreesChangeLogPage(OldtreesChangeLogPageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | +} | ||
| 0 | \ No newline at end of file | 63 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/oldtreeschangelog/OldtreesChangeLogServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.oldtreeschangelog; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import org.springframework.stereotype.Service; | ||
| 5 | +import jakarta.annotation.Resource; | ||
| 6 | +import org.springframework.validation.annotation.Validated; | ||
| 7 | +import org.springframework.transaction.annotation.Transactional; | ||
| 8 | + | ||
| 9 | +import java.util.*; | ||
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*; | ||
| 11 | +import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO; | ||
| 12 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 13 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 14 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 15 | + | ||
| 16 | +import com.zteits.urbanops.module.garden.dal.mysql.oldtreeschangelog.OldtreesChangeLogMapper; | ||
| 17 | + | ||
| 18 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 19 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 20 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 21 | +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * 古树名木修改记录 Service 实现类 | ||
| 25 | + * | ||
| 26 | + * @author 超级管理员 | ||
| 27 | + */ | ||
| 28 | +@Service | ||
| 29 | +@Validated | ||
| 30 | +public class OldtreesChangeLogServiceImpl implements OldtreesChangeLogService { | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private OldtreesChangeLogMapper oldtreesChangeLogMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public String createOldtreesChangeLog(OldtreesChangeLogSaveReqVO createReqVO) { | ||
| 37 | + // 插入 | ||
| 38 | + OldtreesChangeLogDO oldtreesChangeLog = BeanUtils.toBean(createReqVO, OldtreesChangeLogDO.class); | ||
| 39 | + oldtreesChangeLogMapper.insert(oldtreesChangeLog); | ||
| 40 | + | ||
| 41 | + // 返回 | ||
| 42 | + return oldtreesChangeLog.getId(); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public void updateOldtreesChangeLog(OldtreesChangeLogSaveReqVO updateReqVO) { | ||
| 47 | + // 校验存在 | ||
| 48 | + validateOldtreesChangeLogExists(updateReqVO.getId()); | ||
| 49 | + // 更新 | ||
| 50 | + OldtreesChangeLogDO updateObj = BeanUtils.toBean(updateReqVO, OldtreesChangeLogDO.class); | ||
| 51 | + oldtreesChangeLogMapper.updateById(updateObj); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public void deleteOldtreesChangeLog(String id) { | ||
| 56 | + // 校验存在 | ||
| 57 | + validateOldtreesChangeLogExists(id); | ||
| 58 | + // 删除 | ||
| 59 | + oldtreesChangeLogMapper.deleteById(id); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + public void deleteOldtreesChangeLogListByIds(List<String> ids) { | ||
| 64 | + // 删除 | ||
| 65 | + oldtreesChangeLogMapper.deleteByIds(ids); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + | ||
| 69 | + private void validateOldtreesChangeLogExists(String id) { | ||
| 70 | + if (oldtreesChangeLogMapper.selectById(id) == null) { | ||
| 71 | + throw exception(OLDTREES_CHANGE_LOG_NOT_EXISTS); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + @Override | ||
| 76 | + public OldtreesChangeLogDO getOldtreesChangeLog(String id) { | ||
| 77 | + return oldtreesChangeLogMapper.selectById(id); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public PageResult<OldtreesChangeLogDO> getOldtreesChangeLogPage(OldtreesChangeLogPageReqVO pageReqVO) { | ||
| 82 | + PageResult<OldtreesChangeLogDO> pageResult = oldtreesChangeLogMapper.selectPage(pageReqVO); | ||
| 83 | + pageResult.getList().forEach(OldtreesChangeLogDO::domainToImg); | ||
| 84 | + return pageResult; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | +} | ||
| 0 | \ No newline at end of file | 88 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/tree/TreeService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.tree; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 一树一档案 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface TreeService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建一树一档案 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + Long createTree(@Valid TreeSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新一树一档案 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateTree(@Valid TreeSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除一树一档案 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteTree(Long id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除一树一档案 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteTreeListByIds(List<Long> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得一树一档案 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 一树一档案 | ||
| 51 | + */ | ||
| 52 | + TreeDO getTree(Long id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得一树一档案分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 一树一档案分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<TreeDO> getTreePage(TreePageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | + List<CompanyDeptRoadVO> getCompanyDeptRoadTreeData(TreeVO tree); | ||
| 63 | + | ||
| 64 | + PageResult<RoadTreeVO> getTreesByRoadId(TreePageReqVO pageReqVO); | ||
| 65 | +} | ||
| 0 | \ No newline at end of file | 66 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/tree/TreeServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.tree; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import com.zteits.urbanops.framework.common.exception.ServiceException; | ||
| 5 | +import com.zteits.urbanops.framework.common.util.cache.CacheUtils; | ||
| 6 | +import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; | ||
| 7 | +import com.zteits.urbanops.module.garden.dal.dataobject.road.RoadDO; | ||
| 8 | +import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; | ||
| 9 | +import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper; | ||
| 10 | +import com.zteits.urbanops.module.garden.dal.mysql.treechangelog.TreeChangeLogMapper; | ||
| 11 | +import com.zteits.urbanops.module.garden.service.road.RoadService; | ||
| 12 | +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO; | ||
| 13 | +import com.zteits.urbanops.module.system.dal.mysql.dept.DeptMapper; | ||
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 15 | +import org.springframework.data.redis.core.RedisTemplate; | ||
| 16 | +import org.springframework.data.redis.core.StringRedisTemplate; | ||
| 17 | +import org.springframework.stereotype.Service; | ||
| 18 | +import jakarta.annotation.Resource; | ||
| 19 | +import org.springframework.util.CollectionUtils; | ||
| 20 | +import org.springframework.util.ObjectUtils; | ||
| 21 | +import org.springframework.util.StringUtils; | ||
| 22 | +import org.springframework.validation.annotation.Validated; | ||
| 23 | +import org.springframework.transaction.annotation.Transactional; | ||
| 24 | + | ||
| 25 | +import java.time.LocalDateTime; | ||
| 26 | +import java.util.*; | ||
| 27 | +import java.util.stream.Collectors; | ||
| 28 | + | ||
| 29 | +import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*; | ||
| 30 | +import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; | ||
| 31 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 32 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 33 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 34 | + | ||
| 35 | +import com.zteits.urbanops.module.garden.dal.mysql.tree.TreeMapper; | ||
| 36 | + | ||
| 37 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 38 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 39 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 40 | +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; | ||
| 41 | + | ||
| 42 | +/** | ||
| 43 | + * 一树一档案 Service 实现类 | ||
| 44 | + * | ||
| 45 | + * @author 超级管理员 | ||
| 46 | + */ | ||
| 47 | +@Service | ||
| 48 | +@Validated | ||
| 49 | +public class TreeServiceImpl implements TreeService { | ||
| 50 | + | ||
| 51 | + @Resource | ||
| 52 | + private TreeMapper treeMapper; | ||
| 53 | + | ||
| 54 | + @Resource | ||
| 55 | + private TreeChangeLogMapper gardenTreeChangeLogMapper; | ||
| 56 | + | ||
| 57 | + @Resource | ||
| 58 | + private RoadMapper roadMapper; | ||
| 59 | + | ||
| 60 | + @Resource | ||
| 61 | + private RedisTemplate redisTemplate; | ||
| 62 | + | ||
| 63 | + @Resource | ||
| 64 | + private DeptMapper deptMapper; | ||
| 65 | + | ||
| 66 | + public static final String CACHE_REPEAT_KEY = "gardenTree:repeat:"; | ||
| 67 | + | ||
| 68 | + @Override | ||
| 69 | + public Long createTree(TreeSaveReqVO createReqVO) { | ||
| 70 | + // 插入 | ||
| 71 | + TreeDO tree = BeanUtils.toBean(createReqVO, TreeDO.class); | ||
| 72 | + | ||
| 73 | + if (!ObjectUtils.isEmpty(tree)) { | ||
| 74 | + tree.imgToDomain(); | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + TreeDO treeDO = treeMapper.selectByTreeNumber(createReqVO.getTreenumber()); | ||
| 78 | + if (!ObjectUtils.isEmpty(treeDO)) { | ||
| 79 | + throw exception(TREE_NUMBER_EXISTS); | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + if (!StringUtils.hasText(tree.getTreenumber())) { | ||
| 83 | + Long road = tree.getRoad(); | ||
| 84 | + if (ObjectUtils.isEmpty(road)) { | ||
| 85 | + throw new ServiceException(TREE_ROAD_NOT_EXISTS); | ||
| 86 | + } | ||
| 87 | + RoadDO roadDO = roadMapper.selectById(road); | ||
| 88 | + String prefix = roadDO.getStreetId() + "-" + roadDO.getId() + "-" + roadDO.getDirection() + "-"; | ||
| 89 | + Long sequence = redisTemplate.opsForValue().increment(CACHE_REPEAT_KEY + prefix); | ||
| 90 | + String treeNum = prefix + String.format("%0" + 3 + "d", sequence); | ||
| 91 | + tree.setStreet(roadDO.getStreetId()); | ||
| 92 | + tree.setTreenumber(treeNum); | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + TreeChangeLogDO changeLog = new TreeChangeLogDO(); | ||
| 96 | + org.springframework.beans.BeanUtils.copyProperties(createReqVO, changeLog); | ||
| 97 | + changeLog.setTreeid(createReqVO.getId()); | ||
| 98 | + changeLog.setCreateby(createReqVO.getCreateby()); | ||
| 99 | + changeLog.setCreatetime(LocalDateTime.now()); | ||
| 100 | + changeLog.setUpdateby(createReqVO.getCreateby()); | ||
| 101 | + changeLog.setUpdatetime(LocalDateTime.now()); | ||
| 102 | + gardenTreeChangeLogMapper.insert(changeLog); | ||
| 103 | + | ||
| 104 | + treeMapper.insert(tree); | ||
| 105 | + | ||
| 106 | + // 返回 | ||
| 107 | + return tree.getId(); | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + @Override | ||
| 111 | + public void updateTree(TreeSaveReqVO updateReqVO) { | ||
| 112 | + // 校验存在 | ||
| 113 | + TreeDO dbTree = validateTreeExists(updateReqVO.getId()); | ||
| 114 | + if (!ObjectUtils.isEmpty(dbTree) && !dbTree.getTreenumber().equals(updateReqVO.getTreenumber())) { | ||
| 115 | + TreeDO treeDO = treeMapper.selectByTreeNumber(updateReqVO.getTreenumber()); | ||
| 116 | + if (!ObjectUtils.isEmpty(treeDO)) { | ||
| 117 | + throw exception(TREE_NUMBER_EXISTS); | ||
| 118 | + } | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + // 更新 | ||
| 122 | + TreeDO updateObj = BeanUtils.toBean(updateReqVO, TreeDO.class); | ||
| 123 | + updateObj.imgToDomain(); | ||
| 124 | + | ||
| 125 | + if (ObjectUtils.isEmpty(updateReqVO.getStreet())) { | ||
| 126 | + Long road = updateReqVO.getRoad(); | ||
| 127 | + RoadDO roadDO = roadMapper.selectById(road); | ||
| 128 | + updateObj.setStreet(roadDO.getStreetId()); | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | + treeMapper.updateById(updateObj); | ||
| 132 | + | ||
| 133 | + TreeChangeLogDO changeLog = new TreeChangeLogDO(); | ||
| 134 | + org.springframework.beans.BeanUtils.copyProperties(updateObj, changeLog); | ||
| 135 | + changeLog.setTreeid(updateObj.getId()); | ||
| 136 | + changeLog.setCreateby(updateReqVO.getUpdateby()); | ||
| 137 | + changeLog.setCreatetime(LocalDateTime.now()); | ||
| 138 | + changeLog.setUpdateby(updateReqVO.getUpdateby()); | ||
| 139 | + changeLog.setUpdatetime(LocalDateTime.now()); | ||
| 140 | + gardenTreeChangeLogMapper.insert(changeLog); | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + @Override | ||
| 144 | + public void deleteTree(Long id) { | ||
| 145 | + // 校验存在 | ||
| 146 | + validateTreeExists(id); | ||
| 147 | + // 删除 | ||
| 148 | + treeMapper.deleteById(id); | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + @Override | ||
| 152 | + public void deleteTreeListByIds(List<Long> ids) { | ||
| 153 | + // 删除 | ||
| 154 | + treeMapper.deleteByIds(ids); | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + | ||
| 158 | + private TreeDO validateTreeExists(Long id) { | ||
| 159 | + TreeDO treeDO = treeMapper.selectById(id); | ||
| 160 | + if (treeDO == null) { | ||
| 161 | + throw exception(TREE_NOT_EXISTS); | ||
| 162 | + } | ||
| 163 | + return treeDO; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + @Override | ||
| 167 | + public TreeDO getTree(Long id) { | ||
| 168 | + TreeDO treeDO = treeMapper.selectById(id); | ||
| 169 | + if (!ObjectUtils.isEmpty(treeDO)) { | ||
| 170 | + treeDO.domainToImg(); | ||
| 171 | + } | ||
| 172 | + return treeDO; | ||
| 173 | + } | ||
| 174 | + | ||
| 175 | + @Override | ||
| 176 | + public PageResult<TreeDO> getTreePage(TreePageReqVO pageReqVO) { | ||
| 177 | + return treeMapper.selectPage(pageReqVO); | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + @Override | ||
| 181 | + public List<CompanyDeptRoadVO> getCompanyDeptRoadTreeData(TreeVO tree) { | ||
| 182 | + List<DeptDO> sysDepts = deptMapper.selectList(); | ||
| 183 | + | ||
| 184 | + List<CompanyDeptRoadVO> companyDeptRoadVOS = treeMapper.selectCompanyDeptRoadTreeData(tree); | ||
| 185 | + | ||
| 186 | + | ||
| 187 | + // 按公司分组所有部门 | ||
| 188 | + Map<Long, List<DeptDO>> companyDeptsMap = sysDepts.stream() | ||
| 189 | + .filter(d -> d.getParentId() != null) | ||
| 190 | + .collect(Collectors.groupingBy(DeptDO::getParentId)); | ||
| 191 | + | ||
| 192 | + // 过滤出叶子部门(没有子部门的部门) | ||
| 193 | + Map<Long, List<DeptDO>> companyLeafDeptsMap = new HashMap<>(); | ||
| 194 | + for (Map.Entry<Long, List<DeptDO>> entry : companyDeptsMap.entrySet()) { | ||
| 195 | + Long companyId = entry.getKey(); | ||
| 196 | + List<DeptDO> depts = entry.getValue(); | ||
| 197 | + | ||
| 198 | + // 构建部门ID到部门的映射 | ||
| 199 | + Map<Long, DeptDO> deptMap = depts.stream() | ||
| 200 | + .collect(Collectors.toMap(DeptDO::getId, d -> d)); | ||
| 201 | + | ||
| 202 | + // 找出叶子部门(其parentId不在deptMap中的部门,或者其parentId为0的部门) | ||
| 203 | + List<DeptDO> leafDepts = depts.stream() | ||
| 204 | + .filter(d -> d.getParentId() == 0 || !deptMap.containsKey(d.getParentId())) | ||
| 205 | + .collect(Collectors.toList()); | ||
| 206 | + | ||
| 207 | + companyLeafDeptsMap.put(companyId, leafDepts); | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + // 建立现有结果的映射: 公司ID -> CompanyDeptRoadVO | ||
| 211 | + Map<Long, CompanyDeptRoadVO> existingCompanyMap = companyDeptRoadVOS.stream() | ||
| 212 | + .collect(Collectors.toMap( | ||
| 213 | + CompanyDeptRoadVO::getCompanyId, | ||
| 214 | + vo -> vo, | ||
| 215 | + (existing, replacement) -> existing | ||
| 216 | + )); | ||
| 217 | + | ||
| 218 | + // 遍历所有公司,补充缺失的公司和部门 | ||
| 219 | + for (Map.Entry<Long, List<DeptDO>> entry : companyLeafDeptsMap.entrySet()) { | ||
| 220 | + Long companyId = entry.getKey(); | ||
| 221 | + List<DeptDO> depts = entry.getValue(); | ||
| 222 | + | ||
| 223 | + CompanyDeptRoadVO companyVO; | ||
| 224 | + if (!existingCompanyMap.containsKey(companyId)) { | ||
| 225 | + // 如果公司不存在,创建新的公司对象 | ||
| 226 | + companyVO = new CompanyDeptRoadVO(); | ||
| 227 | + companyVO.setCompanyId(companyId); | ||
| 228 | + companyVO.setCompanyName(DictFrameworkUtils.parseDictDataValue("belongCompanyId", companyId + "")); | ||
| 229 | + companyVO.setDepts(new ArrayList<>()); | ||
| 230 | + companyDeptRoadVOS.add(companyVO); | ||
| 231 | + } else { | ||
| 232 | + companyVO = existingCompanyMap.get(companyId); | ||
| 233 | + } | ||
| 234 | + | ||
| 235 | + // 建立该公司下已存在的部门映射: 部门ID -> DeptVO | ||
| 236 | + Map<Long, CompanyDeptRoadVO.DeptVO> existingDeptMap = companyVO.getDepts().stream() | ||
| 237 | + .collect(Collectors.toMap( | ||
| 238 | + deptVO -> Long.valueOf(deptVO.getDeptId()), | ||
| 239 | + deptVO -> deptVO, | ||
| 240 | + (existing, replacement) -> existing | ||
| 241 | + )); | ||
| 242 | + | ||
| 243 | + // 补充缺失的部门(仅叶子部门) | ||
| 244 | + for (DeptDO sysDept : depts) { | ||
| 245 | + Long deptId = sysDept.getId(); | ||
| 246 | + if (!existingDeptMap.containsKey(deptId)) { | ||
| 247 | + // 创建缺失的部门对象 | ||
| 248 | + CompanyDeptRoadVO.DeptVO missingDept = new CompanyDeptRoadVO.DeptVO(); | ||
| 249 | + missingDept.setDeptId(deptId); | ||
| 250 | + missingDept.setDeptName(sysDept.getName()); | ||
| 251 | + missingDept.setRoads(new ArrayList<>()); | ||
| 252 | + companyVO.getDepts().add(missingDept); | ||
| 253 | + } | ||
| 254 | + } | ||
| 255 | + } | ||
| 256 | + return companyDeptRoadVOS; | ||
| 257 | + } | ||
| 258 | + | ||
| 259 | + @Override | ||
| 260 | + public PageResult<RoadTreeVO> getTreesByRoadId(TreePageReqVO pageReqVO) { | ||
| 261 | + PageResult<TreeDO> treePage = this.getTreePage(pageReqVO); | ||
| 262 | + List<RoadTreeVO> roadTreeVOS = treePage.getList().stream() | ||
| 263 | + .map(treeDO -> { | ||
| 264 | + RoadTreeVO roadTreeVO = new RoadTreeVO(); | ||
| 265 | + BeanUtils.copyProperties(treeDO, roadTreeVO); | ||
| 266 | + return roadTreeVO; | ||
| 267 | + }) | ||
| 268 | + .collect(Collectors.toList()); | ||
| 269 | + return new PageResult<>(roadTreeVOS, treePage.getTotal()); | ||
| 270 | + } | ||
| 271 | + | ||
| 272 | +} | ||
| 0 | \ No newline at end of file | 273 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treechangelog/TreeChangeLogService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.treechangelog; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 一树一档案修改记录 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface TreeChangeLogService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建一树一档案修改记录 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + Long createTreeChangeLog(@Valid TreeChangeLogSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新一树一档案修改记录 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateTreeChangeLog(@Valid TreeChangeLogSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除一树一档案修改记录 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteTreeChangeLog(Long id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除一树一档案修改记录 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteTreeChangeLogListByIds(List<Long> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得一树一档案修改记录 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 一树一档案修改记录 | ||
| 51 | + */ | ||
| 52 | + TreeChangeLogDO getTreeChangeLog(Long id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得一树一档案修改记录分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 一树一档案修改记录分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<TreeChangeLogDO> getTreeChangeLogPage(TreeChangeLogPageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | +} | ||
| 0 | \ No newline at end of file | 63 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treechangelog/TreeChangeLogServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.service.treechangelog; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import org.springframework.stereotype.Service; | ||
| 5 | +import jakarta.annotation.Resource; | ||
| 6 | +import org.springframework.validation.annotation.Validated; | ||
| 7 | +import org.springframework.transaction.annotation.Transactional; | ||
| 8 | + | ||
| 9 | +import java.util.*; | ||
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*; | ||
| 11 | +import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; | ||
| 12 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 13 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 14 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 15 | + | ||
| 16 | +import com.zteits.urbanops.module.garden.dal.mysql.treechangelog.TreeChangeLogMapper; | ||
| 17 | + | ||
| 18 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 19 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 20 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 21 | +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * 一树一档案修改记录 Service 实现类 | ||
| 25 | + * | ||
| 26 | + * @author 超级管理员 | ||
| 27 | + */ | ||
| 28 | +@Service | ||
| 29 | +@Validated | ||
| 30 | +public class TreeChangeLogServiceImpl implements TreeChangeLogService { | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private TreeChangeLogMapper treeChangeLogMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public Long createTreeChangeLog(TreeChangeLogSaveReqVO createReqVO) { | ||
| 37 | + // 插入 | ||
| 38 | + TreeChangeLogDO treeChangeLog = BeanUtils.toBean(createReqVO, TreeChangeLogDO.class); | ||
| 39 | + treeChangeLogMapper.insert(treeChangeLog); | ||
| 40 | + | ||
| 41 | + // 返回 | ||
| 42 | + return treeChangeLog.getId(); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public void updateTreeChangeLog(TreeChangeLogSaveReqVO updateReqVO) { | ||
| 47 | + // 校验存在 | ||
| 48 | + validateTreeChangeLogExists(updateReqVO.getId()); | ||
| 49 | + // 更新 | ||
| 50 | + TreeChangeLogDO updateObj = BeanUtils.toBean(updateReqVO, TreeChangeLogDO.class); | ||
| 51 | + treeChangeLogMapper.updateById(updateObj); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public void deleteTreeChangeLog(Long id) { | ||
| 56 | + // 校验存在 | ||
| 57 | + validateTreeChangeLogExists(id); | ||
| 58 | + // 删除 | ||
| 59 | + treeChangeLogMapper.deleteById(id); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + public void deleteTreeChangeLogListByIds(List<Long> ids) { | ||
| 64 | + // 删除 | ||
| 65 | + treeChangeLogMapper.deleteByIds(ids); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + | ||
| 69 | + private void validateTreeChangeLogExists(Long id) { | ||
| 70 | + if (treeChangeLogMapper.selectById(id) == null) { | ||
| 71 | + throw exception(TREE_CHANGE_LOG_NOT_EXISTS); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + @Override | ||
| 76 | + public TreeChangeLogDO getTreeChangeLog(Long id) { | ||
| 77 | + return treeChangeLogMapper.selectById(id); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public PageResult<TreeChangeLogDO> getTreeChangeLogPage(TreeChangeLogPageReqVO pageReqVO) { | ||
| 82 | + PageResult<TreeChangeLogDO> pageResult = treeChangeLogMapper.selectPage(pageReqVO); | ||
| 83 | + pageResult.getList().forEach(TreeChangeLogDO::domainToImg); | ||
| 84 | + return pageResult; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | +} | ||
| 0 | \ No newline at end of file | 88 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treerecord/GardenOldtreesService.java deleted
| 1 | -package com.zteits.urbanops.module.garden.service.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 4 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 5 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenOldtreesDO; | ||
| 6 | - | ||
| 7 | -import java.util.List; | ||
| 8 | - | ||
| 9 | -public interface GardenOldtreesService { | ||
| 10 | - PageResult<GardenOldtreesDO> selectPage(PageParam pageParam, GardenOldtreesDO where); | ||
| 11 | - List<GardenOldtreesDO> selectList(GardenOldtreesDO where); | ||
| 12 | - GardenOldtreesDO selectById(String id); | ||
| 13 | - Boolean insert(GardenOldtreesDO entity); | ||
| 14 | - Boolean update(GardenOldtreesDO entity); | ||
| 15 | - Boolean deleteByIds(List<String> ids); | ||
| 16 | -} | ||
| 17 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treerecord/GardenOldtreesServiceImpl.java deleted
| 1 | -package com.zteits.urbanops.module.garden.service.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 4 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 5 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenOldtreesDO; | ||
| 6 | -import com.zteits.urbanops.module.garden.dal.mysql.treerecord.GardenOldtreesMapper; | ||
| 7 | -import jakarta.annotation.Resource; | ||
| 8 | -import org.springframework.stereotype.Service; | ||
| 9 | - | ||
| 10 | -import java.util.List; | ||
| 11 | - | ||
| 12 | -@Service | ||
| 13 | -public class GardenOldtreesServiceImpl implements GardenOldtreesService { | ||
| 14 | - | ||
| 15 | - @Resource | ||
| 16 | - private GardenOldtreesMapper mapper; | ||
| 17 | - | ||
| 18 | - @Override | ||
| 19 | - public PageResult<GardenOldtreesDO> selectPage(PageParam pageParam, GardenOldtreesDO where) { | ||
| 20 | - return mapper.selectPage(pageParam, where); | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - @Override | ||
| 24 | - public List<GardenOldtreesDO> selectList(GardenOldtreesDO where) { | ||
| 25 | - return mapper.selectList(new com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX<GardenOldtreesDO>() | ||
| 26 | - .likeIfPresent(GardenOldtreesDO::getTreenumber, where.getTreenumber()) | ||
| 27 | - .likeIfPresent(GardenOldtreesDO::getLatinname, where.getLatinname()) | ||
| 28 | - .eqIfPresent(GardenOldtreesDO::getStreet, where.getStreet()) | ||
| 29 | - .eqIfPresent(GardenOldtreesDO::getMaintainunit, where.getMaintainunit()) | ||
| 30 | - .eqIfPresent(GardenOldtreesDO::getDeptId, where.getDeptId()) | ||
| 31 | - .orderByDesc(GardenOldtreesDO::getUpdateTime)); | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | - @Override | ||
| 35 | - public GardenOldtreesDO selectById(String id) { | ||
| 36 | - return mapper.selectById(id); | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - @Override | ||
| 40 | - public Boolean insert(GardenOldtreesDO entity) { | ||
| 41 | - return mapper.insert(entity) > 0; | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - @Override | ||
| 45 | - public Boolean update(GardenOldtreesDO entity) { | ||
| 46 | - return mapper.updateById(entity) > 0; | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - @Override | ||
| 50 | - public Boolean deleteByIds(List<String> ids) { | ||
| 51 | - return mapper.deleteBatchIds(ids) > 0; | ||
| 52 | - } | ||
| 53 | -} | ||
| 54 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treerecord/GardenTreeService.java deleted
| 1 | -package com.zteits.urbanops.module.garden.service.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 4 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenTreeDO; | ||
| 5 | - | ||
| 6 | -import java.util.List; | ||
| 7 | - | ||
| 8 | -public interface GardenTreeService { | ||
| 9 | - PageResult<GardenTreeDO> selectPage(GardenTreeDO where, Integer pageNo, Integer pageSize); | ||
| 10 | - GardenTreeDO selectById(Long id); | ||
| 11 | - Boolean insert(GardenTreeDO entity); | ||
| 12 | - Boolean update(GardenTreeDO entity); | ||
| 13 | - Boolean deleteById(Long id); | ||
| 14 | - Boolean deleteByIds(List<Long> ids); | ||
| 15 | - | ||
| 16 | - java.util.List<com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.CompanyDeptRoadVO> getCompanyDeptRoadTreeData(Long belongCompanyId, String roadName, Long deptId); | ||
| 17 | - | ||
| 18 | - java.util.List<com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.RoadTreeVO> getTreesByRoadId(Long road); | ||
| 19 | -} | ||
| 20 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treerecord/GardenTreeServiceImpl.java deleted
| 1 | -package com.zteits.urbanops.module.garden.service.treerecord; | ||
| 2 | - | ||
| 3 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 4 | -import com.zteits.urbanops.module.garden.dal.dataobject.treerecord.GardenTreeDO; | ||
| 5 | -import com.zteits.urbanops.module.garden.dal.mysql.treerecord.GardenTreeMapper; | ||
| 6 | -import com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.CompanyDeptRoadVO; | ||
| 7 | -import com.zteits.urbanops.module.garden.controller.admin.treerecord.vo.RoadTreeVO; | ||
| 8 | -import jakarta.annotation.Resource; | ||
| 9 | -import org.springframework.stereotype.Service; | ||
| 10 | - | ||
| 11 | -import java.util.List; | ||
| 12 | -import java.util.ArrayList; | ||
| 13 | -import java.util.Map; | ||
| 14 | -import java.util.stream.Collectors; | ||
| 15 | - | ||
| 16 | -@Service | ||
| 17 | -public class GardenTreeServiceImpl implements GardenTreeService { | ||
| 18 | - | ||
| 19 | - @Resource | ||
| 20 | - private GardenTreeMapper gardenTreeMapper; | ||
| 21 | - | ||
| 22 | - @Override | ||
| 23 | - public PageResult<GardenTreeDO> selectPage(GardenTreeDO where, Integer pageNo, Integer pageSize) { | ||
| 24 | - com.zteits.urbanops.framework.common.pojo.PageParam pageParam = new com.zteits.urbanops.framework.common.pojo.PageParam(); | ||
| 25 | - pageParam.setPageNo(pageNo); | ||
| 26 | - pageParam.setPageSize(pageSize); | ||
| 27 | - return gardenTreeMapper.selectPage(pageParam, where); | ||
| 28 | - } | ||
| 29 | - | ||
| 30 | - @Override | ||
| 31 | - public GardenTreeDO selectById(Long id) { | ||
| 32 | - return gardenTreeMapper.selectById(id); | ||
| 33 | - } | ||
| 34 | - | ||
| 35 | - @Override | ||
| 36 | - public Boolean insert(GardenTreeDO entity) { | ||
| 37 | - return gardenTreeMapper.insert(entity) > 0; | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - @Override | ||
| 41 | - public Boolean update(GardenTreeDO entity) { | ||
| 42 | - return gardenTreeMapper.updateById(entity) > 0; | ||
| 43 | - } | ||
| 44 | - | ||
| 45 | - @Override | ||
| 46 | - public Boolean deleteById(Long id) { | ||
| 47 | - return gardenTreeMapper.deleteById(id) > 0; | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | - @Override | ||
| 51 | - public Boolean deleteByIds(List<Long> ids) { | ||
| 52 | - return gardenTreeMapper.deleteBatchIds(ids) > 0; | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - @Override | ||
| 56 | - public List<CompanyDeptRoadVO> getCompanyDeptRoadTreeData(Long belongCompanyId, String roadName, Long deptId) { | ||
| 57 | - List<GardenTreeMapper.CompanyDeptRoadRow> rows = gardenTreeMapper.selectCompanyDeptRoadRows(); | ||
| 58 | - Map<String, List<GardenTreeMapper.CompanyDeptRoadRow>> byCompany = rows.stream().collect(Collectors.groupingBy(r -> r.companyId)); | ||
| 59 | - List<CompanyDeptRoadVO> result = new ArrayList<>(); | ||
| 60 | - for (Map.Entry<String, List<GardenTreeMapper.CompanyDeptRoadRow>> entry : byCompany.entrySet()) { | ||
| 61 | - CompanyDeptRoadVO company = new CompanyDeptRoadVO(); | ||
| 62 | - company.setCompanyId(entry.getKey()); | ||
| 63 | - company.setCompanyName(entry.getValue().get(0).companyName); | ||
| 64 | - Map<Long, List<GardenTreeMapper.CompanyDeptRoadRow>> byDept = entry.getValue().stream().collect(Collectors.groupingBy(r -> r.deptId)); | ||
| 65 | - List<CompanyDeptRoadVO.DeptVO> deptList = new ArrayList<>(); | ||
| 66 | - for (Map.Entry<Long, List<GardenTreeMapper.CompanyDeptRoadRow>> d : byDept.entrySet()) { | ||
| 67 | - CompanyDeptRoadVO.DeptVO dept = new CompanyDeptRoadVO.DeptVO(); | ||
| 68 | - dept.setDeptId(d.getKey()); | ||
| 69 | - dept.setDeptName(d.getValue().get(0).deptName); | ||
| 70 | - List<CompanyDeptRoadVO.RoadVO> roads = new ArrayList<>(); | ||
| 71 | - for (GardenTreeMapper.CompanyDeptRoadRow r : d.getValue()) { | ||
| 72 | - CompanyDeptRoadVO.RoadVO roadVO = new CompanyDeptRoadVO.RoadVO(); | ||
| 73 | - roadVO.setRoadId(r.roadId); | ||
| 74 | - roadVO.setRoadName(r.roadName); | ||
| 75 | - roadVO.setTreeCount(r.treeCount); | ||
| 76 | - roadVO.setRecordedCount(r.recordedCount); | ||
| 77 | - roadVO.setStartRemark(r.startRemark); | ||
| 78 | - roadVO.setEndRemark(r.endRemark); | ||
| 79 | - roads.add(roadVO); | ||
| 80 | - } | ||
| 81 | - dept.setRoads(roads); | ||
| 82 | - deptList.add(dept); | ||
| 83 | - } | ||
| 84 | - company.setDepts(deptList); | ||
| 85 | - result.add(company); | ||
| 86 | - } | ||
| 87 | - return result; | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - @Override | ||
| 91 | - public List<RoadTreeVO> getTreesByRoadId(Long road) { | ||
| 92 | - return gardenTreeMapper.selectTreesByRoadId(road); | ||
| 93 | - } | ||
| 94 | -} | ||
| 95 | \ No newline at end of file | 0 | \ No newline at end of file |
urbanops-module-garden/src/main/resources/mapper/oldtrees/OldtreesMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.oldtrees.OldtreesMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
urbanops-module-garden/src/main/resources/mapper/oldtreeschangelog/OldtreesChangeLogMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.oldtreeschangelog.OldtreesChangeLogMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
urbanops-module-garden/src/main/resources/mapper/tree/TreeMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.tree.TreeMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | + <resultMap id="CompanyDeptRoadMap" type="com.zteits.urbanops.module.garden.controller.admin.tree.vo.CompanyDeptRoadVO"> | ||
| 13 | + <id property="companyId" column="companyId"/> | ||
| 14 | + <result property="companyName" column="companyName"/> | ||
| 15 | + <collection property="depts" ofType="com.zteits.urbanops.module.garden.controller.admin.tree.vo.CompanyDeptRoadVO$DeptVO"> | ||
| 16 | + <id property="deptId" column="deptId"/> | ||
| 17 | + <result property="deptName" column="deptName"/> | ||
| 18 | + <collection property="roads" ofType="com.zteits.urbanops.module.garden.controller.admin.tree.vo.CompanyDeptRoadVO$RoadVO"> | ||
| 19 | + <id property="roadId" column="roadId"/> | ||
| 20 | + <result property="roadName" column="roadName"/> | ||
| 21 | + <result property="treeCount" column="treeCount"/> | ||
| 22 | + <result property="recordedCount" column="recordedCount"/> | ||
| 23 | + <result property="startRemark" column="startRemark"/> | ||
| 24 | + <result property="endRemark" column="endRemark"/> | ||
| 25 | + </collection> | ||
| 26 | + </collection> | ||
| 27 | + </resultMap> | ||
| 28 | + | ||
| 29 | + <select id="selectCompanyDeptRoadTreeData" resultMap="CompanyDeptRoadMap"> | ||
| 30 | + SELECT | ||
| 31 | + c.id AS companyId, | ||
| 32 | + c.name AS companyName, | ||
| 33 | + d.id AS deptId, | ||
| 34 | + d.name AS deptName, | ||
| 35 | + r.id AS roadId, | ||
| 36 | + r.road_name AS roadName, | ||
| 37 | + r.starting_remark AS startRemark, | ||
| 38 | + r.end_remark AS endRemark, | ||
| 39 | + COALESCE(r.tree_area, 0) AS treeCount, | ||
| 40 | + COUNT(t.id) AS recordedCount | ||
| 41 | + FROM system_dept c | ||
| 42 | + JOIN system_dept d ON d.parent_id = c.id AND d.status = 0 | ||
| 43 | + LEFT JOIN garden_road r ON d.id = r.dept_id | ||
| 44 | + LEFT JOIN garden_tree t ON r.id = t.road AND t.deleted = 0 | ||
| 45 | + WHERE | ||
| 46 | + c.status = 0 | ||
| 47 | + AND d.id NOT IN (SELECT DISTINCT parent_id FROM system_dept WHERE parent_id IS NOT NULL) | ||
| 48 | + <if test="belongCompanyId != null"> | ||
| 49 | + AND d.parent_id = #{belongCompanyId} | ||
| 50 | + </if> | ||
| 51 | + <if test="roadName != null and roadName != ''"> | ||
| 52 | + AND r.road_name LIKE CONCAT('%', #{roadName}, '%') | ||
| 53 | + </if> | ||
| 54 | + <if test="deptId != null"> | ||
| 55 | + AND d.id = #{deptId} | ||
| 56 | + </if> | ||
| 57 | + GROUP BY c.id, d.id, | ||
| 58 | + r.id, r.road_name, r.starting_remark, r.end_remark, r.tree_area | ||
| 59 | + ORDER BY treeCount DESC, recordedCount DESC; | ||
| 60 | + </select> | ||
| 61 | +</mapper> | ||
| 0 | \ No newline at end of file | 62 | \ No newline at end of file |
urbanops-module-garden/src/main/resources/mapper/treechangelog/TreeChangeLogMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.treechangelog.TreeChangeLogMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/AttachmentController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.attachment; | ||
| 2 | + | ||
| 3 | +import org.springframework.web.bind.annotation.*; | ||
| 4 | +import jakarta.annotation.Resource; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 8 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | + | ||
| 11 | +import jakarta.validation.constraints.*; | ||
| 12 | +import jakarta.validation.*; | ||
| 13 | +import jakarta.servlet.http.*; | ||
| 14 | +import java.util.*; | ||
| 15 | +import java.io.IOException; | ||
| 16 | + | ||
| 17 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 18 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 19 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 20 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 21 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 24 | + | ||
| 25 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 26 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 27 | + | ||
| 28 | +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*; | ||
| 29 | +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; | ||
| 30 | +import com.zteits.urbanops.module.workorder.service.attachment.AttachmentService; | ||
| 31 | + | ||
| 32 | +@Tag(name = "管理后台 - 工单附件信息") | ||
| 33 | +@RestController | ||
| 34 | +@RequestMapping("/workorder/attachment") | ||
| 35 | +@Validated | ||
| 36 | +public class AttachmentController { | ||
| 37 | + | ||
| 38 | + @Resource | ||
| 39 | + private AttachmentService attachmentService; | ||
| 40 | + | ||
| 41 | + @PostMapping("/create") | ||
| 42 | + @Operation(summary = "创建工单附件信息") | ||
| 43 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:create')") | ||
| 44 | + public CommonResult<Long> createAttachment(@Valid @RequestBody AttachmentSaveReqVO createReqVO) { | ||
| 45 | + return success(attachmentService.createAttachment(createReqVO)); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @PutMapping("/update") | ||
| 49 | + @Operation(summary = "更新工单附件信息") | ||
| 50 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:update')") | ||
| 51 | + public CommonResult<Boolean> updateAttachment(@Valid @RequestBody AttachmentSaveReqVO updateReqVO) { | ||
| 52 | + attachmentService.updateAttachment(updateReqVO); | ||
| 53 | + return success(true); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @DeleteMapping("/delete") | ||
| 57 | + @Operation(summary = "删除工单附件信息") | ||
| 58 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 59 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:delete')") | ||
| 60 | + public CommonResult<Boolean> deleteAttachment(@RequestParam("id") Long id) { | ||
| 61 | + attachmentService.deleteAttachment(id); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @DeleteMapping("/delete-list") | ||
| 66 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 67 | + @Operation(summary = "批量删除工单附件信息") | ||
| 68 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:delete')") | ||
| 69 | + public CommonResult<Boolean> deleteAttachmentList(@RequestParam("ids") List<Long> ids) { | ||
| 70 | + attachmentService.deleteAttachmentListByIds(ids); | ||
| 71 | + return success(true); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @GetMapping("/get") | ||
| 75 | + @Operation(summary = "获得工单附件信息") | ||
| 76 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 77 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:query')") | ||
| 78 | + public CommonResult<AttachmentRespVO> getAttachment(@RequestParam("id") Long id) { | ||
| 79 | + AttachmentDO attachment = attachmentService.getAttachment(id); | ||
| 80 | + return success(BeanUtils.toBean(attachment, AttachmentRespVO.class)); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + @GetMapping("/page") | ||
| 84 | + @Operation(summary = "获得工单附件信息分页") | ||
| 85 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:query')") | ||
| 86 | + public CommonResult<PageResult<AttachmentRespVO>> getAttachmentPage(@Valid AttachmentPageReqVO pageReqVO) { | ||
| 87 | + PageResult<AttachmentDO> pageResult = attachmentService.getAttachmentPage(pageReqVO); | ||
| 88 | + return success(BeanUtils.toBean(pageResult, AttachmentRespVO.class)); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + @GetMapping("/export-excel") | ||
| 92 | + @Operation(summary = "导出工单附件信息 Excel") | ||
| 93 | + @PreAuthorize("@ss.hasPermission('workorder:attachment:export')") | ||
| 94 | + @ApiAccessLog(operateType = EXPORT) | ||
| 95 | + public void exportAttachmentExcel(@Valid AttachmentPageReqVO pageReqVO, | ||
| 96 | + HttpServletResponse response) throws IOException { | ||
| 97 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 98 | + List<AttachmentDO> list = attachmentService.getAttachmentPage(pageReqVO).getList(); | ||
| 99 | + // 导出 Excel | ||
| 100 | + ExcelUtils.write(response, "工单附件信息.xls", "数据", AttachmentRespVO.class, | ||
| 101 | + BeanUtils.toBean(list, AttachmentRespVO.class)); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | +} | ||
| 0 | \ No newline at end of file | 105 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/vo/AttachmentPageReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.attachment.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 工单附件信息分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class AttachmentPageReqVO extends PageParam { | ||
| 15 | + | ||
| 16 | + @Schema(description = "工单号") | ||
| 17 | + private String orderNo; | ||
| 18 | + | ||
| 19 | + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ") | ||
| 20 | + private String busiLine; | ||
| 21 | + | ||
| 22 | + @Schema(description = "业务类型:01 问题图片,02 街道图片,03 选景图片", example = "1") | ||
| 23 | + private String busiType; | ||
| 24 | + | ||
| 25 | + @Schema(description = "文件名称") | ||
| 26 | + private String fileNames; | ||
| 27 | + | ||
| 28 | + @Schema(description = "路径", example = "https://www.iocoder.cn") | ||
| 29 | + private String hostUrl; | ||
| 30 | + | ||
| 31 | + @Schema(description = "文件大小") | ||
| 32 | + private String fileSize; | ||
| 33 | + | ||
| 34 | + @Schema(description = "文件类型", example = "2") | ||
| 35 | + private String contentType; | ||
| 36 | + | ||
| 37 | + @Schema(description = "描述", example = "你说的对") | ||
| 38 | + private String remark; | ||
| 39 | + | ||
| 40 | + @Schema(description = "创建时间") | ||
| 41 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 42 | + private LocalDateTime[] createTime; | ||
| 43 | + | ||
| 44 | +} | ||
| 0 | \ No newline at end of file | 45 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/vo/AttachmentRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.attachment.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import cn.idev.excel.annotation.*; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 工单附件信息 Response VO") | ||
| 11 | +@Data | ||
| 12 | +@ExcelIgnoreUnannotated | ||
| 13 | +public class AttachmentRespVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4728") | ||
| 16 | + @ExcelProperty("ID") | ||
| 17 | + private Long id; | ||
| 18 | + | ||
| 19 | + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 20 | + @ExcelProperty("工单号") | ||
| 21 | + private String orderNo; | ||
| 22 | + | ||
| 23 | + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 24 | + @ExcelProperty("业务线:yl 园林,wy 物业,sz 市政 ") | ||
| 25 | + private String busiLine; | ||
| 26 | + | ||
| 27 | + @Schema(description = "业务类型:01 问题图片,02 街道图片,03 选景图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 28 | + @ExcelProperty("业务类型:01 问题图片,02 街道图片,03 选景图片") | ||
| 29 | + private String busiType; | ||
| 30 | + | ||
| 31 | + @Schema(description = "文件名称") | ||
| 32 | + @ExcelProperty("文件名称") | ||
| 33 | + private String fileNames; | ||
| 34 | + | ||
| 35 | + @Schema(description = "路径", example = "https://www.iocoder.cn") | ||
| 36 | + @ExcelProperty("路径") | ||
| 37 | + private String hostUrl; | ||
| 38 | + | ||
| 39 | + @Schema(description = "文件大小") | ||
| 40 | + @ExcelProperty("文件大小") | ||
| 41 | + private String fileSize; | ||
| 42 | + | ||
| 43 | + @Schema(description = "文件类型", example = "2") | ||
| 44 | + @ExcelProperty("文件类型") | ||
| 45 | + private String contentType; | ||
| 46 | + | ||
| 47 | + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") | ||
| 48 | + @ExcelProperty("描述") | ||
| 49 | + private String remark; | ||
| 50 | + | ||
| 51 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 52 | + @ExcelProperty("创建时间") | ||
| 53 | + private LocalDateTime createTime; | ||
| 54 | + | ||
| 55 | +} | ||
| 0 | \ No newline at end of file | 56 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/vo/AttachmentSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.attachment.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - 工单附件信息新增/修改 Request VO") | ||
| 9 | +@Data | ||
| 10 | +public class AttachmentSaveReqVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4728") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 16 | + @NotEmpty(message = "工单号不能为空") | ||
| 17 | + private String orderNo; | ||
| 18 | + | ||
| 19 | + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 20 | + @NotEmpty(message = "业务线:yl 园林,wy 物业,sz 市政 不能为空") | ||
| 21 | + private String busiLine; | ||
| 22 | + | ||
| 23 | + @Schema(description = "业务类型:01 问题图片,02 街道图片,03 选景图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 24 | + @NotEmpty(message = "业务类型:01 问题图片,02 街道图片,03 选景图片不能为空") | ||
| 25 | + private String busiType; | ||
| 26 | + | ||
| 27 | + @Schema(description = "文件名称") | ||
| 28 | + private String fileNames; | ||
| 29 | + | ||
| 30 | + @Schema(description = "路径", example = "https://www.iocoder.cn") | ||
| 31 | + private String hostUrl; | ||
| 32 | + | ||
| 33 | + @Schema(description = "文件大小") | ||
| 34 | + private String fileSize; | ||
| 35 | + | ||
| 36 | + @Schema(description = "文件类型", example = "2") | ||
| 37 | + private String contentType; | ||
| 38 | + | ||
| 39 | + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") | ||
| 40 | + @NotEmpty(message = "描述不能为空") | ||
| 41 | + private String remark; | ||
| 42 | + | ||
| 43 | +} | ||
| 0 | \ No newline at end of file | 44 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/MainInfoController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.maininfo; | ||
| 2 | + | ||
| 3 | +import org.springframework.web.bind.annotation.*; | ||
| 4 | +import jakarta.annotation.Resource; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 8 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | + | ||
| 11 | +import jakarta.validation.constraints.*; | ||
| 12 | +import jakarta.validation.*; | ||
| 13 | +import jakarta.servlet.http.*; | ||
| 14 | +import java.util.*; | ||
| 15 | +import java.io.IOException; | ||
| 16 | + | ||
| 17 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 18 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 19 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 20 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 21 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 24 | + | ||
| 25 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 26 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 27 | + | ||
| 28 | +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*; | ||
| 29 | +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; | ||
| 30 | +import com.zteits.urbanops.module.workorder.service.maininfo.MainInfoService; | ||
| 31 | + | ||
| 32 | +@Tag(name = "管理后台 - 工单信息") | ||
| 33 | +@RestController | ||
| 34 | +@RequestMapping("/workorder/main-info") | ||
| 35 | +@Validated | ||
| 36 | +public class MainInfoController { | ||
| 37 | + | ||
| 38 | + @Resource | ||
| 39 | + private MainInfoService mainInfoService; | ||
| 40 | + | ||
| 41 | + @PostMapping("/create") | ||
| 42 | + @Operation(summary = "创建工单信息") | ||
| 43 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:create')") | ||
| 44 | + public CommonResult<Long> createMainInfo(@Valid @RequestBody MainInfoSaveReqVO createReqVO) { | ||
| 45 | + return success(mainInfoService.createMainInfo(createReqVO)); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @PutMapping("/update") | ||
| 49 | + @Operation(summary = "更新工单信息") | ||
| 50 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:update')") | ||
| 51 | + public CommonResult<Boolean> updateMainInfo(@Valid @RequestBody MainInfoSaveReqVO updateReqVO) { | ||
| 52 | + mainInfoService.updateMainInfo(updateReqVO); | ||
| 53 | + return success(true); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @DeleteMapping("/delete") | ||
| 57 | + @Operation(summary = "删除工单信息") | ||
| 58 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 59 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:delete')") | ||
| 60 | + public CommonResult<Boolean> deleteMainInfo(@RequestParam("id") Long id) { | ||
| 61 | + mainInfoService.deleteMainInfo(id); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @DeleteMapping("/delete-list") | ||
| 66 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 67 | + @Operation(summary = "批量删除工单信息") | ||
| 68 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:delete')") | ||
| 69 | + public CommonResult<Boolean> deleteMainInfoList(@RequestParam("ids") List<Long> ids) { | ||
| 70 | + mainInfoService.deleteMainInfoListByIds(ids); | ||
| 71 | + return success(true); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @GetMapping("/get") | ||
| 75 | + @Operation(summary = "获得工单信息") | ||
| 76 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 77 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:query')") | ||
| 78 | + public CommonResult<MainInfoRespVO> getMainInfo(@RequestParam("id") Long id) { | ||
| 79 | + MainInfoDO mainInfo = mainInfoService.getMainInfo(id); | ||
| 80 | + return success(BeanUtils.toBean(mainInfo, MainInfoRespVO.class)); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + @GetMapping("/page") | ||
| 84 | + @Operation(summary = "获得工单信息分页") | ||
| 85 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:query')") | ||
| 86 | + public CommonResult<PageResult<MainInfoRespVO>> getMainInfoPage(@Valid MainInfoPageReqVO pageReqVO) { | ||
| 87 | + PageResult<MainInfoDO> pageResult = mainInfoService.getMainInfoPage(pageReqVO); | ||
| 88 | + return success(BeanUtils.toBean(pageResult, MainInfoRespVO.class)); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + @GetMapping("/export-excel") | ||
| 92 | + @Operation(summary = "导出工单信息 Excel") | ||
| 93 | + @PreAuthorize("@ss.hasPermission('workorder:main-info:export')") | ||
| 94 | + @ApiAccessLog(operateType = EXPORT) | ||
| 95 | + public void exportMainInfoExcel(@Valid MainInfoPageReqVO pageReqVO, | ||
| 96 | + HttpServletResponse response) throws IOException { | ||
| 97 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 98 | + List<MainInfoDO> list = mainInfoService.getMainInfoPage(pageReqVO).getList(); | ||
| 99 | + // 导出 Excel | ||
| 100 | + ExcelUtils.write(response, "工单信息.xls", "数据", MainInfoRespVO.class, | ||
| 101 | + BeanUtils.toBean(list, MainInfoRespVO.class)); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | +} | ||
| 0 | \ No newline at end of file | 105 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import java.math.BigDecimal; | ||
| 8 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 9 | +import java.time.LocalDateTime; | ||
| 10 | + | ||
| 11 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 12 | + | ||
| 13 | +@Schema(description = "管理后台 - 工单信息分页 Request VO") | ||
| 14 | +@Data | ||
| 15 | +public class MainInfoPageReqVO extends PageParam { | ||
| 16 | + | ||
| 17 | + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ") | ||
| 18 | + private String busiLine; | ||
| 19 | + | ||
| 20 | + @Schema(description = "工单号") | ||
| 21 | + private String orderNo; | ||
| 22 | + | ||
| 23 | + @Schema(description = "工单名称", example = "张三") | ||
| 24 | + private String orderName; | ||
| 25 | + | ||
| 26 | + @Schema(description = "来源ID", example = "1828") | ||
| 27 | + private Integer sourceId; | ||
| 28 | + | ||
| 29 | + @Schema(description = "来源名称", example = "芋艿") | ||
| 30 | + private String sourceName; | ||
| 31 | + | ||
| 32 | + @Schema(description = "道路ID", example = "21128") | ||
| 33 | + private Long roadId; | ||
| 34 | + | ||
| 35 | + @Schema(description = "道路名称", example = "王五") | ||
| 36 | + private String roadName; | ||
| 37 | + | ||
| 38 | + @Schema(description = "街道ID", example = "27852") | ||
| 39 | + private String streetId; | ||
| 40 | + | ||
| 41 | + @Schema(description = "街道名称", example = "芋艿") | ||
| 42 | + private String streetName; | ||
| 43 | + | ||
| 44 | + @Schema(description = "养护级别ID", example = "28278") | ||
| 45 | + private Integer curingLevelId; | ||
| 46 | + | ||
| 47 | + @Schema(description = "养护级别", example = "王五") | ||
| 48 | + private String curingLevelName; | ||
| 49 | + | ||
| 50 | + @Schema(description = "提交日期") | ||
| 51 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 52 | + private LocalDateTime[] commitDate; | ||
| 53 | + | ||
| 54 | + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", example = "2") | ||
| 55 | + private Integer pressingType; | ||
| 56 | + | ||
| 57 | + @Schema(description = "提交用户ID", example = "12757") | ||
| 58 | + private Long userId; | ||
| 59 | + | ||
| 60 | + @Schema(description = "提交用户名称", example = "王五") | ||
| 61 | + private String userName; | ||
| 62 | + | ||
| 63 | + @Schema(description = "部门id", example = "26936") | ||
| 64 | + private Long companyId; | ||
| 65 | + | ||
| 66 | + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2") | ||
| 67 | + private Integer latLonType; | ||
| 68 | + | ||
| 69 | + @Schema(description = "经度") | ||
| 70 | + private BigDecimal lat; | ||
| 71 | + | ||
| 72 | + @Schema(description = "维度") | ||
| 73 | + private BigDecimal lon; | ||
| 74 | + | ||
| 75 | + @Schema(description = "经纬度地址") | ||
| 76 | + private String lonLatAddress; | ||
| 77 | + | ||
| 78 | + @Schema(description = "三方工单ID") | ||
| 79 | + private String thirdWorkNo; | ||
| 80 | + | ||
| 81 | + @Schema(description = "三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败") | ||
| 82 | + private Integer thirdPushState; | ||
| 83 | + | ||
| 84 | + @Schema(description = "业务状态", example = "1") | ||
| 85 | + private String buzStatus; | ||
| 86 | + | ||
| 87 | + @Schema(description = "审批状态", example = "2") | ||
| 88 | + private Integer status; | ||
| 89 | + | ||
| 90 | + @Schema(description = "流程实例的编号", example = "9184") | ||
| 91 | + private String processInstanceId; | ||
| 92 | + | ||
| 93 | + @Schema(description = "工单描述", example = "你说的对") | ||
| 94 | + private String remark; | ||
| 95 | + | ||
| 96 | + @Schema(description = "创建时间") | ||
| 97 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 98 | + private LocalDateTime[] createTime; | ||
| 99 | + | ||
| 100 | +} | ||
| 0 | \ No newline at end of file | 101 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import java.math.BigDecimal; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | +import cn.idev.excel.annotation.*; | ||
| 10 | + | ||
| 11 | +@Schema(description = "管理后台 - 工单信息 Response VO") | ||
| 12 | +@Data | ||
| 13 | +@ExcelIgnoreUnannotated | ||
| 14 | +public class MainInfoRespVO { | ||
| 15 | + | ||
| 16 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7114") | ||
| 17 | + @ExcelProperty("ID") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 20 | + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 21 | + @ExcelProperty("业务线:yl 园林,wy 物业,sz 市政 ") | ||
| 22 | + private String busiLine; | ||
| 23 | + | ||
| 24 | + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 25 | + @ExcelProperty("工单号") | ||
| 26 | + private String orderNo; | ||
| 27 | + | ||
| 28 | + @Schema(description = "工单名称", example = "张三") | ||
| 29 | + @ExcelProperty("工单名称") | ||
| 30 | + private String orderName; | ||
| 31 | + | ||
| 32 | + @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1828") | ||
| 33 | + @ExcelProperty("来源ID") | ||
| 34 | + private Integer sourceId; | ||
| 35 | + | ||
| 36 | + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | ||
| 37 | + @ExcelProperty("来源名称") | ||
| 38 | + private String sourceName; | ||
| 39 | + | ||
| 40 | + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128") | ||
| 41 | + @ExcelProperty("道路ID") | ||
| 42 | + private Long roadId; | ||
| 43 | + | ||
| 44 | + @Schema(description = "道路名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 45 | + @ExcelProperty("道路名称") | ||
| 46 | + private String roadName; | ||
| 47 | + | ||
| 48 | + @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27852") | ||
| 49 | + @ExcelProperty("街道ID") | ||
| 50 | + private String streetId; | ||
| 51 | + | ||
| 52 | + @Schema(description = "街道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | ||
| 53 | + @ExcelProperty("街道名称") | ||
| 54 | + private String streetName; | ||
| 55 | + | ||
| 56 | + @Schema(description = "养护级别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28278") | ||
| 57 | + @ExcelProperty("养护级别ID") | ||
| 58 | + private Integer curingLevelId; | ||
| 59 | + | ||
| 60 | + @Schema(description = "养护级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 61 | + @ExcelProperty("养护级别") | ||
| 62 | + private String curingLevelName; | ||
| 63 | + | ||
| 64 | + @Schema(description = "提交日期", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 65 | + @ExcelProperty("提交日期") | ||
| 66 | + private LocalDateTime commitDate; | ||
| 67 | + | ||
| 68 | + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 69 | + @ExcelProperty("紧急程度:1:特急;2:紧急;3:一般") | ||
| 70 | + private Integer pressingType; | ||
| 71 | + | ||
| 72 | + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12757") | ||
| 73 | + @ExcelProperty("提交用户ID") | ||
| 74 | + private Long userId; | ||
| 75 | + | ||
| 76 | + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 77 | + @ExcelProperty("提交用户名称") | ||
| 78 | + private String userName; | ||
| 79 | + | ||
| 80 | + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26936") | ||
| 81 | + @ExcelProperty("部门id") | ||
| 82 | + private Long companyId; | ||
| 83 | + | ||
| 84 | + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2") | ||
| 85 | + @ExcelProperty("经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯") | ||
| 86 | + private Integer latLonType; | ||
| 87 | + | ||
| 88 | + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 89 | + @ExcelProperty("经度") | ||
| 90 | + private BigDecimal lat; | ||
| 91 | + | ||
| 92 | + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 93 | + @ExcelProperty("维度") | ||
| 94 | + private BigDecimal lon; | ||
| 95 | + | ||
| 96 | + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 97 | + @ExcelProperty("经纬度地址") | ||
| 98 | + private String lonLatAddress; | ||
| 99 | + | ||
| 100 | + @Schema(description = "三方工单ID") | ||
| 101 | + @ExcelProperty("三方工单ID") | ||
| 102 | + private String thirdWorkNo; | ||
| 103 | + | ||
| 104 | + @Schema(description = "三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败") | ||
| 105 | + @ExcelProperty("三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败") | ||
| 106 | + private Integer thirdPushState; | ||
| 107 | + | ||
| 108 | + @Schema(description = "业务状态", example = "1") | ||
| 109 | + @ExcelProperty("业务状态") | ||
| 110 | + private String buzStatus; | ||
| 111 | + | ||
| 112 | + @Schema(description = "审批状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 113 | + @ExcelProperty("审批状态") | ||
| 114 | + private Integer status; | ||
| 115 | + | ||
| 116 | + @Schema(description = "流程实例的编号", example = "9184") | ||
| 117 | + @ExcelProperty("流程实例的编号") | ||
| 118 | + private String processInstanceId; | ||
| 119 | + | ||
| 120 | + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") | ||
| 121 | + @ExcelProperty("工单描述") | ||
| 122 | + private String remark; | ||
| 123 | + | ||
| 124 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 125 | + @ExcelProperty("创建时间") | ||
| 126 | + private LocalDateTime createTime; | ||
| 127 | + | ||
| 128 | +} | ||
| 0 | \ No newline at end of file | 129 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | +import java.math.BigDecimal; | ||
| 8 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 9 | +import java.time.LocalDateTime; | ||
| 10 | + | ||
| 11 | +@Schema(description = "管理后台 - 工单信息新增/修改 Request VO") | ||
| 12 | +@Data | ||
| 13 | +public class MainInfoSaveReqVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7114") | ||
| 16 | + private Long id; | ||
| 17 | + | ||
| 18 | + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 19 | + @NotEmpty(message = "业务线:yl 园林,wy 物业,sz 市政 不能为空") | ||
| 20 | + private String busiLine; | ||
| 21 | + | ||
| 22 | + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 23 | + @NotEmpty(message = "工单号不能为空") | ||
| 24 | + private String orderNo; | ||
| 25 | + | ||
| 26 | + @Schema(description = "工单名称", example = "张三") | ||
| 27 | + private String orderName; | ||
| 28 | + | ||
| 29 | + @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1828") | ||
| 30 | + @NotNull(message = "来源ID不能为空") | ||
| 31 | + private Integer sourceId; | ||
| 32 | + | ||
| 33 | + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | ||
| 34 | + @NotEmpty(message = "来源名称不能为空") | ||
| 35 | + private String sourceName; | ||
| 36 | + | ||
| 37 | + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128") | ||
| 38 | + @NotNull(message = "道路ID不能为空") | ||
| 39 | + private Long roadId; | ||
| 40 | + | ||
| 41 | + @Schema(description = "道路名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 42 | + @NotEmpty(message = "道路名称不能为空") | ||
| 43 | + private String roadName; | ||
| 44 | + | ||
| 45 | + @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27852") | ||
| 46 | + @NotEmpty(message = "街道ID不能为空") | ||
| 47 | + private String streetId; | ||
| 48 | + | ||
| 49 | + @Schema(description = "街道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | ||
| 50 | + @NotEmpty(message = "街道名称不能为空") | ||
| 51 | + private String streetName; | ||
| 52 | + | ||
| 53 | + @Schema(description = "养护级别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28278") | ||
| 54 | + @NotNull(message = "养护级别ID不能为空") | ||
| 55 | + private Integer curingLevelId; | ||
| 56 | + | ||
| 57 | + @Schema(description = "养护级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 58 | + @NotEmpty(message = "养护级别不能为空") | ||
| 59 | + private String curingLevelName; | ||
| 60 | + | ||
| 61 | + @Schema(description = "提交日期", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 62 | + @NotNull(message = "提交日期不能为空") | ||
| 63 | + private LocalDateTime commitDate; | ||
| 64 | + | ||
| 65 | + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 66 | + @NotNull(message = "紧急程度:1:特急;2:紧急;3:一般不能为空") | ||
| 67 | + private Integer pressingType; | ||
| 68 | + | ||
| 69 | + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12757") | ||
| 70 | + @NotNull(message = "提交用户ID不能为空") | ||
| 71 | + private Long userId; | ||
| 72 | + | ||
| 73 | + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 74 | + @NotEmpty(message = "提交用户名称不能为空") | ||
| 75 | + private String userName; | ||
| 76 | + | ||
| 77 | + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26936") | ||
| 78 | + @NotNull(message = "部门id不能为空") | ||
| 79 | + private Long companyId; | ||
| 80 | + | ||
| 81 | + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2") | ||
| 82 | + private Integer latLonType; | ||
| 83 | + | ||
| 84 | + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 85 | + @NotNull(message = "经度不能为空") | ||
| 86 | + private BigDecimal lat; | ||
| 87 | + | ||
| 88 | + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 89 | + @NotNull(message = "维度不能为空") | ||
| 90 | + private BigDecimal lon; | ||
| 91 | + | ||
| 92 | + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 93 | + @NotEmpty(message = "经纬度地址不能为空") | ||
| 94 | + private String lonLatAddress; | ||
| 95 | + | ||
| 96 | + @Schema(description = "三方工单ID") | ||
| 97 | + private String thirdWorkNo; | ||
| 98 | + | ||
| 99 | + @Schema(description = "三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败") | ||
| 100 | + private Integer thirdPushState; | ||
| 101 | + | ||
| 102 | + @Schema(description = "业务状态", example = "1") | ||
| 103 | + private String buzStatus; | ||
| 104 | + | ||
| 105 | + @Schema(description = "审批状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 106 | + @NotNull(message = "审批状态不能为空") | ||
| 107 | + private Integer status; | ||
| 108 | + | ||
| 109 | + @Schema(description = "流程实例的编号", example = "9184") | ||
| 110 | + private String processInstanceId; | ||
| 111 | + | ||
| 112 | + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") | ||
| 113 | + @NotEmpty(message = "工单描述不能为空") | ||
| 114 | + private String remark; | ||
| 115 | + | ||
| 116 | +} | ||
| 0 | \ No newline at end of file | 117 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/MaterialDetailController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail; | ||
| 2 | + | ||
| 3 | +import org.springframework.web.bind.annotation.*; | ||
| 4 | +import jakarta.annotation.Resource; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 7 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 8 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | + | ||
| 11 | +import jakarta.validation.constraints.*; | ||
| 12 | +import jakarta.validation.*; | ||
| 13 | +import jakarta.servlet.http.*; | ||
| 14 | +import java.util.*; | ||
| 15 | +import java.io.IOException; | ||
| 16 | + | ||
| 17 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 18 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 19 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | ||
| 20 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 21 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | ||
| 22 | + | ||
| 23 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | ||
| 24 | + | ||
| 25 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | ||
| 26 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | ||
| 27 | + | ||
| 28 | +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*; | ||
| 29 | +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO; | ||
| 30 | +import com.zteits.urbanops.module.workorder.service.materialdetail.MaterialDetailService; | ||
| 31 | + | ||
| 32 | +@Tag(name = "管理后台 - 工单耗材明细") | ||
| 33 | +@RestController | ||
| 34 | +@RequestMapping("/workorder/material-detail") | ||
| 35 | +@Validated | ||
| 36 | +public class MaterialDetailController { | ||
| 37 | + | ||
| 38 | + @Resource | ||
| 39 | + private MaterialDetailService materialDetailService; | ||
| 40 | + | ||
| 41 | + @PostMapping("/create") | ||
| 42 | + @Operation(summary = "创建工单耗材明细") | ||
| 43 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:create')") | ||
| 44 | + public CommonResult<Long> createMaterialDetail(@Valid @RequestBody MaterialDetailSaveReqVO createReqVO) { | ||
| 45 | + return success(materialDetailService.createMaterialDetail(createReqVO)); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @PutMapping("/update") | ||
| 49 | + @Operation(summary = "更新工单耗材明细") | ||
| 50 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:update')") | ||
| 51 | + public CommonResult<Boolean> updateMaterialDetail(@Valid @RequestBody MaterialDetailSaveReqVO updateReqVO) { | ||
| 52 | + materialDetailService.updateMaterialDetail(updateReqVO); | ||
| 53 | + return success(true); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @DeleteMapping("/delete") | ||
| 57 | + @Operation(summary = "删除工单耗材明细") | ||
| 58 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 59 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:delete')") | ||
| 60 | + public CommonResult<Boolean> deleteMaterialDetail(@RequestParam("id") Long id) { | ||
| 61 | + materialDetailService.deleteMaterialDetail(id); | ||
| 62 | + return success(true); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @DeleteMapping("/delete-list") | ||
| 66 | + @Parameter(name = "ids", description = "编号", required = true) | ||
| 67 | + @Operation(summary = "批量删除工单耗材明细") | ||
| 68 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:delete')") | ||
| 69 | + public CommonResult<Boolean> deleteMaterialDetailList(@RequestParam("ids") List<Long> ids) { | ||
| 70 | + materialDetailService.deleteMaterialDetailListByIds(ids); | ||
| 71 | + return success(true); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @GetMapping("/get") | ||
| 75 | + @Operation(summary = "获得工单耗材明细") | ||
| 76 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 77 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:query')") | ||
| 78 | + public CommonResult<MaterialDetailRespVO> getMaterialDetail(@RequestParam("id") Long id) { | ||
| 79 | + MaterialDetailDO materialDetail = materialDetailService.getMaterialDetail(id); | ||
| 80 | + return success(BeanUtils.toBean(materialDetail, MaterialDetailRespVO.class)); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + @GetMapping("/page") | ||
| 84 | + @Operation(summary = "获得工单耗材明细分页") | ||
| 85 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:query')") | ||
| 86 | + public CommonResult<PageResult<MaterialDetailRespVO>> getMaterialDetailPage(@Valid MaterialDetailPageReqVO pageReqVO) { | ||
| 87 | + PageResult<MaterialDetailDO> pageResult = materialDetailService.getMaterialDetailPage(pageReqVO); | ||
| 88 | + return success(BeanUtils.toBean(pageResult, MaterialDetailRespVO.class)); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + @GetMapping("/export-excel") | ||
| 92 | + @Operation(summary = "导出工单耗材明细 Excel") | ||
| 93 | + @PreAuthorize("@ss.hasPermission('workorder:material-detail:export')") | ||
| 94 | + @ApiAccessLog(operateType = EXPORT) | ||
| 95 | + public void exportMaterialDetailExcel(@Valid MaterialDetailPageReqVO pageReqVO, | ||
| 96 | + HttpServletResponse response) throws IOException { | ||
| 97 | + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); | ||
| 98 | + List<MaterialDetailDO> list = materialDetailService.getMaterialDetailPage(pageReqVO).getList(); | ||
| 99 | + // 导出 Excel | ||
| 100 | + ExcelUtils.write(response, "工单耗材明细.xls", "数据", MaterialDetailRespVO.class, | ||
| 101 | + BeanUtils.toBean(list, MaterialDetailRespVO.class)); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | +} | ||
| 0 | \ No newline at end of file | 105 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/vo/MaterialDetailPageReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | + | ||
| 10 | +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 工单耗材明细分页 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class MaterialDetailPageReqVO extends PageParam { | ||
| 15 | + | ||
| 16 | + @Schema(description = "工单号") | ||
| 17 | + private String orderNo; | ||
| 18 | + | ||
| 19 | + @Schema(description = "提交用户ID", example = "10300") | ||
| 20 | + private Long userId; | ||
| 21 | + | ||
| 22 | + @Schema(description = "提交用户名称", example = "赵六") | ||
| 23 | + private String userName; | ||
| 24 | + | ||
| 25 | + @Schema(description = "种类ID", example = "27821") | ||
| 26 | + private Long classifyId; | ||
| 27 | + | ||
| 28 | + @Schema(description = "种类名称", example = "张三") | ||
| 29 | + private String classifyName; | ||
| 30 | + | ||
| 31 | + @Schema(description = "类别ID", example = "23969") | ||
| 32 | + private Long typeId; | ||
| 33 | + | ||
| 34 | + @Schema(description = "类别名称", example = "李四") | ||
| 35 | + private String typeName; | ||
| 36 | + | ||
| 37 | + @Schema(description = "类别明细ID", example = "11240") | ||
| 38 | + private Long typeDetailId; | ||
| 39 | + | ||
| 40 | + @Schema(description = "类别明细名称", example = "赵六") | ||
| 41 | + private String typeDetailName; | ||
| 42 | + | ||
| 43 | + @Schema(description = "使用数量", example = "20141") | ||
| 44 | + private Double userCount; | ||
| 45 | + | ||
| 46 | + @Schema(description = "单位", example = "李四") | ||
| 47 | + private String unitName; | ||
| 48 | + | ||
| 49 | + @Schema(description = "状态(0正常 1停用)", example = "1") | ||
| 50 | + private String status; | ||
| 51 | + | ||
| 52 | + @Schema(description = "描述", example = "你说的对") | ||
| 53 | + private String remark; | ||
| 54 | + | ||
| 55 | + @Schema(description = "创建时间") | ||
| 56 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 57 | + private LocalDateTime[] createTime; | ||
| 58 | + | ||
| 59 | +} | ||
| 0 | \ No newline at end of file | 60 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/vo/MaterialDetailRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | +import cn.idev.excel.annotation.*; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - 工单耗材明细 Response VO") | ||
| 11 | +@Data | ||
| 12 | +@ExcelIgnoreUnannotated | ||
| 13 | +public class MaterialDetailRespVO { | ||
| 14 | + | ||
| 15 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "234") | ||
| 16 | + @ExcelProperty("ID") | ||
| 17 | + private Long id; | ||
| 18 | + | ||
| 19 | + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 20 | + @ExcelProperty("工单号") | ||
| 21 | + private String orderNo; | ||
| 22 | + | ||
| 23 | + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10300") | ||
| 24 | + @ExcelProperty("提交用户ID") | ||
| 25 | + private Long userId; | ||
| 26 | + | ||
| 27 | + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | ||
| 28 | + @ExcelProperty("提交用户名称") | ||
| 29 | + private String userName; | ||
| 30 | + | ||
| 31 | + @Schema(description = "种类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27821") | ||
| 32 | + @ExcelProperty("种类ID") | ||
| 33 | + private Long classifyId; | ||
| 34 | + | ||
| 35 | + @Schema(description = "种类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | ||
| 36 | + @ExcelProperty("种类名称") | ||
| 37 | + private String classifyName; | ||
| 38 | + | ||
| 39 | + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23969") | ||
| 40 | + @ExcelProperty("类别ID") | ||
| 41 | + private Long typeId; | ||
| 42 | + | ||
| 43 | + @Schema(description = "类别名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 44 | + @ExcelProperty("类别名称") | ||
| 45 | + private String typeName; | ||
| 46 | + | ||
| 47 | + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11240") | ||
| 48 | + @ExcelProperty("类别明细ID") | ||
| 49 | + private Long typeDetailId; | ||
| 50 | + | ||
| 51 | + @Schema(description = "类别明细名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | ||
| 52 | + @ExcelProperty("类别明细名称") | ||
| 53 | + private String typeDetailName; | ||
| 54 | + | ||
| 55 | + @Schema(description = "使用数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20141") | ||
| 56 | + @ExcelProperty("使用数量") | ||
| 57 | + private Double userCount; | ||
| 58 | + | ||
| 59 | + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 60 | + @ExcelProperty("单位") | ||
| 61 | + private String unitName; | ||
| 62 | + | ||
| 63 | + @Schema(description = "状态(0正常 1停用)", example = "1") | ||
| 64 | + @ExcelProperty("状态(0正常 1停用)") | ||
| 65 | + private String status; | ||
| 66 | + | ||
| 67 | + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") | ||
| 68 | + @ExcelProperty("描述") | ||
| 69 | + private String remark; | ||
| 70 | + | ||
| 71 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 72 | + @ExcelProperty("创建时间") | ||
| 73 | + private LocalDateTime createTime; | ||
| 74 | + | ||
| 75 | +} | ||
| 0 | \ No newline at end of file | 76 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/vo/MaterialDetailSaveReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.*; | ||
| 5 | +import java.util.*; | ||
| 6 | +import jakarta.validation.constraints.*; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - 工单耗材明细新增/修改 Request VO") | ||
| 9 | +@Data | ||
| 10 | +public class MaterialDetailSaveReqVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "234") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 16 | + @NotEmpty(message = "工单号不能为空") | ||
| 17 | + private String orderNo; | ||
| 18 | + | ||
| 19 | + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10300") | ||
| 20 | + @NotNull(message = "提交用户ID不能为空") | ||
| 21 | + private Long userId; | ||
| 22 | + | ||
| 23 | + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | ||
| 24 | + @NotEmpty(message = "提交用户名称不能为空") | ||
| 25 | + private String userName; | ||
| 26 | + | ||
| 27 | + @Schema(description = "种类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27821") | ||
| 28 | + @NotNull(message = "种类ID不能为空") | ||
| 29 | + private Long classifyId; | ||
| 30 | + | ||
| 31 | + @Schema(description = "种类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | ||
| 32 | + @NotEmpty(message = "种类名称不能为空") | ||
| 33 | + private String classifyName; | ||
| 34 | + | ||
| 35 | + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23969") | ||
| 36 | + @NotNull(message = "类别ID不能为空") | ||
| 37 | + private Long typeId; | ||
| 38 | + | ||
| 39 | + @Schema(description = "类别名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 40 | + @NotEmpty(message = "类别名称不能为空") | ||
| 41 | + private String typeName; | ||
| 42 | + | ||
| 43 | + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11240") | ||
| 44 | + @NotNull(message = "类别明细ID不能为空") | ||
| 45 | + private Long typeDetailId; | ||
| 46 | + | ||
| 47 | + @Schema(description = "类别明细名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | ||
| 48 | + @NotEmpty(message = "类别明细名称不能为空") | ||
| 49 | + private String typeDetailName; | ||
| 50 | + | ||
| 51 | + @Schema(description = "使用数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20141") | ||
| 52 | + @NotNull(message = "使用数量不能为空") | ||
| 53 | + private Double userCount; | ||
| 54 | + | ||
| 55 | + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 56 | + @NotEmpty(message = "单位不能为空") | ||
| 57 | + private String unitName; | ||
| 58 | + | ||
| 59 | + @Schema(description = "状态(0正常 1停用)", example = "1") | ||
| 60 | + private String status; | ||
| 61 | + | ||
| 62 | + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") | ||
| 63 | + @NotEmpty(message = "描述不能为空") | ||
| 64 | + private String remark; | ||
| 65 | + | ||
| 66 | +} | ||
| 0 | \ No newline at end of file | 67 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/attachment/AttachmentDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.dal.dataobject.attachment; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 8 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 工单附件信息 DO | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +@TableName("workorder_attachment") | ||
| 16 | +@KeySequence("workorder_attachment_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 17 | +@Data | ||
| 18 | +@EqualsAndHashCode(callSuper = true) | ||
| 19 | +@ToString(callSuper = true) | ||
| 20 | +@Builder | ||
| 21 | +@NoArgsConstructor | ||
| 22 | +@AllArgsConstructor | ||
| 23 | +public class AttachmentDO extends BaseDO { | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * ID | ||
| 27 | + */ | ||
| 28 | + @TableId | ||
| 29 | + private Long id; | ||
| 30 | + /** | ||
| 31 | + * 工单号 | ||
| 32 | + */ | ||
| 33 | + private String orderNo; | ||
| 34 | + /** | ||
| 35 | + * 业务线:yl 园林,wy 物业,sz 市政 | ||
| 36 | + */ | ||
| 37 | + private String busiLine; | ||
| 38 | + /** | ||
| 39 | + * 业务类型:01 问题图片,02 街道图片,03 选景图片 | ||
| 40 | + */ | ||
| 41 | + private String busiType; | ||
| 42 | + /** | ||
| 43 | + * 文件名称 | ||
| 44 | + */ | ||
| 45 | + private String fileNames; | ||
| 46 | + /** | ||
| 47 | + * 路径 | ||
| 48 | + */ | ||
| 49 | + private String hostUrl; | ||
| 50 | + /** | ||
| 51 | + * 文件大小 | ||
| 52 | + */ | ||
| 53 | + private String fileSize; | ||
| 54 | + /** | ||
| 55 | + * 文件类型 | ||
| 56 | + */ | ||
| 57 | + private String contentType; | ||
| 58 | + /** | ||
| 59 | + * 描述 | ||
| 60 | + */ | ||
| 61 | + private String remark; | ||
| 62 | + | ||
| 63 | + | ||
| 64 | +} | ||
| 0 | \ No newline at end of file | 65 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.dal.dataobject.maininfo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import java.math.BigDecimal; | ||
| 7 | +import java.math.BigDecimal; | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | +import java.time.LocalDateTime; | ||
| 10 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 11 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 工单信息 DO | ||
| 15 | + * | ||
| 16 | + * @author 超级管理员 | ||
| 17 | + */ | ||
| 18 | +@TableName("workorder_main_info") | ||
| 19 | +@KeySequence("workorder_main_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 20 | +@Data | ||
| 21 | +@EqualsAndHashCode(callSuper = true) | ||
| 22 | +@ToString(callSuper = true) | ||
| 23 | +@Builder | ||
| 24 | +@NoArgsConstructor | ||
| 25 | +@AllArgsConstructor | ||
| 26 | +public class MainInfoDO extends BaseDO { | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * ID | ||
| 30 | + */ | ||
| 31 | + @TableId | ||
| 32 | + private Long id; | ||
| 33 | + /** | ||
| 34 | + * 业务线:yl 园林,wy 物业,sz 市政 | ||
| 35 | + */ | ||
| 36 | + private String busiLine; | ||
| 37 | + /** | ||
| 38 | + * 工单号 | ||
| 39 | + */ | ||
| 40 | + private String orderNo; | ||
| 41 | + /** | ||
| 42 | + * 工单名称 | ||
| 43 | + */ | ||
| 44 | + private String orderName; | ||
| 45 | + /** | ||
| 46 | + * 来源ID | ||
| 47 | + */ | ||
| 48 | + private Integer sourceId; | ||
| 49 | + /** | ||
| 50 | + * 来源名称 | ||
| 51 | + */ | ||
| 52 | + private String sourceName; | ||
| 53 | + /** | ||
| 54 | + * 道路ID | ||
| 55 | + */ | ||
| 56 | + private Long roadId; | ||
| 57 | + /** | ||
| 58 | + * 道路名称 | ||
| 59 | + */ | ||
| 60 | + private String roadName; | ||
| 61 | + /** | ||
| 62 | + * 街道ID | ||
| 63 | + */ | ||
| 64 | + private String streetId; | ||
| 65 | + /** | ||
| 66 | + * 街道名称 | ||
| 67 | + */ | ||
| 68 | + private String streetName; | ||
| 69 | + /** | ||
| 70 | + * 养护级别ID | ||
| 71 | + */ | ||
| 72 | + private Integer curingLevelId; | ||
| 73 | + /** | ||
| 74 | + * 养护级别 | ||
| 75 | + */ | ||
| 76 | + private String curingLevelName; | ||
| 77 | + /** | ||
| 78 | + * 提交日期 | ||
| 79 | + */ | ||
| 80 | + private LocalDateTime commitDate; | ||
| 81 | + /** | ||
| 82 | + * 紧急程度:1:特急;2:紧急;3:一般 | ||
| 83 | + */ | ||
| 84 | + private Integer pressingType; | ||
| 85 | + /** | ||
| 86 | + * 提交用户ID | ||
| 87 | + */ | ||
| 88 | + private Long userId; | ||
| 89 | + /** | ||
| 90 | + * 提交用户名称 | ||
| 91 | + */ | ||
| 92 | + private String userName; | ||
| 93 | + /** | ||
| 94 | + * 部门id | ||
| 95 | + */ | ||
| 96 | + private Long companyId; | ||
| 97 | + /** | ||
| 98 | + * 经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯 | ||
| 99 | + */ | ||
| 100 | + private Integer latLonType; | ||
| 101 | + /** | ||
| 102 | + * 经度 | ||
| 103 | + */ | ||
| 104 | + private BigDecimal lat; | ||
| 105 | + /** | ||
| 106 | + * 维度 | ||
| 107 | + */ | ||
| 108 | + private BigDecimal lon; | ||
| 109 | + /** | ||
| 110 | + * 经纬度地址 | ||
| 111 | + */ | ||
| 112 | + private String lonLatAddress; | ||
| 113 | + /** | ||
| 114 | + * 三方工单ID | ||
| 115 | + */ | ||
| 116 | + private String thirdWorkNo; | ||
| 117 | + /** | ||
| 118 | + * 三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败 | ||
| 119 | + */ | ||
| 120 | + private Integer thirdPushState; | ||
| 121 | + /** | ||
| 122 | + * 业务状态 | ||
| 123 | + */ | ||
| 124 | + private String buzStatus; | ||
| 125 | + /** | ||
| 126 | + * 审批状态 | ||
| 127 | + */ | ||
| 128 | + private Integer status; | ||
| 129 | + /** | ||
| 130 | + * 流程实例的编号 | ||
| 131 | + */ | ||
| 132 | + private String processInstanceId; | ||
| 133 | + /** | ||
| 134 | + * 工单描述 | ||
| 135 | + */ | ||
| 136 | + private String remark; | ||
| 137 | + | ||
| 138 | + | ||
| 139 | +} | ||
| 0 | \ No newline at end of file | 140 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/materialdetail/MaterialDetailDO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 8 | +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 工单耗材明细 DO | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +@TableName("workorder_material_detail") | ||
| 16 | +@KeySequence("workorder_material_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 17 | +@Data | ||
| 18 | +@EqualsAndHashCode(callSuper = true) | ||
| 19 | +@ToString(callSuper = true) | ||
| 20 | +@Builder | ||
| 21 | +@NoArgsConstructor | ||
| 22 | +@AllArgsConstructor | ||
| 23 | +public class MaterialDetailDO extends BaseDO { | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * ID | ||
| 27 | + */ | ||
| 28 | + @TableId | ||
| 29 | + private Long id; | ||
| 30 | + /** | ||
| 31 | + * 工单号 | ||
| 32 | + */ | ||
| 33 | + private String orderNo; | ||
| 34 | + /** | ||
| 35 | + * 提交用户ID | ||
| 36 | + */ | ||
| 37 | + private Long userId; | ||
| 38 | + /** | ||
| 39 | + * 提交用户名称 | ||
| 40 | + */ | ||
| 41 | + private String userName; | ||
| 42 | + /** | ||
| 43 | + * 种类ID | ||
| 44 | + */ | ||
| 45 | + private Long classifyId; | ||
| 46 | + /** | ||
| 47 | + * 种类名称 | ||
| 48 | + */ | ||
| 49 | + private String classifyName; | ||
| 50 | + /** | ||
| 51 | + * 类别ID | ||
| 52 | + */ | ||
| 53 | + private Long typeId; | ||
| 54 | + /** | ||
| 55 | + * 类别名称 | ||
| 56 | + */ | ||
| 57 | + private String typeName; | ||
| 58 | + /** | ||
| 59 | + * 类别明细ID | ||
| 60 | + */ | ||
| 61 | + private Long typeDetailId; | ||
| 62 | + /** | ||
| 63 | + * 类别明细名称 | ||
| 64 | + */ | ||
| 65 | + private String typeDetailName; | ||
| 66 | + /** | ||
| 67 | + * 使用数量 | ||
| 68 | + */ | ||
| 69 | + private Double userCount; | ||
| 70 | + /** | ||
| 71 | + * 单位 | ||
| 72 | + */ | ||
| 73 | + private String unitName; | ||
| 74 | + /** | ||
| 75 | + * 状态(0正常 1停用) | ||
| 76 | + */ | ||
| 77 | + private String status; | ||
| 78 | + /** | ||
| 79 | + * 描述 | ||
| 80 | + */ | ||
| 81 | + private String remark; | ||
| 82 | + | ||
| 83 | + | ||
| 84 | +} | ||
| 0 | \ No newline at end of file | 85 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/attachment/AttachmentMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.dal.mysql.attachment; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 工单附件信息 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface AttachmentMapper extends BaseMapperX<AttachmentDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<AttachmentDO> selectPage(AttachmentPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<AttachmentDO>() | ||
| 22 | + .eqIfPresent(AttachmentDO::getOrderNo, reqVO.getOrderNo()) | ||
| 23 | + .eqIfPresent(AttachmentDO::getBusiLine, reqVO.getBusiLine()) | ||
| 24 | + .eqIfPresent(AttachmentDO::getBusiType, reqVO.getBusiType()) | ||
| 25 | + .eqIfPresent(AttachmentDO::getFileNames, reqVO.getFileNames()) | ||
| 26 | + .eqIfPresent(AttachmentDO::getHostUrl, reqVO.getHostUrl()) | ||
| 27 | + .eqIfPresent(AttachmentDO::getFileSize, reqVO.getFileSize()) | ||
| 28 | + .eqIfPresent(AttachmentDO::getContentType, reqVO.getContentType()) | ||
| 29 | + .eqIfPresent(AttachmentDO::getRemark, reqVO.getRemark()) | ||
| 30 | + .betweenIfPresent(AttachmentDO::getCreateTime, reqVO.getCreateTime()) | ||
| 31 | + .orderByDesc(AttachmentDO::getId)); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | +} | ||
| 0 | \ No newline at end of file | 35 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.dal.mysql.maininfo; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 工单信息 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface MainInfoMapper extends BaseMapperX<MainInfoDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<MainInfoDO> selectPage(MainInfoPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<MainInfoDO>() | ||
| 22 | + .eqIfPresent(MainInfoDO::getBusiLine, reqVO.getBusiLine()) | ||
| 23 | + .eqIfPresent(MainInfoDO::getOrderNo, reqVO.getOrderNo()) | ||
| 24 | + .likeIfPresent(MainInfoDO::getOrderName, reqVO.getOrderName()) | ||
| 25 | + .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId()) | ||
| 26 | + .likeIfPresent(MainInfoDO::getSourceName, reqVO.getSourceName()) | ||
| 27 | + .eqIfPresent(MainInfoDO::getRoadId, reqVO.getRoadId()) | ||
| 28 | + .likeIfPresent(MainInfoDO::getRoadName, reqVO.getRoadName()) | ||
| 29 | + .eqIfPresent(MainInfoDO::getStreetId, reqVO.getStreetId()) | ||
| 30 | + .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName()) | ||
| 31 | + .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId()) | ||
| 32 | + .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName()) | ||
| 33 | + .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate()) | ||
| 34 | + .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType()) | ||
| 35 | + .eqIfPresent(MainInfoDO::getUserId, reqVO.getUserId()) | ||
| 36 | + .likeIfPresent(MainInfoDO::getUserName, reqVO.getUserName()) | ||
| 37 | + .eqIfPresent(MainInfoDO::getCompanyId, reqVO.getCompanyId()) | ||
| 38 | + .eqIfPresent(MainInfoDO::getLatLonType, reqVO.getLatLonType()) | ||
| 39 | + .eqIfPresent(MainInfoDO::getLat, reqVO.getLat()) | ||
| 40 | + .eqIfPresent(MainInfoDO::getLon, reqVO.getLon()) | ||
| 41 | + .eqIfPresent(MainInfoDO::getLonLatAddress, reqVO.getLonLatAddress()) | ||
| 42 | + .eqIfPresent(MainInfoDO::getThirdWorkNo, reqVO.getThirdWorkNo()) | ||
| 43 | + .eqIfPresent(MainInfoDO::getThirdPushState, reqVO.getThirdPushState()) | ||
| 44 | + .eqIfPresent(MainInfoDO::getBuzStatus, reqVO.getBuzStatus()) | ||
| 45 | + .eqIfPresent(MainInfoDO::getStatus, reqVO.getStatus()) | ||
| 46 | + .eqIfPresent(MainInfoDO::getProcessInstanceId, reqVO.getProcessInstanceId()) | ||
| 47 | + .eqIfPresent(MainInfoDO::getRemark, reqVO.getRemark()) | ||
| 48 | + .betweenIfPresent(MainInfoDO::getCreateTime, reqVO.getCreateTime()) | ||
| 49 | + .orderByDesc(MainInfoDO::getId)); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | +} | ||
| 0 | \ No newline at end of file | 53 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/materialdetail/MaterialDetailMapper.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.dal.mysql.materialdetail; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 6 | +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 7 | +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; | ||
| 8 | +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 工单耗材明细 Mapper | ||
| 14 | + * | ||
| 15 | + * @author 超级管理员 | ||
| 16 | + */ | ||
| 17 | +@Mapper | ||
| 18 | +public interface MaterialDetailMapper extends BaseMapperX<MaterialDetailDO> { | ||
| 19 | + | ||
| 20 | + default PageResult<MaterialDetailDO> selectPage(MaterialDetailPageReqVO reqVO) { | ||
| 21 | + return selectPage(reqVO, new LambdaQueryWrapperX<MaterialDetailDO>() | ||
| 22 | + .eqIfPresent(MaterialDetailDO::getOrderNo, reqVO.getOrderNo()) | ||
| 23 | + .eqIfPresent(MaterialDetailDO::getUserId, reqVO.getUserId()) | ||
| 24 | + .likeIfPresent(MaterialDetailDO::getUserName, reqVO.getUserName()) | ||
| 25 | + .eqIfPresent(MaterialDetailDO::getClassifyId, reqVO.getClassifyId()) | ||
| 26 | + .likeIfPresent(MaterialDetailDO::getClassifyName, reqVO.getClassifyName()) | ||
| 27 | + .eqIfPresent(MaterialDetailDO::getTypeId, reqVO.getTypeId()) | ||
| 28 | + .likeIfPresent(MaterialDetailDO::getTypeName, reqVO.getTypeName()) | ||
| 29 | + .eqIfPresent(MaterialDetailDO::getTypeDetailId, reqVO.getTypeDetailId()) | ||
| 30 | + .likeIfPresent(MaterialDetailDO::getTypeDetailName, reqVO.getTypeDetailName()) | ||
| 31 | + .eqIfPresent(MaterialDetailDO::getUserCount, reqVO.getUserCount()) | ||
| 32 | + .likeIfPresent(MaterialDetailDO::getUnitName, reqVO.getUnitName()) | ||
| 33 | + .eqIfPresent(MaterialDetailDO::getStatus, reqVO.getStatus()) | ||
| 34 | + .eqIfPresent(MaterialDetailDO::getRemark, reqVO.getRemark()) | ||
| 35 | + .betweenIfPresent(MaterialDetailDO::getCreateTime, reqVO.getCreateTime()) | ||
| 36 | + .orderByDesc(MaterialDetailDO::getId)); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | +} | ||
| 0 | \ No newline at end of file | 40 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.enums; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import com.zteits.urbanops.framework.common.exception.ErrorCode; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * workorder 错误码枚举类 | ||
| 8 | + * <p> | ||
| 9 | + * workorder 系统,使用 1-100-000-000 段 | ||
| 10 | + */ | ||
| 11 | +public interface ErrorCodeConstants { | ||
| 12 | + | ||
| 13 | + // ========== server 工单 1-100-001-000 ========== | ||
| 14 | + ErrorCode MAIN_INFO_NOT_EXISTS = new ErrorCode(1-100-001-000, "工单信息不存在"); | ||
| 15 | + | ||
| 16 | + ErrorCode ATTACHMENT_NOT_EXISTS = new ErrorCode(1-100-002-000, "工单附件信息不存在"); | ||
| 17 | + | ||
| 18 | + ErrorCode MATERIAL_DETAIL_NOT_EXISTS = new ErrorCode(1-100-003-000, "工单耗材明细不存在"); | ||
| 19 | +} |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/attachment/AttachmentService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.service.attachment; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 工单附件信息 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface AttachmentService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建工单附件信息 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + Long createAttachment(@Valid AttachmentSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新工单附件信息 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateAttachment(@Valid AttachmentSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除工单附件信息 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteAttachment(Long id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除工单附件信息 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteAttachmentListByIds(List<Long> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得工单附件信息 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 工单附件信息 | ||
| 51 | + */ | ||
| 52 | + AttachmentDO getAttachment(Long id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得工单附件信息分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 工单附件信息分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<AttachmentDO> getAttachmentPage(AttachmentPageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | +} | ||
| 0 | \ No newline at end of file | 63 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/attachment/AttachmentServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.service.attachment; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import org.springframework.stereotype.Service; | ||
| 5 | +import jakarta.annotation.Resource; | ||
| 6 | +import org.springframework.validation.annotation.Validated; | ||
| 7 | +import org.springframework.transaction.annotation.Transactional; | ||
| 8 | + | ||
| 9 | +import java.util.*; | ||
| 10 | +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*; | ||
| 11 | +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; | ||
| 12 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 13 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 14 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 15 | + | ||
| 16 | +import com.zteits.urbanops.module.workorder.dal.mysql.attachment.AttachmentMapper; | ||
| 17 | + | ||
| 18 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 19 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 20 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 21 | +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * 工单附件信息 Service 实现类 | ||
| 25 | + * | ||
| 26 | + * @author 超级管理员 | ||
| 27 | + */ | ||
| 28 | +@Service | ||
| 29 | +@Validated | ||
| 30 | +public class AttachmentServiceImpl implements AttachmentService { | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private AttachmentMapper attachmentMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public Long createAttachment(AttachmentSaveReqVO createReqVO) { | ||
| 37 | + // 插入 | ||
| 38 | + AttachmentDO attachment = BeanUtils.toBean(createReqVO, AttachmentDO.class); | ||
| 39 | + attachmentMapper.insert(attachment); | ||
| 40 | + | ||
| 41 | + // 返回 | ||
| 42 | + return attachment.getId(); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public void updateAttachment(AttachmentSaveReqVO updateReqVO) { | ||
| 47 | + // 校验存在 | ||
| 48 | + validateAttachmentExists(updateReqVO.getId()); | ||
| 49 | + // 更新 | ||
| 50 | + AttachmentDO updateObj = BeanUtils.toBean(updateReqVO, AttachmentDO.class); | ||
| 51 | + attachmentMapper.updateById(updateObj); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public void deleteAttachment(Long id) { | ||
| 56 | + // 校验存在 | ||
| 57 | + validateAttachmentExists(id); | ||
| 58 | + // 删除 | ||
| 59 | + attachmentMapper.deleteById(id); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + public void deleteAttachmentListByIds(List<Long> ids) { | ||
| 64 | + // 删除 | ||
| 65 | + attachmentMapper.deleteByIds(ids); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + | ||
| 69 | + private void validateAttachmentExists(Long id) { | ||
| 70 | + if (attachmentMapper.selectById(id) == null) { | ||
| 71 | + throw exception(ATTACHMENT_NOT_EXISTS); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + @Override | ||
| 76 | + public AttachmentDO getAttachment(Long id) { | ||
| 77 | + return attachmentMapper.selectById(id); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public PageResult<AttachmentDO> getAttachmentPage(AttachmentPageReqVO pageReqVO) { | ||
| 82 | + return attachmentMapper.selectPage(pageReqVO); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | +} | ||
| 0 | \ No newline at end of file | 86 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.service.maininfo; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 工单信息 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface MainInfoService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建工单信息 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + Long createMainInfo(@Valid MainInfoSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新工单信息 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateMainInfo(@Valid MainInfoSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除工单信息 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteMainInfo(Long id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除工单信息 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteMainInfoListByIds(List<Long> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得工单信息 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 工单信息 | ||
| 51 | + */ | ||
| 52 | + MainInfoDO getMainInfo(Long id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得工单信息分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 工单信息分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<MainInfoDO> getMainInfoPage(MainInfoPageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | +} | ||
| 0 | \ No newline at end of file | 63 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.service.maininfo; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import org.springframework.stereotype.Service; | ||
| 5 | +import jakarta.annotation.Resource; | ||
| 6 | +import org.springframework.validation.annotation.Validated; | ||
| 7 | +import org.springframework.transaction.annotation.Transactional; | ||
| 8 | + | ||
| 9 | +import java.util.*; | ||
| 10 | +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*; | ||
| 11 | +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; | ||
| 12 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 13 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 14 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 15 | + | ||
| 16 | +import com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper; | ||
| 17 | + | ||
| 18 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 19 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 20 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 21 | +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * 工单信息 Service 实现类 | ||
| 25 | + * | ||
| 26 | + * @author 超级管理员 | ||
| 27 | + */ | ||
| 28 | +@Service | ||
| 29 | +@Validated | ||
| 30 | +public class MainInfoServiceImpl implements MainInfoService { | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private MainInfoMapper mainInfoMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public Long createMainInfo(MainInfoSaveReqVO createReqVO) { | ||
| 37 | + // 插入 | ||
| 38 | + MainInfoDO mainInfo = BeanUtils.toBean(createReqVO, MainInfoDO.class); | ||
| 39 | + mainInfoMapper.insert(mainInfo); | ||
| 40 | + | ||
| 41 | + // 返回 | ||
| 42 | + return mainInfo.getId(); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public void updateMainInfo(MainInfoSaveReqVO updateReqVO) { | ||
| 47 | + // 校验存在 | ||
| 48 | + validateMainInfoExists(updateReqVO.getId()); | ||
| 49 | + // 更新 | ||
| 50 | + MainInfoDO updateObj = BeanUtils.toBean(updateReqVO, MainInfoDO.class); | ||
| 51 | + mainInfoMapper.updateById(updateObj); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public void deleteMainInfo(Long id) { | ||
| 56 | + // 校验存在 | ||
| 57 | + validateMainInfoExists(id); | ||
| 58 | + // 删除 | ||
| 59 | + mainInfoMapper.deleteById(id); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + public void deleteMainInfoListByIds(List<Long> ids) { | ||
| 64 | + // 删除 | ||
| 65 | + mainInfoMapper.deleteByIds(ids); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + | ||
| 69 | + private void validateMainInfoExists(Long id) { | ||
| 70 | + if (mainInfoMapper.selectById(id) == null) { | ||
| 71 | + throw exception(MAIN_INFO_NOT_EXISTS); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + @Override | ||
| 76 | + public MainInfoDO getMainInfo(Long id) { | ||
| 77 | + return mainInfoMapper.selectById(id); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public PageResult<MainInfoDO> getMainInfoPage(MainInfoPageReqVO pageReqVO) { | ||
| 82 | + return mainInfoMapper.selectPage(pageReqVO); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | +} | ||
| 0 | \ No newline at end of file | 86 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/materialdetail/MaterialDetailService.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.service.materialdetail; | ||
| 2 | + | ||
| 3 | +import java.util.*; | ||
| 4 | +import jakarta.validation.*; | ||
| 5 | +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*; | ||
| 6 | +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO; | ||
| 7 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 8 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 工单耗材明细 Service 接口 | ||
| 12 | + * | ||
| 13 | + * @author 超级管理员 | ||
| 14 | + */ | ||
| 15 | +public interface MaterialDetailService { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 创建工单耗材明细 | ||
| 19 | + * | ||
| 20 | + * @param createReqVO 创建信息 | ||
| 21 | + * @return 编号 | ||
| 22 | + */ | ||
| 23 | + Long createMaterialDetail(@Valid MaterialDetailSaveReqVO createReqVO); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 更新工单耗材明细 | ||
| 27 | + * | ||
| 28 | + * @param updateReqVO 更新信息 | ||
| 29 | + */ | ||
| 30 | + void updateMaterialDetail(@Valid MaterialDetailSaveReqVO updateReqVO); | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 删除工单耗材明细 | ||
| 34 | + * | ||
| 35 | + * @param id 编号 | ||
| 36 | + */ | ||
| 37 | + void deleteMaterialDetail(Long id); | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 批量删除工单耗材明细 | ||
| 41 | + * | ||
| 42 | + * @param ids 编号 | ||
| 43 | + */ | ||
| 44 | + void deleteMaterialDetailListByIds(List<Long> ids); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得工单耗材明细 | ||
| 48 | + * | ||
| 49 | + * @param id 编号 | ||
| 50 | + * @return 工单耗材明细 | ||
| 51 | + */ | ||
| 52 | + MaterialDetailDO getMaterialDetail(Long id); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * 获得工单耗材明细分页 | ||
| 56 | + * | ||
| 57 | + * @param pageReqVO 分页查询 | ||
| 58 | + * @return 工单耗材明细分页 | ||
| 59 | + */ | ||
| 60 | + PageResult<MaterialDetailDO> getMaterialDetailPage(MaterialDetailPageReqVO pageReqVO); | ||
| 61 | + | ||
| 62 | +} | ||
| 0 | \ No newline at end of file | 63 | \ No newline at end of file |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/materialdetail/MaterialDetailServiceImpl.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.service.materialdetail; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import org.springframework.stereotype.Service; | ||
| 5 | +import jakarta.annotation.Resource; | ||
| 6 | +import org.springframework.validation.annotation.Validated; | ||
| 7 | +import org.springframework.transaction.annotation.Transactional; | ||
| 8 | + | ||
| 9 | +import java.util.*; | ||
| 10 | +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*; | ||
| 11 | +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO; | ||
| 12 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | ||
| 13 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 14 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | ||
| 15 | + | ||
| 16 | +import com.zteits.urbanops.module.workorder.dal.mysql.materialdetail.MaterialDetailMapper; | ||
| 17 | + | ||
| 18 | +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 19 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; | ||
| 20 | +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; | ||
| 21 | +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * 工单耗材明细 Service 实现类 | ||
| 25 | + * | ||
| 26 | + * @author 超级管理员 | ||
| 27 | + */ | ||
| 28 | +@Service | ||
| 29 | +@Validated | ||
| 30 | +public class MaterialDetailServiceImpl implements MaterialDetailService { | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private MaterialDetailMapper materialDetailMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public Long createMaterialDetail(MaterialDetailSaveReqVO createReqVO) { | ||
| 37 | + // 插入 | ||
| 38 | + MaterialDetailDO materialDetail = BeanUtils.toBean(createReqVO, MaterialDetailDO.class); | ||
| 39 | + materialDetailMapper.insert(materialDetail); | ||
| 40 | + | ||
| 41 | + // 返回 | ||
| 42 | + return materialDetail.getId(); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public void updateMaterialDetail(MaterialDetailSaveReqVO updateReqVO) { | ||
| 47 | + // 校验存在 | ||
| 48 | + validateMaterialDetailExists(updateReqVO.getId()); | ||
| 49 | + // 更新 | ||
| 50 | + MaterialDetailDO updateObj = BeanUtils.toBean(updateReqVO, MaterialDetailDO.class); | ||
| 51 | + materialDetailMapper.updateById(updateObj); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public void deleteMaterialDetail(Long id) { | ||
| 56 | + // 校验存在 | ||
| 57 | + validateMaterialDetailExists(id); | ||
| 58 | + // 删除 | ||
| 59 | + materialDetailMapper.deleteById(id); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + public void deleteMaterialDetailListByIds(List<Long> ids) { | ||
| 64 | + // 删除 | ||
| 65 | + materialDetailMapper.deleteByIds(ids); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + | ||
| 69 | + private void validateMaterialDetailExists(Long id) { | ||
| 70 | + if (materialDetailMapper.selectById(id) == null) { | ||
| 71 | + throw exception(MATERIAL_DETAIL_NOT_EXISTS); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + @Override | ||
| 76 | + public MaterialDetailDO getMaterialDetail(Long id) { | ||
| 77 | + return materialDetailMapper.selectById(id); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + @Override | ||
| 81 | + public PageResult<MaterialDetailDO> getMaterialDetailPage(MaterialDetailPageReqVO pageReqVO) { | ||
| 82 | + return materialDetailMapper.selectPage(pageReqVO); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | +} | ||
| 0 | \ No newline at end of file | 86 | \ No newline at end of file |
urbanops-module-workorder/src/main/resources/mapper/maininfo/MainInfoMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
urbanops-module-workorder/src/main/resources/mapper/mapper/attachment/AttachmentMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.workorder.dal.mysql.attachment.AttachmentMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
urbanops-module-workorder/src/main/resources/mapper/materialdetail/MaterialDetailMapper.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 3 | +<mapper namespace="com.zteits.urbanops.module.workorder.dal.mysql.materialdetail.MaterialDetailMapper"> | ||
| 4 | + | ||
| 5 | + <!-- | ||
| 6 | + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 | ||
| 7 | + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 | ||
| 8 | + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 | ||
| 9 | + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ | ||
| 10 | + --> | ||
| 11 | + | ||
| 12 | +</mapper> | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
urbanops-server/pom.xml
| @@ -43,6 +43,13 @@ | @@ -43,6 +43,13 @@ | ||
| 43 | <artifactId>urbanops-module-garden</artifactId> | 43 | <artifactId>urbanops-module-garden</artifactId> |
| 44 | <version>${revision}</version> | 44 | <version>${revision}</version> |
| 45 | </dependency> | 45 | </dependency> |
| 46 | + | ||
| 47 | + <!-- 工单管理 --> | ||
| 48 | + <dependency> | ||
| 49 | + <groupId>com.zteits.boot</groupId> | ||
| 50 | + <artifactId>urbanops-module-workorder</artifactId> | ||
| 51 | + <version>${revision}</version> | ||
| 52 | + </dependency> | ||
| 46 | <!-- 会员中心。默认注释,保证编译速度 --> | 53 | <!-- 会员中心。默认注释,保证编译速度 --> |
| 47 | <!-- <dependency>--> | 54 | <!-- <dependency>--> |
| 48 | <!-- <groupId>com.zteits.boot</groupId>--> | 55 | <!-- <groupId>com.zteits.boot</groupId>--> |