feat(bpm): 调整流程实例抄送服务中的日期时间处理

- 引入 LocalDateTimeUtil 工具类优化日期处理
- 将 ReceiveCCRequestDTO 和 ReceiveTodoRequestDTO 中的时间字段类型从 LocalDateTime 改为 Date
- 添加 JsonFormat 注解以统一前后端日期格式化
- 修正 BpmProcessInstanceCopyServiceImpl 中日期转换逻辑,确保时区一致性
- 在 DemoController 中增加获取当前时间接口用于测试时间序列功能
- 更新相关导入包及调整代码格式提升可读性
This commit is contained in:
2025-12-11 10:51:08 +08:00
parent 3754d9340f
commit 0b48e4d785
6 changed files with 62 additions and 32 deletions

View File

@@ -1,18 +1,15 @@
package com.jeelowcode.module.biz.controller; package com.jeelowcode.module.biz.controller;
import com.jeelowcode.core.framework.utils.Func; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.jeelowcode.core.framework.utils.FuncWeb;
import com.jeelowcode.framework.exception.JeeLowCodeException; import com.jeelowcode.framework.exception.JeeLowCodeException;
import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; import com.jeelowcode.framework.global.JeeLowCodeBaseConstant;
import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore;
import com.jeelowcode.framework.utils.model.global.BaseWebResult;
import com.jeelowcode.module.biz.dto.RequestDTO; import com.jeelowcode.module.biz.dto.RequestDTO;
import com.jeelowcode.module.biz.service.IDemoService; import com.jeelowcode.module.biz.service.IDemoService;
import com.jeelowcode.framework.utils.model.global.BaseWebResult;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.jeelowcode.service.infra.entity.ConfigDO; import com.jeelowcode.service.infra.entity.ConfigDO;
import com.jeelowcode.service.infra.service.IConfigService; import com.jeelowcode.service.infra.service.IConfigService;
import com.jeelowcode.tool.framework.common.model.ContentModel;
import com.jeelowcode.tool.framework.common.model.PartModel; import com.jeelowcode.tool.framework.common.model.PartModel;
import com.jeelowcode.tool.framework.common.pojo.CommonResult; import com.jeelowcode.tool.framework.common.pojo.CommonResult;
import com.jeelowcode.tool.framework.common.util.http.HttpUtils; import com.jeelowcode.tool.framework.common.util.http.HttpUtils;
@@ -23,12 +20,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
import static com.jeelowcode.tool.framework.common.pojo.CommonResult.error; import static com.jeelowcode.tool.framework.common.pojo.CommonResult.error;
import static com.jeelowcode.tool.framework.common.pojo.CommonResult.success; import static com.jeelowcode.tool.framework.common.pojo.CommonResult.success;
@@ -47,10 +41,15 @@ public class DemoController {
private final IDemoService demoService; private final IDemoService demoService;
@Operation(summary = "获取当前时间")
@GetMapping({"/getJsonLocalDateTime"})
public CommonResult<Boolean> getJsonLocalDateTime() {
return success(demoService.testLocalDateTime());
}
@Autowired @Autowired
private IConfigService configService; private IConfigService configService;
@GetMapping({"/getData"}) @GetMapping({"/getData"})
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@Operation(summary = "获取demo数据") @Operation(summary = "获取demo数据")

View File

@@ -12,4 +12,7 @@ public interface IDemoService {
List<Map<String, Object>> getDemoData(); List<Map<String, Object>> getDemoData();
void testAsync(); void testAsync();
boolean testLocalDateTime();
} }

View File

