diff --git a/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java index 2f8a19c..84dfded 100644 --- a/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java +++ b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java @@ -53,6 +53,7 @@ public class ExcelUtils { return FastExcelFactory.read(file.getInputStream(), head, null) .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 .headRowNumber(startIndex) - .doReadAllSync(); + .sheet(0) + .doReadSync(); } } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/CostFeeController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/CostFeeController.java index 7b6094e..c4ef24d 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/CostFeeController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/CostFeeController.java @@ -6,6 +6,7 @@ import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.WaterFeeImp import com.zteits.urbanops.module.garden.enums.TemplateEnum; import com.zteits.urbanops.module.garden.service.costfee.CostFeeService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import lombok.Data; @@ -32,6 +33,7 @@ import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; * 人机材公共处理控制器 * 处理Excel导入预览、提交等功能 */ +@Tag(name = "管理后台 - 人机材批量导入") @RestController @RequestMapping("/costfee") @Slf4j @@ -100,6 +102,7 @@ public class CostFeeController{ * Excel文件上传预览 */ @PostMapping("/preview") + @Operation(summary = "文件上传") public CommonResult previewExcel(@RequestParam("file") MultipartFile file, @RequestParam("templateName") String templateName) { // 基础参数校验 @@ -145,6 +148,7 @@ public class CostFeeController{ * 分页获取预览数据 */ @GetMapping("/preview-data") + @Operation(summary = "批量上传分页预览") public CommonResult getPreviewData(@RequestParam("batchId") String batchId, @RequestParam("templateName") String templateName, @RequestParam(value = "page", defaultValue = "1") int page, @@ -186,6 +190,7 @@ public class CostFeeController{ * 提交导入数据到数据库 */ @PostMapping("/submit") + @Operation(summary = "批次保存") public CommonResult submitImport(@RequestParam("batchId") String batchId, @RequestParam("templateName") String templateName, @RequestParam("operator") String operator) { diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/TeamBizdomainRelVo.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/TeamBizdomainRelVo.java index 36773ba..612f8a7 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/TeamBizdomainRelVo.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/TeamBizdomainRelVo.java @@ -1,4 +1,4 @@ -package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; +package com.zteits.urbanops.module.garden.controller.admin.costfee.vo; import lombok.Data; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java index 5e08b77..e5b8363 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java @@ -1,14 +1,15 @@ package com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo; import cn.idev.excel.annotation.ExcelProperty; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; -import java.time.LocalDate; -import java.util.*; -import jakarta.validation.constraints.*; import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; @Schema(description = "管理后台 - 自有机械费用录入新增/修改 Request VO") @Data @@ -74,6 +75,6 @@ public class MechanicalCostSaveReqVO { private String remark; @ExcelProperty("班组") - private List teamIds; + private List teamIds; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java index ce66744..9541f66 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java @@ -10,10 +10,7 @@ import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.Person import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostRespVO; import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostSaveReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import com.zteits.urbanops.module.garden.enums.CostFeeConstants; import com.zteits.urbanops.module.garden.service.personalcost.PersonalCostService; -import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -26,8 +23,6 @@ import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java index f618eaa..2d4cee6 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java @@ -1,12 +1,14 @@ package com.zteits.urbanops.module.garden.controller.admin.personalcost.vo; import cn.idev.excel.annotation.ExcelProperty; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import jakarta.validation.constraints.*; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + import java.math.BigDecimal; +import java.util.List; @Schema(description = "管理后台 - 人员费用录入 - 个人费用新增/修改 Request VO") @Data @@ -44,6 +46,6 @@ public class PersonalCostSaveReqVO { @Schema(description = "备注", example = "随便") private String remark; @ExcelProperty("班组") - private List teamIds; + private List teamIds; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java index 93adbfc..2d163ed 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java @@ -1,38 +1,31 @@ package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost; -import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.MechanicalCostRespVO; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import com.zteits.urbanops.module.garden.enums.CostFeeConstants; -import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; -import org.springframework.web.bind.annotation.*; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import jakarta.validation.constraints.*; -import jakarta.validation.*; -import jakarta.servlet.http.*; -import java.util.*; -import java.io.IOException; -import java.util.stream.Collectors; - +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.pojo.PageParam; import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; - import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; - -import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; -import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; - -import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.*; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostRespVO; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostSaveReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; import com.zteits.urbanops.module.garden.service.rentalmechanicalcost.RentalMechanicalCostService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 租赁机械费用录入") @RestController diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java index b5ea97c..35b8608 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java @@ -1,17 +1,20 @@ package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; import cn.idev.excel.annotation.ExcelProperty; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import lombok.*; - -import java.time.LocalDate; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; +import com.fasterxml.jackson.annotation.JsonFormat; import com.zteits.urbanops.framework.common.pojo.PageParam; -import java.math.BigDecimal; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 租赁机械费用录入分页 Request VO") @@ -21,55 +24,14 @@ public class RentalMechanicalCostPageReqVO extends PageParam { @Schema(description = "机械名称", example = "张三") private String mechName; - @Schema(description = "机械类型", example = "2") - private String mechType; - @Schema(description = "租赁总价格", example = "316") - private BigDecimal rentalTotalPrice; - - @Schema(description = "数量") - private Integer quantity; - - @Schema(description = "车牌号") - private String licensePlate; - - @Schema(description = "车辆类别(如汽油、纯电新能源等)") - private String vehicleCategory; - - @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") - private String vehicleType; + private BigDecimal[] rentalTotalPrice; @Schema(description = "开始使用时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDate[] startUseTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date startUseTime; @Schema(description = "使用时长(天)") private Integer useDuration; - @Schema(description = "结束使用时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDate[] endUseTime; - - @Schema(description = "归属公司", example = "李四") - private String companyName; - - @Schema(description = "归属公司ID", example = "25530") - private String companyId; - - @Schema(description = "部门id", example = "25446") - private Long deptId; - - @Schema(description = "道路ID数组(多选)") - private String roadIds; - - @Schema(description = "备注", example = "你说的对") - private String remark; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @ExcelProperty("班组") - private List teamIds; - } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java index 3fe9f0d..03c2b07 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java @@ -1,15 +1,18 @@ package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDate; -import java.util.*; import java.math.BigDecimal; -import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDate; import java.time.LocalDateTime; -import cn.idev.excel.annotation.*; +import java.util.List; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; @Schema(description = "管理后台 - 租赁机械费用录入 Response VO") @Data diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java index bcd231f..2379eea 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java @@ -1,14 +1,17 @@ package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; import cn.idev.excel.annotation.ExcelProperty; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDate; -import java.util.*; -import jakarta.validation.constraints.*; import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Date; +import java.util.List; @Schema(description = "管理后台 - 租赁机械费用录入新增/修改 Request VO") @Data @@ -43,14 +46,16 @@ public class RentalMechanicalCostSaveReqVO { @Schema(description = "开始使用时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "开始使用时间不能为空") - private LocalDate startUseTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date startUseTime; @Schema(description = "使用时长(天)") private Integer useDuration; @Schema(description = "结束使用时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "结束使用时间不能为空") - private LocalDate endUseTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date endUseTime; @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") @NotEmpty(message = "归属公司不能为空") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java deleted file mode 100644 index 5831cf0..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel; - -import org.springframework.web.bind.annotation.*; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import jakarta.validation.constraints.*; -import jakarta.validation.*; -import jakarta.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import com.zteits.urbanops.framework.common.pojo.PageParam; -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.pojo.CommonResult; -import com.zteits.urbanops.framework.common.util.object.BeanUtils; -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; - -import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; - -import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; -import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; - -import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; - -@Tag(name = "管理后台 - 班组关联") -@RestController -@RequestMapping("/garden/team-bizdomain-rel") -@Validated -public class TeamBizdomainRelController { - - @Resource - private TeamBizdomainRelService teamBizdomainRelService; - - @PostMapping("/create") - @Operation(summary = "创建班组关联") - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:create')") - public CommonResult createTeamBizdomainRel(@Valid @RequestBody TeamBizdomainRelSaveReqVO createReqVO) { - return success(teamBizdomainRelService.createTeamBizdomainRel(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新班组关联") - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:update')") - public CommonResult updateTeamBizdomainRel(@Valid @RequestBody TeamBizdomainRelSaveReqVO updateReqVO) { - teamBizdomainRelService.updateTeamBizdomainRel(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除班组关联") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:delete')") - public CommonResult deleteTeamBizdomainRel(@RequestParam("id") Long id) { - teamBizdomainRelService.deleteTeamBizdomainRel(id); - return success(true); - } - - @DeleteMapping("/delete-list") - @Parameter(name = "ids", description = "编号", required = true) - @Operation(summary = "批量删除班组关联") - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:delete')") - public CommonResult deleteTeamBizdomainRelList(@RequestParam("ids") List ids) { - teamBizdomainRelService.deleteTeamBizdomainRelListByIds(ids); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得班组关联") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:query')") - public CommonResult getTeamBizdomainRel(@RequestParam("id") Long id) { - TeamBizdomainRelDO teamBizdomainRel = teamBizdomainRelService.getTeamBizdomainRel(id); - return success(BeanUtils.toBean(teamBizdomainRel, TeamBizdomainRelRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得班组关联分页") - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:query')") - public CommonResult> getTeamBizdomainRelPage(@Valid TeamBizdomainRelPageReqVO pageReqVO) { - PageResult pageResult = teamBizdomainRelService.getTeamBizdomainRelPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, TeamBizdomainRelRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出班组关联 Excel") - @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportTeamBizdomainRelExcel(@Valid TeamBizdomainRelPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = teamBizdomainRelService.getTeamBizdomainRelPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "班组关联.xls", "数据", TeamBizdomainRelRespVO.class, - BeanUtils.toBean(list, TeamBizdomainRelRespVO.class)); - } - -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java deleted file mode 100644 index 81118db..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import com.zteits.urbanops.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - 班组关联分页 Request VO") -@Data -public class TeamBizdomainRelPageReqVO extends PageParam { - - @Schema(description = "业务表主键", example = "4740") - private String busiId; - - @Schema(description = "班组编码", example = "27533") - private String teamId; - - @Schema(description = "班组名称", example = "王五") - private String teamName; - - @Schema(description = "班组名称") - private Long weight; - - @Schema(description = "归属公司", example = "张三") - private String companyName; - - @Schema(description = "归属公司ID", example = "29798") - private String companyId; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @Schema(description = "业务类型", example = "1") - private String busiType; - -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java deleted file mode 100644 index 6768b91..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import cn.idev.excel.annotation.*; - -@Schema(description = "管理后台 - 班组关联 Response VO") -@Data -@ExcelIgnoreUnannotated -public class TeamBizdomainRelRespVO { - - @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14177") - @ExcelProperty("记录ID,自增主键") - private Long id; - - @Schema(description = "业务表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4740") - @ExcelProperty("业务表主键") - private String busiId; - - @Schema(description = "班组编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "27533") - @ExcelProperty("班组编码") - private String teamId; - - @Schema(description = "班组名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") - @ExcelProperty("班组名称") - private String teamName; - - @Schema(description = "班组名称") - @ExcelProperty("班组名称") - private Long weight; - - @Schema(description = "归属公司", example = "张三") - @ExcelProperty("归属公司") - private String companyName; - - @Schema(description = "归属公司ID", example = "29798") - @ExcelProperty("归属公司ID") - private String companyId; - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "业务类型", example = "1") - @ExcelProperty("业务类型") - private String busiType; - -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java deleted file mode 100644 index f4f5eb8..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import jakarta.validation.constraints.*; - -@Schema(description = "管理后台 - 班组关联新增/修改 Request VO") -@Data -public class TeamBizdomainRelSaveReqVO { - - @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14177") - private Long id; - - @Schema(description = "业务表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4740") - @NotEmpty(message = "业务表主键不能为空") - private String busiId; - - @Schema(description = "班组编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "27533") - @NotEmpty(message = "班组编码不能为空") - private String teamId; - - @Schema(description = "班组名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") - @NotEmpty(message = "班组名称不能为空") - private String teamName; - - @Schema(description = "班组名称") - private Long weight; - - @Schema(description = "归属公司", example = "张三") - private String companyName; - - @Schema(description = "归属公司ID", example = "29798") - private String companyId; - - @Schema(description = "业务类型", example = "1") - private String busiType; - -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordSaveReqVO.java index 1428f52..3948ab7 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordSaveReqVO.java @@ -1,14 +1,15 @@ package com.zteits.urbanops.module.garden.controller.admin.wasterecord.vo; import cn.idev.excel.annotation.ExcelProperty; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; -import java.time.LocalDate; -import java.util.*; -import jakarta.validation.constraints.*; import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; @Schema(description = "管理后台 - 园林废弃物录入新增/修改 Request VO") @Data @@ -59,5 +60,5 @@ public class WasteRecordSaveReqVO { private String remark; @ExcelProperty("班组") - private List teamIds; + private List teamIds; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java index b9820f0..251d502 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; -import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.TeamBizdomainRelVo; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import lombok.*; import java.math.BigDecimal; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java deleted file mode 100644 index 7d9b2e8..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel; - -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; - -/** - * 班组关联 DO - * - * @author 超级管理员 - */ -@TableName("garden_team_bizdomain_rel") -@KeySequence("garden_team_bizdomain_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class TeamBizdomainRelDO extends BaseDO { - - /** - * 记录ID,自增主键 - */ - @TableId - private Long id; - /** - * 业务表主键 - */ - private String busiId; - /** - * 班组编码 - */ - private String teamId; - /** - * 班组名称 - */ - private String teamName; - /** - * 班组名称 - */ - private Long weight; - /** - * 归属公司 - */ - private String companyName; - /** - * 归属公司ID - */ - private String companyId; - /** - * 业务类型 - */ - private String busiType; - - -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java index de8b67c..8f5c1cc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java @@ -31,5 +31,12 @@ public interface DepartmentCostMapper extends BaseMapperX { .betweenIfPresent(DepartmentCostDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(DepartmentCostDO::getId)); } + /** + * 批量查询重复数据 + * + * @param keyList 部门信息集合 + * @return 结果 + */ + public List selectDuplicateIds(List keyList); -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java index 5106799..53bfdf0 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java @@ -39,4 +39,5 @@ public interface MechanicalCostMapper extends BaseMapperX { .orderByDesc(MechanicalCostDO::getId)); } -} \ No newline at end of file + public List selectDuplicateIds(List keyList); +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java index 155b9d2..16baa86 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java @@ -32,4 +32,13 @@ public interface PersonalCostMapper extends BaseMapperX { .orderByDesc(PersonalCostDO::getId)); } -} \ No newline at end of file + + /** + * 批量查询重复数据 + * + * @param keyList 人员费用信息集合 + * @return 结果 + */ + public List selectDuplicateIds(List keyList); + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java index 84ec663..69860a7 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java @@ -20,23 +20,23 @@ public interface RentalMechanicalCostMapper extends BaseMapperX selectPage(RentalMechanicalCostPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(RentalMechanicalCostDO::getMechName, reqVO.getMechName()) - .eqIfPresent(RentalMechanicalCostDO::getMechType, reqVO.getMechType()) - .eqIfPresent(RentalMechanicalCostDO::getRentalTotalPrice, reqVO.getRentalTotalPrice()) - .eqIfPresent(RentalMechanicalCostDO::getQuantity, reqVO.getQuantity()) - .eqIfPresent(RentalMechanicalCostDO::getLicensePlate, reqVO.getLicensePlate()) - .eqIfPresent(RentalMechanicalCostDO::getVehicleCategory, reqVO.getVehicleCategory()) - .eqIfPresent(RentalMechanicalCostDO::getVehicleType, reqVO.getVehicleType()) - .betweenIfPresent(RentalMechanicalCostDO::getStartUseTime, reqVO.getStartUseTime()) + //.eqIfPresent(RentalMechanicalCostDO::getMechType, reqVO.getMechType()) + .betweenIfPresent(RentalMechanicalCostDO::getRentalTotalPrice, reqVO.getRentalTotalPrice()) + //.eqIfPresent(RentalMechanicalCostDO::getQuantity, reqVO.getQuantity()) + //.eqIfPresent(RentalMechanicalCostDO::getLicensePlate, reqVO.getLicensePlate()) + //.eqIfPresent(RentalMechanicalCostDO::getVehicleCategory, reqVO.getVehicleCategory()) + // .eqIfPresent(RentalMechanicalCostDO::getVehicleType, reqVO.getVehicleType()) + //.betweenIfPresent(RentalMechanicalCostDO::getStartUseTime, reqVO.getStartUseTime()) + .eqIfPresent(RentalMechanicalCostDO::getStartUseTime, reqVO.getStartUseTime()) .eqIfPresent(RentalMechanicalCostDO::getUseDuration, reqVO.getUseDuration()) - .betweenIfPresent(RentalMechanicalCostDO::getEndUseTime, reqVO.getEndUseTime()) - .likeIfPresent(RentalMechanicalCostDO::getCompanyName, reqVO.getCompanyName()) - .eqIfPresent(RentalMechanicalCostDO::getCompanyId, reqVO.getCompanyId()) - .eqIfPresent(RentalMechanicalCostDO::getDeptId, reqVO.getDeptId()) - .eqIfPresent(RentalMechanicalCostDO::getTeamIds, reqVO.getTeamIds()) - .eqIfPresent(RentalMechanicalCostDO::getRoadIds, reqVO.getRoadIds()) - .eqIfPresent(RentalMechanicalCostDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(RentalMechanicalCostDO::getCreateTime, reqVO.getCreateTime()) + //.betweenIfPresent(RentalMechanicalCostDO::getEndUseTime, reqVO.getEndUseTime()) + //.likeIfPresent(RentalMechanicalCostDO::getCompanyName, reqVO.getCompanyName()) + //.eqIfPresent(RentalMechanicalCostDO::getCompanyId, reqVO.getCompanyId()) + //.eqIfPresent(RentalMechanicalCostDO::getDeptId, reqVO.getDeptId()) + //.eqIfPresent(RentalMechanicalCostDO::getRoadIds, reqVO.getRoadIds()) + ///.//eqIfPresent(RentalMechanicalCostDO::getRemark, reqVO.getRemark()) + //.betweenIfPresent(RentalMechanicalCostDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(RentalMechanicalCostDO::getId)); } -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java deleted file mode 100644 index b7e57e0..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.zteits.urbanops.module.garden.dal.mysql.teambizdomainrel; - -import java.util.*; - -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; -import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import org.apache.ibatis.annotations.Mapper; -import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; - -/** - * 班组关联 Mapper - * - * @author 超级管理员 - */ -@Mapper -public interface TeamBizdomainRelMapper extends BaseMapperX { - - default PageResult selectPage(TeamBizdomainRelPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(TeamBizdomainRelDO::getBusiId, reqVO.getBusiId()) - .eqIfPresent(TeamBizdomainRelDO::getTeamId, reqVO.getTeamId()) - .likeIfPresent(TeamBizdomainRelDO::getTeamName, reqVO.getTeamName()) - .eqIfPresent(TeamBizdomainRelDO::getWeight, reqVO.getWeight()) - .likeIfPresent(TeamBizdomainRelDO::getCompanyName, reqVO.getCompanyName()) - .eqIfPresent(TeamBizdomainRelDO::getCompanyId, reqVO.getCompanyId()) - .betweenIfPresent(TeamBizdomainRelDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(TeamBizdomainRelDO::getBusiType, reqVO.getBusiType()) - .orderByDesc(TeamBizdomainRelDO::getId)); - } - -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java index b89e5e0..7a6e382 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java @@ -32,4 +32,12 @@ public interface WaterFeeMapper extends BaseMapperX { .orderByDesc(WaterFeeDO::getId)); } -} \ No newline at end of file + + /** + * 批量查询重复数据 + * + * @param keyList 水费录入信息集合 + * @return 结果 + */ + public List selectDuplicateIds(List keyList); +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/TemplateEnum.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/TemplateEnum.java index 08c01b2..d11a53e 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/TemplateEnum.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/TemplateEnum.java @@ -7,6 +7,9 @@ import lombok.Getter; import java.util.HashMap; import java.util.Map; +import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception0; + /** * Excel导入模板枚举 * 存储模板编码、名称、起始行索引及对应的数据导入类 @@ -29,35 +32,35 @@ public enum TemplateEnum { 2, PersonalCostImport.class, true // 新增默认值 + ), + COSTFEE_DEPARTMENT( + "costFee_department", + "综合费用导入模板.xlsx", + 2, + DepartmentCostImport.class, + true // 新增默认值 + ), + COSTFEE_GARDENWASTE( + "costFee_gardenWaste", + "园林废弃物费用导入模板.xlsx", + 2, + GardenWasteRecordImport.class, + true // 新增默认值 + ), + COSTFEE_MECHANICAL( + "costFee_mechanical", + "自有机械费用导入模板.xlsx", + 2, + MechanicalCostImport.class, + true // 新增默认值 + ), + COSTFEE_RENTALMECHANICAL( + "costFee_rentalmechanical", + "租赁机械费用导入模板.xlsx", + 2, + RentalMechanicalCostImport.class, + true // 新增默认值 ); -// COSTFEE_DEPARTMENT( -// "costFee_department", -// "综合费用导入模板.xlsx", -// 1, -// DepartmentCostImport.class, -// true // 新增默认值 -// ), -// COSTFEE_GARDENWASTE( -// "costFee_gardenWaste", -// "园林废弃物费用导入模板.xlsx", -// 1, -// GardenWasteRecordImport.class, -// true // 新增默认值 -// ), -// COSTFEE_MECHANICAL( -// "costFee_mechanical", -// "自有机械费用导入模板.xlsx", -// 1, -// MechanicalCostImport.class, -// true // 新增默认值 -// ), -// COSTFEE_RENTALMECHANICAL( -// "costFee_rentalmechanical", -// "租赁机械费用导入模板.xlsx", -// 1, -// RentalMechanicalCostImport.class, -// true // 新增默认值 -// ); // 模板编码(前端传递的标识) private final String code; @@ -86,12 +89,12 @@ public enum TemplateEnum { public static TemplateEnum getByCode(String code) { // 空值校验 if (code == null || code.trim().isEmpty()) { - throw new RuntimeException("模板编码不能为空"); + throw exception0(BAD_REQUEST.getCode(),"模板编码不能为空"); } // 从缓存获取,避免循环遍历 TemplateEnum template = CODE_MAP.get(code); if (template == null) { - throw new RuntimeException("无效的模板编码:" + code); + throw exception0(BAD_REQUEST.getCode(),"无效的模板编码"+code); } return template; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/costfee/CostFeeServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/costfee/CostFeeServiceImpl.java index bea389e..e06fe59 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/costfee/CostFeeServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/costfee/CostFeeServiceImpl.java @@ -5,6 +5,18 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.zteits.urbanops.framework.security.core.LoginUser; import com.zteits.urbanops.module.garden.controller.admin.costfee.CostFeeController; import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost.MechanicalCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.wasterecord.WasteRecordDO; +import com.zteits.urbanops.module.garden.dal.dataobject.waterfee.WaterFeeDO; +import com.zteits.urbanops.module.garden.dal.mysql.departmentcost.DepartmentCostMapper; +import com.zteits.urbanops.module.garden.dal.mysql.mechanicalcost.MechanicalCostMapper; +import com.zteits.urbanops.module.garden.dal.mysql.personalcost.PersonalCostMapper; +import com.zteits.urbanops.module.garden.dal.mysql.rentalmechanicalcost.RentalMechanicalCostMapper; +import com.zteits.urbanops.module.garden.dal.mysql.wasterecord.WasteRecordMapper; +import com.zteits.urbanops.module.garden.dal.mysql.waterfee.WaterFeeMapper; import com.zteits.urbanops.module.garden.enums.AssignTasksConstants; import com.zteits.urbanops.module.garden.enums.CostFeeConstants; import com.zteits.urbanops.module.garden.enums.TemplateEnum; @@ -16,6 +28,7 @@ import jakarta.validation.ConstraintViolationException; import jakarta.validation.Validator; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.BoundHashOperations; import org.springframework.data.redis.core.RedisTemplate; @@ -24,8 +37,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.io.IOException; +import java.time.LocalDate; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -59,6 +74,20 @@ public class CostFeeServiceImpl implements CostFeeService { @Resource private DeptApi deptApi; + @Autowired + private WaterFeeMapper waterFeeMapper; + @Autowired + private PersonalCostMapper personalCostMapper; + @Autowired + private DepartmentCostMapper departmentCostMapper; + @Autowired + private MechanicalCostMapper mechanicalCostMapper; + @Autowired + private RentalMechanicalCostMapper rentalMechanicalCostMapper; + @Autowired + private WasteRecordMapper wasteRecordMapper; + + @Override /** * 保存数据到Redis @@ -99,7 +128,7 @@ public class CostFeeServiceImpl implements CostFeeService { TemplateEnum template = TemplateEnum.getByCode(templateName); Class importClass = template.getImportClass(); if (importClass == null) { - throw exception(COST_FEE_NOT_EXISTS_001); + throw exception0(BAD_REQUEST.getCode(),"导入模板配置异常"); } // 分页参数设置 @@ -118,7 +147,7 @@ public class CostFeeServiceImpl implements CostFeeService { if (dataList == null || dataList.isEmpty()) { // 首次分页就无数据,抛出异常 if (pageNum == 1) { - throw new IllegalArgumentException("没有可导入的数据或数据已过期"); + throw exception0(BAD_REQUEST.getCode(),"没有可导入的数据或数据已过期"); } break; } @@ -128,7 +157,7 @@ public class CostFeeServiceImpl implements CostFeeService { // 调用业务服务执行本页数据导入 int currentPageCount = dataList.size(); - //insertData(template, dataList, operator); + insertData(template, dataList, operator); totalImported += currentPageCount; // 打印分页处理日志(可选) @@ -152,6 +181,243 @@ public class CostFeeServiceImpl implements CostFeeService { return totalImported; } + /** + * @Author wangqian + * @Description 保存数据 + * @Date 2025/7/20 11:30 + * @Param template + * @param dataList + * @param operator + * @Return void + */ + private void insertData(TemplateEnum template, List dataList, String operator) { + if (CollectionUtils.isEmpty(dataList)) { + log.info("数据列表为空,跳过插入操作"); + return; + } + //单位集合 + List companyList = deptApi.getSubDeptList(); + // 1. 预加载部门映射(循环外加载,避免重复查询) + List deptIds = companyList.stream().map(DeptRespDTO::getId).collect(Collectors.toList()); + Map nameToCompanyIdMap = CollectionUtils.isEmpty(companyList) ? Map.of() + : companyList.stream() + // 转 Map:key=companyId,value=companyName;key 冲突时保留最后一个(可调整) + .collect(Collectors.toMap( + dept -> dept.getName().trim(), // value 映射:取 companyName(去空格) + DeptRespDTO::getId, // key 映射:取 companyId + (oldValue, newValue) -> newValue + )); + + + // 模板类型校验 + Class importClass = template.getImportClass(); // 从枚举获取导入类,避免switch + // 根据不同模板类型执行不同的处理逻辑 + if (WaterFeeImport.class.isAssignableFrom(importClass)) { + Map companyIdToNamedMap = CollectionUtils.isEmpty(companyList) ? Map.of() + : companyList.stream() + // 转 Map:key=companyId,value=companyName;key 冲突时保留最后一个(可调整) + .collect(Collectors.toMap( + DeptRespDTO::getId, // key 映射:取 companyId + dept -> dept.getName().trim(), // value 映射:取 companyName(去空格) + (oldValue, newValue) -> newValue + )); + + // 处理水费数据 + List feeList = ((List) dataList).stream() + .map(importObj -> { + WaterFeeDO fee = new WaterFeeDO(); + BeanUtils.copyProperties(importObj, fee); + fee.setCompanyId(String.valueOf(getLoginUserDeptId())); + if (getLoginUserDeptId() == 100) { + fee.setCompanyName("蓟城山水"); + } else { + // 设置单位id + fee.setCompanyName(String.valueOf(companyIdToNamedMap.get(fee.getCompanyId()))); + } + return fee; + }) + .collect(Collectors.toMap( + // 生成唯一键:feeMonth + 分隔符 + meterCode(避免不同组合拼接后重复) + fee -> fee.getFeeMonth() + "_" + fee.getMeterCode(), + // 值为对象本身 + Function.identity(), + // 当键重复时,保留第一个出现的对象(可根据需求改为保留最后一个:(existing, replacement) -> replacement) + (existing, replacement) -> replacement + )) + .values() + .stream() + .collect(Collectors.toList()); + + if (!CollectionUtils.isEmpty(feeList)) { + //查询重复项,进行删除 + List ids = waterFeeMapper.selectDuplicateIds(feeList); + if (!CollectionUtils.isEmpty(ids)) { + waterFeeMapper.deleteByIds(ids); + } + // 调用批量插入方法 + waterFeeMapper.insertBatch(feeList); + } + log.info("成功插入 {} 条水费数据", feeList.size()); + } else if (PersonalCostImport.class.isAssignableFrom(importClass)) { + //去重 + dataList = personalFeeReplacement((List) dataList); + //获取班组对象 + Map teamIdMap = this.getDeptListAll(deptIds); + + // 3. 转换导入数据为PersonalCost列表(Stream优化+空指针防护) + List feeList = (List)dataList; + List saveFeeList = new ArrayList<>(CollectionUtils.isEmpty(feeList) ? 0 : feeList.size()); + if (!CollectionUtils.isEmpty(feeList)) { + for (PersonalCostImport importObj : feeList) { + PersonalCostDO fee = new PersonalCostDO(); + BeanUtils.copyProperties(importObj, fee); + // 设置单位id + fee.setCompanyId(String.valueOf(nameToCompanyIdMap.get(fee.getCompanyName()))); + //设置班组id + fee.setDeptId(getDeptList(teamIdMap, importObj.getTeamIds())); + saveFeeList.add(fee); + } + } + // 4. 处理重复数据(删除+插入原子性) + if (!feeList.isEmpty()) { + // 4.1 查询并删除重复项 + +// List duplicateIds = personalCostMapper.selectDuplicateIds(saveFeeList); +// if (!duplicateIds.isEmpty()) { +// personalCostMapper.deleteByIds(duplicateIds); +// } + + // 4.2 批量插入主表 + personalCostMapper.insertBatch(saveFeeList); + } + log.info("成功插入 {} 人员费用数据", dataList.size()); + } else if (DepartmentCostImport.class.isAssignableFrom(importClass)) { + //去重 + dataList = deptFeeReplacement((List)dataList); + List feeList = ((List) dataList).stream() + .map(importObj -> { + DepartmentCostDO fee = new DepartmentCostDO(); + BeanUtils.copyProperties(importObj, fee); + // 设置单位id + fee.setCompanyId(String.valueOf(nameToCompanyIdMap.get(fee.getCompanyName()))); + return fee; + }) + .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(feeList)) { + //查询重复项,进行删除 + List ids = departmentCostMapper.selectDuplicateIds(feeList); + if (!CollectionUtils.isEmpty(ids)) { + departmentCostMapper.deleteByIds(ids); + } + // 调用批量插入方法 + departmentCostMapper.insertBatch(feeList); + } + log.info("成功插入 {} 综合费用数据", feeList.size()); + } else if (MechanicalCostImport.class.isAssignableFrom(importClass)) { + List feeList = (List) dataList; + List saveFeeList = new ArrayList<>(CollectionUtils.isEmpty(feeList) ? 0 : feeList.size()); + if (!CollectionUtils.isEmpty(feeList)) { + //获取班组对象 + Map teamIdMap = this.getDeptListAll(deptIds); + for (MechanicalCostImport importObj : feeList) { + MechanicalCostDO fee = new MechanicalCostDO(); + BeanUtils.copyProperties(importObj, fee); + // 设置单位id + fee.setCompanyId(String.valueOf(nameToCompanyIdMap.get(fee.getCompanyName()))); + //设置班组id + fee.setDeptId(getDeptList(teamIdMap, importObj.getTeamIds())); + // 3.3 计算结束时间(空指针防护) + Optional.ofNullable(fee.getStartUseTime()) + .ifPresent(startTime -> { + int useDuration = Optional.ofNullable(fee.getServiceLife()) + .map(Math::toIntExact) // 处理可能的溢出 + .orElse(0); + fee.setEndUseTime(this.getEndLocalDateForYears(startTime, useDuration)); + }); + + saveFeeList.add(fee); + } + } + // 4. 批量插入主表(空集合直接跳过) + if (!feeList.isEmpty()) { + //查询重复项,进行删除 + List ids = mechanicalCostMapper.selectDuplicateIds(saveFeeList); + if (!CollectionUtils.isEmpty(ids)) { + mechanicalCostMapper.deleteByIds(ids); + } + mechanicalCostMapper.insertBatch(saveFeeList); + } + log.info("成功插入 {} 自有机械费用数据", dataList.size()); + } else if (RentalMechanicalCostImport.class.isAssignableFrom(importClass)) { + List feeList = (List)dataList; + List saveFeeList = new ArrayList<>(CollectionUtils.isEmpty(feeList) ? 0 : feeList.size()); + if (!CollectionUtils.isEmpty(feeList)) { + //获取班组对象 + Map teamIdMap = this.getDeptListAll(deptIds); + for (RentalMechanicalCostImport importObj : feeList) { + RentalMechanicalCostDO fee = new RentalMechanicalCostDO(); + BeanUtils.copyProperties(importObj, fee); + // 设置单位id + fee.setCompanyId(String.valueOf(nameToCompanyIdMap.get(fee.getCompanyName()))); + //设置班组id + List teamRels = new ArrayList<>(); + String teamIdsStr = StringUtils.defaultString(importObj.getTeamIds()).replace(",", ","); + String weightsStr = StringUtils.defaultString(importObj.getWeight()).replace(",", ","); + + String[] teamIds = teamIdsStr.split(","); + String[] weights = weightsStr.split(","); + for (int i = 0; i < teamIds.length; i++) { + TeamBizdomainRelVo rel = new TeamBizdomainRelVo(); + rel.setTeamName(teamIds[i].trim()); + // 提前处理部门ID映射(复用deptMap) + rel.setTeamId(Optional.ofNullable(teamIdMap.get(teamIds[i].trim())).map(String::valueOf).orElse(null)); + rel.setWeight(Long.valueOf(weights[i].trim())); + teamRels.add(rel); + } + fee.setTeamIds(teamRels); + + // 3.3 计算结束时间(空指针防护) + Optional.ofNullable(fee.getStartUseTime()) + .ifPresent(startTime -> { + int useDuration = Optional.ofNullable(fee.getUseDuration()) + .map(Math::toIntExact) // 处理可能的溢出 + .orElse(0); + fee.setEndUseTime(getEndLocalDateForYears(startTime, useDuration)); + }); + + saveFeeList.add(fee); + } + } + if (!feeList.isEmpty()) { + rentalMechanicalCostMapper.insertBatch(saveFeeList); + } + log.info("成功插入 {} 租赁机械费用数据", dataList.size()); + } else if (GardenWasteRecordImport.class.isAssignableFrom(importClass)) { + //获取班组对象 + List feeList = (List)dataList; + List saveFeeList = new ArrayList<>(CollectionUtils.isEmpty(feeList) ? 0 : feeList.size()); + if (!CollectionUtils.isEmpty(feeList)) { + Map teamIdMap = this.getDeptListAll(deptIds); + for (GardenWasteRecordImport importObj : feeList) { + WasteRecordDO fee = new WasteRecordDO(); + BeanUtils.copyProperties(importObj, fee); + // 设置单位id + fee.setCompanyId(String.valueOf(nameToCompanyIdMap.get(fee.getCompanyName()))); + //设置班组id + fee.setDeptId(getDeptList(teamIdMap, importObj.getTeamIds())); + + saveFeeList.add(fee); + } + } + // 4. 批量插入主表(若主表插入失败,事务回滚) + if (!feeList.isEmpty()) { + wasteRecordMapper.insertBatch(saveFeeList); + } + + log.info("成功插入 {} 园林废弃物费用数据", dataList.size()); + } + + } /** * 从Redis获取分页数据 @@ -309,6 +575,11 @@ public class CostFeeServiceImpl implements CostFeeService { // 抛出包含行号和所有错误的异常 // throw exception0(BAD_REQUEST.getCode(), errorMsg.toString().trim(), violations); } + Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); + //单位校验 + validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); + //部门名称校验 + validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); } catch (ConstraintViolationException ex) { // 5. 包装异常,明确行号 + 真实校验错误( @@ -339,7 +610,11 @@ public class CostFeeServiceImpl implements CostFeeService { // 抛出包含行号和所有错误的异常 //throw exception0(BAD_REQUEST.getCode(), errorMsg.toString().trim(), violations); } - + Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); + //单位校验 + validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); + //部门名称校验 + validateTeams(rowNum, deptList.get(companyId), importBean.getTeamIds()); } catch (ConstraintViolationException ex) { throw exception0(BAD_REQUEST.getCode(), String.format("第%d条数据校验失败:%s", rowNum, ex.getMessage()), ex); @@ -475,7 +750,9 @@ public class CostFeeServiceImpl implements CostFeeService { //throw new ConstraintViolationException(errorMsg.toString().trim(), violations); } - + Long companyId = nameToCompanyIdMap.get(importBean.getCompanyName()); + //单位校验 + validatecompany(rowNum, importBean.getCompanyName(), companyId, deptId); } catch (ConstraintViolationException ex) { // 5. 包装异常,明确行号 + 真实校验错误( throw exception0(BAD_REQUEST.getCode(), String.format("第%d条数据校验失败:%s", rowNum, ex.getMessage()), ex); @@ -501,30 +778,32 @@ public class CostFeeServiceImpl implements CostFeeService { } } private void validateTeams(int rowNum, List dept, String teamIds) { - String[] teamNames = teamIds.split(","); - Set checkedTeams = new HashSet<>(); // 用于存储已校验的团队名称,检测重复 - - for (String teamName : teamNames) { - String trimmedTeamName = teamName.trim(); // 处理前后空格 + if (StringUtils.isNotEmpty(teamIds)) { + String[] teamNames = teamIds.split(","); + Set checkedTeams = new HashSet<>(); // 用于存储已校验的团队名称,检测重复 + + for (String teamName : teamNames) { + String trimmedTeamName = teamName.trim(); // 处理前后空格 + + // 重复校验:如果Set中已存在该团队名称,说明重复 + if (checkedTeams.contains(trimmedTeamName)) { + throw exception0(BAD_REQUEST.getCode(), String.format( + "第%d条数据:%s名称重复", + rowNum, teamName + )); + } - // 重复校验:如果Set中已存在该团队名称,说明重复 - if (checkedTeams.contains(trimmedTeamName)) { - throw exception0(BAD_REQUEST.getCode(), String.format( - "第%d条数据:%s名称重复", - rowNum, teamName - )); - } + // 存在性校验:检查团队是否在dept中存在 + if (!dept.contains(trimmedTeamName)) { + throw exception0(BAD_REQUEST.getCode(), String.format( + "第%d条数据:%s名称不正确", + rowNum, teamName + )); + } - // 存在性校验:检查团队是否在dept中存在 - if (!dept.contains(trimmedTeamName)) { - throw exception0(BAD_REQUEST.getCode(), String.format( - "第%d条数据:%s名称不正确", - rowNum, teamName - )); + // 将校验通过的团队名称加入Set,用于后续重复判断 + checkedTeams.add(trimmedTeamName); } - - // 将校验通过的团队名称加入Set,用于后续重复判断 - checkedTeams.add(trimmedTeamName); } } @@ -538,4 +817,167 @@ public class CostFeeServiceImpl implements CostFeeService { } return listMap; } + + /** + * 按salaryMonth、expenseName、companyId三个字段去重 + * @param costList 原始部门成本列表 + * @return 去重后的列表 + */ + public List deptFeeReplacement(List costList) { + if (costList == null || costList.isEmpty()) { + return new ArrayList<>(); + } + + // 1. 以三个字段的组合作为键(使用分隔符避免不同组合产生相同键) + // 2. 遇到重复键时保留第一条记录 + Map uniqueMap = costList.stream() + .collect(Collectors.toMap( + // 生成唯一键:salaryMonth|expenseName|companyId + cost -> buildUniqueKey(cost), + // 键不存在时存入当前对象 + cost -> cost, + // 键已存在时保留最后一个 + (existing, replacement) -> replacement + )); + + // 将去重后的结果转为List返回 + return new ArrayList<>(uniqueMap.values()); + } + + /** + * 构建三个字段的唯一组合键(处理null值) + */ + private String buildUniqueKey(DepartmentCostImport cost) { + // 使用Objects.toString处理可能的null值,避免NullPointerException + return Objects.toString(cost.getSalaryMonth(), "") + "|" + + Objects.toString(cost.getExpenseName(), "") + "|" + + Objects.toString(cost.getCompanyName(), ""); + } + + /** + * 按salaryMonth、name、companyId、teamIdList四个字段去重 + * @param costList 原始个人成本列表 + * @return 去重后的列表 + */ + public List personalFeeReplacement(List costList) { + if (costList == null || costList.isEmpty()) { + return new ArrayList<>(); + } + + // 1. 以四个字段的组合作为键(特别处理集合类型的teamIdList) + // 2. 遇到重复键时保留第一条记录 + Map uniqueMap = costList.stream() + .collect(Collectors.toMap( + // 生成唯一键:salaryMonth|name|companyId|teamIdListStr + this::buildUniqueKey, + // 键不存在时存入当前对象 + cost -> cost, + // 键已存在时保留第一个对象(可改为replacement保留最后一个) + (existing, replacement) -> replacement + )); + + // 将去重后的结果转为List返回 + return new ArrayList<>(uniqueMap.values()); + } + + /** + * 构建四个字段的唯一组合键(处理null值和集合类型) + */ + private String buildUniqueKey(PersonalCostImport cost) { + // 处理普通字段的null值 + String salaryMonth = Objects.toString(cost.getSalaryMonth(), ""); + String name = Objects.toString(cost.getName(), ""); + String companyId = Objects.toString(cost.getCompanyName(), ""); + String teamIds = Objects.toString(cost.getTeamIds(), ""); + // 拼接唯一键 + return salaryMonth + "|" + name + "|" + companyId + "|" + teamIds; + } + + + public static LocalDate getEndLocalDateForYears(LocalDate startDate, int years) { + if (startDate == null) { + throw new IllegalArgumentException("开始日期不能为null"); + } + if (years < 0) { + throw new IllegalArgumentException("年数不能为负数"); + } + return startDate.plusYears(years); + } + + /** + * @Author wangqian + * @Description 根据班组名称获取班组id + * @Date 2025/11/26 19:38 + */ + /** + * 根据部门ID列表获取「部门名称→部门ID」的映射(含空值防护) + */ + private Map getDeptListAll(List deptIds) { + Map deptNameMap = new HashMap<>(); + + // 1. 空值安全:避免 deptIds 为 null/空列表导致 NPE + if (CollectionUtils.isEmpty(deptIds)) { + return deptNameMap; + } + + for (Long deptId : deptIds) { + // 2. 跳过 null 的部门ID + if (deptId == null) { + continue; + } + + // 3. 获取子部门列表(防护接口返回 null) + List deptList = deptApi.getChildDeptList(deptId); + if (CollectionUtils.isEmpty(deptList)) { + continue; + } + + // 4. 遍历子部门:过滤无效名称,避免 Map 出现 null/空字符串键 + for (DeptRespDTO dept : deptList) { + if (dept == null) { + continue; + } + String deptName = dept.getName(); + // 过滤 null/空白名称(避免 Map 键为 null 或空字符串) + if (deptName == null || deptName.trim().isEmpty()) { + continue; + } + // 若名称重复,后遍历的部门会覆盖先遍历的(可根据业务调整规则) + deptNameMap.put(deptName.trim(), dept.getId()); + } + } + + return deptNameMap; + } + /** + * @Author wangqian + * @Description 根据班组名称获取班组id集合 + * @Date 2025/11/26 20:07 + */ + private List getDeptList(Map teamIdMap, String teamId) { + List list = new ArrayList<>(); + + // 1. 处理 teamId 为空的情况,直接返回空列表 + if (StringUtils.isEmpty(teamId)) { + return list; + } + + // 2. 分割字符串,处理空元素 + String[] teamArray = teamId.split(","); + for (String teamName : teamArray) { + // 3. 去除首尾空格,避免因空格导致匹配不到 + String trimTeamName = teamName.trim(); + if (StringUtils.isEmpty(trimTeamName)) { + continue; // 跳过空字符串元素 + } + + // 4. 从Map中获取ID,处理null值(避免添加null到列表) + Long deptId = teamIdMap.get(trimTeamName); + if (deptId != null) { + list.add(String.valueOf(deptId)); // 直接添加Long类型,修正原String类型错误 + } + } + + return list; + } } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java index 2c0eb85..08f07e1 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java @@ -4,12 +4,10 @@ import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.MechanicalCostPageReqVO; import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.MechanicalCostSaveReqVO; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost.MechanicalCostDO; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; import com.zteits.urbanops.module.garden.dal.mysql.mechanicalcost.MechanicalCostMapper; -import com.zteits.urbanops.module.garden.enums.CostFeeConstants; import com.zteits.urbanops.module.garden.service.mechanicaldepreciation.MechanicalDepreciationService; -import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; import jakarta.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -43,7 +41,7 @@ public class MechanicalCostServiceImpl implements MechanicalCostService { MechanicalCostDO mechanicalCost = BeanUtils.toBean(createReqVO, MechanicalCostDO.class); List deptIds = createReqVO.getTeamIds().stream() - .map(TeamBizdomainRelDO::getTeamId) + .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); mechanicalCost.setDeptId(deptIds); @@ -60,7 +58,7 @@ public class MechanicalCostServiceImpl implements MechanicalCostService { MechanicalCostDO updateObj = BeanUtils.toBean(updateReqVO, MechanicalCostDO.class); List deptIds = updateReqVO.getTeamIds().stream() - .map(TeamBizdomainRelDO::getTeamId) + .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); updateObj.setDeptId(deptIds); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java index e3c11db..8dd4ea2 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java @@ -1,28 +1,22 @@ package com.zteits.urbanops.module.garden.service.mechanicaldepreciation; -import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.*; -import com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation.MechanicalDepreciationDO; import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.pojo.PageParam; import com.zteits.urbanops.framework.common.util.object.BeanUtils; - +import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.MechanicalDepreciationPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.MechanicalDepreciationSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation.MechanicalDepreciationDO; import com.zteits.urbanops.module.garden.dal.mysql.mechanicaldepreciation.MechanicalDepreciationMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; -import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.MECHANICAL_DEPRECIATION_NOT_EXISTS; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.MECHANICAL_DEPRECIATION_NOT_EXISTS_001; /** * 自有机械折旧子 Service 实现类 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java index 0c9bf41..6a1d506 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java @@ -5,8 +5,9 @@ import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostPageReqVO; import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostSaveReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; import com.zteits.urbanops.module.garden.dal.mysql.personalcost.PersonalCostMapper; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; + import com.zteits.urbanops.module.system.api.dept.DeptApi; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -40,7 +41,7 @@ public class PersonalCostServiceImpl implements PersonalCostService { // 插入 PersonalCostDO personalCost = BeanUtils.toBean(createReqVO, PersonalCostDO.class); List deptIds = createReqVO.getTeamIds().stream() - .map(TeamBizdomainRelDO::getTeamId) + .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); personalCost.setDeptId(deptIds); personalCostMapper.insert(personalCost); @@ -56,7 +57,7 @@ public class PersonalCostServiceImpl implements PersonalCostService { // 更新 PersonalCostDO updateObj = BeanUtils.toBean(updateReqVO, PersonalCostDO.class); List deptIds = updateReqVO.getTeamIds().stream() - .map(TeamBizdomainRelDO::getTeamId) + .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); updateObj.setDeptId(deptIds); personalCostMapper.updateById(updateObj); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java index 806016a..ad4249f 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java @@ -6,18 +6,14 @@ import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.v import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostSaveReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; import com.zteits.urbanops.module.garden.dal.mysql.rentalmechanicalcost.RentalMechanicalCostMapper; -import com.zteits.urbanops.module.garden.enums.CostFeeConstants; -import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; import jakarta.annotation.Resource; -import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.List; - import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.RENTAL_MECHANICAL_COST_NOT_EXISTS; /** * 租赁机械费用录入 Service 实现类 @@ -31,15 +27,11 @@ public class RentalMechanicalCostServiceImpl implements RentalMechanicalCostServ @Resource private RentalMechanicalCostMapper rentalMechanicalCostMapper; - @Resource - private TeamBizdomainRelService teamBizdomainRelService; - @Override public Long createRentalMechanicalCost(RentalMechanicalCostSaveReqVO createReqVO) { // 插入 RentalMechanicalCostDO rentalMechanicalCost = BeanUtils.toBean(createReqVO, RentalMechanicalCostDO.class); rentalMechanicalCostMapper.insert(rentalMechanicalCost); - // 返回 return rentalMechanicalCost.getId(); } @@ -51,10 +43,6 @@ public class RentalMechanicalCostServiceImpl implements RentalMechanicalCostServ // 更新 RentalMechanicalCostDO updateObj = BeanUtils.toBean(updateReqVO, RentalMechanicalCostDO.class); rentalMechanicalCostMapper.updateById(updateObj); - - //add by wq 保存班组信息关联表 - teamBizdomainRelService.deleteTeamBizdomainRel(updateObj.getId(), CostFeeConstants.COSTFEE_RENTALMECHANICAL); - //add by wq 保存班组信息关联表 } @Override diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java deleted file mode 100644 index 7ac5537..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.zteits.urbanops.module.garden.service.teambizdomainrel; - -import java.util.*; -import jakarta.validation.*; -import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.pojo.PageParam; - -/** - * 班组关联 Service 接口 - * - * @author 超级管理员 - */ -public interface TeamBizdomainRelService { - - /** - * 创建班组关联 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createTeamBizdomainRel(@Valid TeamBizdomainRelSaveReqVO createReqVO); - - /** - * 更新班组关联 - * - * @param updateReqVO 更新信息 - */ - void updateTeamBizdomainRel(@Valid TeamBizdomainRelSaveReqVO updateReqVO); - - /** - * 删除班组关联 - * - * @param id 编号 - */ - void deleteTeamBizdomainRel(Long id); - - /** - * 批量删除班组关联 - * - * @param ids 编号 - */ - void deleteTeamBizdomainRelListByIds(List ids); - - /** - * 获得班组关联 - * - * @param id 编号 - * @return 班组关联 - */ - TeamBizdomainRelDO getTeamBizdomainRel(Long id); - - /** - * 获得班组关联分页 - * - * @param pageReqVO 分页查询 - * @return 班组关联分页 - */ - PageResult getTeamBizdomainRelPage(TeamBizdomainRelPageReqVO pageReqVO); - - /** - * @Author wangqian - * @Description 获取费用关联信息 - * @Date 2025/11/19 20:47 - * @Param busiId - * @param busiType - * @Return java.util.List - */ - public List getTeamBizdomainRelList(Long busiId, String busiType); - - public void saveTeamBizdomainRel(List teamList, Long busiId, String companyId, String companyName ,String busiType) ; - - public void deleteTeamBizdomainRel(Long id, String busiType); - - -} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java deleted file mode 100644 index ee8d7d7..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.zteits.urbanops.module.garden.service.teambizdomainrel; - -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.zteits.urbanops.module.garden.enums.CostFeeConstants; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.pojo.PageParam; -import com.zteits.urbanops.framework.common.util.object.BeanUtils; - -import com.zteits.urbanops.module.garden.dal.mysql.teambizdomainrel.TeamBizdomainRelMapper; - -import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; -import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; - -/** - * 班组关联 Service 实现类 - * - * @author 超级管理员 - */ -@Service -@Validated -public class TeamBizdomainRelServiceImpl implements TeamBizdomainRelService { - - @Resource - private TeamBizdomainRelMapper teamBizdomainRelMapper; - - @Override - public Long createTeamBizdomainRel(TeamBizdomainRelSaveReqVO createReqVO) { - // 插入 - TeamBizdomainRelDO teamBizdomainRel = BeanUtils.toBean(createReqVO, TeamBizdomainRelDO.class); - teamBizdomainRelMapper.insert(teamBizdomainRel); - - // 返回 - return teamBizdomainRel.getId(); - } - - @Override - public void updateTeamBizdomainRel(TeamBizdomainRelSaveReqVO updateReqVO) { - // 校验存在 - validateTeamBizdomainRelExists(updateReqVO.getId()); - // 更新 - TeamBizdomainRelDO updateObj = BeanUtils.toBean(updateReqVO, TeamBizdomainRelDO.class); - teamBizdomainRelMapper.updateById(updateObj); - } - - @Override - public void deleteTeamBizdomainRel(Long id) { - // 校验存在 - validateTeamBizdomainRelExists(id); - // 删除 - teamBizdomainRelMapper.deleteById(id); - } - - @Override - public void deleteTeamBizdomainRelListByIds(List ids) { - // 删除 - teamBizdomainRelMapper.deleteByIds(ids); - } - - - private void validateTeamBizdomainRelExists(Long id) { - if (teamBizdomainRelMapper.selectById(id) == null) { - //throw exception(TEAM_BIZDOMAIN_REL_NOT_EXISTS); - } - } - - @Override - public TeamBizdomainRelDO getTeamBizdomainRel(Long id) { - return teamBizdomainRelMapper.selectById(id); - } - - @Override - public PageResult getTeamBizdomainRelPage(TeamBizdomainRelPageReqVO pageReqVO) { - return teamBizdomainRelMapper.selectPage(pageReqVO); - } - - public List getTeamBizdomainRelList(Long busiId, String busiType) { - if (busiId == null && StringUtils.isEmpty(busiType)) { - throw exception(MECHANICAL_COST_NOT_EXISTS_001); - } - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(TeamBizdomainRelDO::getBusiId, busiId); - queryWrapper.eq(TeamBizdomainRelDO::getBusiType, busiType); - return teamBizdomainRelMapper.selectList(queryWrapper); - } - - @Override - public void saveTeamBizdomainRel(List teamList, Long busiId, String companyId, String companyName ,String busiType) { - if (CollectionUtils.isNotEmpty(teamList)) { - for (TeamBizdomainRelDO team : teamList) { - if (team != null && StringUtils.isNotEmpty(team.getTeamId())) { - TeamBizdomainRelDO teamBizdomainRel = new TeamBizdomainRelDO(); - teamBizdomainRel.setBusiId(String.valueOf(busiId)); - teamBizdomainRel.setCompanyId(companyId); - teamBizdomainRel.setCompanyName(companyName); - teamBizdomainRel.setTeamName(team.getTeamName()); - teamBizdomainRel.setTeamId(team.getTeamId()); - teamBizdomainRel.setBusiType(busiType); - teamBizdomainRelMapper.insert(teamBizdomainRel); - } - } - } - } - - @Override - public void deleteTeamBizdomainRel(Long id, String busiType ) { - if (id == null && StringUtils.isEmpty(busiType)) { - throw exception(MECHANICAL_COST_NOT_EXISTS_001); - } - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(TeamBizdomainRelDO::getBusiId, String.valueOf(id)); - queryWrapper.eq(TeamBizdomainRelDO::getBusiType, busiType); - teamBizdomainRelMapper.delete(queryWrapper); - } -} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/wasterecord/WasteRecordServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/wasterecord/WasteRecordServiceImpl.java index f7381de..92d2338 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/wasterecord/WasteRecordServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/wasterecord/WasteRecordServiceImpl.java @@ -4,10 +4,9 @@ import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.module.garden.controller.admin.wasterecord.vo.WasteRecordPageReqVO; import com.zteits.urbanops.module.garden.controller.admin.wasterecord.vo.WasteRecordSaveReqVO; -import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import com.zteits.urbanops.module.garden.dal.dataobject.wasterecord.WasteRecordDO; import com.zteits.urbanops.module.garden.dal.mysql.wasterecord.WasteRecordMapper; -import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,7 +36,7 @@ public class WasteRecordServiceImpl implements WasteRecordService { // 插入 WasteRecordDO wasteRecord = BeanUtils.toBean(createReqVO, WasteRecordDO.class); List deptIds = createReqVO.getTeamIds().stream() - .map(TeamBizdomainRelDO::getTeamId) + .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); wasteRecord.setDeptId(deptIds); wasteRecordMapper.insert(wasteRecord); @@ -54,7 +53,7 @@ public class WasteRecordServiceImpl implements WasteRecordService { WasteRecordDO updateObj = BeanUtils.toBean(updateReqVO, WasteRecordDO.class); List deptIds = updateReqVO.getTeamIds().stream() - .map(TeamBizdomainRelDO::getTeamId) + .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); updateObj.setDeptId(deptIds); diff --git a/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml index 9cab3b3..4e33338 100644 --- a/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml @@ -2,11 +2,13 @@ - + - \ No newline at end of file + diff --git a/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml index 34ac586..4379f5c 100644 --- a/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml @@ -2,11 +2,12 @@ - - - \ No newline at end of file + + diff --git a/urbanops-module-garden/src/main/resources/mapper/waterfee/WaterFeeMapper.xml b/urbanops-module-garden/src/main/resources/mapper/waterfee/WaterFeeMapper.xml index 900ed2f..7102355 100644 --- a/urbanops-module-garden/src/main/resources/mapper/waterfee/WaterFeeMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/waterfee/WaterFeeMapper.xml @@ -2,11 +2,14 @@ - - \ No newline at end of file + + + diff --git a/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml b/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml index 3116180..d2abe01 100644 --- a/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml +++ b/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml @@ -2,11 +2,13 @@ - + - \ No newline at end of file +