From d13ce8a6d359ca05916ecaddf82b3d9b5bd90f30 Mon Sep 17 00:00:00 2001 From: xiao-fajia <1665375861@qq.com> Date: Fri, 16 Aug 2024 17:23:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E4=BA=A7=E7=BB=B4=E4=BF=AE\=E4=BF=9D?= =?UTF-8?q?=E5=85=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/PropertyController.java | 2 - .../admin/PropertyKeepController.java | 84 +++++++------------ .../module/property/entity/Property.java | 2 +- .../module/property/entity/PropertyKeep.java | 51 +++++------ .../property/mapper/PropertyKeepMapper.java | 13 ++- .../property/service/PropertyKeepService.java | 54 ++++-------- .../service/impl/PropertyKeepServiceImpl.java | 70 ++++++++-------- .../module/property/vo/PropertyKeepReqVO.java | 42 +++------- .../property/vo/PropertyKeepRespVO.java | 19 +++-- .../mapper/property/PropertyKeepMapper.xml | 39 +++++++-- .../mapper/property/PropertyMapper.xml | 1 + 11 files changed, 170 insertions(+), 207 deletions(-) diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyController.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyController.java index 3c472057..56d64459 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyController.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyController.java @@ -9,7 +9,6 @@ import cn.iocoder.yudao.module.property.entity.Property; import cn.iocoder.yudao.module.property.service.PropertyService; import cn.iocoder.yudao.module.property.vo.PropertyReqVO; import cn.iocoder.yudao.module.property.vo.PropertyRespVO; -import cn.iocoder.yudao.module.staff.entity.CompanyStaff; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -21,7 +20,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; - import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyKeepController.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyKeepController.java index dad3e7e5..e9b2b336 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyKeepController.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/controller/admin/PropertyKeepController.java @@ -1,30 +1,29 @@ package cn.iocoder.yudao.module.property.controller.admin; -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.property.entity.PropertyKeep; import cn.iocoder.yudao.module.property.service.PropertyKeepService; import cn.iocoder.yudao.module.property.vo.PropertyKeepReqVO; import cn.iocoder.yudao.module.property.vo.PropertyKeepRespVO; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.List; -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +/** + * 资产维修/保养记录 控制层 + * + * @author 小李 + * @date 11:23 2024/8/16 + **/ @Tag(name = "管理后台 - 资产维修/保养记录") @RestController @RequestMapping("/company/property-keep") @@ -34,57 +33,36 @@ public class PropertyKeepController { @Resource private PropertyKeepService propertyKeepService; + /** + * 创建资产维修/保养记录 + * + * @param keepRespVO 资产维修/保养记录对象 + * @author 小李 + * @date 11:26 2024/8/16 + **/ @PostMapping("/create") @Operation(summary = "创建资产维修/保养记录") @PreAuthorize("@ss.hasPermission('company:property-keep:create')") - public CommonResult createPropertyKeep(@RequestBody PropertyKeepReqVO createReqVO) { - return success(propertyKeepService.createPropertyKeep(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新资产维修/保养记录") - @PreAuthorize("@ss.hasPermission('company:property-keep:update')") - public CommonResult updatePropertyKeep(@RequestBody PropertyKeepReqVO updateReqVO) { - propertyKeepService.updatePropertyKeep(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除资产维修/保养记录") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('company:property-keep:delete')") - public CommonResult deletePropertyKeep(@RequestParam("id") String id) { - propertyKeepService.deletePropertyKeep(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得资产维修/保养记录") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('company:property-keep:query')") - public CommonResult getPropertyKeep(@RequestParam("id") String id) { - PropertyKeep propertyKeep = propertyKeepService.getPropertyKeep(id); - return success(BeanUtils.toBean(propertyKeep, PropertyKeepRespVO.class)); + public CommonResult createPropertyKeep(@RequestBody PropertyKeepRespVO keepRespVO) { + propertyKeepService.createPropertyKeep(keepRespVO); + return CommonResult.ok(); } + /** + * 资产维修/保养记录 分页 + * @author 小李 + * @date 15:42 2024/8/16 + * @param pageReqVO 查询对象 + * @param pageNo 页码 + * @param pageSize 条数 + **/ @GetMapping("/page") @Operation(summary = "获得资产维修/保养记录分页") @PreAuthorize("@ss.hasPermission('company:property-keep:query')") - public CommonResult> getPropertyKeepPage(PropertyKeepReqVO pageReqVO) { - IPage pageResult = propertyKeepService.getPropertyKeepPage(pageReqVO); - return success(pageResult); + public CommonResult> getPropertyKeepPage(PropertyKeepReqVO pageReqVO, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return success(propertyKeepService.getPropertyKeepPage(pageReqVO, page)); } - - @GetMapping("/export-excel") - @Operation(summary = "导出资产维修/保养记录 Excel") - @PreAuthorize("@ss.hasPermission('company:property-keep:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportPropertyKeepExcel(PropertyKeepReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = propertyKeepService.getPropertyKeepPage(pageReqVO).getRecords(); - // 导出 Excel - ExcelUtils.write(response, "资产维修/保养记录.xls", "数据", PropertyKeepRespVO.class, list); - } - } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/Property.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/Property.java index f4b0b9d0..0c8d86ab 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/Property.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/Property.java @@ -146,7 +146,7 @@ public class Property extends TenantBaseDO { private Date lastKeepDate; /** 下次维修/保养日期 */ - @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") + @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd") @ExcelProperty("下次维修/保养日期") private Date nextKeepDate; diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/PropertyKeep.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/PropertyKeep.java index 91bcee8f..1510a411 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/PropertyKeep.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/entity/PropertyKeep.java @@ -5,45 +5,38 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; +import java.util.Date; /** - * 资产维修/保养记录 DO - * - * @author 后台管理员 - */ + * 资产维修/保养记录 + * @author 小李 + * @date 11:19 2024/8/16 +**/ @TableName("company_property_keep") -@KeySequence("company_property_keep_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor public class PropertyKeep extends TenantBaseDO { - /** - * 主键标识 - */ - @TableId(type = IdType.ASSIGN_UUID) + /** 主键标识 */ + @TableId(type = IdType.ASSIGN_ID) private String id; - /** - * 资产id - */ - private String propertyId; - /** - * 维修/保养日期 - */ - private LocalDate keepDate; - /** - * 备注 - */ - private String remark; - /** - * 附件urls - */ - private String fileUrls; + /** 资产id */ + private String propertyId; + + /** 维修/保养日期 */ + @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date keepDate; + + /** 备注 */ + private String remark; + + /** 附件urls(infra_file表中的url,多个英文逗号拼接) */ + private String fileUrls; } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/mapper/PropertyKeepMapper.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/mapper/PropertyKeepMapper.java index 47e4521d..1c780f7b 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/mapper/PropertyKeepMapper.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/mapper/PropertyKeepMapper.java @@ -5,18 +5,17 @@ import cn.iocoder.yudao.module.property.vo.PropertyKeepReqVO; import cn.iocoder.yudao.module.property.vo.PropertyKeepRespVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 资产维修/保养记录 Mapper - * - * @author 后台管理员 - */ + * @author 小李 + * @date 11:21 2024/8/16 +**/ @Mapper public interface PropertyKeepMapper extends BaseMapper { - default IPage selectPage(PropertyKeepReqVO reqVO) { - return null; - } - + IPage getPropertyKeepPage(@Param("map") PropertyKeepReqVO pageReqVO, Page page); } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/PropertyKeepService.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/PropertyKeepService.java index fce10486..06ed5db9 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/PropertyKeepService.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/PropertyKeepService.java @@ -4,51 +4,29 @@ import cn.iocoder.yudao.module.property.entity.PropertyKeep; import cn.iocoder.yudao.module.property.vo.PropertyKeepReqVO; import cn.iocoder.yudao.module.property.vo.PropertyKeepRespVO; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; /** - * 资产维修/保养记录 Service 接口 - * - * @author 后台管理员 - */ + * 资产维修/保养记录 接口 + * @author 小李 + * @date 11:22 2024/8/16 +**/ public interface PropertyKeepService extends IService { /** * 创建资产维修/保养记录 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - String createPropertyKeep(PropertyKeepReqVO createReqVO); + * @author 小李 + * @date 11:26 2024/8/16 + * @param keepRespVO 资产维修/保养记录对象 + **/ + void createPropertyKeep(PropertyKeepRespVO keepRespVO); /** - * 更新资产维修/保养记录 - * - * @param updateReqVO 更新信息 - */ - void updatePropertyKeep(PropertyKeepReqVO updateReqVO); - - /** - * 删除资产维修/保养记录 - * - * @param id 编号 - */ - void deletePropertyKeep(String id); - - /** - * 获得资产维修/保养记录 - * - * @param id 编号 - * @return 资产维修/保养记录 - */ - PropertyKeep getPropertyKeep(String id); - - /** - * 获得资产维修/保养记录分页 - * - * @param pageReqVO 分页查询 - * @return 资产维修/保养记录分页 - */ - IPage getPropertyKeepPage(PropertyKeepReqVO pageReqVO); - + * 资产维修/保养记录 分页 + * @author 小李 + * @date 15:42 2024/8/16 + * @param pageReqVO 查询对象 + **/ + IPage getPropertyKeepPage(PropertyKeepReqVO pageReqVO, Page page); } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/impl/PropertyKeepServiceImpl.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/impl/PropertyKeepServiceImpl.java index a1dbe2c1..fa826ee0 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/impl/PropertyKeepServiceImpl.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/service/impl/PropertyKeepServiceImpl.java @@ -1,56 +1,60 @@ package cn.iocoder.yudao.module.property.service.impl; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.property.entity.Property; import cn.iocoder.yudao.module.property.entity.PropertyKeep; import cn.iocoder.yudao.module.property.mapper.PropertyKeepMapper; import cn.iocoder.yudao.module.property.service.PropertyKeepService; +import cn.iocoder.yudao.module.property.service.PropertyService; import cn.iocoder.yudao.module.property.vo.PropertyKeepReqVO; import cn.iocoder.yudao.module.property.vo.PropertyKeepRespVO; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; + /** - * 资产维修/保养记录 Service 实现类 - * - * @author 后台管理员 - */ + * 资产维修/保养记录 接口实现类 + * @author 小李 + * @date 11:23 2024/8/16 +**/ @Service @Validated public class PropertyKeepServiceImpl extends ServiceImpl implements PropertyKeepService { + @Resource + private PropertyService propertyService; + + /** + * 创建资产维修/保养记录 + * @author 小李 + * @date 11:26 2024/8/16 + * @param keepRespVO 资产维修/保养记录对象 + **/ @Override - public String createPropertyKeep(PropertyKeepReqVO createReqVO) { - // 插入 - PropertyKeep propertyKeep = BeanUtils.toBean(createReqVO, PropertyKeep.class); - baseMapper.insert(propertyKeep); - // 返回 - return propertyKeep.getId(); + @DSTransactional + public void createPropertyKeep(PropertyKeepRespVO keepRespVO){ + // 更新资产的保养时间和下次保养时间 + Property property = keepRespVO.getProperty(); + property.setLastKeepDate(keepRespVO.getKeepDate()); + propertyService.updateById(property); + + // 接入资产维修\保养记录 + keepRespVO.setPropertyId(keepRespVO.getProperty().getId()); + baseMapper.insert(keepRespVO); } + /** + * 资产维修/保养记录 分页 + * @author 小李 + * @date 15:42 2024/8/16 + * @param pageReqVO 查询对象 + **/ @Override - public void updatePropertyKeep(PropertyKeepReqVO updateReqVO) { - // 更新 - PropertyKeep updateObj = BeanUtils.toBean(updateReqVO, PropertyKeep.class); - baseMapper.updateById(updateObj); + public IPage getPropertyKeepPage(PropertyKeepReqVO pageReqVO, Page page){ + return baseMapper.getPropertyKeepPage(pageReqVO, page); } - - @Override - public void deletePropertyKeep(String id) { - // 删除 - baseMapper.deleteById(id); - } - - - @Override - public PropertyKeep getPropertyKeep(String id) { - return baseMapper.selectById(id); - } - - @Override - public IPage getPropertyKeepPage(PropertyKeepReqVO pageReqVO) { - return baseMapper.selectPage(pageReqVO); - } - } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepReqVO.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepReqVO.java index 6baec255..cf257271 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepReqVO.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepReqVO.java @@ -1,41 +1,23 @@ package cn.iocoder.yudao.module.property.vo; -import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.property.entity.PropertyKeep; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; +import java.util.Date; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -@Schema(description = "管理后台 - 资产维修/保养记录分页 Request VO") +/** + * 资产维修/保养记录 VO + * @author 小李 + * @date 11:20 2024/8/16 +**/ @Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PropertyKeepReqVO extends PageParam { - - @Schema(description = "主键标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "22729") - private String id; - - @Schema(description = "资产id", example = "20917") - private String propertyId; - - @Schema(description = "维修/保养日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) - private LocalDate keepDate; - - @Schema(description = "备注", example = "你说的对") - private String remark; - - @Schema(description = "附件urls") - private String fileUrls; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) - private LocalDateTime createTime; +public class PropertyKeepReqVO extends PropertyKeep { + @Schema(description = "维修\\保养日期查询范围") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private Date[] keepDateArray; } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepRespVO.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepRespVO.java index 6ee1d979..bd16502e 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepRespVO.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/property/vo/PropertyKeepRespVO.java @@ -1,20 +1,25 @@ package cn.iocoder.yudao.module.property.vo; import cn.iocoder.yudao.module.property.entity.Property; +import cn.iocoder.yudao.module.property.entity.PropertyKeep; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import java.util.Date; -@Schema(description = "管理后台 - 资产维修/保养记录 Response VO") +/** + * 资产维修/保养记录 提交\响应VO + * @author 小李 + * @date 11:21 2024/8/16 +**/ @Data -@ExcelIgnoreUnannotated -public class PropertyKeepRespVO extends Property { - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; +public class PropertyKeepRespVO extends PropertyKeep { + /** 资产的信息 */ + private Property property; } \ No newline at end of file diff --git a/dl-module-company/src/main/resources/mapper/property/PropertyKeepMapper.xml b/dl-module-company/src/main/resources/mapper/property/PropertyKeepMapper.xml index 51acf816..679d9401 100644 --- a/dl-module-company/src/main/resources/mapper/property/PropertyKeepMapper.xml +++ b/dl-module-company/src/main/resources/mapper/property/PropertyKeepMapper.xml @@ -1,12 +1,37 @@ - + - + + + + + + + + + select id, + property_id, + keep_date, + remark, + file_urls, + tenant_id, + deleted, + creator, + create_time, + updater, + update_time + from company_property_keep + where deleted = '0' + + + \ No newline at end of file diff --git a/dl-module-company/src/main/resources/mapper/property/PropertyMapper.xml b/dl-module-company/src/main/resources/mapper/property/PropertyMapper.xml index a6b1a0a8..805556d5 100644 --- a/dl-module-company/src/main/resources/mapper/property/PropertyMapper.xml +++ b/dl-module-company/src/main/resources/mapper/property/PropertyMapper.xml @@ -115,5 +115,6 @@ AND (cp.open_date BETWEEN #{map.openDateArray[0]} AND #{map.openDateArray[1]}) + order by cp.create_time desc \ No newline at end of file