From 2f65c9f0c9dae7c192a81a79d94b7eba614c8b23 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 17 十一月 2025 14:59:12 +0800
Subject: [PATCH] 钥匙柜大屏
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java | 65 ++++++
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/CabinetBoardController.java | 98 +++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/CabinetBoardUseRecordDTO.java | 25 ++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardDataVO.java | 33 +++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java | 115 +++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningDataVO.java | 31 +++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java | 31 +++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java | 58 +++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardUseRecordVO.java | 39 +++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningRataDataVO.java | 26 ++
16 files changed, 544 insertions(+), 4 deletions(-)
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/CabinetBoardController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/CabinetBoardController.java
new file mode 100644
index 0000000..8a88b7d
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/CabinetBoardController.java
@@ -0,0 +1,98 @@
+package com.doumee.cloud.board;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.admin.response.InterestedListVO;
+import com.doumee.dao.business.dto.CabinetBoardUseRecordDTO;
+import com.doumee.dao.business.model.Warning;
+import com.doumee.dao.business.model.WarningEvent;
+import com.doumee.dao.business.vo.CabinetBoardDataVO;
+import com.doumee.dao.business.vo.CabinetBoardUseRecordVO;
+import com.doumee.dao.business.vo.CabinetBoardWaningRataDataVO;
+import com.doumee.dao.web.response.platformReport.OnSitDispatchBoardVO;
+import com.doumee.service.business.*;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/11/17 9:06
+ */
+@Api(tags = "銆愰挜鍖欐煖銆戠湅鏉垮ぇ灞忔帴鍙�")
+@RestController
+@Slf4j
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/cabinet")
+public class CabinetBoardController extends BaseController {
+
+ @Autowired
+ private JkCabinetService jkCabinetService;
+
+ @Autowired
+ private JkCabinetGridService jkCabinetGridService;
+
+ @Autowired
+ private JkCabinetLogService jkCabinetLogService;
+
+ @Autowired
+ private CarUseBookService carUseBookService;
+
+ @Autowired
+ private WarningService warningService;
+
+ @LoginNoRequired
+ @ApiOperation("涓績鏁版嵁-閽ュ寵鏌滃熀鏈暟鎹�")
+ @GetMapping("/getCabinetGridData")
+ public ApiResponse<CabinetBoardDataVO> getCabinetGridData() {
+ CabinetBoardDataVO data = jkCabinetGridService.getCabinetGridData();
+ return ApiResponse.success(data);
+ }
+
+ @LoginNoRequired
+ @ApiOperation("閽ュ寵棰嗗彇褰掕繕璁板綍")
+ @PostMapping("/getKeyUseRecord")
+ public ApiResponse<List<CabinetBoardUseRecordVO>> getKeyUseRecord(@RequestBody CabinetBoardUseRecordDTO dto) {
+ return ApiResponse.success(jkCabinetLogService.getKeyUseRecord(dto));
+ }
+
+
+ @LoginNoRequired
+ @ApiOperation("娲捐溅缁熻")
+ @GetMapping("/getCarUseStatistics")
+ public ApiResponse<List<InterestedListVO>> getCarUseStatistics(@RequestParam Integer type) {
+ return ApiResponse.success(carUseBookService.getCarUseStatistics(type));
+ }
+
+ @LoginNoRequired
+ @ApiOperation("閽ュ寵棰嗗彇褰掕繕璁板綍缁熻")
+ @GetMapping("/getKeyUseStatistics")
+ public ApiResponse<List<InterestedListVO>> getKeyUseStatistics(@RequestParam Integer type) {
+ return ApiResponse.success(jkCabinetLogService.getKeyUseStatistics(type));
+ }
+
+ @LoginNoRequired
+ @ApiOperation("鍛婅璁板綍 - 鏄庣粏")
+ @PostMapping("/getCabinetBoardWarningPage")
+ public ApiResponse<PageData<WarningEvent>> getCabinetBoardWarningPage (@RequestBody PageWrap<WarningEvent> pageWrap) {
+ return ApiResponse.success(warningService.getCabinetBoardWarningPage(pageWrap));
+ }
+
+
+ @LoginNoRequired
+ @ApiOperation("鍛婅璁板綍 - 鍒嗗竷")
+ @GetMapping("/getWarningRataData")
+ public ApiResponse<CabinetBoardWaningRataDataVO> getWarningRataData(@RequestParam Integer type) {
+ return ApiResponse.success(warningService.getCabinetBoardWarningRataData(type));
+ }
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java
index 80a4a9a..8c50cd4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java
@@ -23,4 +23,7 @@
@ApiModelProperty(value = "鍚嶇О")
private String name;
+ @ApiModelProperty(value = "鏁伴噺2")
+ private Integer nextNum;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/CabinetBoardUseRecordDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/CabinetBoardUseRecordDTO.java
new file mode 100644
index 0000000..392bd44
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/CabinetBoardUseRecordDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.business.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/10/11 16:01
+ */
+@Data
+public class CabinetBoardUseRecordDTO {
+
+
+ @ApiModelProperty(value = "绫诲瀷锛�0=鏈綊杩橈紱1=宸插綊杩�")
+ private Integer status;
+
+ @ApiModelProperty(value = "杞︾墝鍙�")
+ private String carCode;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java
index 84ed096..3d58cfd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java
@@ -126,8 +126,14 @@
@ExcelColumn(name="浜嬩欢绛夌骇",valueMapping = "0=浣�;1=涓�;2=楂�;",width=10,index = 4)
@TableField(exist = false)
private Integer warningLevel;
+ @ApiModelProperty(value = "浜嬩欢缂栫爜")
+ @TableField(exist = false)
+ private String warningCode;
+ @ApiModelProperty(value = "鍒涘缓浜哄悕绉�")
+ @TableField(exist = false)
+ private String createUserName;
@ApiModelProperty(value = "鏌ヨ鏃堕棿寮�濮� ")
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardDataVO.java
new file mode 100644
index 0000000..e5291f6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardDataVO.java
@@ -0,0 +1,33 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/5/23 14:56
+ */
+@Data
+public class CabinetBoardDataVO {
+
+ @ApiModelProperty(value = "鏌滄牸鎬绘暟")
+ private Integer gridNum;
+
+ @ApiModelProperty(value = "鍦ㄤ綅閽ュ寵鏁�")
+ private Integer onlineKeyNum;
+
+ @ApiModelProperty(value = "鍊熷嚭鏁伴噺")
+ private Integer outKeyNum;
+
+ @ApiModelProperty(value = "缁翠慨淇濆吇閽ュ寵鏁�")
+ private Integer serviceKeyNum;
+
+ @ApiModelProperty(value = "鏈粦瀹氭煖浣撴暟閲�")
+ private Integer unBindGridNum;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardUseRecordVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardUseRecordVO.java
new file mode 100644
index 0000000..803a749
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardUseRecordVO.java
@@ -0,0 +1,39 @@
+package com.doumee.dao.business.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 閽ュ寵鏌滃紑鍏抽棬璁板綍
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Data
+@ApiModel("閽ュ寵鏌滈挜鍖欓鍙栬褰�")
+public class CabinetBoardUseRecordVO {
+
+ @ApiModelProperty(value = "棰嗗彇鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createDate;
+
+ @ApiModelProperty(value = "褰掕繕鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date returnDate;
+
+ @ApiModelProperty(value = "鐘舵�侊細0=鏈綊杩橈紱1=宸插綊杩橈紱")
+ private Integer status;
+
+ @ApiModelProperty(value = "杞︾墝鍙�")
+ private String carCode;
+
+ @ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
+ private String memberName;
+
+ @ApiModelProperty(value = "澶囨敞", example = "1")
+ private String remark;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningDataVO.java
new file mode 100644
index 0000000..c957fc2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningDataVO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/5/23 14:56
+ */
+@Data
+public class CabinetBoardWaningDataVO {
+
+ @ApiModelProperty(value = "閰掔簿妫�娴嬪憡璀︽暟閲�")
+ private Integer gridNum;
+
+ @ApiModelProperty(value = "鏌滈棬鏈叧闂憡璀︽暟閲�")
+ private Integer onlineKeyNum;
+
+ @ApiModelProperty(value = "瓒呮椂鏈綊杩樺憡璀�")
+ private Integer outKeyNum;
+
+ @ApiModelProperty(value = "缁翠慨淇濆吇閽ュ寵鏁�")
+ private Integer serviceKeyNum;
+
+ @ApiModelProperty(value = "鏈粦瀹氭煖浣撴暟閲�")
+ private Integer unBindGridNum;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningRataDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningRataDataVO.java
new file mode 100644
index 0000000..e5ba8fb
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetBoardWaningRataDataVO.java
@@ -0,0 +1,26 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/5/23 14:56
+ */
+@Data
+public class CabinetBoardWaningRataDataVO {
+
+ @ApiModelProperty(value = "閰掔簿妫�娴嬫暟閲�")
+ private Integer alcoholNum;
+
+ @ApiModelProperty(value = "鏌滈棬鏈叧闂憡璀︽暟閲�")
+ private Integer unCloseNum;
+
+ @ApiModelProperty(value = "瓒呮椂鏈綊杩樺憡璀�")
+ private Integer timeOutNum;
+
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java
index a4c1537..67be374 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
+import com.doumee.dao.admin.response.InterestedListVO;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -107,4 +108,6 @@
void revoke(Integer id, String info, LoginUserInfo loginUserInfo);
void jdyPushCarUseBook(String dataInfo);
+
+ List<InterestedListVO> getCarUseStatistics(Integer type);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
index 294a59d..73cc38d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
@@ -2,6 +2,7 @@
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.JkCabinetGrid;
+import com.doumee.dao.business.vo.CabinetBoardDataVO;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -147,7 +148,7 @@
void alcoholTestAlarm(AlcoholTestAlarmDTO dto);
-
+ CabinetBoardDataVO getCabinetGridData();
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java
index 35e17eb..b6a0f54 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetLogService.java
@@ -1,6 +1,9 @@
package com.doumee.service.business;
+import com.doumee.dao.admin.response.InterestedListVO;
+import com.doumee.dao.business.dto.CabinetBoardUseRecordDTO;
import com.doumee.dao.business.dto.TelecomCabinetLogDTO;
+import com.doumee.dao.business.vo.CabinetBoardUseRecordVO;
import com.doumee.dao.business.vo.TelecomJkCabinetLogVO;
import com.doumee.service.business.impl.JkCabinetGridServiceImpl;
import com.doumee.service.business.third.model.PageData;
@@ -108,4 +111,7 @@
void timeOutUnBackAlarm(JkCabinetGridServiceImpl impl);
+ List<CabinetBoardUseRecordVO> getKeyUseRecord(CabinetBoardUseRecordDTO dto);
+
+ List<InterestedListVO> getKeyUseStatistics(Integer type);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java
index c06822a..6a75d98 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningService.java
@@ -1,5 +1,7 @@
package com.doumee.service.business;
+import com.doumee.dao.business.model.WarningEvent;
+import com.doumee.dao.business.vo.CabinetBoardWaningRataDataVO;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -99,4 +101,8 @@
void updateStatus(Warning param);
void getWeatherInfo();
+
+ PageData<WarningEvent> getCabinetBoardWarningPage(PageWrap<WarningEvent> pageWrap);
+
+ CabinetBoardWaningRataDataVO getCabinetBoardWarningRataData(Integer type);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index b81ac6f..53ecf86 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -5,6 +5,7 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.admin.response.InterestedListVO;
import com.doumee.dao.business.dao.UserActionMapper;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
@@ -751,6 +752,36 @@
}
carUseBookMapper.insertOrUpdate(carUseBook);
}
+
+
+
+
+ @Override
+ public List<InterestedListVO> getCarUseStatistics(Integer type){
+ List<String> weekDays = DateUtil.getBeforDays(new Date(),Objects.isNull(type)||Constants.equalsInteger(type,Constants.ZERO)?7:15);
+ MPJLambdaWrapper<CarUseBook> wrapper = new MPJLambdaWrapper<CarUseBook>()
+ .selectAll(CarUseBook.class)
+ .eq(CarUseBook::getIsdeleted, Constants.ZERO)
+ .eq(CarUseBook::getStatus,Constants.TWO)
+ .apply(" CREATE_DATE > CURDATE() - INTERVAL "+(Objects.isNull(type)||Constants.equalsInteger(type,Constants.ZERO)?7:15)+" DAY ")
+ .orderByDesc(CarUseBook::getCreateDate);
+ List<CarUseBook> carUseBookList = carUseBookMapper.selectJoinList(CarUseBook.class,wrapper);
+ List<InterestedListVO> list = new ArrayList<>();
+ for (String days:weekDays) {
+ InterestedListVO vo = new InterestedListVO();
+ vo.setName(days);
+ vo.setNum(Constants.ZERO);
+ vo.setNextNum(Constants.ZERO);
+ if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carUseBookList)) {
+ vo.setNum(
+ carUseBookList.stream().filter(i->DateUtil.dateToString(i.getCreateDate(),"yyyy-MM-dd").equals(days))
+ .collect(Collectors.toList()).size()
+ );
+ }
+ }
+ return list;
+ }
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
index 9140786..3f6f205 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
@@ -14,6 +15,9 @@
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CabinetBoardDataVO;
+import com.doumee.dao.business.vo.CabinetDetailVO;
+import com.doumee.dao.business.vo.CabinetGridInfoVO;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.third.model.LoginUserInfo;
@@ -738,6 +742,16 @@
public void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto){
if(Objects.nonNull(dto)
&& Objects.nonNull(dto.getGridId())){
+
+ SystemUser systemUser = null;
+ if(Objects.nonNull(dto.getMemberId())){
+ systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(Objects.nonNull(dto.getMemberId()),SystemUser::getMemberId,dto.getMemberId())
+ .eq(SystemUser::getDeleted,Constants.ZERO)
+ .last(" limit 1 ")
+ );
+ }
+
JkCabinetGrid jkCabinetGrid = jkCabinetGridMapper.selectJoinOne(JkCabinetGrid.class,
new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
.selectAs(JkCabinet::getName,JkCabinetGrid::getCabinetName)
@@ -746,6 +760,7 @@
.eq(JkCabinetGrid::getId,dto.getGridId())
.last(" limit 1 ")
);
+
if(Objects.nonNull(jkCabinetGrid)){
log.error("鏌滄牸寮�闂ㄨ秴鏃舵湭鍏抽棴鍛婅淇℃伅锛歿}"+JSONObject.toJSONString(jkCabinetGrid));
//瑙勫垯绫诲瀷
@@ -779,6 +794,7 @@
//瀛樺偍鎶ヨ寮傚父璁板綍
WarningEvent warningEvent = new WarningEvent();
warningEvent.setCreateDate(new Date());
+ warningEvent.setCreator(Objects.nonNull(systemUser)?systemUser.getId():null);
warningEvent.setWarningId(warning.getId());
warningEvent.setTitle(warningConfig.getInfo());
warningEvent.setContent(content );
@@ -988,6 +1004,7 @@
//瀛樺偍鎶ヨ寮傚父璁板綍
WarningEvent warningEvent = new WarningEvent();
warningEvent.setCreateDate(new Date());
+ warningEvent.setCreator(Objects.nonNull(systemUser)?systemUser.getId():null);
warningEvent.setWarningId(warning.getId());
warningEvent.setTitle(warningConfig.getInfo());
warningEvent.setContent(content );
@@ -1038,7 +1055,46 @@
}
-
+ @Override
+ public CabinetBoardDataVO getCabinetGridData(){
+ CabinetBoardDataVO cabinetBoardDataVO = new CabinetBoardDataVO();
+ //鎵�鏈夋煖鏍间俊鎭�
+ List<JkCabinetGrid> jkCabinetGridList =
+ jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
+ .selectAll(JkCabinetGrid.class)
+ .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+ .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+ .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+ .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .orderByAsc(JkCabinetGrid::getCode)
+ );
+ List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
+ if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+ cabinetBoardDataVO.setGridNum(jkCabinetGridList.size());
+ for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+ CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
+ BeanUtil.copyProperties(jkCabinetGrid,cabinetGridInfoVO);
+ cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
+ cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
+ cabinetGridInfoVOList.add(cabinetGridInfoVO);
+ }
+ cabinetBoardDataVO.setGridNum(jkCabinetGridList.size());
+ cabinetBoardDataVO.setOnlineKeyNum( //鍦ㄤ綅鏁伴噺
+ cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.ONE)).collect(Collectors.toList()).size()
+ );
+ cabinetBoardDataVO.setOutKeyNum( //鍊熷嚭鏁伴噺
+ cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.TWO)).collect(Collectors.toList()).size()
+ );
+ cabinetBoardDataVO.setServiceKeyNum( //缁存姢淇濆吇鏁伴噺
+ cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.THREE)).collect(Collectors.toList()).size()
+ );
+ cabinetBoardDataVO.setUnBindGridNum(//绌洪棽鏁伴噺
+ cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getBindStatus(),Constants.ZERO)).collect(Collectors.toList()).size()
+ );
+ }
+ return cabinetBoardDataVO;
+ }
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
index 56eae5b..b988651 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
@@ -3,10 +3,16 @@
import cn.hutool.core.bean.BeanUtil;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.admin.response.InterestedListVO;
import com.doumee.dao.business.*;
+import com.doumee.dao.business.dto.CabinetBoardUseRecordDTO;
import com.doumee.dao.business.dto.TelecomCabinetLogDTO;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CabinetBoardUseRecordVO;
import com.doumee.dao.business.vo.TelecomJkCabinetLogVO;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Utils;
@@ -45,6 +51,10 @@
@Autowired
private WarningPushMapper warningPushMapper;
+
+
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Autowired
private WarningEventMapper warningEventMapper;
@@ -234,11 +244,21 @@
}
for (JkCabinetLog jkCabinetLog:jkCabinetLogs) {
+ SystemUser systemUser = null;
+ if(Objects.nonNull(jkCabinetLog.getMemberId())){
+ systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(Objects.nonNull(jkCabinetLog.getMemberId()),SystemUser::getMemberId,jkCabinetLog.getMemberId())
+ .eq(SystemUser::getDeleted,Constants.ZERO)
+ .last(" limit 1 ")
+ );
+ }
+
String content = "銆愯溅杈�-"+jkCabinetLog.getCarCode()+"閽ュ寵銆戠敱+"+(StringUtils.isNotBlank(jkCabinetLog.getMemberName())?jkCabinetLog.getMemberName():"鏈煡浜哄憳")+"鍊熷嚭锛岃秴鏃舵湭褰掕繕";
//瀛樺偍鎶ヨ寮傚父璁板綍
WarningEvent warningEvent = new WarningEvent();
warningEvent.setCreateDate(new Date());
+ warningEvent.setCreator(Objects.nonNull(systemUser)?systemUser.getId():null);
warningEvent.setWarningId(warning.getId());
warningEvent.setTitle(warningConfig.getInfo());
warningEvent.setContent(content );
@@ -280,15 +300,106 @@
warningEventMapper.updateById(warningEvent);
}
}
+ }
+ }
+ }
+
+
+
+ @Override
+ public List<CabinetBoardUseRecordVO> getKeyUseRecord(CabinetBoardUseRecordDTO dto){
+ MPJLambdaWrapper<JkCabinetLog> wrapper = new MPJLambdaWrapper<JkCabinetLog>()
+ .selectAll(JkCabinetLog.class)
+ .selectAs(Member::getName,JkCabinetLog::getMemberName)
+ .selectAs(Company::getName,JkCabinetLog::getCompanyName)
+ .selectAs(JkCabinet::getName,JkCabinetLog::getCabinetName)
+ .selectAs(JkCabinetGrid::getCode,JkCabinetLog::getGridCode)
+ .selectAs(JkKeys::getCarCode,JkCabinetLog::getCarCode)
+ .select("j.CREATE_DATE",JkCabinetLog::getReturnDate)
+ .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetLog::getCabinetId)
+ .leftJoin(JkCabinetGrid.class,JkCabinetGrid::getId,JkCabinetLog::getGridId)
+ .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .leftJoin(Member.class,Member::getId,JkCabinetLog::getMemberId)
+ .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+ .leftJoin(" jk_cabinet_log j on j.id=t.CLOSE_LOG_ID ")
+ .ge(JkCabinetLog::getCreateDate, Utils.Date.getStart(DateUtil.getCurrentDate()))
+ .le(JkCabinetLog::getCreateDate, Utils.Date.getEnd(Utils.Date.getStart(DateUtil.getCurrentDate())))
+ .eq(JkCabinetLog::getIsdeleted, Constants.ZERO)
+ .eq(JkCabinetLog::getType,Constants.ONE)
+ .eq(JkCabinetLog::getKeyStatus,Constants.TWO)
+ .like(StringUtils.isNotBlank(dto.getCarCode()),JkCabinetLog::getCarCode,dto.getCarCode())
+ .isNotNull(Objects.nonNull(dto.getStatus())&&Constants.equalsInteger(dto.getStatus(),Constants.ONE),JkCabinetLog::getCloseLogId)
+ .isNull(Objects.nonNull(dto.getStatus())&&Constants.equalsInteger(dto.getStatus(),Constants.ZERO),JkCabinetLog::getCloseLogId)
+ .orderByDesc(JkCabinetLog::getCreateDate);
+ List<JkCabinetLog> jkCabinetLogs = jkCabinetLogMapper.selectJoinList(JkCabinetLog.class,wrapper);
+ List<CabinetBoardUseRecordVO> cabinetBoardUseRecordList = new ArrayList<CabinetBoardUseRecordVO>();
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(jkCabinetLogs)){
+ for (JkCabinetLog jkCabinetLog:jkCabinetLogs) {
+ CabinetBoardUseRecordVO cabinetBoardUseRecordVO = new CabinetBoardUseRecordVO();
+ BeanUtil.copyProperties(jkCabinetLog,cabinetBoardUseRecordVO);
+ cabinetBoardUseRecordVO.setStatus(Objects.nonNull(jkCabinetLog.getReturnDate())?Constants.ZERO:Constants.ONE);
+ cabinetBoardUseRecordVO.setRemark(Objects.isNull(jkCabinetLog.getOpenWay())?"":
+ Constants.equalsInteger(jkCabinetLog.getOpenWay(),Constants.ZERO)?"闅忚溅棰嗗彇":
+ Constants.equalsInteger(jkCabinetLog.getOpenWay(),Constants.ONE)?"闅忔淳杞﹀崟棰嗗彇":"淇濇磥棰嗗彇"
+ );
+ cabinetBoardUseRecordList.add(cabinetBoardUseRecordVO);
+ }
+ }
+ return cabinetBoardUseRecordList;
+ }
+
+
+
+
+
+ @Override
+ public List<InterestedListVO> getKeyUseStatistics(Integer type){
+ List<String> weekDays = DateUtil.getBeforDays(new Date(),Objects.isNull(type)||Constants.equalsInteger(type,Constants.ZERO)?7:15);
+ MPJLambdaWrapper<JkCabinetLog> wrapper = new MPJLambdaWrapper<JkCabinetLog>()
+ .selectAll(JkCabinetLog.class)
+ .selectAs(Member::getName,JkCabinetLog::getMemberName)
+ .selectAs(Company::getName,JkCabinetLog::getCompanyName)
+ .selectAs(JkCabinet::getName,JkCabinetLog::getCabinetName)
+ .selectAs(JkCabinetGrid::getCode,JkCabinetLog::getGridCode)
+ .selectAs(JkKeys::getCarCode,JkCabinetLog::getCarCode)
+ .select("j.CREATE_DATE",JkCabinetLog::getReturnDate)
+ .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetLog::getCabinetId)
+ .leftJoin(JkCabinetGrid.class,JkCabinetGrid::getId,JkCabinetLog::getGridId)
+ .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .leftJoin(Member.class,Member::getId,JkCabinetLog::getMemberId)
+ .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+ .leftJoin(" jk_cabinet_log j on j.id=t.CLOSE_LOG_ID ")
+ .eq(JkCabinetLog::getIsdeleted, Constants.ZERO)
+ .eq(JkCabinetLog::getType,Constants.ONE)
+ .ne(JkCabinetLog::getKeyStatus,Constants.ZERO)
+ .apply(" CREATE_DATE > CURDATE() - INTERVAL "+(Objects.isNull(type)||Constants.equalsInteger(type,Constants.ZERO)?7:15)+" DAY ")
+ .orderByDesc(JkCabinetLog::getCreateDate);
+ List<JkCabinetLog> jkCabinetLogs = jkCabinetLogMapper.selectJoinList(JkCabinetLog.class,wrapper);
+ List<InterestedListVO> list = new ArrayList<>();
+ for (String days:weekDays) {
+ InterestedListVO vo = new InterestedListVO();
+ vo.setName(days);
+ vo.setNum(Constants.ZERO);
+ vo.setNextNum(Constants.ZERO);
+ if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(jkCabinetLogs)) {
+ vo.setNum(
+ jkCabinetLogs.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.TWO)
+ &&DateUtil.dateToString(i.getCreateDate(),"yyyy-MM-dd").equals(days))
+ .collect(Collectors.toList()).size()
+ );
+ vo.setNextNum(jkCabinetLogs.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.ONE)
+ &&DateUtil.dateToString(i.getCreateDate(),"yyyy-MM-dd").equals(days))
+ .collect(Collectors.toList()).size());
}
}
-
-
+ return list;
}
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
index 0b6d126..f26758f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
@@ -13,6 +13,8 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CabinetBoardWaningRataDataVO;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -22,6 +24,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -346,12 +349,74 @@
}catch (Exception e){
}
+ }
+
+
+ @Override
+ public PageData<WarningEvent> getCabinetBoardWarningPage(PageWrap<WarningEvent> pageWrap){
+ IPage<WarningEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ Utils.MP.blankToNull(pageWrap.getModel());
+ IPage<WarningEvent> pageData = warningEventMapper.selectJoinPage(page,WarningEvent.class,
+ new MPJLambdaWrapper<WarningEvent>()
+ .selectAll(WarningEvent.class)
+ .selectAs(SystemUser::getRealname,WarningEvent::getCreateUserName)
+ .leftJoin(SystemUser.class,SystemUser::getId,WarningEvent::getCreator)
+ .leftJoin(Warning.class,Warning::getId,WarningEvent::getWarningId)
+ .eq(WarningEvent::getIsdeleted,Constants.ZERO)
+ .in(Warning::getCode,Constants.WarningConfig.KEY_TIME_OUT_BACK.getKey(),Constants.WarningConfig.ALARM_TEST.getKey(),Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey())
+ .like(WarningEvent::getCreateDate,DateUtil.getCurrDate())
+ .orderByDesc(WarningEvent::getId)
+ );
+ return PageData.from(pageData);
+ }
+
+
+ @Override
+ public CabinetBoardWaningRataDataVO getCabinetBoardWarningRataData(Integer type){
+
+ CabinetBoardWaningRataDataVO vo = new CabinetBoardWaningRataDataVO();
+ vo.setAlcoholNum(Constants.ZERO);
+ vo.setUnCloseNum(Constants.ZERO);
+ vo.setTimeOutNum(Constants.ZERO);
+
+ List<WarningEvent> warningEventList = warningEventMapper.selectJoinList(WarningEvent.class,
+ new MPJLambdaWrapper<WarningEvent>().
+ selectAll(WarningEvent.class)
+ .selectAs(Warning::getCode,WarningEvent::getWarningId)
+ .leftJoin(Warning.class,Warning::getId,WarningEvent::getWarningCode)
+ .eq(WarningEvent::getIsdeleted,Constants.ZERO)
+ .in(Warning::getCode,Constants.WarningConfig.KEY_TIME_OUT_BACK.getKey(),Constants.WarningConfig.ALARM_TEST.getKey(),Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey())
+ .like(Objects.nonNull(type)&&Constants.equalsInteger(Constants.ZERO,type),WarningEvent::getCreateDate,DateUtil.getCurrDate())
+ .like(Objects.nonNull(type)&&Constants.equalsInteger(Constants.ONE,type),WarningEvent::getCreateDate,DateUtil.getFomartDate(new Date(),"yyyy-MM"))
+ .like(Objects.nonNull(type)&&Constants.equalsInteger(Constants.TWO,type),WarningEvent::getCreateDate,DateUtil.getFomartDate(new Date(),"yyyy"))
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(warningEventList)){
+ vo.setAlcoholNum(
+ warningEventList.stream().filter(i->StringUtils.isNotBlank(i.getWarningCode())&&
+ i.getWarningCode().equals(Constants.WarningConfig.ALARM_TEST.getKey())).collect(Collectors.toList()).size()
+ );
+ vo.setUnCloseNum(
+ warningEventList.stream().filter(i->StringUtils.isNotBlank(i.getWarningCode())&&
+ i.getWarningCode().equals(Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey())).collect(Collectors.toList()).size()
+ );
+ vo.setTimeOutNum(
+ warningEventList.stream().filter(i->StringUtils.isNotBlank(i.getWarningCode())&&
+ i.getWarningCode().equals(Constants.WarningConfig.KEY_TIME_OUT_BACK.getKey())).collect(Collectors.toList()).size()
+ );
+ }
+
+
+ return vo;
}
+
+
+
+
}
--
Gitblit v1.9.3