From 4ee00850f197d769481f73acb8ed79ab1c75b84d Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 14 十一月 2025 11:41:24 +0800
Subject: [PATCH] 问题修复
---
server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 28 ++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java | 144 ++++++++++++++++++--
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java | 9 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java | 74 ++++++++-
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java | 71 ++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java | 10 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java | 8 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java | 2
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java | 7 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java | 32 ++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java | 5
12 files changed, 360 insertions(+), 32 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index f6daf8d..c6b8fa5 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -84,6 +84,7 @@
public static final String LOCATION ="LOCATION" ;
public static final String API_KEY ="API_KEY" ;
public static final String CABINET_CONFIG ="CABINET_CONFIG" ;
+ public static final String JDY_CONFIG ="JDY_CONFIG" ;
public static final String BLOW_TIME ="BLOW_TIME" ;
public static final String PRESSURE ="PRESSURE" ;
public static final String CONCENTRATION ="CONCENTRATION" ;
@@ -127,6 +128,8 @@
public static final String WORK_END = "WORK_END";
public static final String INTERVAL = "INTERVAL";
public static final String USE_CAR_TAKE_CARE = "USE_CAR_TAKE_CARE";
+
+ public static final String PUSH_URL_KEYS = "PUSH_URL_KEYS";
@@ -537,6 +540,9 @@
public static final String APP_SECRET ="APP_SECRET";
public static final String ACCESS_TOKEN ="ACCESS_TOKEN";
public static final String AGENT_ID ="AGENT_ID";
+ public static final String CLEAN_TIME ="CLEAN_TIME";
+ public static final String EARLY_CONFIG ="EARLY_CONFIG";
+
@@ -1568,5 +1574,27 @@
}
+ public static boolean betweenTimeConfig(String timeConfigData){
+ if(StringUtils.isNotBlank(timeConfigData)){
+ Integer nowTime = Integer.valueOf(DateUtil.getFormattedDateUtil(new Date(),"HH:mm").replace(":",""));
+ List<String> cleanConfigList = Arrays.asList(StringUtils.split(timeConfigData,","));
+ for (String config:cleanConfigList) {
+ String [] timeArr = config.split("-");
+ if(timeArr.length>Constants.ONE){
+ try {
+ Integer start = Integer.valueOf(timeArr[0].replace(":",""));
+ Integer end = Integer.valueOf(timeArr[1].replace(":",""));
+ if(start <= nowTime && end >= nowTime){
+ return true;
+ }
+ }catch (Exception e){
+
+ }
+ }
+ }
+ }
+ return false;
+ }
+
}
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 176962f..cb8e978 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2085,7 +2085,7 @@
*/
public static String getCurrDateTime() {
Timestamp date = new Timestamp(System.currentTimeMillis());
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(date);
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java
index 622c347..deca264 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java
@@ -22,6 +22,7 @@
import com.doumee.dao.web.reqeust.VisitRecordDTO;
import com.doumee.dao.web.response.VisitRecordVO;
import com.doumee.service.business.CarUseBookService;
+import com.doumee.service.business.CarsService;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -68,12 +69,20 @@
@Autowired
private CarUseBookService carUseBookService;
+ @Autowired
+ private CarsService carsService;
+
+ public static final String SECRET ="yKSKuO0LoFf06jWGrwwuGudK";
+ public static final String LOCAl_SECRET ="tSoMiqC3GY6tItXY48tSTwY6";
+ public static final String LLCAL_CARINFO_SECRET = "4J1GMIAG3m6O2jkkaxTu5EOe";
+
+
@LoginNoRequired
@ApiOperation("绠�閬撲簯鎺ㄩ�佺敤杞︾敵璇�")
@PostMapping("/pushCarApply")
public void pushCarApply (HttpServletRequest request, HttpServletResponse response) {
- log.error("绠�閬撲簯=========getRequestURI锛�"+request.getRequestURI());
- log.error("绠�閬撲簯=========getRequestURL锛�"+request.getRequestURL());
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========getRequestURI锛�"+request.getRequestURI());
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========getRequestURL锛�"+request.getRequestURL());
//鏂板缓{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":0,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:41:56.155Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_create","opTime":1762850516152}
//淇敼{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":0,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:43:06.436Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_update","opTime":1762850586436}
//淇敼{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":1,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:45:01.231Z","updater":{"_id":"6909b792324dc197821895e4","name":"姹熻悕","status":1,"type":0,"username":"0458340612772735"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_update","opTime":1762850701231}
@@ -92,20 +101,64 @@
String nonce = parameterMap.get("nonce");
String timestamp = parameterMap.get("timestamp");
String signature = getSignature(nonce, payload, LOCAl_SECRET, timestamp);
- log.error("绠�閬撲簯=========nonce锛�"+nonce);
- log.error("绠�閬撲簯=========timestamp锛�"+timestamp);
- log.error("绠�閬撲簯=========payload锛�"+payload);
- log.error("绠�閬撲簯=========绛惧悕锛�"+jdy);
- log.error("绠�閬撲簯=========绛惧悕(姝g‘锛夛細"+signature);
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========nonce锛�"+nonce);
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========timestamp锛�"+timestamp);
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========payload锛�"+payload);
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========绛惧悕锛�"+jdy);
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========绛惧悕(姝g‘锛夛細"+signature);
if (!signature.equals(jdy)) {
response.setStatus(401);
response.getWriter().write("fail");
response.getWriter().close();;
return ;
}
-
carUseBookService.jdyPushCarUseBook(payload);
+ response.setStatus(200);
+ response.getWriter().write("success");
+ response.getWriter().close();
+ }catch (Exception e){
+ e.printStackTrace();
+ log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========寮傚父锛�"+e.getMessage());
+ }
+ }
+
+ @LoginNoRequired
+ @ApiOperation("绠�閬撲簯鎺ㄩ�佽溅杈嗕俊鎭�")
+ @PostMapping("/pushCarInfo")
+ public void pushCarInfo (HttpServletRequest request, HttpServletResponse response) {
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅 =========getRequestURI锛�"+request.getRequestURI());
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========getRequestURL锛�"+request.getRequestURL());
+ //鏂板缓{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":0,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:41:56.155Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_create","opTime":1762850516152}
+ //淇敼{"data":{"data":{"_id":"6909d2ac6bf3636d0dbcc953","_widget_1762251302690":"鐨朅FJ6557","_widget_1762251302691":"涓�鑸叕鍔�","_widget_1762251302692":"","_widget_1762251302693":"甯傚眬鏈骇杞﹂槦","_widget_1762251302694":{"_id":"6909b792324dc197821895e8","name":"鏉庢��鑻�","status":1,"type":0,"username":"045831294126209983"},"_widget_1762251302695":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"_widget_1762251302696":"鍙敤","_widget_1762251302697":null,"_widget_1762251302698":10000,"_widget_1762251302699":null,"_widget_1762251302700":null,"_widget_1762251302701":null,"_widget_1762251302702":null,"_widget_1762251302703":"鍚�","appId":"6909d0fbdb93b068192dc4a9","createTime":"2025-11-04T10:17:17.015Z","creator":{"_id":"6909b792324dc197821895e8","name":"鏉庢��鑻�","status":1,"type":0,"username":"045831294126209983"},"deleteTime":null,"deleter":null,"entryId":"6909d226b9a675ac4224aa6d","formName":"杞﹁締淇℃伅","updateTime":"2025-11-13T09:20:05.253Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"}},"op":"data_update","opTime":1763025605253}
+ //淇敼{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":1,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:45:01.231Z","updater":{"_id":"6909b792324dc197821895e4","name":"姹熻悕","status":1,"type":0,"username":"0458340612772735"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_update","opTime":1762850701231}
+ try {
+ String jdy = request.getHeader("x-jdy-signature");
+ StringBuilder json = new StringBuilder();
+ String line;
+ BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
+ while ((line = reader.readLine()) != null) {
+ json.append(line);
+ }
+// String payload = IOUtils.toString(request.getInputStream(), "utf-8");
+ String payload = json.toString();
+ String uri = request.getRequestURI();
+ Map<String, String> parameterMap = parseParameter(request.getQueryString());
+ String nonce = parameterMap.get("nonce");
+ String timestamp = parameterMap.get("timestamp");
+ String signature = getSignature(nonce, payload, LLCAL_CARINFO_SECRET, timestamp);
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========nonce锛�"+nonce);
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========timestamp锛�"+timestamp);
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========payload锛�"+payload);
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========绛惧悕锛�"+jdy);
+ log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========绛惧悕(姝g‘锛夛細"+signature);
+ if (!signature.equals(jdy)) {
+ response.setStatus(401);
+ response.getWriter().write("fail");
+ response.getWriter().close();;
+ return ;
+ }
+ carsService.jdyPushCarInfo(payload);
response.setStatus(200);
response.getWriter().write("success");
response.getWriter().close();
@@ -113,8 +166,8 @@
e.printStackTrace();
log.error("绠�閬撲簯=========寮傚父锛�"+e.getMessage());
}
-
}
+
@ApiOperation("绠�閬撲簯鎻愪氦閽ュ寵鍊熻繕淇℃伅")
@PostMapping("/submitKeyRecord")
public ApiResponse<JkCabinetLog> submitKeyRecord (HttpServletRequest request, HttpServletResponse response) {
@@ -124,9 +177,6 @@
log.setMemberName("寮犱笁");
return ApiResponse.success(log);
}
-
- public static final String SECRET ="yKSKuO0LoFf06jWGrwwuGudK";
- public static final String LOCAl_SECRET ="tSoMiqC3GY6tItXY48tSTwY6";
private static String getSignature(String nonce, String payload, String secret, String timestamp) {
return DigestUtils.sha1Hex(nonce + ":" + payload + ":" + secret + ":" + timestamp);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java
new file mode 100644
index 0000000..4ba4a62
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.service.business.third.model.LoginUserModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/10/11 16:01
+ */
+@Data
+public class JDYKeyUseByBookDTO{
+
+ @ApiModelProperty(value = "鎿嶄綔鏃堕棿")
+ private Long create_date;
+
+ @ApiModelProperty(value = "棰嗙敤鏃堕棿")
+ private Long start_date;
+
+ @ApiModelProperty(value = "褰掕繕鏃堕棿")
+ private Long end_date;
+
+ @ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�0=棰嗙敤锛�1=褰掕繕锛�")
+ private Integer type;
+
+ @ApiModelProperty(value = "娲捐溅鍗� no鍗曞彿")
+ private String id;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java
index 54b81ac..248df88 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java
@@ -25,6 +25,13 @@
@ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
private Integer memberId;
- @ApiModelProperty(value = "寮�鍚柟寮忥細0=绯荤粺寮�鍚紱1=鎵嬪姩寮�鍚�")
+ @ApiModelProperty(value = "寮�鍚被鍨嬶細0=绯荤粺寮�鍚紱1=鎵嬪姩寮�鍚�")
private Integer openType;
+
+ @ApiModelProperty(value = "寮�鍚柟寮忥細0=闅忚溅锛�1=娲捐溅鍗曪紱2=淇濇磥")
+ private Integer openWay;
+
+ @ApiModelProperty(value = "娲捐溅鍗曚富閿�")
+ private Integer carUseBookId;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
index 9c9270e..8add43f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -159,6 +159,11 @@
@ApiModelProperty(value = "绠�閬撲簯涓氬姟涓婚敭")
private String jdyId;
+
+ @ApiModelProperty(value = "閽ュ寵棰嗗彇鐘舵�侊細0=寰呴鍙栵紱1=宸查鍙栵紱2=宸插綊杩橈紱")
+ private Integer keyStatus;
+
+
@ApiModelProperty(value = "鍙告満濮撳悕", example = "1")
@TableField(exist = false)
private String driverName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
index 3d8f838..2dec826 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -127,6 +127,16 @@
//@ExcelColumn(name="鎵�灞炲垎绫荤紪鐮�")
private Integer cateId;
+ @ApiModelProperty(value = "绠�閬撲簯涓婚敭", example = "1")
+ //@ExcelColumn(name="鎵�灞炲垎绫荤紪鐮�")
+ private String jdyId;
+
+ @ApiModelProperty(value = "绠�閬撲簯杞﹁締鍒嗙被鍚嶇О", example = "1")
+ //@ExcelColumn(name="鎵�灞炲垎绫荤紪鐮�")
+ private String typeName;
+
+
+
@ApiModelProperty(value = "鍋滆溅鍦哄悕绉伴泦鍚�", example = "1")
//@ExcelColumn(name="鍋滆溅鍦哄悕绉伴泦鍚�")
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
index 84cb250..0db643f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
@@ -110,4 +110,12 @@
@TableField(exist = false)
private Integer keyStatus;
+ @ApiModelProperty(value = "娲捐溅鐢宠鍗曚富閿�", example = "1")
+ @TableField(exist = false)
+ private Integer carUseBookId;
+
+ @ApiModelProperty(value = "鍙栭挜鍖欐柟寮忥細0=闅忚溅锛�1=娲捐溅鍗曪紱2=淇濇磥鎵撴壂", example = "1")
+ @TableField(exist = false)
+ private Integer getKeyWay;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
index 475a4e7..eb846e0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
@@ -80,6 +80,13 @@
@ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�0=寮�闂�;1=鍏抽棬;", example = "1")
private Integer type;
+
+ @ApiModelProperty(value = "寮�鍚柟寮忥細0=闅忚溅锛�1=娲捐溅鍗曪紱2=淇濇磥")
+ private Integer openWay;
+
+ @ApiModelProperty(value = "娲捐溅鍗曚富閿�")
+ private Integer carUseBookId;
+
@ApiModelProperty(value = "杞︾墝鍙�")
@TableField(exist = false)
private String carCode;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
index 8e6c229..665ab32 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
@@ -107,4 +107,6 @@
*/
PageData<CarsDTO> findCarPage(PageWrap<CarsQuery> pageWrap);
void dealCarsAuthBiz(List<Cars> carsList);
+
+ void jdyPushCarInfo(String dataInfo);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
index 83aa186..bc14916 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -1,5 +1,7 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,6 +9,7 @@
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.DateUtil;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -39,6 +42,7 @@
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
/**
* 杞﹁締淇℃伅琛⊿ervice瀹炵幇
@@ -711,4 +715,71 @@
}
+
+ @Override
+ public void jdyPushCarInfo(String dataInfo){
+ JSONObject dataInfoJSON = JSONObject.parseObject(dataInfo);
+ if(dataInfoJSON.isEmpty()){
+ return;
+ }
+ String op = dataInfoJSON.getString("op");
+ //鍒犻櫎锛歞ata_remove 鏂板锛歞ata_add 淇敼锛歞ata_update
+ if(StringUtils.isEmpty(op)){
+ return;
+ }
+ JSONObject dataJSON = dataInfoJSON.getJSONObject("data");
+ String no = dataJSON.getString("_id");
+ if(StringUtils.isEmpty(no)){
+ return;
+ }
+ if(op.equals("data_remove")){
+ carsMapper.update(new UpdateWrapper<Cars>().lambda()
+ .set(Cars::getEditDate, DateUtil.getCurrDate())
+ .set(Cars::getIsdeleted,Constants.ONE).eq(Cars::getJdyId,no));
+ return;
+ }
+
+ String status = dataJSON.getString("status");
+ String carCode = dataJSON.getString("car_code");
+ Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>()
+ .lambda().eq(Cars::getJdyId,no).last("limit 1"));
+ if(Objects.isNull(cars)){
+ cars = new Cars();
+ cars.setCreateDate(new Date());
+ cars.setEditDate(new Date());
+ cars.setJdyId(no);
+ }else{
+ cars.setEditDate(new Date());
+ }
+ cars.setIsdeleted(Constants.ZERO);
+ cars.setCode(StringUtils.isBlank(carCode)?null:carCode);
+ cars.setStatus(StringUtils.isNotBlank(status)&&StringUtils.equals(status,"鍙敤")?0:1);
+ JSONObject driverJSON = dataJSON.getJSONObject("driver");
+ if(!driverJSON.isEmpty()){
+ String driverName = driverJSON.getString("name");
+ String driverUserName = driverJSON.getString("username");
+ if(StringUtils.isNotBlank(driverUserName)){
+ Member driverMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,driverUserName).last("limit 1 "));
+ if(Objects.nonNull(driverMember)){
+ cars.setMemberId(driverMember.getId());
+ }
+ }
+ }
+ JSONObject createJSON = dataJSON.getJSONObject("creator");
+ if(!createJSON.isEmpty()){
+ String createName = createJSON.getString("name");
+ String createUserName = createJSON.getString("username");
+ if(StringUtils.isNotBlank(createUserName)){
+ Member createMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,createUserName).last("limit 1 "));
+ if(Objects.nonNull(createMember)){
+ cars.setMemberId(createMember.getId());
+ }
+ }
+ }
+ carsMapper.insertOrUpdate(cars);
+ }
+
+
+
+
}
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 a14b88a..9140786 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
@@ -9,6 +9,7 @@
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.dto.*;
@@ -82,6 +83,9 @@
@Autowired
private DingTalk dingTalk;
+
+ @Autowired
+ private CarUseBookMapper carUseBookMapper;
@Override
public Integer create(JkCabinetGrid jkCabinetGrid) {
@@ -477,12 +481,40 @@
.set(JkKeys::getStatus,dto.getKeyStatus())
.eq(JkKeys::getId,jkKeys.getId())
);
+ //褰掕繕閽ュ寵/鍊熷嚭閽ュ寵 閮借鍘绘煡璇㈡渶鍚庝竴娆″紑闂ㄨ褰� 鑾峰彇鍏蜂綋鐨勫紑闂ㄧ殑鏂瑰紡 鏄殢杞�/娲捐溅/淇濇磥 璧嬩簣褰撳墠鍏抽棬璁板綍鍐� 濡傛灉鏄淳杞﹀崟鏁版嵁 闇�瑕佽皟璧风畝閬撲簯鎺ㄩ��
+ JkCabinetLog lastOutLog = jkCabinetLogMapper.selectOne(new QueryWrapper<JkCabinetLog>().lambda()
+ .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
+ .eq(JkCabinetLog::getType,Constants.ZERO)
+ .last( "limit 1 "));
+ if(Objects.nonNull(lastOutLog)){
+ if(Objects.nonNull(lastOutLog.getCarUseBookId())) {
+ CarUseBook carUseBook = carUseBookMapper.selectById(lastOutLog.getCarUseBookId());
+ if (Objects.nonNull(carUseBook) && Constants.equalsInteger(carUseBook.getKeyStatus(), Constants.ZERO)) {
+ carUseBookMapper.update(new UpdateWrapper<CarUseBook>().lambda()
+ .set(CarUseBook::getKeyStatus, Constants.ONE)
+ .eq(CarUseBook::getId, carUseBook.getId())
+ );
+ //鎺ㄩ�佺畝閬撲簯 鏍囪涓氬姟鏁版嵁宸茶棰嗗彇閽ュ寵
+ if (StringUtils.isNotBlank(carUseBook.getJdyId())) {
+ JDYKeyUseByBookDTO jdyKeyUseByBookDTO = new JDYKeyUseByBookDTO();
+ jdyKeyUseByBookDTO.setCreate_date(System.currentTimeMillis());
+ jdyKeyUseByBookDTO.setStart_date(Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO)?System.currentTimeMillis():null);
+ jdyKeyUseByBookDTO.setEnd_date(Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)?System.currentTimeMillis():null);
+ jdyKeyUseByBookDTO.setType(Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO)?Constants.ZERO:Constants.ONE);
+ jdyKeyUseByBookDTO.setId(carUseBook.getJdyId());
+ this.pushJDYKeyInfo(jdyKeyUseByBookDTO);
+ }
+ }
+ }
+ }
+
}
}
}
jkCabinetLog.setIsNotice(Constants.ZERO);
jkCabinetLog.setType(Constants.ONE);
jkCabinetLogMapper.insert(jkCabinetLog);
+
//鏌ヨ閽ュ寵鐨勫紑闂ㄨ褰� 杩涜娣诲姞鍏抽棬璁板綍涓婚敭
if(Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)){
jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
@@ -558,23 +590,80 @@
return jkCabinetGridList;
}
}
- jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
- new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
- .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
- .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
- .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
- .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
- .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
- .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
- .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
- .eq(JkCabinetGrid::getStatus,Constants.ZERO)
- .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
- .in(Constants.equalsInteger(dto.getType(),Constants.ONE),JkKeys::getStatus,Constants.TWO,Constants.THREE)
- .in(Constants.equalsInteger(dto.getType(),Constants.ZERO),JkKeys::getStatus,Constants.ONE)
- .isNotNull(JkCabinetGrid::getKeyId)
- .apply(" t1.car_id in ( select c.id from cars c where c.ISDELETED = 0 and c.MEMBER_ID = "+dto.getMemberId()+" ) ")
- .orderByAsc(JkCabinetGrid::getCode)
- );
+
+ //濡傛灉鏄繕閽ュ寵 鍒欑洿鎺ユ煡璇㈠凡鍊熷嚭鐨勯挜鍖欑殑鏁版嵁
+ if(Constants.equalsInteger(dto.getType(),Constants.ONE)){
+ jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+ new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+ .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+ .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+ .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+ .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+ .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+ .in(JkKeys::getStatus,Constants.TWO,Constants.THREE)
+ .isNotNull(JkCabinetGrid::getKeyId)
+ .apply("t1.car_id in ( select c.id from cars c where c.ISDELETED = 0 and c.MEMBER_ID = "+dto.getMemberId()+" )")
+
+ .orderByAsc(JkCabinetGrid::getCode)
+ );
+ }else{
+ //鍒ゆ柇褰撳墠鏃堕棿鏄惁澶勪簬淇濇磥鏃舵鍐�
+ String cleanConfig = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CLEAN_TIME).getCode();
+ String earlyConfig = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode();
+ Boolean isCleanTime = Constants.betweenTimeConfig(cleanConfig);
+ List<Integer> girdIdList = new ArrayList<>();
+ //鏌ヨ鏍规嵁浠诲姟鍙互棰嗗彇鐨勬暟鎹�
+ jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+ new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+ .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+ .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+ .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+ .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+ .selectAs(CarUseBook::getId,JkCabinetGrid::getCarUseBookId)
+ .select("1",JkCabinetGrid::getGetKeyWay)
+ .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .innerJoin(CarUseBook.class,CarUseBook::getCarCode,JkKeys::getCarCode)
+ .innerJoin(Cars.class,Cars::getCode,CarUseBook::getCarCode)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(CarUseBook::getIsdeleted,Constants.ZERO)
+ .eq(Cars::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+ .in(JkKeys::getStatus,Constants.ONE)
+ .eq(JkKeys::getRoleType,Constants.ONE)
+ .isNotNull(JkCabinetGrid::getKeyId)
+ .apply("and NOW() > DATE_SUB(t2.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < t2.end_time and t3.MEMBER_ID = "+dto.getMemberId()+" )")
+
+ );
+ if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+ girdIdList = jkCabinetGridList.stream().map(i->i.getId()).collect(Collectors.toList());
+ }
+ jkCabinetGridList.addAll(jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+ new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+ .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+ .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+ .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+ .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+ .select(!isCleanTime?"0":"2",JkCabinetGrid::getGetKeyWay)
+ .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+ .eq(!isCleanTime,JkKeys::getRoleType,Constants.ZERO)
+ .in(JkKeys::getStatus,Constants.ONE)
+ .isNotNull(JkCabinetGrid::getKeyId)
+ .notIn(CollectionUtils.isNotEmpty(girdIdList),JkCabinetGrid::getId,jkCabinetGridList)
+ .apply("t1.car_id in ( select c.id from cars c where c.ISDELETED = 0 and c.MEMBER_ID = "+dto.getMemberId()+" ) ")
+ )
+ );
+ }
+
for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
jkCabinetGrid.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
jkCabinetGrid.setKeyStatus(Objects.isNull(jkCabinetGrid.getKeyStatus())?Constants.ZERO:jkCabinetGrid.getKeyStatus());
@@ -607,7 +696,9 @@
jkCabinetLog.setAuthType(openGridDriverDTO.getAuthType());
jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
jkCabinetLog.setType(Constants.ZERO);
- jkCabinetLog.setStatus(Constants.ZERO);
+ jkCabinetLog.setOpenWay(openGridDriverDTO.getOpenWay());
+ jkCabinetLog.setCarUseBookId(openGridDriverDTO.getCarUseBookId());
+
jkCabinetLog.setInfo(Objects.isNull(openGridDriverDTO.getOpenType())||Constants.equalsInteger(openGridDriverDTO.getOpenType(),Constants.ZERO)?"绯荤粺寮�鍚�":"鎵嬪姩寮�鍚�");
if(Objects.nonNull(jkCabinetGrid.getKeyId())){
jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
@@ -622,9 +713,26 @@
}
jkCabinetLog.setIsNotice(Constants.ZERO);
jkCabinetLogMapper.insert(jkCabinetLog);
+
}
+ public void pushJDYKeyInfo(JDYKeyUseByBookDTO dto){
+ String url = systemDictDataBiz.queryByCode(Constants.JDY_CONFIG,Constants.PUSH_URL_KEYS).getCode();
+// JSONObject object = new JSONObject();
+// object.put("create_date","20251104160000");
+// object.put("start_date",System.currentTimeMillis() );
+// object.put("end_date", System.currentTimeMillis() + 24*3600*1000);
+// object.put("id","10000020251105");//
+// object.put("type",1);//0=棰嗙敤锛�1=褰掕繕
+ log.error("銆愮畝閬撲簯銆戞帹閫佹淳杞﹀崟鏁版嵁棰嗙敤涓庡綊杩樹俊鎭�-璇锋眰鍏ュ弬锛�"+JSONObject.toJSONString(dto));
+ String result = HttpsUtil.postJson(url,JSONObject.toJSONString(dto));
+ log.error("銆愮畝閬撲簯銆戞帹閫佹淳杞﹀崟鏁版嵁棰嗙敤涓庡綊杩樹俊鎭�-璇锋眰缁撴灉锛�"+JSONObject.toJSONString(result));
+
+
+
+ }
+
@Override
public void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto){
--
Gitblit v1.9.3