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