package com.ruoyi.business.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.database.domain.ApprovalProcess; import com.ruoyi.database.service.ApprovalProcessService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.List; /** * @Description ApprovalProcessController * @Author lijingtong * @Date 2025-06-07 */ @Api(tags = "审批单") @RestController @RequestMapping("/ApprovalProcess") @RequiredArgsConstructor public class ApprovalProcessController extends BaseController { private final ApprovalProcessService approvalsProcessService; @PostMapping("/list") @ApiOperation("查询列表") public TableDataInfo list(ApprovalProcess approvalProcess) { startPage(); QueryWrapper queryWrapper = new QueryWrapper<>(approvalProcess); queryWrapper.orderByDesc("create_time"); List list = approvalsProcessService.list(queryWrapper); for (ApprovalProcess process : list) { // 如果创建时间为当天的时间 if (process.getCreateTime() > System.currentTimeMillis() - 24 * 60 * 60 * 1000) { // 一分钟之内,显示刚刚 // 模拟获取创建时间戳(这里以当前时间戳减去一定值为例,实际应替换为 process.getCreateTime() ) long createTime = process.getCreateTime(); long currentTime = System.currentTimeMillis(); String result; if (createTime > currentTime - 60 * 1000) { result = "刚刚"; process.setShowTime(result); } else if (createTime <= currentTime - 60 * 1000 && createTime > currentTime - 30 * 60 * 1000) { long minutes = (currentTime - createTime) / (60 * 1000); result = minutes + "分钟前"; process.setShowTime(result); } else if (createTime <= currentTime - 30 * 60 * 1000 && createTime > currentTime - 60 * 60 * 1000) { result = "半小时前"; process.setShowTime(result); } else if (createTime <= currentTime - 60 * 60 * 1000) { long hours = (currentTime - createTime) / (60 * 60 * 1000); result = hours + "小时前"; process.setShowTime(result); } else { result = "时间计算异常"; process.setShowTime(result); } /*Long createTime = process.getCreateTime(); Instant instant = Instant.ofEpochMilli(createTime); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("Asia/Shanghai")); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); String formattedTime = localDateTime.format(formatter); process.setShowTime(formattedTime);*/ } else if (process.getCreateTime() > System.currentTimeMillis() - 24 * 60 * 60 * 1000 && process.getCreateTime() < System.currentTimeMillis() - 2 * 24 * 60 * 60 * 1000) { // 超过一天不大于两天,显示“昨天” process.setShowTime("昨天"); } else { // 超过两天显示年月日时分秒 Long createTime = process.getCreateTime(); Instant instant = Instant.ofEpochMilli(createTime); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("Asia/Shanghai")); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd"); String formattedTime = localDateTime.format(formatter); process.setShowTime(formattedTime); } } return getDataTable(list); } public static void main(String[] args) { Long createTime = 1749279303395L; Instant instant = Instant.ofEpochMilli(createTime); // 2. 转换为本地时区(如北京时间 UTC+8) LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("Asia/Shanghai")); // 3. 定义日期时间格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); // 4. 格式化为字符串 String formattedTime = localDateTime.format(formatter); System.out.println(formattedTime); } @ApiOperation("根据编号查") @PostMapping("/getByApprovalNo/{id}") public TableDataInfo getByApprovalNo(@PathVariable String id) { List list = approvalsProcessService.lambdaQuery() .like(ApprovalProcess::getApprovalNo, id) .orderByDesc(ApprovalProcess::getCreateTime) .list(); return getDataTable(list); } @ApiOperation("根据用户id查") @PostMapping("/getByuserId/{id}") public TableDataInfo getByuserId(@PathVariable Long id) { List list = approvalsProcessService.lambdaQuery() .eq(ApprovalProcess::getSubmitterId, id) .orderByDesc(ApprovalProcess::getCreateTime) .list(); return getDataTable(list); } @ApiOperation("根据id查") @PostMapping("/getById/{id}") public AjaxResult getById(@PathVariable Long id) { List list = approvalsProcessService.lambdaQuery() .eq(ApprovalProcess::getId, id) .orderByDesc(ApprovalProcess::getCreateTime) .list(); return AjaxResult.success(list); } }