From dde5ece4eef131d7b02907d4aa6c311a08ef78f5 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期一, 12 一月 2026 16:46:42 +0800
Subject: [PATCH] 出入库接口测试:预览、车牌识别、抓图及推送
---
fzzy-igdss-web/src/main/resources/templates/inout/inout-img.html | 134 ++++++++++++++++++++++++++
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java | 26 ++++
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java | 3
fzzy-igdss-web/src/main/resources/static/inout/video-play.js | 2
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml | 2
fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java | 52 ++++++++-
fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java | 26 +++++
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java | 2
8 files changed, 232 insertions(+), 15 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
index e6e82f4..8702908 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
@@ -75,6 +75,8 @@
}
data.setId(ContextUtil.generateId());
+ data.setCreateTime(new Date());
+ data.setCreateBy(ContextUtil.getLoginUserName());
data.setCompanyId(ContextUtil.getCompanyId());
//鏂囦欢鍏ㄨ矾寰�
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java
index e1bbfef..28215d7 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java
@@ -16,6 +16,7 @@
import com.ruoyi.system.service.ISysDeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@@ -59,6 +60,22 @@
}
return inoutSysConfMapper.selectList(queryWrapper);
+ }
+
+ /**
+ * 鏍规嵁鏉′欢鏌ヨ娴佺▼淇℃伅
+ *
+ * @param deptId
+ * @return
+ */
+ public InoutSysConf getInoutSysConf(String deptId) {
+
+ List<InoutSysConf> list = listInoutSysConf(deptId, null);
+
+ if (null == list || list.isEmpty()) {
+ return null;
+ }
+ return list.get(0);
}
/**
@@ -143,7 +160,12 @@
*/
public InoutSysConf getCacheInoutSysConf(String companyId, String deptId) {
String key = RedisConst.buildKey(deptId, Constant.CACHE_INOUT_SYS_CONF);
- return (InoutSysConf) redisCache.getCacheObject(key);
+ InoutSysConf conf = (InoutSysConf) redisCache.getCacheObject(key);
+ if (null == conf) {
+ conf = getInoutSysConf(deptId);
+ flushInoutSysConfCache(conf);
+ }
+ return conf;
}
/*--------------- 鍑哄叆搴撹澶� ---------------*/
@@ -194,7 +216,7 @@
data.setUpdateBy(ContextUtil.getLoginUserName());
data.setUpdateTime(new Date());
inoutConfMapper.insert(data);
- }else {
+ } else {
data.setUpdateBy(ContextUtil.getLoginUserName());
data.setUpdateTime(new Date());
inoutConfMapper.updateById(data);
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
index 52281a5..489f288 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -171,9 +171,6 @@
queryWrapper.eq("company_id", companyId);
queryWrapper.eq("plate_num", plateNum);
queryWrapper.ne("progress", Constant.PROGRESS_RECORD);
- queryWrapper.eq("record_status", "NORMAL");
- queryWrapper.or();
- queryWrapper.eq("record_status", Constant.RECORD_STATUS_ADD); //琛ュ綍鍗曞瓙鐨勫崟瀛�
return inoutRecordMapper.selectCount(queryWrapper);
}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
index f7c8f17..61a96c6 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -418,7 +418,7 @@
var user = encodeURIComponent(select.get("userName"));
var plateNum = encodeURIComponent(select.get("plateNum"));

