From f57fda07e80056ecdc622bdda123984337f2c280 Mon Sep 17 00:00:00 2001
From: mg <maokecheng@163.com>
Date: 星期日, 02 十月 2022 14:36:05 +0800
Subject: [PATCH] 添加环节用时字段

---
 ycl-platform/src/main/java/com/ycl/common/constant/BaseCaseStatus.java                      |    2 
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java |    3 
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java     |    2 
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java        |   17 +++
 ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java                                |  230 ++++++++++++++++++++++++++++++++++++++++++++++
 ycl-platform/src/main/java/com/ycl/entity/caseHandler/DisposeRecord.java                    |    6 +
 6 files changed, 257 insertions(+), 3 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/constant/BaseCaseStatus.java b/ycl-platform/src/main/java/com/ycl/common/constant/BaseCaseStatus.java
similarity index 96%
rename from ycl-platform/src/main/java/com/ycl/constant/BaseCaseStatus.java
rename to ycl-platform/src/main/java/com/ycl/common/constant/BaseCaseStatus.java
index c7a0a55..3b99ff0 100644
--- a/ycl-platform/src/main/java/com/ycl/constant/BaseCaseStatus.java
+++ b/ycl-platform/src/main/java/com/ycl/common/constant/BaseCaseStatus.java
@@ -1,4 +1,4 @@
-package com.ycl.constant;
+package com.ycl.common.constant;
 
 /**
  * <p>
diff --git a/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java b/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java
new file mode 100644
index 0000000..2ea020d
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java
@@ -0,0 +1,230 @@
+package com.ycl.common.util;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+public class DateUtil {
+
+	/**
+	 * 鑾峰彇涓ゆ棩鏈熶箣闂撮棿闅旂殑澶╂暟
+	 * 
+	 * @param smdate
+	 *            杈冨皬鐨勬椂闂�
+	 * @param bdate
+	 *            杈冨ぇ鐨勬椂闂�
+	 * @return 鐩稿樊澶╂暟
+	 */
+	public static int daysBetween(Date smdate, Date bdate) {
+		long between_days = 0;
+		try {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			smdate = sdf.parse(sdf.format(smdate));
+			bdate = sdf.parse(sdf.format(bdate));
+			Calendar cal = Calendar.getInstance();
+			cal.setTime(smdate);
+			long time1 = cal.getTimeInMillis();
+			cal.setTime(bdate);
+			long time2 = cal.getTimeInMillis();
+			between_days = (time2 - time1) / (1000 * 3600 * 24);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+
+		return Integer.parseInt(String.valueOf(between_days));
+	}
+
+	public static boolean isBetween(Date date, Date startDate, Date endDate) {
+ 
+		try {
+
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			startDate = sdf.parse(sdf.format(startDate));
+			endDate = sdf.parse(sdf.format(endDate));
+			date = sdf.parse(sdf.format(date));
+
+			Calendar cal = Calendar.getInstance();
+
+			cal.setTime(date);
+			long time0 = cal.getTimeInMillis();
+			cal.setTime(startDate);
+			long time1 = cal.getTimeInMillis();
+			cal.setTime(endDate);
+			long time2 = cal.getTimeInMillis();
+
+			if (time0 > time1 && time0 <= time2)
+				return true;
+
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return false;
+
+	}
+
+	public static long DifferMillis(Date sDate, Date eDate) {
+		try {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			sDate = sdf.parse(sdf.format(sDate));
+			eDate = sdf.parse(sdf.format(eDate));
+			Calendar cal = Calendar.getInstance();
+			cal.setTime(sDate);
+			long time1 = cal.getTimeInMillis();
+			cal.setTime(eDate);
+			long time2 = cal.getTimeInMillis();
+			return Math.abs(time1 - time2);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+
+		return -1L;
+	}
+
+	public static long DifferSeconds(Date sDate, Date eDate) {
+
+		return DifferMillis(sDate, eDate) / 1000;
+	}
+
+	/**
+	 * 鐩稿樊鍒嗛挓鏁�
+	 * 
+	 * @param sDate
+	 * @param eDate
+	 * @return
+	 */
+	public static long DifferMinutes(Date sDate, Date eDate) {
+
+		return Long.parseLong(String.valueOf(DifferMillis(sDate, eDate)
+				/ (1000 * 60)));
+	}
+
+	public static String getNowDate(String format) {
+		return new SimpleDateFormat(format).format(new Date());
+	}
+
+	public static String getDateString(Date date, String format) {
+		return new SimpleDateFormat(format).format(date);
+	}
+
+	public static Date parse(String date, String format) {
+
+		try {
+			return new SimpleDateFormat(format).parse(date);
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static boolean nowTimeBetween(String beginTimeStr, String endTimeStr)
+			throws ParseException {
+		SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
+		Long beginTime = dateFormat.parse(beginTimeStr).getTime();
+		Long endTime = dateFormat.parse(endTimeStr).getTime();
+		Long nowTime = dateFormat.parse(dateFormat.format(new Date()))
+				.getTime();
+		if (nowTime >= beginTime && nowTime <= endTime) {
+			return true;
+		}
+		return false;
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addDate(Date date, int days) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.DATE, days);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addHour(Date date, int hour) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.HOUR, hour);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addMinute(Date date, int minute) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.MINUTE, minute);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addSecond(Date date, int second) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.SECOND, second);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	/**
+	 * 缁熻涓や釜鏃堕棿鐨勬椂闂村樊
+	 * two-one
+	 * 鐩稿樊鍑犵鍑犳绉�
+	 */
+	public static String getDistanceDateTime(Date one, Date two) {
+		long day = 0;//澶╂暟宸�
+		long hour = 0;//灏忔椂鏁板樊
+		long min = 0;//鍒嗛挓鏁板樊
+		long second=0;//绉掓暟宸�
+		long diff=0 ;//姣宸�
+		String result = "";
+		final Calendar c = Calendar.getInstance();
+		c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
+		c.setTime(one);
+		long time1 = one.getTime();
+		long time2 = two.getTime();
+		diff = time2 - time1;
+		day = diff / (24 * 60 * 60 * 1000);
+		hour = (diff / (60 * 60 * 1000) - day * 24);
+		min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
+		second = diff/1000;
+		System.out.println("day="+day+" hour="+hour+" min="+min+" ss="+second%60+" SSS="+diff%1000);
+		String daystr = day%30+"澶�";
+		String hourStr = hour%24+"灏忔椂";
+		String minStr = min%60+"鍒�";
+		String secondStr = second%60+"绉�";
+		if (day!=0){
+			result = result + daystr;
+		}
+		if (hour!=0){
+			result = result + hourStr;
+		}
+		if (min!=0){
+			result = result + minStr;
+		}
+		if (second!=0){
+			result = result + secondStr;
+		}
+		return result;
+	}
+	public static Date fromLocalDateTime(LocalDateTime ldt){
+		ZoneId zoneId = ZoneId.systemDefault();
+		ZonedDateTime zdt = ldt.atZone(zoneId);
+		Date date = Date.from(zdt.toInstant());
+		return date ;
+	}
+	public static void main(String[] args) throws ParseException {
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.add(Calendar.DATE,-1);
+		calendar.add(Calendar.HOUR,-6);
+		calendar.add(Calendar.MINUTE,-5);
+		calendar.add(Calendar.SECOND,-4);
+		calendar.add(Calendar.MILLISECOND, -30);
+		Date date = calendar.getTime();
+		Date today = new Date();
+		System.out.println(getDistanceDateTime(date,today));
+	}
+}
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/entity/caseHandler/DisposeRecord.java b/ycl-platform/src/main/java/com/ycl/entity/caseHandler/DisposeRecord.java
index 205d9ef..61eaf75 100644
--- a/ycl-platform/src/main/java/com/ycl/entity/caseHandler/DisposeRecord.java
+++ b/ycl-platform/src/main/java/com/ycl/entity/caseHandler/DisposeRecord.java
@@ -116,4 +116,10 @@
     @ApiModelProperty(value = "闄愬埗鏃堕檺")
     private LocalDateTime limitTime;
 
+    /**
+     * 鐜妭鐢ㄦ椂
+     */
+    @TableField(value = "linkTime",exist = false)
+    @ApiModelProperty(value = "鐜妭鐢ㄦ椂")
+    private String linkTime;
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
index de22bbc..f884485 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -8,6 +8,7 @@
 import com.ycl.bo.AdminUserDetails;
 import com.ycl.bo.casePool.CasePoolIllegalBuildingDO;
 import com.ycl.bo.casePool.CasePoolViolationDO;
+import com.ycl.common.util.DateUtil;
 import com.ycl.dto.casePool.IllegalBuildingParam;
 import com.ycl.dto.casePool.ViolationParam;
 import com.ycl.entity.caseHandler.*;
@@ -234,6 +235,22 @@
         }
         //2.2鏌ヨ澶勭疆娴佺▼鐜妭閰嶇疆
         List<WorkflowConfigStep> listWcs = workflowConfigStepMapper.selectRecordByWorkflowConfigStepId(ddlcId);
