diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcRentCarRule.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcRentCarRule.java index a833370..930b1a8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcRentCarRule.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcRentCarRule.java @@ -44,8 +44,8 @@ public class ZcRentCarRule extends BaseEntity @Excel(name = "押金价格(元)") private BigDecimal depositPrice; - /** 逾期金额(元) */ - @Excel(name = "逾期金额(元)") + /** 逾期价格(元) */ + @Excel(name = "逾期价格(元)") private BigDecimal overdueFee; /** 逾期计费类型 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/util/CarStatusEnum.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/util/CarStatusEnum.java new file mode 100644 index 0000000..73f1b12 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/util/CarStatusEnum.java @@ -0,0 +1,25 @@ +package com.ruoyi.operation.util; + +public enum CarStatusEnum { + + CAR_STATUS_0("0", "正常"), + CAR_STATUS_1("1", "下架"), + CAR_STATUS_9("9", "租赁中"); + + private final String code; + private final String info; + + CarStatusEnum(String code, String info) { + this.code = code; + this.info = info; + } + + public String getCode() { + return code; + } + + public String getInfo() { + return info; + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/controller/ZcOrderMainController.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/controller/ZcOrderMainController.java index a12d6ff..a49373e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/orders/controller/ZcOrderMainController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/controller/ZcOrderMainController.java @@ -117,6 +117,8 @@ public class ZcOrderMainController extends BaseController { ZcOrderMain zcOrderMain = zcOrderMainService.selectZcOrderMainByOrderId(orderId); mmap.put("zcOrderMain", zcOrderMain); + ZcOrderMain zcOrderMainImg = zcOrderMainService.selectZcOrderMainImgByOrderId(orderId); + mmap.put("zcOrderMainImg", zcOrderMainImg); return prefix + "/edit"; } @@ -150,13 +152,7 @@ public class ZcOrderMainController extends BaseController @ResponseBody public AjaxResult manualEndOrder(Long orderId) { - ZcOrderMain zcOrderMain =new ZcOrderMain(); - zcOrderMain.setOrderId(orderId); - zcOrderMain.setOrderStatus(OrderStatusEnum.MANUAL_END.getCode()); - zcOrderMain.setUpdateBy(getLoginName()); - zcOrderMain.setUpdateTime(DateUtils.getNowDate()); - - return toAjax(zcOrderMainService.updateManualEndOrder(zcOrderMain)); + return toAjax(zcOrderMainService.updateManualEndOrder(orderId)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderCarImg.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderCarImg.java new file mode 100644 index 0000000..bf1bc6e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderCarImg.java @@ -0,0 +1,108 @@ +package com.ruoyi.orders.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 订单租车车辆图片信息对象 zc_order_car_img + * + * @author ruoyi + * @date 2025-08-14 + */ +public class ZcOrderCarImg extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 订单ID(外键) */ + @Excel(name = "订单ID", readConverterExp = "外=键") + private Long orderId; + + /** 订单编号 */ + @Excel(name = "订单编号") + private String orderNo; + + /** 图片类型:RENT租车,RETURN还车 */ + @Excel(name = "图片类型:RENT租车,RETURN还车") + private String imgType; + + /** 图片地址 */ + @Excel(name = "图片地址") + private String imgUrl; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setOrderId(Long orderId) + { + this.orderId = orderId; + } + + public Long getOrderId() + { + return orderId; + } + public void setOrderNo(String orderNo) + { + this.orderNo = orderNo; + } + + public String getOrderNo() + { + return orderNo; + } + public void setImgType(String imgType) + { + this.imgType = imgType; + } + + public String getImgType() + { + return imgType; + } + public void setImgUrl(String imgUrl) + { + this.imgUrl = imgUrl; + } + + public String getImgUrl() + { + return imgUrl; + } + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getDelFlag() + { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("orderId", getOrderId()) + .append("orderNo", getOrderNo()) + .append("imgType", getImgType()) + .append("imgUrl", getImgUrl()) + .append("delFlag", getDelFlag()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderMain.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderMain.java index 1da9296..6038bfc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderMain.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/domain/ZcOrderMain.java @@ -86,8 +86,8 @@ public class ZcOrderMain extends BaseEntity @Excel(name = "押金价格(元)") private BigDecimal depositPrice; - /** 逾期金额(元) */ - @Excel(name = "逾期金额(元)") + /** 逾期价格(元) */ + @Excel(name = "逾期价格(元)") private BigDecimal overdueFee; @Excel(name = "逾期计费类型") @@ -158,6 +158,8 @@ public class ZcOrderMain extends BaseEntity @Excel(name = "订单结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date endOrderTime; + /** 订单逾期金额 */ + private BigDecimal overdueAmount; /** 删除标志(0代表存在 2代表删除) */ private String delFlag; @@ -165,6 +167,9 @@ public class ZcOrderMain extends BaseEntity /** 租车子订单信息 */ private List zcOrderSubList; + /** 订单租车车辆图片信息信息 */ + private List zcOrderCarImgList; + public void setOrderId(Long orderId) { this.orderId = orderId; @@ -480,6 +485,14 @@ public class ZcOrderMain extends BaseEntity this.endOrderTime = endOrderTime; } + public BigDecimal getOverdueAmount() { + return overdueAmount; + } + + public void setOverdueAmount(BigDecimal overdueAmount) { + this.overdueAmount = overdueAmount; + } + public String getOverdueType() { return overdueType; } @@ -504,6 +517,14 @@ public class ZcOrderMain extends BaseEntity this.damageDesc = damageDesc; } + public List getZcOrderCarImgList() { + return zcOrderCarImgList; + } + + public void setZcOrderCarImgList(List zcOrderCarImgList) { + this.zcOrderCarImgList = zcOrderCarImgList; + } + @Override public String toString() { return new ToStringBuilder(this) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/mapper/ZcOrderMainMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/mapper/ZcOrderMainMapper.java index af6940a..61ad079 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/orders/mapper/ZcOrderMainMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/mapper/ZcOrderMainMapper.java @@ -19,6 +19,13 @@ public interface ZcOrderMainMapper * @return 租车订单 */ public ZcOrderMain selectZcOrderMainByOrderId(Long orderId); + /** + * 查询租车订单图片 + * + * @param orderId 租车订单主键 + * @return 租车订单 + */ + public ZcOrderMain selectZcOrderMainImgByOrderId(Long orderId); /** * 查询租车订单列表 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/service/IZcOrderMainService.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/service/IZcOrderMainService.java index 4c0df88..786462a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/orders/service/IZcOrderMainService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/service/IZcOrderMainService.java @@ -19,6 +19,8 @@ public interface IZcOrderMainService */ public ZcOrderMain selectZcOrderMainByOrderId(Long orderId); + public ZcOrderMain selectZcOrderMainImgByOrderId(Long orderId); + /** * 查询租车订单列表 * @@ -59,6 +61,6 @@ public interface IZcOrderMainService */ public int deleteZcOrderMainByOrderId(Long orderId); - public int updateManualEndOrder(ZcOrderMain zcOrderMain); + public int updateManualEndOrder(Long orderId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/orders/service/impl/ZcOrderMainServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/orders/service/impl/ZcOrderMainServiceImpl.java index a4997a3..54c988e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/orders/service/impl/ZcOrderMainServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/orders/service/impl/ZcOrderMainServiceImpl.java @@ -1,7 +1,13 @@ package com.ruoyi.orders.service.impl; +import java.math.BigDecimal; import java.util.List; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.operation.domain.ZcCar; +import com.ruoyi.operation.service.IZcCarService; +import com.ruoyi.operation.util.CarStatusEnum; +import com.ruoyi.orders.util.OrderStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -25,6 +31,8 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService @Autowired private ZcOrderMainMapper zcOrderMainMapper; + @Autowired + private IZcCarService zcCarService; /** * 查询租车订单 * @@ -37,6 +45,12 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService return zcOrderMainMapper.selectZcOrderMainByOrderId(orderId); } + @Override + public ZcOrderMain selectZcOrderMainImgByOrderId(Long orderId) + { + return zcOrderMainMapper.selectZcOrderMainImgByOrderId(orderId); + } + /** * 查询租车订单列表 * @@ -110,9 +124,31 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService } @Override - public int updateManualEndOrder(ZcOrderMain zcOrderMain) { + public int updateManualEndOrder(Long orderId) { //订单手动结束逻辑待完善 - return zcOrderMainMapper.updateZcOrderMain(zcOrderMain); + //1、修改订单状态,2计算逾期费用(如果有逾期),3、释放车辆状态 + //1、修改订单状态 + ZcOrderMain zcOrderMain =new ZcOrderMain(); + zcOrderMain.setOrderId(orderId); + zcOrderMain.setOrderStatus(OrderStatusEnum.MANUAL_END.getCode()); + zcOrderMain.setUpdateBy(ShiroUtils.getSysUser().getLoginName()); + zcOrderMain.setUpdateTime(DateUtils.getNowDate()); + // 2计算逾期费用 + long overdueDays = DateUtils.daysBetween(DateUtils.getNowDate(),zcOrderMain.getEndRentTime()); + if(overdueDays > 0) { + zcOrderMain.setOverdueDays(overdueDays); + zcOrderMain.setOverdueAmount(zcOrderMain.getOverdueFee().multiply(new BigDecimal(zcOrderMain.getOverdueDays()))); + } + zcOrderMain.setEndOrderTime(DateUtils.getNowDate()); + int flag = zcOrderMainMapper.updateZcOrderMain(zcOrderMain); + if(flag > 0){ + //3释放车辆状态 + ZcCar zcCar = new ZcCar(); + zcCar.setId(zcOrderMain.getVehicleId()); + zcCar.setStatus(CarStatusEnum.CAR_STATUS_0.getCode()); + zcCarService.updateZcCar(zcCar); + } + return flag; } /** diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 87618bd..7b4a0a1 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -7,7 +7,7 @@ ruoyi: # 版权年份 copyrightYear: 2025 # 实例演示开关 - demoEnabled: false + demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) #profile: D:/ruoyi/uploadPath profile: /home/sczx/uploadPath diff --git a/ruoyi-admin/src/main/resources/mapper/operation/ZcCarMapper.xml b/ruoyi-admin/src/main/resources/mapper/operation/ZcCarMapper.xml index 1804c36..a16c79f 100644 --- a/ruoyi-admin/src/main/resources/mapper/operation/ZcCarMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/operation/ZcCarMapper.xml @@ -204,6 +204,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" iot_code = #{iotCode}, operator_id = #{operatorId}, operator_name = #{operatorName}, + store_id = #{storeId}, store_name = #{storeName}, package_id = #{packageId}, package_name = #{packageName}, @@ -219,7 +220,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" extend3 = #{extend3}, extend4 = #{extend4}, extend5 = #{extend5}, - store_id = #{storeId} where id = #{id} diff --git a/ruoyi-admin/src/main/resources/mapper/orders/ZcOrderMainMapper.xml b/ruoyi-admin/src/main/resources/mapper/orders/ZcOrderMainMapper.xml index 5ce8ddc..dc3d369 100644 --- a/ruoyi-admin/src/main/resources/mapper/orders/ZcOrderMainMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/orders/ZcOrderMainMapper.xml @@ -38,6 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -68,12 +69,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + - select order_id, order_no, order_status, operator_id, store_id, vehicle_id, car_model_id, customer_id, customer_name, customer_phone, battery_type, rental_type, rental_days, rental_price, deposit_price, overdue_fee, overdue_type, is_deposit_free, is_auto_deduct, first_order_time, pick_car_time, start_rent_time, end_rent_time, req_end_rent_time, act_end_rent_time, overdue_days, renewal_times, charge_times, rent_car_rule_id, rent_battey_rule_id, damage_amount,damage_desc, order_amount, end_order_time, del_flag, create_time, update_time from zc_order_main + select order_id, order_no, order_status, operator_id, store_id, vehicle_id, car_model_id, customer_id, customer_name, customer_phone, battery_type, rental_type, rental_days, rental_price, deposit_price, overdue_fee, overdue_type, is_deposit_free, is_auto_deduct, first_order_time, pick_car_time, start_rent_time, end_rent_time, req_end_rent_time, act_end_rent_time, overdue_days, renewal_times, charge_times, rent_car_rule_id, rent_battey_rule_id, damage_amount,damage_desc, order_amount, overdue_amount, end_order_time, del_flag, create_time, update_time from zc_order_main + + @@ -204,6 +234,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" charge_times = #{chargeTimes}, rent_car_rule_id = #{rentCarRuleId}, rent_battey_rule_id = #{rentBatteyRuleId}, + order_amount = #{orderAmount}, + overdue_amount = #{overdueAmount}, + end_order_time = #{endOrderTime}, del_flag = #{delFlag}, create_time = #{createTime}, update_time = #{updateTime}, diff --git a/ruoyi-admin/src/main/resources/templates/operation/car/car.html b/ruoyi-admin/src/main/resources/templates/operation/car/car.html index f3318ff..7aca937 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/car/car.html +++ b/ruoyi-admin/src/main/resources/templates/operation/car/car.html @@ -37,6 +37,13 @@ +
  • + + +
  •  搜索  重置 @@ -163,13 +170,15 @@ align: 'center', formatter: function(value, row, index) { var actions = []; - actions.push('修改 '); - actions.push('分配 '); - actions.push('删除'); - if (row.status == 1) { - actions.push('上架 '); - } else { - actions.push('下架 '); + if (row.status != '9') { + actions.push('修改 '); + actions.push('分配 '); + actions.push('删除'); + if (row.status == '1') { + actions.push('上架 '); + } else if (row.status == '0') { + actions.push('下架 '); + } } return actions.join(''); } diff --git a/ruoyi-admin/src/main/resources/templates/operation/carModel/add.html b/ruoyi-admin/src/main/resources/templates/operation/carModel/add.html index 1c93fe2..2c12558 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/carModel/add.html +++ b/ruoyi-admin/src/main/resources/templates/operation/carModel/add.html @@ -201,7 +201,7 @@ }, { field: 'overdueFee', - title: '逾期金额(元)' + title: '逾期价格(元)' }, { field: 'overdueType', diff --git a/ruoyi-admin/src/main/resources/templates/operation/carModel/edit.html b/ruoyi-admin/src/main/resources/templates/operation/carModel/edit.html index 8ec6c66..10dfb85 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/carModel/edit.html +++ b/ruoyi-admin/src/main/resources/templates/operation/carModel/edit.html @@ -165,7 +165,7 @@ }, { field: 'overdueFee', - title: '逾期金额(元)' + title: '逾期价格(元)' }, { field: 'overdueType', diff --git a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/add.html b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/add.html index c5abc3a..8a201d9 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/add.html +++ b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/add.html @@ -42,7 +42,7 @@
    - +
    @@ -114,7 +114,7 @@ $(document).ready(function() { // 初始隐藏租赁天数 var $rentalDaysGroup = $('input[name="rentalDays"]').closest('.form-group').hide(); - // 初始隐藏逾期金额 + // 初始隐藏逾期价格 var $overdueFeeGroup = $('input[name="overdueFee"]').closest('.form-group').show(); // 保存当前选中的值 @@ -139,7 +139,7 @@ // 更新当前值 currentRentalType = newRentalType; - // 处理逾期金额显示/隐藏 + // 处理逾期价格显示/隐藏 // if(newRentalType === '1') { // $overdueFeeGroup.hide().find('input').val(''); // } else { diff --git a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/detail.html b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/detail.html index 7a99ec7..f40ad22 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/detail.html +++ b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/detail.html @@ -42,7 +42,7 @@
    - +
    @@ -118,7 +118,7 @@ // 初始隐藏租赁天数 $('input[name="rentalDays"]').closest('.form-group').hide(); - // 初始显示逾期金额 + // 初始显示逾期价格 var $overdueFeeGroup = $('input[name="overdueFee"]').closest('.form-group'); // 检查初始选中项 diff --git a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/edit.html b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/edit.html index f0613c1..76c2958 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/edit.html +++ b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/edit.html @@ -40,7 +40,7 @@
    - +
    @@ -86,7 +86,7 @@ // 初始隐藏租赁天数 $('input[name="rentalDays"]').closest('.form-group').hide(); - // 初始显示逾期金额 + // 初始显示逾期价格 var $overdueFeeGroup = $('input[name="overdueFee"]').closest('.form-group'); // 检查初始选中项 diff --git a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/rentCarRule.html b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/rentCarRule.html index 0f1117c..fc8f70d 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/rentCarRule.html +++ b/ruoyi-admin/src/main/resources/templates/operation/rentCarRule/rentCarRule.html @@ -141,7 +141,7 @@ }, { field: 'overdueFee', - title: '逾期金额(元)' + title: '逾期价格(元)' }, { field: 'overdueType', diff --git a/ruoyi-admin/src/main/resources/templates/orders/order/add.html b/ruoyi-admin/src/main/resources/templates/orders/order/add.html index 11f2f87..4bf13af 100644 --- a/ruoyi-admin/src/main/resources/templates/orders/order/add.html +++ b/ruoyi-admin/src/main/resources/templates/orders/order/add.html @@ -86,7 +86,7 @@
    - +
    diff --git a/ruoyi-admin/src/main/resources/templates/orders/order/edit.html b/ruoyi-admin/src/main/resources/templates/orders/order/edit.html index d7badee..41c35a0 100644 --- a/ruoyi-admin/src/main/resources/templates/orders/order/edit.html +++ b/ruoyi-admin/src/main/resources/templates/orders/order/edit.html @@ -75,7 +75,7 @@
    - +
    @@ -113,21 +113,24 @@
    - -
    -
    -
    + +
    +
    +
    - + +
    +
    +
    @@ -148,12 +151,22 @@
    -
    +
    -
    - +
    +
    +

    租车订单图片信息

    +
    +
    +
    +
    +
    +
    +
    +
    + @@ -162,6 +175,7 @@ var prefix = ctx + "orders/order"; var suborderTypeDatas = [[${@dict.getType('key_order_suborder_type')}]]; var paymentMethodDatas = [[${@dict.getType('key_order_payment_method')}]]; + var imgTypeDatas = [[${@dict.getType('key_order_img_type')}]]; $("#form-order-edit").validate({ focusCleanup: true }); @@ -194,15 +208,6 @@ showColumns: false, sidePagination: "client", columns: [ - { - field: 'index', - align: 'center', - title: "序号", - formatter: function (value, row, index) { - var columnIndex = $.common.sprintf("", $.table.serialNumber(index)); - return columnIndex + $.table.serialNumber(index); - } - }, { field: 'suborderNo', align: 'center', @@ -264,11 +269,53 @@ field: 'updateTime', align: 'center', title: '更新时间' - }, - + } ] }; - $.table.init(options); + $('#bootstrap-table-sub').bootstrapTable(options); + + var options2 = { + data: [[${zcOrderMainImg.zcOrderCarImgList}]], + pagination: false, + showSearch: false, + showRefresh: false, + showToggle: false, + showColumns: false, + sidePagination: "client", + columns: [ + { + field: 'index', + align: 'center', + title: "序号", + formatter: function (value, row, index) { + var columnIndex = $.common.sprintf("", $.table.serialNumber(index)); + return columnIndex + $.table.serialNumber(index); + } + }, + { + field: 'imgType', + align: 'center', + title: '图片类型', + formatter: function(value, row, index) { + return $.table.selectDictLabel(imgTypeDatas, value); + } + }, + { + field: 'imgUrl', + align: 'center', + title: '图片', + formatter: function(value, row, index) { + // 图片预览(注意:如存储在本地直接获取数据库路径,如有配置context-path需要使用ctx+路径) + return $.table.imageView(value, "600px", "600px"); + } + }, + { + field: 'createTime', + align: 'center', + title: '创建时间' + }] + }; + $.table.init(options2); }); function manualEndOrder(){ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index fe9834d..24bbe93 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -9,6 +9,8 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Date; +import java.util.concurrent.TimeUnit; + import org.apache.commons.lang3.time.DateFormatUtils; /** @@ -185,4 +187,25 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + /** + * 计算两个Date之间的天数差 + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return 相差的天数(如果endDate在startDate之后,返回正数;否则返回负数) + */ + public static long daysBetween(Date startDate, Date endDate) { + long diffInMillis = endDate.getTime() - startDate.getTime(); + return TimeUnit.DAYS.convert(diffInMillis, TimeUnit.MILLISECONDS); + } + + /** + * 计算两个Date之间的天数差(绝对值) + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return 相差的天数(总是返回正数) + */ + public static long daysBetweenAbs(Date startDate, Date endDate) { + return Math.abs(daysBetween(startDate, endDate)); + } }