- view.get("#iFrameImg").set("path", "./basic/inout/inout-img?id=" + select.get("id")+"&plateNum="+plateNum+"&user="+user);
+ view.get("#iFrameImg").set("path", "/basic/inout/inout-img?id=" + select.get("id")+"&plateNum="+plateNum+"&user="+user);
view.get("#dialogImg").show();
}else{
$notify("璇烽�夋嫨鏁版嵁鈥︹��");
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
index fedf4cd..a6e89da 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
@@ -20,8 +20,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.net.URLDecoder;
import java.util.Date;
import java.util.List;
@@ -44,17 +46,18 @@
/**
* 鐧昏锛屽嚭鍏ュ簱鍏辩敤
+ *
* @param httpRequest
- * @param sort 閰嶅鍙�
- * @param type 涓氬姟绫诲瀷锛欼N-鍏ュ簱锛孫UT-鍑哄簱
+ * @param sort 閰嶅鍙�
+ * @param type 涓氬姟绫诲瀷锛欼N-鍏ュ簱锛孫UT-鍑哄簱
* @param view
* @return
*/
@RequestMapping("/register")
public String register(HttpServletRequest httpRequest,
- @RequestParam(value = "sort", required = false) String sort,
- @RequestParam(value = "type", required = false) String type,
- ModelMap view) {
+ @RequestParam(value = "sort", required = false) String sort,
+ @RequestParam(value = "type", required = false) String type,
+ ModelMap view) {
SysUser user = ContextUtil.getLoginUser();
view.put(Constant.MODEL_KEY_LOGIN_USER, user);
@@ -101,6 +104,7 @@
/**
* 璐ㄦ椤甸潰
+ *
* @return
*/
@RequestMapping("/check")
@@ -144,6 +148,7 @@
/**
* 鍑哄叆搴撳�间粨
+ *
* @param httpRequest
* @param sort
* @param type
@@ -152,9 +157,9 @@
*/
@RequestMapping("/handle")
public String handle(HttpServletRequest httpRequest,
- @RequestParam(value = "sort", required = false) String sort,
- @RequestParam(value = "type", required = false) String type,
- ModelMap view) {
+ @RequestParam(value = "sort", required = false) String sort,
+ @RequestParam(value = "type", required = false) String type,
+ ModelMap view) {
//濡傛灉娌℃湁鎸囧畾鍦扮锛屼粠鐢ㄦ埛涓婁竴涓�夋嫨涓幏鍙�
if (StringUtils.isEmpty(sort)) {
@@ -335,6 +340,7 @@
/**
* 鏍规嵁鏉′欢鏌ヨ寰呯О閲嶇殑鏁版嵁
+ *
* @param param
* @return
*/
@@ -361,6 +367,7 @@
/**
* 鍑哄叆搴撳寲楠屼俊鎭彁浜�
+ *
* @param data
* @return
*/
@@ -373,6 +380,7 @@
/**
* 鍑哄叆搴撶О閲嶇幆鑺傛彁浜�
+ *
* @param data
* @return
*/
@@ -434,4 +442,32 @@
public PageResponse<List<InoutNoticeOut>> listNoticeOut(@RequestBody NoticeParam param) {
return inoutManager.listNoticeOut(param);
}
+
+
+ /**
+ * 鍑哄叆搴撹鍗曢〉闈㈢殑鍙鍖栬拷韪〉闈�
+ *
+ * @return
+ */
+ @RequestMapping("/inout-img")
+ public String inoutImg(@RequestParam(value = "id", required = true) String id,
+ @RequestParam(value = "plateNum", required = false) String plateNum,
+ @RequestParam(value = "user", required = false) String userName,
+ ModelMap view) {
+ try {
+ if (StringUtils.isNotEmpty(plateNum)) {
+ view.put("plateNum", URLDecoder.decode(plateNum, "UtF-8"));
+ }
+ if (StringUtils.isNotEmpty(userName)) {
+ view.put("userName", URLDecoder.decode(userName, "UtF-8"));
+ }
+
+ List<FileInfo> files = inoutManager.cutImgList(id);
+ view.put("files", files);
+ } catch (Exception e) {
+ log.error("鍚庡彴寮傚父:{}", e);
+ }
+ return prefix + "/inout-img";
+ }
+
}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
index fe19eea..5f7e643 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
@@ -1,6 +1,7 @@
package com.fzzy.inout.manager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.common.manager.CommonManager;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.*;
@@ -17,6 +18,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.io.File;
import java.util.*;
/**
@@ -40,6 +42,8 @@
private DicAreaService dicAreaService;
@Resource
private InoutNoticeService inoutNoticeService;
+ @Resource
+ private CommonManager commonManager;
/**
* 鏍规嵁鐢ㄦ埛璇锋眰淇℃伅锛屾牴鎹綋鍓嶅鎴风數鑴慖P锛岃幏鍙栧嚭鍏ュ簱绉伴噸涓婃閫夋嫨鐨勫湴纾�
@@ -538,4 +542,26 @@
return new PageResponse<>(RespCodeEnum.CODE_0000, list);
}
+
+ /**
+ * 鏍规嵁鍙傛暟鑾峰彇鍑哄叆搴撶殑鍥剧墖
+ *
+ * @param id
+ * @return
+ */
+ public List<FileInfo> cutImgList(String id) {
+
+ if (StringUtils.isBlank(id)){
+ return null;
+ }
+
+ List<FileInfo> files = fileService.listFile(ContextUtil.getCompanyId(), id);
+ if (null == files) {
+ return null;
+ }
+ for (FileInfo file : files) {
+ file.setFilePath(commonManager.isImgExit(file.getFilePath(), null));
+ }
+ return files;
+ }
}
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
index 42f96a1..b9f50eb 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
@@ -136,7 +136,7 @@
if (3 == order) {
$("#kccz-r-video3").append(htm);
}
- if (PlayType.PLAY_TYPE_WEB_RTC_DH == data.playType || PlayType.PLAY_TYPE_WEB_RTC_HIK == data.playType) {
+ if (PlayType.PLAY_TYPE_WEB_RTC == data.playType) {
if (1 == order) {
webRtcToPlay1();
}
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/inout-img.html b/fzzy-igdss-web/src/main/resources/templates/inout/inout-img.html
new file mode 100644
index 0000000..02282f0
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/inout-img.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="zh-cn" xmlns:th=http://www.thymeleaf.org>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="renderer" content="webkit">
+ <title>鍑哄叆搴撶鐞�-杩芥函椤甸潰</title>
+
+ <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
+
+ <style type="text/css">
+ .layui-card-header {
+ font-weight: bold;
+ background-color: #39aef5;
+ color: #FFF;
+ }
+
+ .layui-card-body {
+ text-align: center;
+ }
+
+ .cut-img {
+ /*height: 480px;*/
+ width: 900px;
+ }
+
+ .fr {
+ float: right;
+ }
+
+ thead span {
+ font-weight: bold
+ }
+ .video{
+ width:100%;;
+ height:100%;
+ }
+ </style>
+</head>
+<body>
+<!-- 鍙拷韪俊鎭� -->
+<div class="layui-tab-content">
+ <div class="layui-fluid" id="recordFilesDiv">
+ <!-- <div class="layui-col-md12 layui-col-sm12">-->
+ <!-- <div class="layui-card">-->
+ <!-- <div class="layui-card-header">鍥剧墖1</div>-->
+ <!-- <div class="layui-card-body">-->
+ <!-- <img src="" alt="" />-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <!-- </div>-->
+ </div>
+</div>
+
+<script th:inline="javascript">
+ var files = [[${files}]];
+ var userName = [[${userName}]];
+ var plateNum = [[${plateNum}]];
+</script>
+
+<script th:src="@{/ajax/libs/layui/layui.js}"></script>
+<script th:src="@{/js/jquery.min.js}"></script>
+
+<script>
+ var layer;
+ $(function () {
+ layui.use(['layer'], function () {
+ layer = layui.layer;
+
+ if(files){
+ renderInoutImg();
+ }
+ });
+ });
+
+ // 娓叉煋鍑哄叆搴撶殑鍥剧墖鍒楄〃
+ function renderInoutImg() {
+ var mainDiv = $("#recordFilesDiv");
+ mainDiv.empty();
+ var html;
+ $.each(files, function (index, data) {
+ if (!data.filePath) {
+ layer.msg("涓埆鍥剧墖鏈壘鍒帮細" + data.fileName);
+ return true;
+ }
+ html = "";
+ html += "<div class='layui-col-md12 layui-col-sm12'><div class='layui-card'>";
+ if ("REGISTER" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氱櫥璁� 鏃堕棿锛�"
+ + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else if ("CHECK" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氭墻鏍峰寲楠� 鏃堕棿锛�"
+ + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else if ("HANDLE" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氬�间粨 鏃堕棿锛�"
+ + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else if ("WEIGHT_FULL" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氭弧杞︾О閲�";
+ if(data.fileName.indexOf(".mp4") > 0) {
+ html += "-妫�鏂よ棰�";
+ }
+ html += " 鏃堕棿锛�" + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else if ("WEIGHT_EMPTY" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氱┖杞︾О閲�";
+ if(data.fileName.indexOf(".mp4") > 0) {
+ html += "-妫�鏂よ棰�";
+ }
+ html += " 鏃堕棿锛�" + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else if ("PAY" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氱粨绠� 鏃堕棿锛�"
+ + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else if ("CARD_BACK" == data.bizTag) {
+ html += "<div class='layui-card-header'>娴佺▼锛氳溅杈嗙搴� 鏃堕棿锛�"
+ + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ } else {
+ html += "<div class='layui-card-header'>娴佺▼锛氳褰� 鏃堕棿锛�"
+ + data.createTime + "<span class='fr'>鎵胯繍浜猴細" + userName + " 杞︾墝鍙凤細" + plateNum + "</span></div>";
+ }
+ html += "<div class='layui-card-body'>";
+
+ //浣跨敤鏂囦欢娴佽繘琛屾覆鏌撳浘鐗�
+ html += "<img class ='cut-img' src='" + data.filePath + "' />";
+
+ html += "</div></div></div>";
+ mainDiv.append(html);
+ });
+ };
+
+</script>
+
+</body>
+
+</html>
--
Gitblit v1.9.3