PublicAffairs/gather-app/src/main/java/com/ruoyi/business/controller/ApprovalProcessController.java

174 lines
7.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.domain.BusinessTripApproval;
import com.ruoyi.database.domain.NonWorkingDayDrinkingReport;
import com.ruoyi.database.domain.PoliceLeaveApproval;
import com.ruoyi.database.mapper.PoliceLeaveApprovalMapper;
import com.ruoyi.database.service.ApprovalProcessService;
import com.ruoyi.database.service.BusinessTripApprovalService;
import com.ruoyi.database.service.NonWorkingDayDrinkingReportService;
import com.ruoyi.database.service.PoliceLeaveApprovalService;
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;
private final BusinessTripApprovalService businessTripApprovalService;
private final NonWorkingDayDrinkingReportService nonWorkingDayDrinkingReportService;
private final PoliceLeaveApprovalService policeLeaveApprovalService;
@PostMapping("/list")
@ApiOperation("查询列表")
public TableDataInfo list(ApprovalProcess approvalProcess) {
startPage();
QueryWrapper<ApprovalProcess> queryWrapper = new QueryWrapper<>(approvalProcess);
queryWrapper.orderByDesc("create_time");
List<ApprovalProcess> 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<ApprovalProcess> 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<ApprovalProcess> 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) {
ApprovalProcess byId = approvalsProcessService.getById(id);
Integer matterType = byId.getMatterType();
if (matterType == 2){
BusinessTripApproval one = businessTripApprovalService.lambdaQuery()
.eq(BusinessTripApproval::getUuid, byId.getUuid())
.last("LIMIT 1")
.one();
one.setDestinationIdCn(byId.getBusinessTripDestination());
return AjaxResult.success(one);
}
if (matterType == 3){
PoliceLeaveApproval one = policeLeaveApprovalService.lambdaQuery()
.eq(PoliceLeaveApproval::getUuid, byId.getUuid())
.last("LIMIT 1")
.one();
return AjaxResult.success(one);
}
if (matterType == 4){
NonWorkingDayDrinkingReport one = nonWorkingDayDrinkingReportService.lambdaQuery()
.eq(NonWorkingDayDrinkingReport::getUuid, byId.getUuid())
.last("LIMIT 1")
.one();
return AjaxResult.success(one);
}
return AjaxResult.success(null);
}
}