Commit eb4434ecbc7b56ff7f2c3a1bcc33662cc42fa187

Authored by shizhong
1 parent 287a17a9

解决MapStruct的时区问题

yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java
@@ -36,6 +36,9 @@ public class DateUtils { @@ -36,6 +36,9 @@ public class DateUtils {
36 * @return LocalDateTime 36 * @return LocalDateTime
37 */ 37 */
38 public static Date of(LocalDateTime date) { 38 public static Date of(LocalDateTime date) {
  39 + if (date == null) {
  40 + return null;
  41 + }
39 // 将此日期时间与时区相结合以创建 ZonedDateTime 42 // 将此日期时间与时区相结合以创建 ZonedDateTime
40 ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault()); 43 ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault());
41 // 本地时间线 LocalDateTime 到即时时间线 Instant 时间戳 44 // 本地时间线 LocalDateTime 到即时时间线 Instant 时间戳
@@ -51,6 +54,9 @@ public class DateUtils { @@ -51,6 +54,9 @@ public class DateUtils {
51 * @return LocalDateTime 54 * @return LocalDateTime
52 */ 55 */
53 public static LocalDateTime of(Date date) { 56 public static LocalDateTime of(Date date) {
  57 + if (date == null) {
  58 + return null;
  59 + }
54 // 转为时间戳 60 // 转为时间戳
55 Instant instant = date.toInstant(); 61 Instant instant = date.toInstant();
56 // UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间 62 // UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmActivityConvert.java
1 package cn.iocoder.yudao.module.bpm.convert.task; 1 package cn.iocoder.yudao.module.bpm.convert.task;
2 2
  3 +import cn.iocoder.yudao.framework.common.util.date.DateUtils;
3 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO; 4 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO;
4 import org.flowable.engine.history.HistoricActivityInstance; 5 import org.flowable.engine.history.HistoricActivityInstance;
5 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
@@ -14,7 +15,7 @@ import java.util.List; @@ -14,7 +15,7 @@ import java.util.List;
14 * 15 *
15 * @author 芋道源码 16 * @author 芋道源码
16 */ 17 */
17 -@Mapper 18 +@Mapper(uses = DateUtils.class)
18 public interface BpmActivityConvert { 19 public interface BpmActivityConvert {
19 20
20 BpmActivityConvert INSTANCE = Mappers.getMapper(BpmActivityConvert.class); 21 BpmActivityConvert INSTANCE = Mappers.getMapper(BpmActivityConvert.class);
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java
1 package cn.iocoder.yudao.module.bpm.convert.task; 1 package cn.iocoder.yudao.module.bpm.convert.task;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.common.util.date.DateUtils;
4 import cn.iocoder.yudao.framework.common.util.number.NumberUtils; 5 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
5 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstancePageItemRespVO; 6 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstancePageItemRespVO;
6 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; 7 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
@@ -28,7 +29,7 @@ import java.util.Map; @@ -28,7 +29,7 @@ import java.util.Map;
28 * 29 *
29 * @author 芋道源码 30 * @author 芋道源码
30 */ 31 */
31 -@Mapper 32 +@Mapper(uses = DateUtils.class)
32 public interface BpmProcessInstanceConvert { 33 public interface BpmProcessInstanceConvert {
33 34
34 BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class); 35 BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class);
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.convert.task; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.convert.task;
2 2
3 import cn.hutool.core.date.LocalDateTimeUtil; 3 import cn.hutool.core.date.LocalDateTimeUtil;
4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  5 +import cn.iocoder.yudao.framework.common.util.date.DateUtils;
5 import cn.iocoder.yudao.framework.common.util.number.NumberUtils; 6 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
6 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskDonePageItemRespVO; 7 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskDonePageItemRespVO;
7 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; 8 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
@@ -26,7 +27,7 @@ import java.util.Map; @@ -26,7 +27,7 @@ import java.util.Map;
26 * 27 *
27 * @author 芋道源码 28 * @author 芋道源码
28 */ 29 */
29 -@Mapper 30 +@Mapper(uses = DateUtils.class)
30 public interface BpmTaskConvert { 31 public interface BpmTaskConvert {
31 32
32 BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class); 33 BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
@@ -46,8 +47,8 @@ public interface BpmTaskConvert { @@ -46,8 +47,8 @@ public interface BpmTaskConvert {
46 } 47 }
47 48
48 @Mapping(source = "suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState") 49 @Mapping(source = "suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState")
49 - @Mapping(target = "claimTime", expression = "java(bean.getClaimTime()==null?null: LocalDateTime.ofInstant(bean.getClaimTime().toInstant(),ZoneId.systemDefault()))")  
50 - @Mapping(target = "createTime", expression = "java(bean.getCreateTime()==null?null:LocalDateTime.ofInstant(bean.getCreateTime().toInstant(),ZoneId.systemDefault()))") 50 + // @Mapping(target = "claimTime", expression = "java(bean.getClaimTime()==null?null: LocalDateTime.ofInstant(bean.getClaimTime().toInstant(),ZoneId.systemDefault()))")
  51 + // @Mapping(target = "createTime", expression = "java(bean.getCreateTime()==null?null:LocalDateTime.ofInstant(bean.getCreateTime().toInstant(),ZoneId.systemDefault()))")
51 BpmTaskTodoPageItemRespVO convert1(Task bean); 52 BpmTaskTodoPageItemRespVO convert1(Task bean);
52 53
53 @Named("convertSuspendedToSuspensionState") 54 @Named("convertSuspendedToSuspensionState")
@@ -106,8 +107,8 @@ public interface BpmTaskConvert { @@ -106,8 +107,8 @@ public interface BpmTaskConvert {
106 } 107 }
107 108
108 @Mapping(source = "taskDefinitionKey", target = "definitionKey") 109 @Mapping(source = "taskDefinitionKey", target = "definitionKey")
109 - @Mapping(target = "createTime", expression = "java(bean.getCreateTime() == null ? null : LocalDateTime.ofInstant(bean.getCreateTime().toInstant(), ZoneId.systemDefault()))")  
110 - @Mapping(target = "endTime", expression = "java(bean.getEndTime() == null ? null : LocalDateTime.ofInstant(bean.getEndTime().toInstant(), ZoneId.systemDefault()))") 110 + // @Mapping(target = "createTime", expression = "java(bean.getCreateTime() == null ? null : LocalDateTime.ofInstant(bean.getCreateTime().toInstant(), ZoneId.systemDefault()))")
  111 + // @Mapping(target = "endTime", expression = "java(bean.getEndTime() == null ? null : LocalDateTime.ofInstant(bean.getEndTime().toInstant(), ZoneId.systemDefault()))")
111 BpmTaskRespVO convert3(HistoricTaskInstance bean); 112 BpmTaskRespVO convert3(HistoricTaskInstance bean);
112 113
113 BpmTaskRespVO.User convert3(AdminUserRespDTO bean); 114 BpmTaskRespVO.User convert3(AdminUserRespDTO bean);
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  7 +import cn.iocoder.yudao.framework.common.util.date.DateUtils;
7 import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils; 8 import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils;
8 import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; 9 import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils;
9 import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; 10 import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
@@ -44,7 +45,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. @@ -44,7 +45,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
44 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; 45 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap;
45 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.addTime; 46 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.addTime;
46 47
47 -@Mapper 48 +@Mapper(uses = DateUtils.class)
48 public interface TradeOrderConvert { 49 public interface TradeOrderConvert {
49 50
50 TradeOrderConvert INSTANCE = Mappers.getMapper(TradeOrderConvert.class); 51 TradeOrderConvert INSTANCE = Mappers.getMapper(TradeOrderConvert.class);
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/notify/NotifyMessageConvert.java
1 package cn.iocoder.yudao.module.system.convert.notify; 1 package cn.iocoder.yudao.module.system.convert.notify;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.common.util.date.DateUtils;
4 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO; 5 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
6 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
@@ -13,7 +14,7 @@ import java.util.List; @@ -13,7 +14,7 @@ import java.util.List;
13 * 14 *
14 * @author xrcoder 15 * @author xrcoder
15 */ 16 */
16 -@Mapper 17 +@Mapper(uses = DateUtils.class)
17 public interface NotifyMessageConvert { 18 public interface NotifyMessageConvert {
18 19
19 NotifyMessageConvert INSTANCE = Mappers.getMapper(NotifyMessageConvert.class); 20 NotifyMessageConvert INSTANCE = Mappers.getMapper(NotifyMessageConvert.class);
@@ -24,5 +25,4 @@ public interface NotifyMessageConvert { @@ -24,5 +25,4 @@ public interface NotifyMessageConvert {
24 25
25 PageResult<NotifyMessageRespVO> convertPage(PageResult<NotifyMessageDO> page); 26 PageResult<NotifyMessageRespVO> convertPage(PageResult<NotifyMessageDO> page);
26 27
27 -  
28 } 28 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/notify/NotifyTemplateConvert.java
@@ -4,6 +4,7 @@ import java.util.*; @@ -4,6 +4,7 @@ import java.util.*;
4 4
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6
  7 +import cn.iocoder.yudao.framework.common.util.date.DateUtils;
7 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateCreateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateCreateReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateRespVO; 9 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateRespVO;
9 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateUpdateReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateUpdateReqVO;
@@ -16,7 +17,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; @@ -16,7 +17,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
16 * 17 *
17 * @author xrcoder 18 * @author xrcoder
18 */ 19 */
19 -@Mapper 20 +@Mapper(uses = DateUtils.class)
20 public interface NotifyTemplateConvert { 21 public interface NotifyTemplateConvert {
21 22
22 NotifyTemplateConvert INSTANCE = Mappers.getMapper(NotifyTemplateConvert.class); 23 NotifyTemplateConvert INSTANCE = Mappers.getMapper(NotifyTemplateConvert.class);