From 10b9b7e4d254f8212929690a0c137ea9a595990f Mon Sep 17 00:00:00 2001 From: liwen Date: Fri, 5 Jan 2024 16:52:20 +0800 Subject: [PATCH 1/3] =?UTF-8?q?add:=20=E8=BD=A6=E8=BE=86=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/CarMaintenanceConfirmationDTO.java | 25 +++ .../hzims/safeproduct/dto/CarMilesYearDTO.java | 31 +++ .../dto/CarUsedRecordConfirmationDTO.java | 22 ++ .../safeproduct/entity/CarCheckItemEntity.java | 28 +++ .../safeproduct/entity/CarCheckRecordEntity.java | 45 ++++ .../hnac/hzims/safeproduct/entity/CarEntity.java | 93 +++++++++ .../safeproduct/entity/CarMaintenanceEntity.java | 63 ++++++ .../safeproduct/entity/CarUsedRecordEntity.java | 64 ++++++ .../hnac/hzims/safeproduct/vo/CarCheckItemVO.java | 23 ++ .../safeproduct/vo/CarCheckRecordDetailVO.java | 41 ++++ .../safeproduct/vo/CarMaintenanceDetailVO.java | 61 ++++++ .../hzims/safeproduct/vo/CarMaintenancePageVO.java | 41 ++++ .../hnac/hzims/safeproduct/vo/CarMilesYearVO.java | 64 ++++++ .../safeproduct/vo/CarUsedRecordDetailVO.java | 62 ++++++ .../hzims/safeproduct/vo/CarUsedRecordPageVO.java | 44 ++++ .../safeproduct/controller/CarController.java | 232 +++++++++++++++++++++ .../hnac/hzims/safeproduct/jobs/ConferenceJob.java | 4 + .../hnac/hzims/safeproduct/jobs/HygieneJob.java | 4 + .../safeproduct/mapper/CarCheckItemMapper.java | 16 ++ .../safeproduct/mapper/CarCheckItemMapper.xml | 5 + .../safeproduct/mapper/CarCheckRecordMapper.java | 16 ++ .../safeproduct/mapper/CarCheckRecordMapper.xml | 5 + .../safeproduct/mapper/CarMaintenanceMapper.java | 35 ++++ .../safeproduct/mapper/CarMaintenanceMapper.xml | 42 ++++ .../hnac/hzims/safeproduct/mapper/CarMapper.java | 45 ++++ .../hnac/hzims/safeproduct/mapper/CarMapper.xml | 58 ++++++ .../safeproduct/mapper/CarUsedRecordMapper.java | 35 ++++ .../safeproduct/mapper/CarUsedRecordMapper.xml | 34 +++ .../safeproduct/service/ICarCheckItemService.java | 14 ++ .../service/ICarCheckRecordService.java | 28 +++ .../service/ICarMaintenanceService.java | 49 +++++ .../hzims/safeproduct/service/ICarService.java | 26 +++ .../safeproduct/service/ICarUsedRecordService.java | 50 +++++ .../service/impl/CarCheckItemServiceImpl.java | 18 ++ .../service/impl/CarCheckRecordServiceImpl.java | 122 +++++++++++ .../service/impl/CarMaintenanceServiceImpl.java | 107 ++++++++++ .../safeproduct/service/impl/CarServiceImpl.java | 105 ++++++++++ .../service/impl/CarUsedRecordServiceImpl.java | 100 +++++++++ 38 files changed, 1857 insertions(+) create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMilesYearDTO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckItemVO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenanceDetailVO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMilesYearVO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordDetailVO.java create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/ConferenceJob.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/HygieneJob.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.xml create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.xml create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java create mode 100644 hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java new file mode 100644 index 0000000..313ecc5 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java @@ -0,0 +1,25 @@ +package com.hnac.hzims.safeproduct.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "车辆维保记录确认DTO类") +public class CarMaintenanceConfirmationDTO { + + @ApiModelProperty("车辆维保记录id") + private Long carMaintenanceId; + + @ApiModelProperty("车辆管理人意见") + private String managerAdvice; + + @ApiModelProperty("确认时间") + private Date confirmationTime; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMilesYearDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMilesYearDTO.java new file mode 100644 index 0000000..39568c4 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMilesYearDTO.java @@ -0,0 +1,31 @@ +package com.hnac.hzims.safeproduct.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author liwen + * @date 2024-01-05 + */ +@Data +@ApiModel(value = "年度里程DTO类") +public class CarMilesYearDTO { + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("日期") + private String dateTime; + + @ApiModelProperty("里程数") + private BigDecimal miles; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java new file mode 100644 index 0000000..47a8df7 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java @@ -0,0 +1,22 @@ +package com.hnac.hzims.safeproduct.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "用车记录确认DTO类") +public class CarUsedRecordConfirmationDTO { + + @ApiModelProperty("用车记录id") + private Long carUsedRecordId; + + @ApiModelProperty("确认时间") + private Date confirmationTime; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java new file mode 100644 index 0000000..21dd74b --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java @@ -0,0 +1,28 @@ +package com.hnac.hzims.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +/** + * @author liwen + * @date 2024-01-05 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_car_check_item") +@ApiModel(value = "车检项实体类") +public class CarCheckItemEntity extends BaseEntity { + + @ApiModelProperty("车检记录id") + private Long carCheckRecordId; + + @ApiModelProperty("检查项目") + private String checkItem; + + @ApiModelProperty("检查内容") + private String checkContent; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java new file mode 100644 index 0000000..8035cf5 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java @@ -0,0 +1,45 @@ +package com.hnac.hzims.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-05 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_car_check_record") +@ApiModel(value = "车检记录实体类") +public class CarCheckRecordEntity extends BaseEntity { + + @ApiModelProperty("车辆id") + private Long carId; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("检查人") + private String checker; + + @ApiModelProperty("检查时间") + private Date checkTime; + + @ApiModelProperty("检查项id") + private String checkItemIds; + + @ApiModelProperty("检查项结果") + private String checkItemResults; + + @ApiModelProperty("检查结论") + private String conclusion; + + @ApiModelProperty("填报备注") + private String remark; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java new file mode 100644 index 0000000..b0292ef --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java @@ -0,0 +1,93 @@ +package com.hnac.hzims.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_car") +@ApiModel(value = "车辆实体类") +public class CarEntity extends BaseEntity { + + @NotNull + @Size(max = 50, message = "单位长度不能超过50") + @ApiModelProperty("单位") + private String unit; + + @NotNull + @Size(max = 50, message = "品牌长度不能超过50") + @ApiModelProperty("品牌") + private String carBrand; + + @NotNull + @Size(max = 50, message = "型号长度不能超过50") + @ApiModelProperty("型号") + private String carType; + + @NotNull + @Size(max = 50, message = "车牌号长度不能超过50") + @ApiModelProperty("车牌号") + private String plateNumber; + + @NotNull + @ApiModelProperty("上牌时间") + private Date registrationTime; + + @NotNull + @ApiModelProperty("上期缴车保时间") + private Date insurancePayLastTime; + + @NotNull + @ApiModelProperty("下期缴车保时间") + private Date insurancePayNextTime; + + @NotNull + @ApiModelProperty("年检时间") + private Date annualInspectionTime; + + @NotNull + @ApiModelProperty("年检状态") + private String annualInspectionStatus; + + @NotNull + @ApiModelProperty("保险状态") + private String insuranceStatus; + + @NotNull + @ApiModelProperty("上期保养时间") + private Date maintenanceLastTime; + + @NotNull + @ApiModelProperty("下期保养时间") + private Date maintenanceNextTime; + + @ApiModelProperty("保养里程") + private BigDecimal maintenanceMileage; + + @NotNull + @ApiModelProperty("保养状态") + private String maintenanceStatus; + + @NotNull + @ApiModelProperty("车辆管理人") + private String manager; + + @ApiModelProperty("车辆照片") + private String imgPath; + + @ApiModelProperty("车辆附件") + private String filePath; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java new file mode 100644 index 0000000..2d106df --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java @@ -0,0 +1,63 @@ +package com.hnac.hzims.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_car_maintenance") +@ApiModel(value = "车辆维保实体类") +public class CarMaintenanceEntity extends BaseEntity { + + @ApiModelProperty("车辆id") + private Long carId; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("维保类型") + private String maintenanceType; + + @ApiModelProperty("维保内容") + private String content; + + @ApiModelProperty("维保开始时间") + private Date startTime; + + @ApiModelProperty("维保结束时间") + private Date endTime; + + @ApiModelProperty("维保地点") + private String location; + + @ApiModelProperty("维保费用") + private Long cost; + + @ApiModelProperty("维保人") + private String maintainer; + + @ApiModelProperty("维保照片") + private String imgPath; + + @ApiModelProperty("维保附件") + private String filePath; + + @ApiModelProperty("车辆管理人意见") + private String managerAdvice; + + @ApiModelProperty("确认时间") + private Date confirmationTime; + + @ApiModelProperty("维保状态") + private String maintenanceStatus; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java new file mode 100644 index 0000000..baf0c43 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java @@ -0,0 +1,64 @@ +package com.hnac.hzims.safeproduct.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hzims_car_used_record") +@ApiModel(value = "用车记录实体类") +public class CarUsedRecordEntity extends BaseEntity { + + @ApiModelProperty("车辆id") + private Long carId; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("用车单位") + private String unit; + + @ApiModelProperty("使用时间") + private Date startTime; + + @ApiModelProperty("使用地点") + private String usedLocation; + + @ApiModelProperty("使用人") + private String user; + + @ApiModelProperty("用途详情") + private String remark; + + @ApiModelProperty("出车公里数") + private BigDecimal startMiles; + + @ApiModelProperty("收车公里数") + private BigDecimal endMiles; + + @ApiModelProperty("行驶公里数") + private BigDecimal miles; + + @ApiModelProperty("收车时间") + private Date endTime; + + @ApiModelProperty("确认时间") + private Date confirmationTime; + + @ApiModelProperty("用车状态") + private String usedStatus; + + @ApiModelProperty("图片路径") + private String imgPath; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckItemVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckItemVO.java new file mode 100644 index 0000000..4c5fd37 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckItemVO.java @@ -0,0 +1,23 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liwen + * @date 2024-01-05 + */ +@Data +@ApiModel(value = "车辆检查项VO类") +public class CarCheckItemVO { + + @ApiModelProperty("检查项目") + private String checkItem; + + @ApiModelProperty("检查内容") + private String checkContent; + + @ApiModelProperty("检查结果") + private String checkResult; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java new file mode 100644 index 0000000..2a48891 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java @@ -0,0 +1,41 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author liwen + * @date 2024-01-05 + */ +@Data +@ApiModel(value = "车辆检查记录详情VO类") +public class CarCheckRecordDetailVO { + + @ApiModelProperty("检查人") + private String checker; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("行驶里程") + private BigDecimal miles; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("检查结论") + private String conclusion; + + @ApiModelProperty("填报备注") + private String remark; + + @ApiModelProperty("检查列表") + private List checkItemList; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenanceDetailVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenanceDetailVO.java new file mode 100644 index 0000000..278e6b7 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenanceDetailVO.java @@ -0,0 +1,61 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "车辆维保记录详情VO类") +public class CarMaintenanceDetailVO { + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("维保开始时间") + private Date startTime; + + @ApiModelProperty("维保结束时间") + private Date endTime; + + @ApiModelProperty("维保地点") + private String location; + + @ApiModelProperty("维保费用") + private Long cost; + + @ApiModelProperty("维保人") + private String maintainer; + + @ApiModelProperty("维保内容") + private String content; + + @ApiModelProperty("维保照片") + private String imgPath; + + @ApiModelProperty("维保附件") + private String filePath; + + @ApiModelProperty("车辆管理人意见") + private String managerAdvice; + + @ApiModelProperty("确认时间") + private Date confirmationTime; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("型号") + private String carType; + + @ApiModelProperty("车牌号") + private String plateNumber; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java new file mode 100644 index 0000000..0c54dc9 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java @@ -0,0 +1,41 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "车辆维保记录页面VO类") +public class CarMaintenancePageVO { + + @ApiModelProperty("车辆维保记录id") + private Long id; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("型号") + private String carType; + + @ApiModelProperty("维保类型") + private String type; + + @ApiModelProperty("维保内容") + private String content; + + @ApiModelProperty("维保地点") + private String location; + + @ApiModelProperty("维保费用") + private Long cost; + + @ApiModelProperty("维保人") + private String maintainer; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMilesYearVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMilesYearVO.java new file mode 100644 index 0000000..492587d --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMilesYearVO.java @@ -0,0 +1,64 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "年度里程数据VO类") +public class CarMilesYearVO { + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("1月里程数") + private BigDecimal januaryMiles; + + @ApiModelProperty("2月里程数") + private BigDecimal februaryMiles; + + @ApiModelProperty("3月里程数") + private BigDecimal marchMiles; + + @ApiModelProperty("4月里程数") + private BigDecimal aprilMiles; + + @ApiModelProperty("5月里程数") + private BigDecimal mayMiles; + + @ApiModelProperty("6月里程数") + private BigDecimal juneMiles; + + @ApiModelProperty("7月里程数") + private BigDecimal julyMiles; + + @ApiModelProperty("8月里程数") + private BigDecimal augustMiles; + + @ApiModelProperty("9月里程数") + private BigDecimal septemberMiles; + + @ApiModelProperty("10月里程数") + private BigDecimal octoberMiles; + + @ApiModelProperty("11月里程数") + private BigDecimal novemberMiles; + + @ApiModelProperty("12月里程数") + private BigDecimal decemberMiles; + + @ApiModelProperty("合计里程数") + private BigDecimal sumMiles; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordDetailVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordDetailVO.java new file mode 100644 index 0000000..06cdf91 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordDetailVO.java @@ -0,0 +1,62 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "用车记录详情VO类") +public class CarUsedRecordDetailVO { + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("使用时间") + private Date startTime; + + @ApiModelProperty("使用地点") + private String usedLocation; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("用途详情") + private String remark; + + @ApiModelProperty("用车单位") + private String unit; + + @ApiModelProperty("出车公里数") + private BigDecimal startMiles; + + @ApiModelProperty("收车公里数") + private BigDecimal endMiles; + + @ApiModelProperty("行驶公里数") + private BigDecimal miles; + + @ApiModelProperty("图片路径") + private String imgPath; + + @ApiModelProperty("使用人") + private String user; + + @ApiModelProperty("车辆管理人") + private String manager; + + @ApiModelProperty("收车时间") + private Date endTime; + + @ApiModelProperty("确认时间") + private Date confirmationTime; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java new file mode 100644 index 0000000..38fa1eb --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java @@ -0,0 +1,44 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-04 + */ +@Data +@ApiModel(value = "用车记录页面VO类") +public class CarUsedRecordPageVO { + + @ApiModelProperty("用车单位") + private String unit; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("使用时间") + private Date startTime; + + @ApiModelProperty("使用人") + private String user; + + @ApiModelProperty("用途详情") + private String remark; + + @ApiModelProperty("出车公里数") + private BigDecimal startMiles; + + @ApiModelProperty("收车公里数") + private BigDecimal endMiles; + + @ApiModelProperty("行驶公里数") + private BigDecimal miles; +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java new file mode 100644 index 0000000..6d83610 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java @@ -0,0 +1,232 @@ +package com.hnac.hzims.safeproduct.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.common.utils.Condition; +import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO; +import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; +import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; +import com.hnac.hzims.safeproduct.entity.CarEntity; +import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; +import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; +import com.hnac.hzims.safeproduct.service.ICarCheckRecordService; +import com.hnac.hzims.safeproduct.service.ICarMaintenanceService; +import com.hnac.hzims.safeproduct.service.ICarService; +import com.hnac.hzims.safeproduct.service.ICarUsedRecordService; +import com.hnac.hzims.safeproduct.vo.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import javax.validation.Valid; +import java.util.Map; + +/** + * 车辆管理接口类 + * + * @author liwen + * @date 2024-01-03 + */ +@RestController +@RequestMapping("/car") +@AllArgsConstructor +@Api(value = "车辆管理", tags = "车辆管理接口") +public class CarController extends BladeController { + + private final ICarService carService; + + private final ICarMaintenanceService carMaintenanceService; + + private final ICarUsedRecordService carUsedRecordService; + + private final ICarCheckRecordService carCheckRecordService; + + @PostMapping("/saveCar") + @ApiOperation(value = "新增车辆") + @ApiOperationSupport(order = 1) + public R saveCar(@Valid @RequestBody CarEntity carEntity) { + return R.status(carService.save(carEntity)); + } + + @PostMapping("/updateCar") + @ApiOperation(value = "修改车辆") + @ApiOperationSupport(order = 2) + public R updateCar(@Valid @RequestBody CarEntity carEntity) { + return R.status(carService.updateById(carEntity)); + } + + @PostMapping("/removeCar") + @ApiOperation(value = "删除车辆") + @ApiOperationSupport(order = 3) + public R removeCar(@RequestParam Long id) { + return R.status(carService.removeById(id)); + } + + @GetMapping("/carDetail") + @ApiOperation(value = "车辆详情") + @ApiOperationSupport(order = 4) + public R carDetail(@RequestParam Long id) { + return R.data(carService.getById(id)); + } + + @GetMapping("/carPage") + @ApiImplicitParams({ + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "plateNumber", value = "车牌号", dataType = "query", paramType = "string") + }) + @ApiOperation(value = "车辆分页") + @ApiOperationSupport(order = 5) + public R> carPage(@ApiIgnore @RequestParam Map param, Query query) { + IPage page = carService.page(Condition.getPage(query), Condition.getQueryWrapper(param, CarEntity.class)); + return R.data(page); + } + + @PostMapping("/saveCarMaintenance") + @ApiOperation(value = "新增车辆维保记录") + @ApiOperationSupport(order = 6) + public R saveCarMaintenance(@Valid @RequestBody CarMaintenanceEntity carMaintenanceEntity) { + return R.status(carMaintenanceService.saveCarMaintenance(carMaintenanceEntity)); + } + + @PostMapping("/updateCarMaintenance") + @ApiOperation(value = "修改车辆维保记录") + @ApiOperationSupport(order = 7) + public R updateCarMaintenance(@Valid @RequestBody CarMaintenanceEntity carMaintenanceEntity) { + return R.status(carMaintenanceService.updateById(carMaintenanceEntity)); + } + + @PostMapping("/removeCarMaintenance") + @ApiOperation(value = "删除车辆维保记录") + @ApiOperationSupport(order = 8) + public R removeCarMaintenance(@RequestParam Long id) { + return R.status(carMaintenanceService.removeById(id)); + } + + @GetMapping("/carMaintenanceDetail") + @ApiOperation(value = "车辆维保记录详情") + @ApiOperationSupport(order = 9) + public R carMaintenanceDetail(@RequestParam Long id) { + return R.data(carMaintenanceService.getCarMaintenance(id)); + } + + @GetMapping("/carMaintenancePage") + @ApiImplicitParams({ + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "startTime", value = "开始时间", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "endTime", value = "结束时间", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string") + }) + @ApiOperation(value = "车辆维保记录分页") + @ApiOperationSupport(order = 10) + public R> carMaintenancePage(@ApiIgnore @RequestParam Map param, Query query) { + IPage page = carMaintenanceService.getCarMaintenancePage(param, query); + return R.data(page); + } + + @PostMapping("/confirmCarMaintenance") + @ApiOperation(value = "车辆维保记录确认") + @ApiOperationSupport(order = 11) + public R confirmCarMaintenance(@RequestBody CarMaintenanceConfirmationDTO confirmationDTO) { + return R.status(carMaintenanceService.confirmCarMaintenance(confirmationDTO)); + } + + @PostMapping("/saveCarUsedRecord") + @ApiOperation(value = "新增用车记录") + @ApiOperationSupport(order = 12) + public R saveCarUsedRecord(@Valid @RequestBody CarUsedRecordEntity carUsedRecordEntity) { + return R.status(carUsedRecordService.saveCarUsedRecord(carUsedRecordEntity)); + } + + @PostMapping("/updateCarUsedRecord") + @ApiOperation(value = "修改用车记录") + @ApiOperationSupport(order = 13) + public R updateCarUsedRecord(@Valid @RequestBody CarUsedRecordEntity carUsedRecordEntity) { + return R.status(carUsedRecordService.updateById(carUsedRecordEntity)); + } + + @PostMapping("/removeCarUsedRecord") + @ApiOperation(value = "删除用车记录") + @ApiOperationSupport(order = 14) + public R removeCarUsedRecord(@RequestParam Long id) { + return R.status(carUsedRecordService.removeById(id)); + } + + @GetMapping("/carUsedRecordDetail") + @ApiOperation(value = "用车记录详情") + @ApiOperationSupport(order = 15) + public R carUsedRecordDetail(@RequestParam Long id) { + return R.data(carUsedRecordService.getCarUsedRecord(id)); + } + + @GetMapping("/carUsedRecordPage") + @ApiImplicitParams({ + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string") + }) + @ApiOperation(value = "车辆维保记录分页") + @ApiOperationSupport(order = 16) + public R> carUsedRecordPage(@ApiIgnore @RequestParam Map param, Query query) { + IPage page = carUsedRecordService.getCarUsedRecordPage(param, query); + return R.data(page); + } + + @PostMapping("/confirmCarUsedRecord") + @ApiOperation(value = "用车记录确认") + @ApiOperationSupport(order = 17) + public R confirmCarUsedRecord(@RequestBody CarUsedRecordConfirmationDTO confirmationDTO) { + return R.status(carUsedRecordService.confirmCarUsedRecord(confirmationDTO)); + } + + @GetMapping("/milesDataByYear") + @ApiOperation(value = "年度里程数据") + @ApiOperationSupport(order = 18) + public R> milesDataByYear(@RequestParam String year, String unit, Query query) { + IPage page = carService.milesDataByYear(year, unit, query); + return R.data(page); + } + + @PostMapping("/saveCarCheckRecord") + @ApiOperation(value = "新增车检记录") + @ApiOperationSupport(order = 19) + public R saveCarCheckRecord(@Valid @RequestBody CarCheckRecordEntity carCheckRecordEntity) { + return R.status(carCheckRecordService.saveCarCheckRecord(carCheckRecordEntity)); + } + + @PostMapping("/updateCarCheckRecord") + @ApiOperation(value = "修改车检记录") + @ApiOperationSupport(order = 20) + public R updateCarCheckRecord(@Valid @RequestBody CarCheckRecordEntity carCheckRecordEntity) { + return R.status(carCheckRecordService.updateById(carCheckRecordEntity)); + } + + @PostMapping("/removeCarCheckRecord") + @ApiOperation(value = "删除车检记录") + @ApiOperationSupport(order = 21) + public R removeCarCheckRecord(@RequestParam Long id) { + return R.status(carCheckRecordService.removeById(id)); + } + + @GetMapping("/carCheckRecordDetail") + @ApiOperation(value = "车检记录详情") + @ApiOperationSupport(order = 15) + public R carCheckRecordDetail(@RequestParam Long id) { + return R.data(carCheckRecordService.getCarCheckRecord(id)); + } + + @GetMapping("/carCheckRecordPage") + @ApiImplicitParams({ + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string") + }) + @ApiOperation(value = "车辆维保记录分页") + @ApiOperationSupport(order = 16) + public R> carCheckRecordPage(@ApiIgnore @RequestParam Map param, Query query) { + IPage page = carUsedRecordService.getCarUsedRecordPage(param, query); + return R.data(page); + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/ConferenceJob.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/ConferenceJob.java new file mode 100644 index 0000000..83ea0fa --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/ConferenceJob.java @@ -0,0 +1,4 @@ +package com.hnac.hzims.safeproduct.jobs; + +public class ConferenceJob { +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/HygieneJob.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/HygieneJob.java new file mode 100644 index 0000000..745ae01 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/HygieneJob.java @@ -0,0 +1,4 @@ +package com.hnac.hzims.safeproduct.jobs; + +public class HygieneJob { +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.java new file mode 100644 index 0000000..d068070 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.java @@ -0,0 +1,16 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 车检项Mapper类 + * + * @author liwen + * @date 2024-01-05 + */ +@Mapper +public interface CarCheckItemMapper extends BaseMapper { + +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.xml new file mode 100644 index 0000000..1aa7909 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckItemMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java new file mode 100644 index 0000000..608b499 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java @@ -0,0 +1,16 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 车检记录Mapper类 + * + * @author liwen + * @date 2024-01-05 + */ +@Mapper +public interface CarCheckRecordMapper extends BaseMapper { + +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml new file mode 100644 index 0000000..f372a67 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.java new file mode 100644 index 0000000..2a6dc38 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.java @@ -0,0 +1,35 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; +import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO; +import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Map; + +/** + * 车辆维保记录Mapper类 + * + * @author liwen + * @date 2024-01-04 + */ +@Mapper +public interface CarMaintenanceMapper extends BaseMapper { + + /** + * 查询车辆维保记录详情 + * @param carMaintenanceId 车辆维保记录id + * @return 车辆维保记录详情VO类 + */ + CarMaintenanceDetailVO getCarMaintenance(Long carMaintenanceId); + + /** + * 车辆维保记录数据页 + * @param param 入参 + * @param page 分页类 + * @return 分页数据 + */ + IPage getCarMaintenancePage(IPage page, Map param); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml new file mode 100644 index 0000000..86c1564 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.java new file mode 100644 index 0000000..f327415 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.java @@ -0,0 +1,45 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.safeproduct.dto.CarMilesYearDTO; +import com.hnac.hzims.safeproduct.entity.CarEntity; +import com.hnac.hzims.safeproduct.vo.CarMilesYearVO; +import org.apache.ibatis.annotations.Mapper; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 车辆管理Mapper类 + * + * @author liwen + * @date 2024-01-03 + */ +@Mapper +public interface CarMapper extends BaseMapper { + + /** + * 查询当年的全部车辆 + * @param page 分页类 + * @param year 年份 + * @param unit 单位 + * @return 分页车辆数据 + */ + IPage selectCarByYear(IPage page, String year, String unit); + + /** + * 查询车辆当年的月度里程数 + * @param carList 车牌列表 + * @param year 年份 + * @return 里程数列表 + */ + List selectMilesByCar(List carList, String year); + + /** + * 查询车辆的里程数 + * @param plateNumber 车牌号 + * @return 里程数 + */ + BigDecimal selectMilesByPlateNumber(String plateNumber); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml new file mode 100644 index 0000000..0fda798 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.java new file mode 100644 index 0000000..38f26bd --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.java @@ -0,0 +1,35 @@ +package com.hnac.hzims.safeproduct.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; +import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO; +import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Map; + +/** + * 用车记录Mapper类 + * + * @author liwen + * @date 2024-01-04 + */ +@Mapper +public interface CarUsedRecordMapper extends BaseMapper { + + /** + * 用车记录详情 + * @param carUsedRecordId 用车记录id + * @return 用车记录详情VO类 + */ + CarUsedRecordDetailVO getCarUsedRecord(Long carUsedRecordId); + + /** + * 用车记录页面 + * @param param 入参 + * @param page 分页类 + * @return 分页数据 + */ + IPage getCarUsedRecordPage(IPage page, Map param); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.xml new file mode 100644 index 0000000..8a10fa4 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarUsedRecordMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java new file mode 100644 index 0000000..9bd0042 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java @@ -0,0 +1,14 @@ +package com.hnac.hzims.safeproduct.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; + +/** + * 车检项服务类 + * + * @author liwen + * @date 2024-01-05 + */ +public interface ICarCheckItemService extends IService { + +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java new file mode 100644 index 0000000..0337b44 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java @@ -0,0 +1,28 @@ +package com.hnac.hzims.safeproduct.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; +import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO; + +/** + * 车检记录服务类 + * + * @author liwen + * @date 2024-01-05 + */ +public interface ICarCheckRecordService extends IService { + + /** + * 新增车检记录 + * @param carCheckRecordEntity 车检记录实体类 + * @return true-成功,false-失败 + */ + boolean saveCarCheckRecord(CarCheckRecordEntity carCheckRecordEntity); + + /** + * 车检记录详情 + * @param id 车检记录id + * @return 车检记录详情VO类 + */ + CarCheckRecordDetailVO getCarCheckRecord(Long id); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java new file mode 100644 index 0000000..f85ba53 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java @@ -0,0 +1,49 @@ +package com.hnac.hzims.safeproduct.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO; +import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; +import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO; +import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO; +import org.springblade.core.mp.support.Query; + +import java.util.Map; + +/** + * 车辆维保记录服务类 + * + * @author liwen + * @date 2024-01-04 + */ +public interface ICarMaintenanceService extends IService { + + /** + * 新增车辆维保记录 + * @param carMaintenanceEntity 车辆维保记录实体类 + * @return true-成功,false-失败 + */ + boolean saveCarMaintenance(CarMaintenanceEntity carMaintenanceEntity); + + /** + * 查询车辆维保记录详情 + * @param id 车辆维保记录id + * @return 车辆维保记录详情VO类 + */ + CarMaintenanceDetailVO getCarMaintenance(Long id); + + /** + * 车辆维保记录数据页 + * @param param 入参 + * @param query 分页类 + * @return 分页数据 + */ + IPage getCarMaintenancePage(Map param, Query query); + + /** + * 车辆维保记录确认 + * @param confirmationDTO 车辆维保记录确认DTO类 + * @return true-成功,false-失败 + */ + boolean confirmCarMaintenance(CarMaintenanceConfirmationDTO confirmationDTO); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java new file mode 100644 index 0000000..43c815f --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java @@ -0,0 +1,26 @@ +package com.hnac.hzims.safeproduct.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.entity.CarEntity; +import com.hnac.hzims.safeproduct.vo.CarMilesYearVO; +import org.springblade.core.mp.support.Query; + +/** + * 车辆管理服务类 + * + * @author liwen + * @date 2024-01-03 + */ +public interface ICarService extends IService { + + /** + * 年度里程数页面 + * @param year 年份 + * @param unit 单位 + * @param query 分页类 + * @return 分页数据 + */ + IPage milesDataByYear(String year, String unit, Query query); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java new file mode 100644 index 0000000..b8ba1f9 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java @@ -0,0 +1,50 @@ +package com.hnac.hzims.safeproduct.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; +import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; +import com.hnac.hzims.safeproduct.vo.CarMilesYearVO; +import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO; +import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO; +import org.springblade.core.mp.support.Query; + +import java.util.Map; + +/** + * 用车记录服务类 + * + * @author liwen + * @date 2024-01-04 + */ +public interface ICarUsedRecordService extends IService { + + /** + * 新增用车记录 + * @param carUsedRecordEntity 用车记录实体类 + * @return true-成功,false-失败 + */ + boolean saveCarUsedRecord(CarUsedRecordEntity carUsedRecordEntity); + + /** + * 用车记录详情 + * @param id 用车记录id + * @return 用车记录详情VO类 + */ + CarUsedRecordDetailVO getCarUsedRecord(Long id); + + /** + * 用车记录页面 + * @param param 入参 + * @param query 分页类 + * @return 分页数据 + */ + IPage getCarUsedRecordPage(Map param, Query query); + + /** + * 用车记录确认 + * @param confirmationDTO 用车记录确认DTO类 + * @return true-成功,false-失败 + */ + boolean confirmCarUsedRecord(CarUsedRecordConfirmationDTO confirmationDTO); +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java new file mode 100644 index 0000000..ede8a3a --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java @@ -0,0 +1,18 @@ +package com.hnac.hzims.safeproduct.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; +import com.hnac.hzims.safeproduct.mapper.CarCheckItemMapper; +import com.hnac.hzims.safeproduct.service.ICarCheckItemService; +import org.springframework.stereotype.Service; + +/** + * 车检项服务实现类 + * + * @author liwen + * @date 2024-01-05 + */ +@Service +public class CarCheckItemServiceImpl extends ServiceImpl implements ICarCheckItemService { + +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java new file mode 100644 index 0000000..60a876a --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java @@ -0,0 +1,122 @@ +package com.hnac.hzims.safeproduct.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DatePattern; +import com.alibaba.excel.util.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; +import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; +import com.hnac.hzims.safeproduct.entity.CarEntity; +import com.hnac.hzims.safeproduct.mapper.CarCheckRecordMapper; +import com.hnac.hzims.safeproduct.mapper.CarMapper; +import com.hnac.hzims.safeproduct.service.ICarCheckItemService; +import com.hnac.hzims.safeproduct.service.ICarCheckRecordService; +import com.hnac.hzims.safeproduct.utils.BaseUtil; +import com.hnac.hzims.safeproduct.vo.CarCheckItemVO; +import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 车检记录服务实现类 + * + * @author liwen + * @date 2024-01-05 + */ +@Service +public class CarCheckRecordServiceImpl extends ServiceImpl implements ICarCheckRecordService { + + @Resource + CarMapper carMapper; + + @Autowired + ICarCheckItemService carCheckItemService; + + /** + * 新增车检记录 + */ + @Override + public boolean saveCarCheckRecord(CarCheckRecordEntity carCheckRecordEntity) { + // 编码生成 + // 获取当月时间(yyyymm) + String currentMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()); + // 查询是否存在同月编号 + String lastCode = getLastCode(currentMonth); + String code = BaseUtil.getUniqueCode("CLJC", lastCode, currentMonth); + carCheckRecordEntity.setCode(code); + return this.save(carCheckRecordEntity); + } + + /** + * 车检记录详情 + */ + @Override + public CarCheckRecordDetailVO getCarCheckRecord(Long id) { + CarCheckRecordEntity carCheckRecord = this.getById(id); + if (carCheckRecord != null) { + CarCheckRecordDetailVO carCheckRecordDetailVO = new CarCheckRecordDetailVO(); + // 车检记录属性 + carCheckRecordDetailVO.setCode(carCheckRecord.getCode()); + carCheckRecordDetailVO.setChecker(carCheckRecord.getChecker()); + carCheckRecordDetailVO.setConclusion(carCheckRecord.getConclusion()); + carCheckRecordDetailVO.setRemark(carCheckRecord.getRemark()); + // 车辆台账属性 + CarEntity car = carMapper.selectById(carCheckRecord.getCarId()); + if (car != null) { + carCheckRecordDetailVO.setCarBrand(car.getCarBrand()); + carCheckRecordDetailVO.setPlateNumber(car.getPlateNumber()); + // 用车记录属性 + BigDecimal miles = carMapper.selectMilesByPlateNumber(car.getPlateNumber()); + carCheckRecordDetailVO.setMiles(miles); + } + // 拼装检查列表 + List checkList = new ArrayList<>(); + String[] checkItemIds = carCheckRecord.getCheckItemIds().split(",|,"); + String[] checkItemResults = carCheckRecord.getCheckItemResults().split(",|,"); + for (int i = 0; i < checkItemIds.length; i++) { + CarCheckItemEntity checkItemEntity = carCheckItemService.getById(checkItemIds[i]); + CarCheckItemVO carCheckItemVO = new CarCheckItemVO(); + carCheckItemVO.setCheckItem(checkItemEntity.getCheckItem()); + carCheckItemVO.setCheckContent(checkItemEntity.getCheckContent()); + carCheckItemVO.setCheckResult(checkItemResults[i]); + checkList.add(carCheckItemVO); + } + carCheckRecordDetailVO.setCheckItemList(checkList); + return carCheckRecordDetailVO; + } + return null; + } + + /** + * 查询是否存在同月编号 + * @param currentMonth 当月 + * @return 存在则返回上一编号,否则返回null + */ + private String getLastCode(String currentMonth) { + String month = currentMonth.substring(currentMonth.length() - 2); + List list = getCarCheckRecordByMonth(month); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0).getCode(); + } + + /** + * 查询当月卫生自查记录 + * @param month 当月 + * @return 当月卫生自查数据表 + */ + private List getCarCheckRecordByMonth(String month) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().like(CarCheckRecordEntity::getCreateTime, month) + .orderByDesc(CarCheckRecordEntity::getCode); + return this.list(queryWrapper); + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java new file mode 100644 index 0000000..3aa1cf3 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java @@ -0,0 +1,107 @@ +package com.hnac.hzims.safeproduct.service.impl; + +import cn.hutool.core.date.DatePattern; +import com.alibaba.excel.util.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO; +import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; +import com.hnac.hzims.safeproduct.mapper.CarMaintenanceMapper; +import com.hnac.hzims.safeproduct.mapper.CarMapper; +import com.hnac.hzims.safeproduct.service.ICarMaintenanceService; +import com.hnac.hzims.safeproduct.utils.BaseUtil; +import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO; +import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 车辆维保记录服务实现类 + * + * @author liwen + * @date 2024-01-04 + */ +@Service +public class CarMaintenanceServiceImpl extends ServiceImpl implements ICarMaintenanceService { + + @Resource + CarMapper carMapper; + + /** + * 新增车辆维保记录 + */ + @Override + public boolean saveCarMaintenance(CarMaintenanceEntity carMaintenanceEntity) { + // 编码生成 + // 获取当月时间(yyyymm) + String currentMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()); + // 查询是否存在同月编号 + String lastCode = getLastCode(currentMonth); + // 若不存在,新增编号 + String code = BaseUtil.getUniqueCode("YCJL", lastCode, currentMonth); + carMaintenanceEntity.setCode(code); + return this.save(carMaintenanceEntity); + } + + /** + * 查询车辆维保记录详情 + */ + @Override + public CarMaintenanceDetailVO getCarMaintenance(Long id) { + return baseMapper.getCarMaintenance(id); + } + + /** + * 车辆维保记录数据页 + */ + @Override + public IPage getCarMaintenancePage(Map param, Query query) { + IPage page = new Page<>(query.getCurrent(), query.getSize()); + return baseMapper.getCarMaintenancePage(page, param); + } + + /** + * 车辆维保记录确认 + */ + @Override + public boolean confirmCarMaintenance(CarMaintenanceConfirmationDTO confirmationDTO) { + CarMaintenanceEntity carMaintenanceEntity = this.getById(confirmationDTO.getCarMaintenanceId()); + carMaintenanceEntity.setManagerAdvice(confirmationDTO.getManagerAdvice()); + carMaintenanceEntity.setConfirmationTime(DateUtil.now()); + return this.updateById(carMaintenanceEntity); + } + + /** + * 查询是否存在同月编号 + * @param currentMonth 当月 + * @return 存在则返回上一编号,否则返回null + */ + private String getLastCode(String currentMonth) { + String month = currentMonth.substring(currentMonth.length() - 2); + List list = getHygieneByMonth(month); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0).getCode(); + } + + /** + * 查询当月车辆维保记录 + * @param month 当月 + * @return 当月车辆维保数据表 + */ + private List getHygieneByMonth(String month) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().like(CarMaintenanceEntity::getCreateTime, month) + .orderByDesc(CarMaintenanceEntity::getCode); + return this.list(queryWrapper); + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java new file mode 100644 index 0000000..64c55cd --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java @@ -0,0 +1,105 @@ +package com.hnac.hzims.safeproduct.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.dto.CarMilesYearDTO; +import com.hnac.hzims.safeproduct.entity.CarEntity; +import com.hnac.hzims.safeproduct.mapper.CarMapper; +import com.hnac.hzims.safeproduct.service.ICarService; +import com.hnac.hzims.safeproduct.vo.CarMilesYearVO; +import org.springblade.core.mp.support.Query; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 车辆管理服务实现类 + * + * @author liwen + * @date 2024-01-03 + */ +@Service +public class CarServiceImpl extends ServiceImpl implements ICarService { + + /** + * 年度里程数页面 + */ + @Override + public IPage milesDataByYear(String year, String unit, Query query) { + IPage page = new Page<>(query.getCurrent(), query.getSize()); + IPage carPage = baseMapper.selectCarByYear(page, year, unit); + List records = carPage.getRecords(); + // 若无数据,返回空页面 + if (CollectionUtils.isEmpty(records)) { + return carPage; + } + List carList = records.stream().map(CarMilesYearVO::getPlateNumber).collect(Collectors.toList()); + List milesList = baseMapper.selectMilesByCar(carList, year); + List res = new ArrayList<>(); + milesList.forEach(data -> { + CarMilesYearVO carMilesYearVO = records.stream().filter(x -> x.getPlateNumber().equals(data.getPlateNumber())) + .collect(Collectors.toList()).get(0); + BigDecimal sum = carMilesYearVO.getSumMiles() == null ? new BigDecimal(0) : carMilesYearVO.getSumMiles(); + // 根据月份匹配写入对应字段 + switch (data.getDateTime()) { + case "01": + carMilesYearVO.setJanuaryMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "02": + carMilesYearVO.setFebruaryMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "03": + carMilesYearVO.setMarchMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "04": + carMilesYearVO.setAprilMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "05": + carMilesYearVO.setMayMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "06": + carMilesYearVO.setJuneMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "07": + carMilesYearVO.setJulyMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "08": + carMilesYearVO.setAugustMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "09": + carMilesYearVO.setSeptemberMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "10": + carMilesYearVO.setOctoberMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "11": + carMilesYearVO.setNovemberMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + break; + case "12": + carMilesYearVO.setDecemberMiles(data.getMiles()); + carMilesYearVO.setSumMiles(sum.add(data.getMiles())); + } + if (!carMilesYearVO.getSumMiles().equals(new BigDecimal(0))) { + res.add(carMilesYearVO); + } + }); + carPage.setRecords(res); + return carPage; + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java new file mode 100644 index 0000000..2b35beb --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java @@ -0,0 +1,100 @@ +package com.hnac.hzims.safeproduct.service.impl; + +import cn.hutool.core.date.DatePattern; +import com.alibaba.excel.util.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; +import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; +import com.hnac.hzims.safeproduct.mapper.CarUsedRecordMapper; +import com.hnac.hzims.safeproduct.service.ICarUsedRecordService; +import com.hnac.hzims.safeproduct.utils.BaseUtil; +import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO; +import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO; +import org.springblade.core.mp.support.Query; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 用车记录服务实现类 + * + * @author liwen + * @date 2024-01-04 + */ +@Service +public class CarUsedRecordServiceImpl extends ServiceImpl implements ICarUsedRecordService { + + /** + * 新增用车记录 + */ + @Override + public boolean saveCarUsedRecord(CarUsedRecordEntity carUsedRecordEntity) { + // 编码生成 + // 获取当月时间(yyyymm) + String currentMonth = DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()); + // 查询是否存在同月编号 + String lastCode = getLastCode(currentMonth); + // 若不存在,新增编号 + String code = BaseUtil.getUniqueCode("WBJL", lastCode, currentMonth); + carUsedRecordEntity.setCode(code); + return false; + } + + /** + * 用车记录详情 + */ + @Override + public CarUsedRecordDetailVO getCarUsedRecord(Long id) { + return baseMapper.getCarUsedRecord(id); + } + + /** + * 用车记录页面 + */ + @Override + public IPage getCarUsedRecordPage(Map param, Query query) { + IPage page = new Page<>(query.getCurrent(), query.getSize()); + return baseMapper.getCarUsedRecordPage(page, param); + } + + /** + * 用车记录确认 + */ + @Override + public boolean confirmCarUsedRecord(CarUsedRecordConfirmationDTO confirmationDTO) { + CarUsedRecordEntity carUsedRecord = this.getById(confirmationDTO.getCarUsedRecordId()); + carUsedRecord.setConfirmationTime(confirmationDTO.getConfirmationTime()); + return this.updateById(carUsedRecord); + } + + /** + * 查询是否存在同月编号 + * @param currentMonth 当月 + * @return 存在则返回上一编号,否则返回null + */ + private String getLastCode(String currentMonth) { + String month = currentMonth.substring(currentMonth.length() - 2); + List list = getHygieneByMonth(month); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0).getCode(); + } + + /** + * 查询当月车辆维保记录 + * @param month 当月 + * @return 当月车辆维保数据表 + */ + private List getHygieneByMonth(String month) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().like(CarUsedRecordEntity::getCreateTime, month) + .orderByDesc(CarUsedRecordEntity::getCode); + return this.list(queryWrapper); + } +} From 85b7f73f316cf62bdd287a569f000af1ac04dc05 Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Sat, 6 Jan 2024 14:42:29 +0800 Subject: [PATCH 2/3] =?UTF-8?q?#=E6=96=BD=E5=B7=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../access/entity/OperConstructionEntity.java | 73 +++++ .../operational/access/vo/ConstructionVo.java | 38 +++ .../equipment/controller/EmInfoController.java | 1 + .../access/controller/ConstructionController.java | 84 ++++++ .../access/mapper/ConstructionMapper.java | 11 + .../access/mapper/ConstructionMapper.xml | 4 + .../access/service/ConstructionService.java | 19 ++ .../service/impl/ConstructionServiceImpl.java | 117 ++++++++ .../access/wrapper/ConstructionWrapper.java | 41 +++ .../com/hnac/hzims/operational/util/PdfUtils.java | 322 +++++++++++++++++++++ .../template/excel/constructio_template.xlsx | Bin 0 -> 17960 bytes .../workTicket/mapper/xml/WorkTicketInfoMapper.xml | 2 +- 12 files changed, 711 insertions(+), 1 deletion(-) create mode 100644 hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java create mode 100644 hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.xml create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/ConstructionService.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/wrapper/ConstructionWrapper.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java create mode 100644 hzims-service/operational/src/main/resources/template/excel/constructio_template.xlsx diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java new file mode 100644 index 0000000..1467abe --- /dev/null +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java @@ -0,0 +1,73 @@ +package com.hnac.hzims.operational.access.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author ysj + */ +@Data +@TableName("hzims_oper_construction") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "检修施工日志表") +public class OperConstructionEntity extends TenantEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "施工编号") + private String code; + + @ApiModelProperty(value = "施工时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date constructionTime; + + @ApiModelProperty(value = "检修名称") + private String overhaulName; + + @ApiModelProperty(value = "施工地点") + private String constructionLocation; + + @ApiModelProperty(value = "检修负责人") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long overhaulHead; + + @ApiModelProperty(value = "检修人员: 根据“,”分割") + private String overhaulPersonnel; + + @ApiModelProperty(value = "检修时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date overhaulTime; + + @ApiModelProperty(value = "今日工作完成情况描述") + private String completeWorkDesc; + + @ApiModelProperty(value = "明日工作计划描述") + private String planWorkDesc; + + @ApiModelProperty(value = "施工图片: 根据“,”分割") + private String constructionImg; + + @ApiModelProperty(value = "施工附件") + private String constructionAttachment; + + @ApiModelProperty(value = "记录人") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long recorder; + + @ApiModelProperty(value = "审核人") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long reviewer; + +} diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java new file mode 100644 index 0000000..aeaf0aa --- /dev/null +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java @@ -0,0 +1,38 @@ +package com.hnac.hzims.operational.access.vo; + +import com.hnac.hzims.operational.access.entity.OperConstructionEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author ysj + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ConstructionVo extends OperConstructionEntity { + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "创建人名称") + private String createUserName; + + @ApiModelProperty(value = "修改人名称") + private String updateUserName; + + @ApiModelProperty(value = "检修负责人名称") + private String overhaulHeadName; + + @ApiModelProperty(value = "记录人名称") + private String recorderName; + + @ApiModelProperty(value = "审核人名称") + private String reviewerName; + + @ApiModelProperty(value = "检修人员名称Name") + private String overhaulPersonnelName; +} diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java index e1346c1..6239612 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java @@ -66,6 +66,7 @@ public class EmInfoController extends BladeController { /** * 元件列表 分页 */ + @GetMapping("/partList") @ApiOperationSupport(order = 2) @ApiOperation(value = "元件分页", notes = "传入em_info,必须传gpid(上级设备ID)") diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java new file mode 100644 index 0000000..aa03b00 --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java @@ -0,0 +1,84 @@ +package com.hnac.hzims.operational.access.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.common.logs.annotation.OperationAnnotation; +import com.hnac.hzims.common.logs.enums.BusinessType; +import com.hnac.hzims.common.logs.enums.OperatorType; +import com.hnac.hzims.operational.access.dto.AccessPlanV4DTO; +import com.hnac.hzims.operational.access.dto.OperAccessPlanDTO; +import com.hnac.hzims.operational.access.dto.OperAccessPlanFlowDTO; +import com.hnac.hzims.operational.access.dto.OperAccessPlanListDTO; +import com.hnac.hzims.operational.access.entity.OperConstructionEntity; +import com.hnac.hzims.operational.access.service.AccessPlanV4Service; +import com.hnac.hzims.operational.access.service.ConstructionService; +import com.hnac.hzims.operational.access.vo.ConstructionVo; +import com.hnac.hzims.operational.access.vo.OperAccessPlanVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.annotation.ApiLog; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + + +/** + * @author ysj + */ +@RestController +@AllArgsConstructor +@RequestMapping("/construction") +@Api(tags = "施工日志") +public class ConstructionController extends BladeController { + + + private final ConstructionService service; + + @PostMapping("/save") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "新增") + public R save(@RequestBody OperConstructionEntity entity) { + return R.status(service.save(entity)); + } + + @PostMapping("/remove") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "逻辑删除") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(service.deleteLogic(Func.toLongList(ids))); + } + + @PostMapping("/update") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "修改") + public R update(@Valid @RequestBody OperConstructionEntity entity) { + return R.status(service.updateById(entity)); + } + + @GetMapping("/list") + @ApiOperationSupport(order = 4) + @OperationAnnotation(moduleName = "检修管理",title = "检修计划",operatorType = OperatorType.MOBILE,businessType = + BusinessType.GENCODE, + action = "分页查询检修计划列表") + @ApiOperation(value = "分页 查询参数:code,name,gradeCode,manager,techLead,handleStatus,status") + public R> list(ConstructionVo construction, Query query) { + return R.data(service.pageCondition(Condition.getPage(query), construction)); + } + + @GetMapping("/preview") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "检修施工日志预览", notes = "检修施工日志预览") + public void preview(@RequestParam @ApiParam("检修施工记录Id") @NotNull @Valid Long id) { + service.preview(id); + } + + +} \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.java new file mode 100644 index 0000000..e5dd121 --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.java @@ -0,0 +1,11 @@ +package com.hnac.hzims.operational.access.mapper; + +import com.hnac.hzims.operational.access.entity.OperConstructionEntity; +import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; + +/** + * @author ysj + */ +public interface ConstructionMapper extends UserDataScopeBaseMapper { + +} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.xml new file mode 100644 index 0000000..b1358be --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/ConstructionMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/ConstructionService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/ConstructionService.java new file mode 100644 index 0000000..a70cedc --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/ConstructionService.java @@ -0,0 +1,19 @@ +package com.hnac.hzims.operational.access.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.operational.access.entity.OperConstructionEntity; +import com.hnac.hzims.operational.access.vo.ConstructionVo; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; + +/** + * @author ysj + */ +public interface ConstructionService extends BaseService { + + + IPage pageCondition(IPage page, ConstructionVo construction); + + void preview(Long id); +} \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java new file mode 100644 index 0000000..e291ccb --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java @@ -0,0 +1,117 @@ +package com.hnac.hzims.operational.access.service.impl; + +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.operational.access.entity.OperConstructionEntity; +import com.hnac.hzims.operational.access.mapper.ConstructionMapper; +import com.hnac.hzims.operational.access.service.ConstructionService; +import com.hnac.hzims.operational.access.vo.ConstructionVo; +import com.hnac.hzims.operational.access.wrapper.ConstructionWrapper; +import com.hnac.hzims.operational.util.ExcelUtil; +import com.hnac.hzims.operational.util.PdfUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.Map; + +/** + * @author ysj + */ +@Service +@Slf4j +@RequiredArgsConstructor +public class ConstructionServiceImpl extends BaseServiceImpl implements ConstructionService { + + + @Value("${hzims.operational.construction.save.xlsx}") + private String constructionSaveXlsxPath; + + @Value("${hzims.operational.construction.save.pdf}") + private String constructionSavePdfPath; + + /** + * 施工日志记录分页查询 + * @param page + * @param construction + * @return + */ + @Override + public IPage pageCondition(IPage page, ConstructionVo construction) { + QueryWrapper wrapper = Condition.getQueryWrapper(construction); + if(StringUtil.isNotBlank(construction.getStartTime())){ + wrapper.ge("CREATE_TIME",construction.getStartTime()); + } + if(StringUtil.isNotBlank(construction.getEndTime())){ + wrapper.le("CREATE_TIME",construction.getEndTime()); + } + IPage pages = super.page(page, wrapper); + pages.setRecords(ConstructionWrapper.build().listVO(pages.getRecords())); + return pages; + } + + /** + * 施工日志记录预览 + * @param id + */ + @Override + public void preview(Long id) { + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletResponse response = servletRequestAttributes.getResponse(); + //准备数据 + ConstructionVo construction = this.record(id); + Map params = new HashMap<>(); + try { + params = PdfUtils.objectToMap(construction); + }catch (Exception e) { + log.error("转换对象失败!"); + } + TemplateExportParams templateExportParams = new TemplateExportParams("template/constructio_template.xlsx", true); + Workbook workbook = null; + try { + workbook = ExcelUtil.getWorkbook(templateExportParams,params); + } catch (Exception e) { + e.printStackTrace(); + } + //上传xlsx至服务器 + String fileName = DateUtil.format(construction.getConstructionTime(),DateUtil.PATTERN_DATETIME) + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.XLSX_SUFFIX; + try { + ExcelUtil.upload(workbook,constructionSaveXlsxPath,fileName); + } catch (Exception e) { + e.printStackTrace(); + } + //将docx文件转换为pdf并保存 + String pdfFileName = DateUtil.format(construction.getConstructionTime(),DateUtil.PATTERN_DATETIME) + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.PDF_SUFFIX; + String xlsxFileName = DateUtil.format(construction.getConstructionTime(),DateUtil.PATTERN_DATETIME) + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.XLSX_SUFFIX; + PdfUtils.convertPdf(constructionSaveXlsxPath, xlsxFileName, constructionSavePdfPath, pdfFileName); + String savePath = constructionSavePdfPath + pdfFileName; + // 设置response参数,可以打开下载页面 + PdfUtils.readPdf(response,savePath); + } + + /** + * 查询施工日志记录 + * @param id + * @return + */ + private ConstructionVo record(Long id) { + OperConstructionEntity entity = this.getById(id); + if(ObjectUtil.isEmpty(entity)){ + throw new ServiceException("施工日志记录不存在!"); + } + return ConstructionWrapper.build().entityVO(entity); + } +} \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/wrapper/ConstructionWrapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/wrapper/ConstructionWrapper.java new file mode 100644 index 0000000..93d1aba --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/wrapper/ConstructionWrapper.java @@ -0,0 +1,41 @@ +package com.hnac.hzims.operational.access.wrapper; + +import com.hnac.hzims.operational.access.constants.DictConstant; +import com.hnac.hzims.operational.access.entity.OperAccessPlanEntity; +import com.hnac.hzims.operational.access.entity.OperConstructionEntity; +import com.hnac.hzims.operational.access.vo.ConstructionVo; +import com.hnac.hzims.operational.access.vo.OperAccessPlanVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.system.cache.DictCache; +import org.springblade.system.user.cache.UserCache; +import org.springblade.system.user.entity.User; + +import java.util.Optional; + +/** + * @author ysj + */ +public class ConstructionWrapper extends BaseEntityWrapper { + + public static ConstructionWrapper build() { + return new ConstructionWrapper(); + } + + @Override + public ConstructionVo entityVO(OperConstructionEntity entity) { + ConstructionVo vo = BeanUtil.copy(entity, ConstructionVo.class); + User create = UserCache.getUser(entity.getCreateUser()); + User update = UserCache.getUser(entity.getUpdateUser()); + User head = UserCache.getUser(entity.getOverhaulHead()); + User recorder = UserCache.getUser(entity.getRecorder()); + User reviewer = UserCache.getUser(entity.getReviewer()); + vo.setCreateUserName(Optional.ofNullable(create).map(User :: getName).orElse(null)); + vo.setUpdateUserName(Optional.ofNullable(update).map(User :: getName).orElse(null)); + vo.setOverhaulHeadName(Optional.ofNullable(head).map(User :: getName).orElse(null)); + vo.setRecorderName(Optional.ofNullable(recorder).map(User :: getName).orElse(null)); + vo.setReviewerName(Optional.ofNullable(reviewer).map(User :: getName).orElse(null)); + return vo; + } + +} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java new file mode 100644 index 0000000..89ce2ac --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java @@ -0,0 +1,322 @@ +package com.hnac.hzims.operational.util; + +import com.documents4j.api.DocumentType; +import com.documents4j.api.IConverter; +import com.documents4j.job.LocalConverter; +import com.hnac.hzims.ticket.annotation.DefaultValue; +import com.hnac.hzims.ticket.constants.TicketConstants; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.lang.reflect.Field; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.util.*; + +/** + * @author hx + */ +@Slf4j +public class PdfUtils { + + /** 文件后缀名 **/ + public static String DOC_SUFFIX = ".doc"; + public static String DOCX_SUFFIX = ".docx"; + public static String XLS_SUFFIX = ".xls"; + public static String XLSX_SUFFIX = ".xlsx"; + public static String PDF_SUFFIX = ".pdf"; + + /*** + * 各文件转换为pdf + * @param templatePath 待转换的文件路径 + * @param templateFileName 待转换的文件名 + * @param savePath 转换为pdf后的文件路径 + * @param saveFileName 转换为pdf后的文件名称 + * @return + */ + public static void convertPdf(String templatePath, String templateFileName, String savePath, String saveFileName) { + String templateFilePath = templatePath + templateFileName; + String saveFilePath = savePath + saveFileName; + log.info("转换前的文件为:{};转换后的路径为:{}", templateFilePath, saveFilePath); + File templateFile = new File(templateFilePath); + File saveFile = new File(saveFilePath); + //获取文件类型 + String fileType = templateFileName.substring(templateFileName.lastIndexOf("."), templateFileName.length()); + InputStream inputStream = null; + OutputStream outputStream = null; + try { + try { + inputStream = new FileInputStream(templateFile); + outputStream = new FileOutputStream(saveFile); + //document4j 转换 pdf linux环境下不支持 + if (DOCX_SUFFIX.equals(fileType)) { + IConverter converter = LocalConverter.builder().build(); + converter.convert(inputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute(); + converter.shutDown(); + } else if (DOC_SUFFIX.equals(fileType)) { + IConverter converter = LocalConverter.builder().build(); + converter.convert(inputStream).as(DocumentType.DOC).to(outputStream).as(DocumentType.PDF).execute(); + converter.shutDown(); + } else if (XLS_SUFFIX.equals(fileType)) { + IConverter converter = LocalConverter.builder().build(); + converter.convert(inputStream).as(DocumentType.XLS).to(outputStream).as(DocumentType.PDF).execute(); + converter.shutDown(); + } else if (XLSX_SUFFIX.equals(fileType)) { + //此方式行不通 + //converter.convert(inputStream).as(DocumentType.XLSX).to(outputStream).as(DocumentType.PDF).execute(); + Workbook wb = new Workbook(); + wb.loadFromFile(templateFilePath); + wb.saveToFile(saveFilePath, FileFormat.PDF); + } + } catch (Exception e) { + log.error("转换失败,错误信息为:{}", e.getMessage()); + throw new ServiceException(e.getMessage()); + } finally { + inputStream.close(); + outputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + + /** + * 对象转化为Map 并设置默认值 + * + * @param obj + * @return + * @throws Exception + */ + public static Map objectToMap(Object obj) { + Map result = new HashMap<>(); + if (ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { + Class clazz = obj.getClass(); + List fieldList = new ArrayList<>(); + while (clazz != null) { + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + fieldList.forEach(field -> { + field.setAccessible(true); + DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); + Object value; + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + throw new ServiceException("获取属性性出错"); + } + //若为list则不处理 + if (value instanceof List) { + return; + } + //若为时间格式则进行格式化 + if (value instanceof LocalDateTime) { + value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); + } + if (value instanceof Date) { + value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); + } + + //如果value为空直接跳出 + // if ((ObjectUtils.isEmpty(value) || value == "") && StringUtil.isNoneBlank(field.getName())){ + // return; + // } + + //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 + if (ObjectUtil.isNotEmpty(defaultValue)) { + result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), + ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); + } else { + result.put(field.getName(), Optional.ofNullable(value).orElse(" ")); + + } + }); + } + return result; + } + + + /** + * 对象转化为Map 并设置默认值 + * + * @param obj + * @return + * @throws Exception + */ + public static Map objectToMap(Object obj, boolean isWordFlag) { + Map result = new HashMap<>(); + if (ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { + Class clazz = obj.getClass(); + List fieldList = new ArrayList<>(); + while (clazz != null) { + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + fieldList.forEach(field -> { + field.setAccessible(true); + DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); + Object value; + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + throw new ServiceException("获取属性性出错"); + } + //若为list则不处理 + if (value instanceof List) { + return; + } + //若为时间格式则进行格式化 + if (value instanceof LocalDateTime) { + value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); + } + if (value instanceof Date) { + value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); + } + + //如果value为空直接跳出 + // if ((ObjectUtils.isEmpty(value) || value == "") && StringUtil.isNoneBlank(field.getName())){ + // return; + // } + + //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 + if (ObjectUtil.isNotEmpty(defaultValue)) { + result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), + ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); + } else { + if (isWordFlag) { + //如果导出word为null会出现{{ ,value设置"\u00A0" + result.put(field.getName(), Optional.ofNullable(value).orElse("\u00A0")); + } else { + result.put(field.getName(), Optional.ofNullable(value).orElse(" ")); + } + } + }); + } + return result; + } + + + /** + * 对象转化为Map 并设置默认值 + * + * @param obj + * @return + * @throws Exception + */ + public static Map objectToMapResult(Object obj, Map map) { + Map result = new HashMap<>(); + if (ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { + Class clazz = obj.getClass(); + List fieldList = new ArrayList<>(); + while (clazz != null) { + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + fieldList.forEach(field -> { + field.setAccessible(true); + DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); + Object value; + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + throw new ServiceException("获取属性性出错"); + } + //若为list则不处理 + if (value instanceof List) { + return; + } + //若为时间格式则进行格式化 + if (value instanceof LocalDateTime) { + value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); + } + if (value instanceof Date) { + value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); + } + + if (map.containsKey(field.getName())) { + return; + } + + //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 + if (ObjectUtil.isNotEmpty(defaultValue)) { + result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), + ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); + } else { + //如果导出word为null会出现{{ ,value设置"\u00A0" + result.put(field.getName(), Optional.ofNullable(value).orElse("")); + } + }); + } + return result; + } + + + /** + * 读取本地pdf,这里设置的是预览 + */ + public static void readPdf(HttpServletResponse response, String filePath) { + response.reset(); + response.setContentType("application/pdf"); + FileInputStream fileInputStream = null; + OutputStream outputStream = null; + try { + File file = new File(filePath); + fileInputStream = new FileInputStream(file); + outputStream = response.getOutputStream(); + IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream); + response.setHeader("Content-Disposition", + "inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8")); + outputStream.flush(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + fileInputStream.close(); + outputStream.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * 读取本地pdf,这里设置的是导出 + */ + public static void exportPdf(HttpServletResponse response, String filePath) { + response.reset(); + response.setContentType("application/pdf"); + FileInputStream fileInputStream = null; + OutputStream outputStream = null; + try { + File file = new File(filePath); + fileInputStream = new FileInputStream(file); + outputStream = response.getOutputStream(); + IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream); + response.setHeader("Content-Disposition", "inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8")); + outputStream.flush(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + fileInputStream.close(); + outputStream.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/hzims-service/operational/src/main/resources/template/excel/constructio_template.xlsx b/hzims-service/operational/src/main/resources/template/excel/constructio_template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..201df42805f492e2385a2649a8550ffb620fe490 GIT binary patch literal 17960 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 literal 0 HcmV?d00001 diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketInfoMapper.xml b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketInfoMapper.xml index 9c57323..2dc2cc3 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketInfoMapper.xml +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketInfoMapper.xml @@ -91,7 +91,7 @@ (select count(*) from hzims_work_ticket_info i where flow_description = '作废' and i.id = info.id) as invalid, (select count(*) from hzims_ticket_info_evaluate e where evaluate = '合格!' and e.id = eval.id) as qualified from hzims_work_ticket_info info - LEFT JOIN hzims_ticket_info_evaluate eval ON info.id = eval.ticket_i + LEFT JOIN hzims_ticket_info_evaluate eval ON info.id = eval.ticket_id and info.em_code in From fe00060b45557aac816ea8d98b03d4a7f5d7c1da Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Mon, 8 Jan 2024 09:30:52 +0800 Subject: [PATCH 3/3] =?UTF-8?q?#=E6=96=BD=E5=B7=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ConstructionServiceImpl.java | 21 +- .../com/hnac/hzims/operational/util/PdfUtils.java | 322 --------------------- 2 files changed, 10 insertions(+), 333 deletions(-) delete mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java index e291ccb..91e4ca1 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java @@ -9,7 +9,6 @@ import com.hnac.hzims.operational.access.service.ConstructionService; import com.hnac.hzims.operational.access.vo.ConstructionVo; import com.hnac.hzims.operational.access.wrapper.ConstructionWrapper; import com.hnac.hzims.operational.util.ExcelUtil; -import com.hnac.hzims.operational.util.PdfUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; @@ -74,11 +73,11 @@ public class ConstructionServiceImpl extends BaseServiceImpl params = new HashMap<>(); - try { + /*try { params = PdfUtils.objectToMap(construction); }catch (Exception e) { log.error("转换对象失败!"); - } + }*/ TemplateExportParams templateExportParams = new TemplateExportParams("template/constructio_template.xlsx", true); Workbook workbook = null; try { @@ -87,19 +86,19 @@ public class ConstructionServiceImpl extends BaseServiceImpl objectToMap(Object obj) { - Map result = new HashMap<>(); - if (ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { - Class clazz = obj.getClass(); - List fieldList = new ArrayList<>(); - while (clazz != null) { - fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); - clazz = clazz.getSuperclass(); - } - fieldList.forEach(field -> { - field.setAccessible(true); - DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); - Object value; - try { - value = field.get(obj); - } catch (IllegalAccessException e) { - throw new ServiceException("获取属性性出错"); - } - //若为list则不处理 - if (value instanceof List) { - return; - } - //若为时间格式则进行格式化 - if (value instanceof LocalDateTime) { - value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); - } - if (value instanceof Date) { - value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); - } - - //如果value为空直接跳出 - // if ((ObjectUtils.isEmpty(value) || value == "") && StringUtil.isNoneBlank(field.getName())){ - // return; - // } - - //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 - if (ObjectUtil.isNotEmpty(defaultValue)) { - result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), - ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); - } else { - result.put(field.getName(), Optional.ofNullable(value).orElse(" ")); - - } - }); - } - return result; - } - - - /** - * 对象转化为Map 并设置默认值 - * - * @param obj - * @return - * @throws Exception - */ - public static Map objectToMap(Object obj, boolean isWordFlag) { - Map result = new HashMap<>(); - if (ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { - Class clazz = obj.getClass(); - List fieldList = new ArrayList<>(); - while (clazz != null) { - fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); - clazz = clazz.getSuperclass(); - } - fieldList.forEach(field -> { - field.setAccessible(true); - DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); - Object value; - try { - value = field.get(obj); - } catch (IllegalAccessException e) { - throw new ServiceException("获取属性性出错"); - } - //若为list则不处理 - if (value instanceof List) { - return; - } - //若为时间格式则进行格式化 - if (value instanceof LocalDateTime) { - value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); - } - if (value instanceof Date) { - value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); - } - - //如果value为空直接跳出 - // if ((ObjectUtils.isEmpty(value) || value == "") && StringUtil.isNoneBlank(field.getName())){ - // return; - // } - - //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 - if (ObjectUtil.isNotEmpty(defaultValue)) { - result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), - ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); - } else { - if (isWordFlag) { - //如果导出word为null会出现{{ ,value设置"\u00A0" - result.put(field.getName(), Optional.ofNullable(value).orElse("\u00A0")); - } else { - result.put(field.getName(), Optional.ofNullable(value).orElse(" ")); - } - } - }); - } - return result; - } - - - /** - * 对象转化为Map 并设置默认值 - * - * @param obj - * @return - * @throws Exception - */ - public static Map objectToMapResult(Object obj, Map map) { - Map result = new HashMap<>(); - if (ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { - Class clazz = obj.getClass(); - List fieldList = new ArrayList<>(); - while (clazz != null) { - fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); - clazz = clazz.getSuperclass(); - } - fieldList.forEach(field -> { - field.setAccessible(true); - DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); - Object value; - try { - value = field.get(obj); - } catch (IllegalAccessException e) { - throw new ServiceException("获取属性性出错"); - } - //若为list则不处理 - if (value instanceof List) { - return; - } - //若为时间格式则进行格式化 - if (value instanceof LocalDateTime) { - value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); - } - if (value instanceof Date) { - value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); - } - - if (map.containsKey(field.getName())) { - return; - } - - //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 - if (ObjectUtil.isNotEmpty(defaultValue)) { - result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), - ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); - } else { - //如果导出word为null会出现{{ ,value设置"\u00A0" - result.put(field.getName(), Optional.ofNullable(value).orElse("")); - } - }); - } - return result; - } - - - /** - * 读取本地pdf,这里设置的是预览 - */ - public static void readPdf(HttpServletResponse response, String filePath) { - response.reset(); - response.setContentType("application/pdf"); - FileInputStream fileInputStream = null; - OutputStream outputStream = null; - try { - File file = new File(filePath); - fileInputStream = new FileInputStream(file); - outputStream = response.getOutputStream(); - IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream); - response.setHeader("Content-Disposition", - "inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8")); - outputStream.flush(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - fileInputStream.close(); - outputStream.close(); - - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - /** - * 读取本地pdf,这里设置的是导出 - */ - public static void exportPdf(HttpServletResponse response, String filePath) { - response.reset(); - response.setContentType("application/pdf"); - FileInputStream fileInputStream = null; - OutputStream outputStream = null; - try { - File file = new File(filePath); - fileInputStream = new FileInputStream(file); - outputStream = response.getOutputStream(); - IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream); - response.setHeader("Content-Disposition", "inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8")); - outputStream.flush(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - fileInputStream.close(); - outputStream.close(); - - } catch (IOException e) { - e.printStackTrace(); - } - } - } -}