Parcourir la source

解决时间问题

JensionDzero il y a 1 an
Parent
commit
73cc91b8cd

+ 15 - 15
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/App.java

@@ -31,16 +31,16 @@ public class App {
     private String callBack;
     @TableField("appSecret")
     private String appSecret;
-//    @TableField("prove_1")
-//    private String prove1;
-//    @TableField("prove_2")
-//    private String prove2;
-//    @TableField("prove_3")
-//    private String prove3;
-//    @TableField("prove_4")
-//    private String prove4;
-//    @TableField("prove_5")
-//    private String prove5;
+    @TableField("prove_1")
+    private String prove1;
+    @TableField("prove_2")
+    private String prove2;
+    @TableField("prove_3")
+    private String prove3;
+    @TableField("prove_4")
+    private String prove4;
+    @TableField("prove_5")
+    private String prove5;
     @TableField("create_time")
     private LocalDateTime createTime;
     @TableField("annotation")
@@ -56,11 +56,11 @@ public class App {
         this.commercialName = appVo.getCommercialName();
         this.state = appVo.getState();
         this.callBack = appVo.getCallBack();
-//        this.prove1 = appVo.getProve1();
-//        this.prove2 = appVo.getProve2();
-//        this.prove3 = appVo.getProve3();
-//        this.prove4 = appVo.getProve4();
-//        this.prove5 = appVo.getProve5();
+        this.prove1 = appVo.getProve1();
+        this.prove2 = appVo.getProve2();
+        this.prove3 = appVo.getProve3();
+        this.prove4 = appVo.getProve4();
+        this.prove5 = appVo.getProve5();
         this.annotation = appVo.getAnnotation();
     }
 }

+ 7 - 32
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/Plan.java