+        //澶勭悊鐢ㄧ幆鑺傛椂闂�
+        for (WorkflowConfigStep step : listWcs) {
+            DisposeRecord record = step.getDisposeRecord();
+            System.out.println(baseCase.getAlarmTime());
+            System.out.println(record.getCreateTime());
+            System.out.println(DateUtil.fromLocalDateTime(baseCase.getAlarmTime()));
+            System.out.println(DateUtil.fromLocalDateTime(record.getCreateTime()));
+            System.out.println( DateUtil.getDistanceDateTime(
+                    DateUtil.fromLocalDateTime(baseCase.getAlarmTime()),
+                    DateUtil.fromLocalDateTime(record.getCreateTime())));
+            record.setLinkTime(
+                    DateUtil.getDistanceDateTime(
+                            DateUtil.fromLocalDateTime(baseCase.getAlarmTime()),
+                            DateUtil.fromLocalDateTime(record.getCreateTime())));
+            step.setDisposeRecord(record);
+        }
         //2.3璁剧疆璋冨害娴佺▼
         handlePassVo.setWorkflowConfigSteps(listWcs);
         bcd.setHandlePassVo(handlePassVo);
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java
index 588ee58..49cdf94 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java
@@ -1,7 +1,7 @@
 package com.ycl.service.caseHandler.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.constant.BaseCaseStatus;
+import com.ycl.common.constant.BaseCaseStatus;
 import com.ycl.dto.caseHandler.ChechParam;
 import com.ycl.entity.caseHandler.BaseCase;
 import com.ycl.entity.caseHandler.DisposeRecord;
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java
index 7bb40d9..d5e4334 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java
@@ -1,7 +1,7 @@
 package com.ycl.service.caseHandler.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.constant.BaseCaseStatus;
+import com.ycl.common.constant.BaseCaseStatus;
 import com.ycl.dto.caseHandler.DispatchInfoParam;
 import com.ycl.entity.caseHandler.BaseCase;
 import com.ycl.entity.caseHandler.DispatchInfo;
@@ -38,6 +38,7 @@
         baseMapper.insert(dispatchInfo);
         //淇敼妗堜欢鐘舵�佷负璋冨害
         BaseCase baseCase = new BaseCase();
+        baseCase.setId(dispatchInfoParam.getBaseCaseId());
         baseCase.setState(BaseCaseStatus.DISPATCH);
         baseCaseMapper.updateById(baseCase);
         return dispatchInfo;

--
Gitblit v1.8.0