@@ -6,11 +6,14 @@ import com.jeelowcode.framework.plus.SqlHelper;
import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper;
import com.jeelowcode.module.biz.mapper.DemoMapper; import com.jeelowcode.module.biz.mapper.DemoMapper;
import com.jeelowcode.module.biz.service.IDemoService; import com.jeelowcode.module.biz.service.IDemoService;
import com.jeelowcode.service.bpm.config.framework.portal.core.dto.ReceiveCCRequestDTO;
import com.jeelowcode.tool.framework.common.util.json.JsonUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -42,4 +45,14 @@ public class DemoServiceImpl implements IDemoService {
public void testAsync() { public void testAsync() {
log.info("哈哈哈"); log.info("哈哈哈");
} }
@Override
public boolean testLocalDateTime() {
ReceiveCCRequestDTO request = new ReceiveCCRequestDTO()
.setReceiveDateTime(new Date())
.setCreateDateTime(new Date());
log.info("request: {}", JsonUtils.toJsonString(request));
return true;
}
} }

View File

@@ -1,9 +1,13 @@
package com.jeelowcode.service.bpm.config.framework.portal.core.dto; package com.jeelowcode.service.bpm.config.framework.portal.core.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.util.Date;
import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static com.jeelowcode.tool.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
/** /**
* 描述:接收待阅流程请求参数 * 描述:接收待阅流程请求参数
@@ -54,7 +58,8 @@ public class ReceiveCCRequestDTO {
* 创建时间 * 创建时间
*/ */
@JsonProperty("createdatetime") @JsonProperty("createdatetime")
private LocalDateTime createDateTime; @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date createDateTime;
/** /**
* 接收人 * 接收人
*/ */
@@ -63,7 +68,8 @@ public class ReceiveCCRequestDTO {
* 接收时间 * 接收时间
*/ */
@JsonProperty("receivedatetime") @JsonProperty("receivedatetime")
private LocalDateTime receiveDateTime; @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date receiveDateTime;
/** /**
* 接收时间戳 * 接收时间戳
*/ */

View File

@@ -1,9 +1,13 @@
package com.jeelowcode.service.bpm.config.framework.portal.core.dto; package com.jeelowcode.service.bpm.config.framework.portal.core.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.util.Date;
import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static com.jeelowcode.tool.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
/** /**
* 描述:接收待办流程请求参数 * 描述:接收待办流程请求参数
@@ -56,7 +60,8 @@ public class ReceiveTodoRequestDTO {
* 创建时间 * 创建时间
*/ */
@JsonProperty("createdatetime") @JsonProperty("createdatetime")
private LocalDateTime createDateTime; @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date createDateTime;
/** /**
* 接收人 * 接收人
*/ */
@@ -65,7 +70,8 @@ public class ReceiveTodoRequestDTO {
* 接收时间 * 接收时间
*/ */
@JsonProperty("receivedatetime") @JsonProperty("receivedatetime")
private LocalDateTime receiveDateTime; @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date receiveDateTime;
/** /**
* 接收时间戳 * 接收时间戳
*/ */

View File

@@ -3,6 +3,7 @@ package com.jeelowcode.service.bpm.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.jeelowcode.framework.utils.tool.spring.SpringUtils; import com.jeelowcode.framework.utils.tool.spring.SpringUtils;
@@ -34,7 +35,9 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.sql.Date;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -167,9 +170,9 @@ public class BpmProcessInstanceCopyServiceImpl implements IBpmProcessInstanceCop
.setNodeName(copy.getTaskName()) .setNodeName(copy.getTaskName())
.setPcUrl("/process-instance/detail?id=" + copy.getProcessInstanceId()) .setPcUrl("/process-instance/detail?id=" + copy.getProcessInstanceId())
.setCreator(creatorUser.getUsername()) .setCreator(creatorUser.getUsername())
.setCreateDateTime(copy.getCreateTime()) .setCreateDateTime(Date.from(copy.getCreateTime().atZone(ZoneId.systemDefault()).toInstant()))
.setReceiver(receiverUser.getUsername()) .setReceiver(receiverUser.getUsername())
.setReceiveDateTime(copy.getCreateTime()) .setReceiveDateTime(Date.from(copy.getCreateTime().atZone(ZoneId.systemDefault()).toInstant()))
.setReceiveTs(System.currentTimeMillis()); .setReceiveTs(System.currentTimeMillis());
} }
).forEach(request -> { ).forEach(request -> {