@@ -58,10 +58,10 @@ public class Plan {
     @TableField("goods_classify")
     private String goodsClassify;
     @TableField("plan_create_time")
-//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-//    @JsonSerialize(using = LocalDateTimeSerializer.class)
-//    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
-    private String planCreateTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private LocalDateTime planCreateTime;
     @TableField("plan_start_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonSerialize(using = LocalDateTimeSerializer.class)
@@ -104,34 +104,9 @@ public class Plan {
         this.setGoodsPrice(bo.getGoodsPrice());
         this.setGoodsIntroduce(bo.getGoodsIntroduce());
         this.setGoodsClassify(bo.getGoodsClassify());
-        LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
-        this.setPlanCreateTime(now.toString());
-
-
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        System.out.println(bo.getPlanStartTime());
-        System.out.println(bo.getPlanEndTime());
-
-        System.out.println("......................");
-        LocalDateTime startTime = LocalDateTime.parse(bo.getPlanStartTime(), dateTimeFormatter);
-        LocalDateTime endTime = LocalDateTime.parse(bo.getPlanEndTime(), dateTimeFormatter);
-
-        LocalDateTime planStartTime = startTime.atZone(OffsetDateTime.now().getOffset()).withZoneSameInstant(ZoneId.of("Asia/Shanghai")).toLocalDateTime();
-        LocalDateTime planEndTime = endTime.atZone(OffsetDateTime.now().getOffset()).withZoneSameInstant(ZoneId.of("Asia/Shanghai")).toLocalDateTime();
-
-        System.out.println("......................");
-        LocalDateTime slocalDateTime = startTime.atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime();  //
-        LocalDateTime elocalDateTime = endTime.atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime();   //
-        System.out.println(slocalDateTime);
-        System.out.println(elocalDateTime);
-
-        System.out.println("......................");
-        System.out.println(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));  //
-        System.out.println(LocalDateTime.now().atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime());
-        System.out.println(LocalDateTime.now().atZone(OffsetDateTime.now().getOffset()).withZoneSameInstant(ZoneId.of("Asia/Shanghai")).toLocalDateTime());  //
-
-        this.planStartTime = slocalDateTime;
-        this.planEndTime = elocalDateTime;
+        this.setPlanCreateTime(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
+        this.planStartTime = bo.getPlanStartTime();
+        this.planEndTime = bo.getPlanEndTime();
         this.setState(StateUtil.NOT_AUDITED);
 
         this.setOnState(OnStateUtil.UP);

+ 4 - 4
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/bo/PlanAddBo.java

@@ -41,10 +41,10 @@ public class PlanAddBo {
     @NotBlank(groups = {AddGroup.class},message = "负责人联系方式不能为空")
     private String principalTelephone;
 
-    @NotBlank(groups = {AddGroup.class},message = "计划开始时间不能为空")
-    private String planStartTime;
-    @NotBlank(groups = {AddGroup.class},message = "计划结束时间不能为空")
-    private String planEndTime;
+    @NotNull(groups = {AddGroup.class},message = "计划开始时间不能为空")
+    private LocalDateTime planStartTime;
+    @NotNull(groups = {AddGroup.class},message = "计划结束时间不能为空")
+    private LocalDateTime planEndTime;
     @NotNull(groups = {AddGroup.class},message = "设备不能为空")
     private List<PlanItemAddBo> items;
     @NotBlank(groups = {AddGroup.class},message = "签名不能为空")

+ 1 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/vo/AppVo.java

@@ -36,7 +36,7 @@ public class AppVo {
     private String prove3;
     private String prove4;
     private String prove5;
-    private LocalDateTime create_time;
+    private LocalDateTime createTime;
     private String annotation;
     private Integer deleted;
 

+ 1 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/entity/vo/PlanManageListVo.java

@@ -42,7 +42,7 @@ public class PlanManageListVo {
         this.goodsImg = plan.getGoodsImg();
         this.goodsName = plan.getGoodsName();
         this.goodsPrice = plan.getGoodsPrice();
-        //this.planCreateTime = plan.getPlanCreateTime();
+        this.planCreateTime = plan.getPlanCreateTime();
         this.planStartTime = plan.getPlanStartTime();
         this.planEndTime = plan.getPlanEndTime();
         this.state = StateUtil.getStateName(plan.getState());

+ 2 - 2
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/PlanServiceImpl.java

@@ -282,9 +282,9 @@ public class PlanServiceImpl implements PlanService {
                 .or()
                 .like("principal_telephone",bo.getText());
         if (bo.getStartTime() != null)
-            planQueryWrapper.apply("plan_start_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime());
+            planQueryWrapper.apply("plan_start_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime());
         if (bo.getEndTime() != null)
-            planQueryWrapper.apply("plan_end_time > STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime());
+            planQueryWrapper.apply("plan_end_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime());
         planQueryWrapper.eq("deleted","0");
         List<Plan> plans = planMapper.selectList(planQueryWrapper);
         List<PlanManageListVo> vos = new ArrayList<>();

+ 59 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/typehander/LocalDateTimeToDataTime.java

@@ -0,0 +1,59 @@
+package com.ruoyi.demo.typehander;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.springframework.stereotype.Component;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+
+/*java LocalDataTime 和 mysql dataTime 类型对接*/
+/*1.LocalDateTime 转换成 String*/
+@Component
+public class LocalDateTimeToDataTime extends BaseTypeHandler<LocalDateTime> {
+    @Override
+    public void setNonNullParameter(PreparedStatement preparedStatement, int i, LocalDateTime localDateTime, JdbcType jdbcType) throws SQLException {
+        //"yyyy-mm-dd hh:mm:ss"
+        LocalDateTime localDateTime1 = localDateTime.atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime();
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        preparedStatement.setString(i,dateTimeFormatter.format(localDateTime1));
+    }
+
+    @Override
+    public LocalDateTime getNullableResult(ResultSet resultSet, String s) throws SQLException {
+        String dateAndTime = resultSet.getString(s);
+        if(dateAndTime == null){
+            return null;
+        }
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("Asia/Shanghai"));  //注意:HH是24小时制 hh是12小时制
+        LocalDateTime parse = LocalDateTime.parse(dateAndTime, dateTimeFormatter);
+        return parse;
+    }
+
+    @Override
+    public LocalDateTime getNullableResult(ResultSet resultSet, int i) throws SQLException {
+        String dateAndTime = resultSet.getString(i);
+        if(dateAndTime == null){
+            return null;
+        }
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("Asia/Shanghai"));  //注意:HH是24小时制 hh是12小时制
+        LocalDateTime parse = LocalDateTime.parse(dateAndTime, dateTimeFormatter);
+        return parse;
+    }
+
+    @Override
+    public LocalDateTime getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+        String dateAndTime = callableStatement.getString(i);
+        if(dateAndTime == null){
+            return null;
+        }
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("Asia/Shanghai"));  //注意:HH是24小时制 hh是12小时制
+        LocalDateTime parse = LocalDateTime.parse(dateAndTime, dateTimeFormatter);
+        return parse;
+    }
+}