From f59371ae53fb187e9446be61ed828239c36d6757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Chhk=E2=80=9D?= <“hhk@mail.com”> Date: Fri, 2 Aug 2024 18:31:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E4=BF=A1=E6=81=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/CarMainController.java | 45 ++++- .../module/custom/mapper/CarMainMapper.java | 12 +- .../module/custom/service/CarMainService.java | 5 +- .../custom/service/CustomerMainService.java | 3 +- .../service/impl/CarMainServiceImpl.java | 147 +++++++++++++- .../yudao/module/custom/vo/CarMainReqVO.java | 16 +- .../yudao/module/custom/vo/CarMainRespVO.java | 3 +- .../CarMain/GetNextBusinessTimeUtils.java | 49 +++++ .../cn/iocoder/yudao/utils/DateUtils.java | 188 ++++++++++++++++++ .../resources/mapper/custom/CarMainMapper.xml | 112 ++++++----- 10 files changed, 510 insertions(+), 70 deletions(-) create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/utils/CarMain/GetNextBusinessTimeUtils.java create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/utils/DateUtils.java diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java index 851a62ab..613be64a 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java @@ -42,21 +42,38 @@ public class CarMainController { @Resource private CarMainService carMainService; + /** + * 创建车辆信息 + * + * @param createReqVO + * @return + */ @PostMapping("/create") @Operation(summary = "创建车辆信息") @PreAuthorize("@ss.hasPermission('base:car-main:create')") public CommonResult createCarMain(@RequestBody CarMainReqVO createReqVO) { - return success(carMainService.createCarMain(createReqVO)); + return carMainService.createCarMain(createReqVO); } + /** + * 更新车辆信息 + * + * @param updateReqVO + * @return + */ @PutMapping("/update") @Operation(summary = "更新车辆信息") @PreAuthorize("@ss.hasPermission('base:car-main:update')") - public CommonResult updateCarMain(@RequestBody CarMainReqVO updateReqVO) { - carMainService.updateCarMain(updateReqVO); - return success(true); + public CommonResult updateCarMain(@RequestBody CarMainReqVO updateReqVO) { + return carMainService.updateCarMain(updateReqVO); } + /** + * 删除车辆信息 + * + * @param id + * @return + */ @DeleteMapping("/delete") @Operation(summary = "删除车辆信息") @Parameter(name = "id", description = "编号", required = true) @@ -66,6 +83,12 @@ public class CarMainController { return success(true); } + /** + * 获得车辆信息 + * + * @param id + * @return + */ @GetMapping("/get") @Operation(summary = "获得车辆信息") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -75,15 +98,27 @@ public class CarMainController { return success(BeanUtils.toBean(carMain, CarMainRespVO.class)); } + /** + * 获得车辆信息分页 + * + * @param pageReqVO + * @return + */ @GetMapping("/page") @Operation(summary = "获得车辆信息分页") @PreAuthorize("@ss.hasPermission('base:car-main:query')") public CommonResult> getCarMainPage(CarMainReqVO pageReqVO) { - IPage pageResult = carMainService.getCarMainPage(pageReqVO); return success(pageResult); } + /** + * 导出车辆信息 + * + * @param pageReqVO + * @param response + * @throws IOException + */ @GetMapping("/export-excel") @Operation(summary = "导出车辆信息 Excel") @PreAuthorize("@ss.hasPermission('base:car-main:export')") diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/CarMainMapper.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/CarMainMapper.java index 0aaef5bc..f3cea1b1 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/CarMainMapper.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/CarMainMapper.java @@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 车辆信息 Mapper * @@ -18,7 +20,15 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface CarMainMapper extends BaseMapper { - + /** + * 获得车辆信息分页 + * + * @param page + * @param pageReqVO + * @return + */ IPage findPage(Page page, @Param("dto") CarMainReqVO pageReqVO); + List isDataKeyValueRepeat(@Param("dto") CarMain carMain); + } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CarMainService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CarMainService.java index 1c8b1e29..1b48753e 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CarMainService.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CarMainService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.custom.service; import javax.validation.*; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.custom.entity.CarMain; import cn.iocoder.yudao.module.custom.vo.CarMainReqVO; import cn.iocoder.yudao.module.custom.vo.CarMainRespVO; @@ -24,14 +25,14 @@ public interface CarMainService extends IService { * @param createReqVO 创建信息 * @return 编号 */ - String createCarMain(CarMainReqVO createReqVO); + CommonResult createCarMain(CarMainReqVO createReqVO); /** * 更新车辆信息 * * @param updateReqVO 更新信息 */ - void updateCarMain(CarMainReqVO updateReqVO); + CommonResult updateCarMain(CarMainReqVO updateReqVO); /** * 删除车辆信息 diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java index 37f554e0..ad767536 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.custom.service; -import cn.iocoder.yudao.module.company.entity.DlCompany; -import cn.iocoder.yudao.module.company.vo.CompanyReqVO; + import cn.iocoder.yudao.module.custom.entity.CustomerMain; import cn.iocoder.yudao.module.custom.vo.CustomerMainPageReqVO; import cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO; diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CarMainServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CarMainServiceImpl.java index 71c16261..e1cee17a 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CarMainServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CarMainServiceImpl.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.custom.service.impl; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.module.custom.entity.CarMain; import cn.iocoder.yudao.module.custom.mapper.CarMainMapper; import cn.iocoder.yudao.module.custom.service.CarMainService; @@ -11,6 +14,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import java.util.List; + /** * 车辆信息 Service 实现类 * @@ -19,40 +24,170 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @Service public class CarMainServiceImpl extends ServiceImpl implements CarMainService{ - + /** + * 创建车辆信息 + * + * @param createReqVO 创建信息 + * @return + */ @Override - public String createCarMain(CarMainReqVO createReqVO) { + public CommonResult createCarMain(CarMainReqVO createReqVO) { + //车牌号license_number,车架号vin,发动机号码engine_number 重复校验 + int checkResult = isDataKeyValueRepeat(createReqVO); + //如果查重失败 + if (checkResult != 0){ + switch (checkResult){ + case 1: return CommonResult.error(4051,"该车牌号已在系统中登记"); + case 2: return CommonResult.error(4052,"该车架号已在系统中登记"); + case 3: return CommonResult.error(4053,"该发动机号码已在系统中登记"); + + } + } // 插入 CarMain carMain = BeanUtils.toBean(createReqVO, CarMain.class); baseMapper.insert(carMain); // 返回 - return carMain.getId(); + return CommonResult.success("新增成功"); } + /** + * 更新车辆信息 + * + * @param updateReqVO 更新信息 + */ @Override - public void updateCarMain(CarMainReqVO updateReqVO){ + public CommonResult updateCarMain(CarMainReqVO updateReqVO){ + //车牌号license_number,车架号vin,发动机号码engine_number 重复校验 + int checkResult = isDataKeyValueRepeat(updateReqVO); + //如果查重失败 + if (checkResult != 0){ + switch (checkResult){ + case 1: return CommonResult.error(4051,"该车牌号已在系统中登记"); + case 2: return CommonResult.error(4052,"该车架号已在系统中登记"); + case 3: return CommonResult.error(4053,"该发动机号码已在系统中登记"); + + } + } // 更新 CarMain updateObj = BeanUtils.toBean(updateReqVO, CarMain.class); baseMapper.updateById(updateObj); + return CommonResult.success("修改成功"); } + /** + * 删除车辆信息 + * + * @param id 编号 + */ @Override public void deleteCarMain(String id) { - // 删除 + //判断车辆是否发生过业务 + CarMain target = baseMapper.selectById(id); + if (ObjectUtil.isEmpty(target.getRecentlyHandledBusiness()) && !"".equals(target.getRecentlyHandledBusiness()) ){ + + } + // 逻辑删除 baseMapper.deleteById(id); } - + /** + * 获得车辆信息 + * + * @param id 编号 + * @return + */ @Override public CarMain getCarMain(String id) { + //数据单查 return baseMapper.selectById(id); } + /** + * 获得车辆信息分页 + * + * @param pageReqVO 分页查询 + * @return + */ @Override public IPage getCarMainPage(CarMainReqVO pageReqVO) { + //取分页参数 Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + //分页查询 return baseMapper.findPage(page,pageReqVO); } + /** + * 车牌号,车架号,发动机号码 查重 + * @param reqVO + * @return 0无重复,1车牌号重复,2车架号重复,发动机号码重复 + */ + private int isDataKeyValueRepeat(CarMainReqVO reqVO){ + + //车牌号license_number 查重 + if(ObjectUtil.isNotEmpty(reqVO.getLicenseNumber())){ + CarMain target = new CarMain(); + target.setLicenseNumber(reqVO.getLicenseNumber()); + List results = baseMapper.isDataKeyValueRepeat(target); + //判断是否登记过这个车牌号的车辆 + if (results.size()>0){ + //无id是新增,有相应登记记录 + if(ObjectUtil.isEmpty(reqVO.getId()) ){ + return 1; + } + //有id是修改,如果登记过,比较id查验是否是当前要修改的车辆本身 + for (CarMain item: results) { + if (!item.getId().equals(reqVO.getId())){ + return 1; + } + + } + + } + //车架号vin 查重 + }else if (ObjectUtil.isNotEmpty(reqVO.getVin())){ + CarMain target = new CarMain(); + target.setVin(reqVO.getVin()); + List results = baseMapper.isDataKeyValueRepeat(target); + //判断是否登记过这个车架号的车辆 + if (results.size()>0){ + //无id是新增,有相应登记记录 + if(ObjectUtil.isEmpty(reqVO.getId()) ){ + return 2; + } + //有id是修改,如果登记过,比较id查验是否是当前要修改的车辆本身 + for (CarMain item: results) { + if (!item.getId().equals(reqVO.getId())){ + return 2; + } + + } + + } + //发动机号码engine_number 查重 + }else if (ObjectUtil.isNotEmpty(reqVO.getEngineNumber())){ + CarMain target = new CarMain(); + target.setEngineNumber(reqVO.getEngineNumber()); + List results = baseMapper.isDataKeyValueRepeat(target); + //判断是否登记过这个发动机号的车辆 + if (results.size()>0){ + //无id是新增,有相应登记记录 + if(ObjectUtil.isEmpty(reqVO.getId()) ){ + return 3; + } + //有id是修改,如果登记过,比较id查验是否是当前要修改的车辆本身 + for (CarMain item: results) { + if (!item.getId().equals(reqVO.getId())){ + return 3; + } + + } + + } + + } + //返回查验无重复结果 + return 0; + + } } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainReqVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainReqVO.java index adcb899d..d8916df8 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainReqVO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainReqVO.java @@ -1,12 +1,12 @@ package cn.iocoder.yudao.module.custom.vo; import lombok.*; -import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 车辆信息分页 Request VO") @@ -30,22 +30,22 @@ public class CarMainReqVO extends PageParam { private String carModel; @Schema(description = "保养日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime maintenanceDate; @Schema(description = "保养里程") private String maintenanceMileage; @Schema(description = "年检日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime inspectionDate; @Schema(description = "保险日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime insuranceDate; @Schema(description = "二级维护时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime checkDate; @Schema(description = "车辆品牌") @@ -58,7 +58,7 @@ public class CarMainReqVO extends PageParam { private String carCategory; @Schema(description = "车辆注册日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime carRegisterDate; @Schema(description = "行驶证图片") @@ -68,11 +68,11 @@ public class CarMainReqVO extends PageParam { private String recentlyHandledBusiness; @Schema(description = "最近办理业务的时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime recentlyHandleBusinessTime; @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime createTime; @Schema(description = "租户ID") diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java index 2d0ae7bf..ff0c9d2d 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.custom.vo; +import cn.iocoder.yudao.module.custom.entity.CarMain; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -12,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Schema(description = "管理后台 - 车辆信息 Response VO") @Data @ExcelIgnoreUnannotated -public class CarMainRespVO { +public class CarMainRespVO extends CarMain { @Schema(description = "主键标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "8714") @ExcelProperty("主键标识") diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/utils/CarMain/GetNextBusinessTimeUtils.java b/dl-module-base/src/main/java/cn/iocoder/yudao/utils/CarMain/GetNextBusinessTimeUtils.java new file mode 100644 index 00000000..c131ea56 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/utils/CarMain/GetNextBusinessTimeUtils.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.utils.CarMain; + +import cn.iocoder.yudao.module.custom.entity.CarMain; + +import java.time.LocalDateTime; + +public class GetNextBusinessTimeUtils { + +// /** +// * 取下次保养日期 +// * +// * @return +// */ +// public static LocalDateTime getNextMaintenanceDate(CarMain target){ +// +// } +// +// /** +// * 取下次保养里程 +// * @return +// */ +// public static Long getNextMaintenanceMileage(CarMain target){ +// +// } +// +// /** +// * 下次年检日期 +// * @return +// */ +// public static LocalDateTime getNextMaintenanceDate(CarMain target){ +// +// } +// +// /** +// * 保险到期日期 +// */ +// public static LocalDateTime getInsuranceExpiryDate(CarMain target){ +// +// } +// +// /** +// * 下次二级维护时间 +// */ +// public static LocalDateTime getNextCheckDate(CarMain target){ +// +// } + + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/utils/DateUtils.java b/dl-module-base/src/main/java/cn/iocoder/yudao/utils/DateUtils.java new file mode 100644 index 00000000..b85c0a71 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/utils/DateUtils.java @@ -0,0 +1,188 @@ +package cn.iocoder.yudao.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; + +import java.lang.management.ManagementFactory; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.*; +import java.util.Date; + +/** + * 时间工具类 + * + * @author ruoyi + */ +public class DateUtils extends org.apache.commons.lang3.time.DateUtils +{ + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + private static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + /** + * 获取当前Date型日期 + * + * @return Date() 当前日期 + */ + public static Date getNowDate() + { + return new Date(); + } + + /** + * 获取当前日期, 默认格式为yyyy-MM-dd + * + * @return String + */ + public static String getDate() + { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() + { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() + { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) + { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) + { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) + { + return new SimpleDateFormat(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) + { + try + { + return new SimpleDateFormat(format).parse(ts); + } + catch (ParseException e) + { + throw new RuntimeException(e); + } + } + + /** + * 日期路径 即年/月/日 如2018/08/08 + */ + public static final String datePath() + { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** + * 日期路径 即年/月/日 如20180808 + */ + public static final String dateTime() + { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** + * 日期型字符串转化为日期 格式 + */ + public static Date parseDate(Object str) + { + if (str == null) + { + return null; + } + try + { + return parseDate(str.toString(), parsePatterns); + } + catch (ParseException e) + { + return null; + } + } + + /** + * 获取服务器启动时间 + */ + public static Date getServerStartDate() + { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** + * 计算相差天数 + */ + public static int differentDaysByMillisecond(Date date1, Date date2) + { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + /** + * 计算时间差 + * + * @param endDate 最后时间 + * @param startTime 开始时间 + * @return 时间差(天/小时/分钟) + */ + public static String timeDistance(Date endDate, Date startTime) + { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 获得两个时间的毫秒时间差异 + long diff = endDate.getTime() - startTime.getTime(); + // 计算差多少天 + long day = diff / nd; + // 计算差多少小时 + long hour = diff % nd / nh; + // 计算差多少分钟 + long min = diff % nd % nh / nm; + // 计算差多少秒//输出结果 + // long sec = diff % nd % nh % nm / ns; + return day + "天" + hour + "小时" + min + "分钟"; + } + + /** + * 增加 LocalDateTime ==> Date + */ + public static Date toDate(LocalDateTime temporalAccessor) + { + ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + /** + * 增加 LocalDate ==> Date + */ + public static Date toDate(LocalDate temporalAccessor) + { + LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); + ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } +} diff --git a/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml b/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml index fcefc423..3a1213b4 100644 --- a/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml +++ b/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml @@ -2,69 +2,91 @@ - - - id, - engine_number, - vin, - license_number, - car_model, - maintenance_date, - maintenance_mileage, - inspection_date, - insurance_date, - check_date, - next_maintenance_date, - next_maintenance_mileage, - next_inspection_date, - insurance_expiry_date, - next_check_date, - car_brand, - car_nature, - car_category, - car_register_date, - car_license_img, - recently_handled_business, - recently_handle_business_time, - deleted, - creator, - create_time, - updater, - update_time - + + tbcm.id, + tbcm.engine_number, + tbcm.vin, + tbcm.license_number, + tbcm.car_model, + tbcm.maintenance_date, + tbcm.maintenance_mileage, + tbcm.inspection_date, + tbcm.insurance_date, + tbcm.check_date, + tbcm.next_maintenance_date, + tbcm.next_maintenance_mileage, + tbcm.next_inspection_date, + tbcm.insurance_expiry_date, + tbcm.next_check_date, + tbcm.car_brand, + tbcm.car_nature, + tbcm.car_category, + tbcm.car_register_date, + tbcm.car_license_img, + tbcm.recently_handled_business, + tbcm.recently_handle_business_time, + tbcm.deleted, + tbcm.creator, + tbcm.create_time, + tbcm.updater, + tbcm.update_time + +