From 51603d9354ddef5d8960fe0e6b3e21059da5ff66 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 08 一月 2026 15:53:00 +0800
Subject: [PATCH] 数量检测提交1-页面数据交互
---
/dev/null | 25 -
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Quantity.java | 8
fzzy-igdss-web/src/main/resources/static/security/quantity.js | 300 +++++++++++++++++++-
fzzy-igdss-web/src/main/resources/static/security/quantity.css | 15 +
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/QuantityService.java | 19 +
fzzy-igdss-view/src/main/java/com/fzzy/igds/QuantityConf.view.xml | 103 ++++--
fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java | 140 ++++++++-
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java | 24 +
fzzy-igdss-web/src/main/resources/templates/security/quantity.html | 108 +++----
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityConf.java | 4
fzzy-igdss-web/src/main/java/com/fzzy/security/SecurityController.java | 53 ++
11 files changed, 605 insertions(+), 194 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Quantity.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Quantity.java
index 34ae1ec..0657e7c 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Quantity.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Quantity.java
@@ -18,7 +18,6 @@
@Entity
@Table(name = "d_quantity")
@TableName("d_quantity")
-@IdClass(QuantityKey.class)
@EqualsAndHashCode(callSuper = false)
public class Quantity extends BizBaseEntity implements Serializable {
@@ -30,16 +29,14 @@
public static String SORT_PROP = "receiveDate";
@Id
- @Column(name = "batch_id", columnDefinition = "varchar(40) COMMENT '鎵规缂栧彿'")
+ @Column(name = "batch_id", columnDefinition = "varchar(40) COMMENT '鎵规缂栧彿:浠撳簱缂栫爜_yyyyMMddHHmmss'")
@TableField("batch_id")
private String batchId;
- @Id
@Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
@TableField("dept_id")
private String deptId;
- @Id
@Column(name = "depot_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炰粨搴�'")
@TableField("depot_id")
private String depotId;
@@ -64,7 +61,7 @@
@TableField("points")
private String points;
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
@Column(name = "receive_date", columnDefinition = "datetime COMMENT '妫�娴嬫椂闂�'")
@TableField("receive_date")
private Date receiveDate;
@@ -80,4 +77,5 @@
@Transient
@TableField(exist = false)
private Depot depotData;
+
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityConf.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityConf.java
index 4c47634..68a96ca 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityConf.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityConf.java
@@ -135,6 +135,10 @@
@TableField("url_out")
private String urlOut;
+ @Column(name = "ptz_type", columnDefinition = "varchar(40) COMMENT '浜戝彴鏂瑰紡'")
+ @TableField("ptz_type")
+ private String ptzType;
+
@Column(name = "media_addr", columnDefinition = "varchar(100) COMMENT 'RTSP鍦板潃'")
@TableField("media_addr")
private String mediaAddr;
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityKey.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityKey.java
deleted file mode 100644
index 19307f4..0000000
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/QuantityKey.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.fzzy.igds.domain;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import java.io.Serializable;
-
-/**
- * @Description 鏁伴噺妫�娴嬫暟鎹富閿�
- * @Author CZT
- * @Date 2025/11/26 09:42
- */
-@Data
-@AllArgsConstructor
-public class QuantityKey implements Serializable {
-
- private String batchId;
-
- private String deptId;
-
- private String depotId;
-
- public QuantityKey() {
- super();
- }
-}
\ No newline at end of file
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 5c3c073..0367bbe 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
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.domain.Quantity;
import com.fzzy.igds.mapper.FileMapper;
import com.fzzy.igds.utils.Base64Util;
import com.fzzy.igds.utils.ContextUtil;
@@ -31,6 +32,29 @@
private FileMapper fileMapper;
/**
+ * 鏍规嵁鏉′欢鑾峰彇闄勪欢淇℃伅
+ * @param companyId
+ * @param bizId
+ * @return
+ */
+ public List<FileInfo> listFile(String companyId, String bizId) {
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+
+ if (StringUtils.isEmpty(bizId)){
+ return null;
+ }
+
+ QueryWrapper<FileInfo> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("company_id", companyId);
+ queryWrapper.eq("biz_id", bizId);
+ queryWrapper.orderByAsc("create_time");
+
+ return fileMapper.selectList(queryWrapper);
+ }
+
+ /**
* 寮傛鎵ц闄勪欢淇濆瓨
* @param files 闄勪欢淇℃伅
* @param bizId 涓氬姟id
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/QuantityService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/QuantityService.java
index cbe3d03..f80d2be 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/QuantityService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/QuantityService.java
@@ -70,6 +70,25 @@
}
/**
+ * 鏌ヨ鏁版嵁鍒楄〃
+ * @param depotId
+ * @param limit 鏌ヨ鏉℃暟
+ * @return
+ */
+ public List<Quantity> getQuantityList(String depotId, Integer limit) {
+ if (StringUtils.isEmpty(depotId)) {
+ return null;
+ }
+
+ QueryWrapper<Quantity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("depot_id", depotId);
+ queryWrapper.orderByDesc("receive_date");
+ queryWrapper.last("LIMIT " + limit);
+
+ return quantityMapper.selectList(queryWrapper);
+ }
+
+ /**
* 鏌ヨ閰嶇疆淇℃伅锛屾牴鎹簱鍖虹紪鐮佽幏鍙�
*
* @param companyId
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/QuantityConf.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/QuantityConf.view.xml
index e5318f8..fc15a8b 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/QuantityConf.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/QuantityConf.view.xml
@@ -17,19 +17,22 @@
<Property name="keyProperty">id</Property>
<Property name="valueProperty">name</Property>
</Property>
+ <Property name="required">true</Property>
</PropertyDef>
<PropertyDef name="deptId">
<Property></Property>
<Property name="label">鎵�灞炲垎搴�</Property>
<Property name="mapping">
- <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property>
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#getDeptByUserType").getResult()}</Property>
<Property name="keyProperty">id</Property>
<Property name="valueProperty">kqmc</Property>
</Property>
+ <Property name="required">true</Property>
</PropertyDef>
<PropertyDef name="name">
<Property></Property>
<Property name="label">璁惧鍚嶇О</Property>
+ <Property name="required">true</Property>
</PropertyDef>
<PropertyDef name="sn">
<Property></Property>
@@ -134,6 +137,17 @@
<Property name="keyProperty">dictValue</Property>
<Property name="valueProperty">dictLabel</Property>
</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="ptzType">
+ <Property></Property>
+ <Property name="label">浜戝彴鏂瑰紡</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerPtzType").getResult()}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ <Property name="required">true</Property>
</PropertyDef>
<PropertyDef name="urlIn">
<Property></Property>
@@ -189,7 +203,6 @@
<ToolBar>
<ToolBarButton>
<ClientEvent name="onClick">view.get("#dsMain").insert();
- view.get("#depotId").set("readOnly",false);
view.get("#dgMain").show();</ClientEvent>
<Property name="caption">鏂板</Property>
<Property name="exClassName">btn1</Property>
@@ -200,7 +213,6 @@
<ClientEvent name="onClick">
var select = view.get("#dataGridMain").get("selection");
if(select){
- view.get("#depotId").set("readOnly",true)
view.get("#dgMain").show();
}else{
$notify("璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��");
@@ -312,7 +324,7 @@
<ClientEvent name="onShow">//鏍规嵁浠撳簱绫诲瀷涓嶅悓锛屾樉绀轰笉鍚岀殑閰嶇疆淇℃伅</ClientEvent>
<Property name="iconClass">fa fa-tasks</Property>
<Property name="caption">鏁伴噺妫�娴嬪弬鏁�</Property>
- <Property name="width">60%</Property>
+ <Property name="width">80%</Property>
<Property name="closeable">false</Property>
<Property name="height">90%</Property>
<Buttons>
@@ -335,13 +347,13 @@
</Button>
</Buttons>
<Children>
- <GroupBox layoutConstraint="padding:5">
+ <FieldSet layout="padding:5">
<Property name="caption">鍩烘湰淇℃伅</Property>
<Buttons/>
<Children>
<AutoForm>
<Property name="dataSet">dsMain</Property>
- <Property name="cols">*,*,*</Property>
+ <Property name="cols">*,*,*,*</Property>
<Property name="labelSeparator">锛�</Property>
<Property name="labelAlign">right</Property>
<Property name="labelWidth">110</Property>
@@ -351,14 +363,13 @@
<Editor/>
</AutoFormElement>
<AutoFormElement>
- <Property name="name">sn</Property>
- <Property name="property">sn</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement id="depotId">
<Property name="name">depotId</Property>
<Property name="property">depotId</Property>
- <Property name="readOnly">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">deptId</Property>
+ <Property name="property">deptId</Property>
<Editor/>
</AutoFormElement>
<AutoFormElement>
@@ -371,6 +382,11 @@
<Property name="property">port</Property>
<Editor/>
</AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">sn</Property>
+ <Property name="property">sn</Property>
+ <Editor/>
+ </AutoFormElement>
<AutoFormElement>
<Property name="name">protocol</Property>
<Property name="property">protocol</Property>
@@ -381,21 +397,16 @@
<Property name="property">status</Property>
<Editor/>
</AutoFormElement>
- <AutoFormElement layoutConstraint="colSpan:2">
- <Property name="name">remark</Property>
- <Property name="property">remark</Property>
- <Editor/>
- </AutoFormElement>
</AutoForm>
</Children>
- </GroupBox>
- <GroupBox layoutConstraint="padding:5">
+ </FieldSet>
+ <FieldSet layout="padding:5">
<Property name="caption">鎽勫儚澶撮厤缃�</Property>
<Buttons/>
<Children>
<AutoForm>
<Property name="dataSet">dsMain</Property>
- <Property name="cols">*,*,*</Property>
+ <Property name="cols">*,*,*,*</Property>
<Property name="labelSeparator">锛�</Property>
<Property name="labelAlign">right</Property>
<Property name="labelWidth">110</Property>
@@ -415,6 +426,11 @@
<Editor/>
</AutoFormElement>
<AutoFormElement>
+ <Property name="name">chanNum</Property>
+ <Property name="property">chanNum</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
<Property name="name">loginId</Property>
<Property name="property">loginId</Property>
<Property name="readOnly">false</Property>
@@ -426,18 +442,8 @@
<Editor/>
</AutoFormElement>
<AutoFormElement>
- <Property name="name">chanNum</Property>
- <Property name="property">chanNum</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
<Property name="name">playType</Property>
<Property name="property">playType</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement layoutConstraint="colSpan:2">
- <Property name="name">urlIn</Property>
- <Property name="property">urlIn</Property>
<Editor/>
</AutoFormElement>
<AutoFormElement>
@@ -445,17 +451,12 @@
<Property name="property">snapType</Property>
<Editor/>
</AutoFormElement>
- <AutoFormElement layoutConstraint="colSpan:2">
- <Property name="name">urlOut</Property>
- <Property name="property">urlOut</Property>
- <Editor/>
- </AutoFormElement>
<AutoFormElement>
- <Property name="name">cameraSn</Property>
- <Property name="property">cameraSn</Property>
+ <Property name="name">ptzType</Property>
+ <Property name="property">ptzType</Property>
<Editor/>
</AutoFormElement>
- <AutoFormElement layoutConstraint="colSpan:2">
+ <AutoFormElement layoutConstraint="colSpan:3">
<Property name="name">mediaAddr</Property>
<Property name="property">mediaAddr</Property>
<Property name="trigger">triggerMedia</Property>
@@ -465,10 +466,30 @@
</TextEditor>
</Editor>
</AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">urlIn</Property>
+ <Property name="property">urlIn</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">urlOut</Property>
+ <Property name="property">urlOut</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">cameraSn</Property>
+ <Property name="property">cameraSn</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">remark</Property>
+ <Property name="property">remark</Property>
+ <Editor/>
+ </AutoFormElement>
</AutoForm>
</Children>
- </GroupBox>
- <GroupBox layoutConstraint="padding:5">
+ </FieldSet>
+ <FieldSet layout="padding:5">
<Property name="caption">鏁伴噺妫�娴嬪弬鏁�</Property>
<Buttons/>
<Children>
@@ -515,7 +536,7 @@
</AutoFormElement>
</AutoForm>
</Children>
- </GroupBox>
+ </FieldSet>
</Children>
<Tools/>
</Dialog>
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/security/SecurityController.java b/fzzy-igdss-web/src/main/java/com/fzzy/security/SecurityController.java
index d14e989..0005205 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/security/SecurityController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/security/SecurityController.java
@@ -4,11 +4,11 @@
import com.fzzy.igds.camera.data.ApiCameraResp;
import com.fzzy.igds.constant.CameraPlayType;
import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.GroupIndexData;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.data.PageResponse;
import com.fzzy.igds.data.PatrolSuperData;
-import com.fzzy.igds.domain.Camera;
-import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.domain.*;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.SystemUtil;
import com.fzzy.common.manager.CommonManager;
@@ -228,26 +228,55 @@
* @return
*/
@RequestMapping("/quantity")
- public String infrared(
- @RequestParam(value = "type", required = false) String type,
- ModelMap view) {
+ public String infrared(@RequestParam(value = "type", required = false) String type,
+ ModelMap view) {
SysUser user = ContextUtil.getLoginUser();
view.put(Constant.MODEL_KEY_LOGIN_USER, user);
String deptId = ContextUtil.subDeptId(user);
view.put("deptId", deptId);
-// List<InfraredCamera> listCamera = infraredManager.listCamera(deptId, user.getCompanyId());
-//
-// if(null == listCamera){
-// listCamera = new ArrayList<>();
-// listCamera.add(new InfraredCamera());
-// }
-// view.put("listCamera", listCamera);
+
+ //鏌ヨ搴撳尯涓嬫暟閲忔娴嬭澶�
+ List<QuantityConf> listCamera = secManager.getQuantityConfByDeptId(deptId);
+ view.put("listCamera", listCamera);
return prefix + "/quantity";
}
+ /**
+ * 鏌ヨ璁板綍淇℃伅
+ * @param param
+ * @return
+ */
+ @RequestMapping("/quantity-list")
+ @ResponseBody
+ public PageResponse<List<Quantity>> quantityList(@RequestBody IgdsBaseParam param) {
+ return secManager.quantityList(param);
+ }
+
+ /**
+ * 鏌ヨ鏇茬嚎鍥句俊鎭�
+ * @param param
+ * @return
+ */
+ @RequestMapping("/quantity-chart")
+ @ResponseBody
+ public PageResponse<GroupIndexData> getQuantityChart(@RequestBody IgdsBaseParam param) {
+ return secManager.getQuantityChart(param);
+ }
+
+ /**
+ * 鏌ヨ鏇茬嚎鍥句俊鎭�
+ * @param param
+ * @return
+ */
+ @RequestMapping("/quantity-files")
+ @ResponseBody
+ public PageResponse<List<FileInfo>> getQuantityFiles(@RequestBody IgdsBaseParam param) {
+ return secManager.getQuantityFiles(param);
+ }
+
/*------------------宸℃洿杞ㄨ抗椤甸潰------------------*/
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java
index 5b8e9b8..3833576 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java
@@ -5,20 +5,16 @@
import com.fzzy.igds.camera.data.ApiCameraData;
import com.fzzy.igds.camera.data.ApiCameraResp;
import com.fzzy.igds.constant.RespCodeEnum;
-import com.fzzy.igds.data.PageResponse;
-import com.fzzy.igds.data.PatrolSuperData;
-import com.fzzy.igds.domain.Camera;
-import com.fzzy.igds.domain.Dept;
-import com.fzzy.igds.domain.Patrol;
-import com.fzzy.igds.domain.PatrolRecord;
-import com.fzzy.igds.service.CoreDeptService;
-import com.fzzy.igds.service.PatrolService;
-import com.fzzy.igds.service.SecCameraService;
+import com.fzzy.igds.data.*;
+import com.fzzy.igds.domain.*;
+import com.fzzy.igds.service.*;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Component;
+
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
@@ -35,6 +31,8 @@
public class SecManager {
@Resource
+ private CommonManager commonManager;
+ @Resource
private SecCameraService secCameraService;
@Resource
private ApiCameraManager apiCameraManager;
@@ -43,22 +41,23 @@
@Resource
private CoreDeptService coreDeptService;
@Resource
- private CommonManager commonManager;
+ private QuantityService quantityService;
+ @Resource
+ private FileService fileService;
/**
- *
* @param deptId
* @param companyId
* @return
*/
public List<Camera> listCamera(String deptId, String companyId) {
- if (null == deptId){
+ if (null == deptId) {
return null;
}
List<Camera> list = secCameraService.getCameraByDeptId(companyId, deptId);
- if (null == list || list.isEmpty()){
+ if (null == list || list.isEmpty()) {
return null;
}
@@ -67,6 +66,7 @@
/**
* 鏍规嵁鐩戞帶ID鑾峰彇鐩戞帶淇℃伅
+ *
* @param companyId
* @param cameraId
* @return
@@ -75,7 +75,7 @@
if (StringUtils.isEmpty(companyId)) {
companyId = ContextUtil.getCompanyId();
}
- if (StringUtils.isEmpty(cameraId)){
+ if (StringUtils.isEmpty(cameraId)) {
return null;
}
return secCameraService.getCameraById(companyId, cameraId);
@@ -83,6 +83,7 @@
/**
* 鑾峰彇鎾斁淇℃伅
+ *
* @param param
* @return
*/
@@ -95,8 +96,8 @@
// 鏍规嵁id鑾峰彇璁惧淇℃伅
Camera camera = secCameraService.getCameraById(ContextUtil.getCompanyId(), param.getId());
- if(null == camera){
- log.error("缂撳瓨涓病鏈夎幏鍙栧埌鎽勫儚澶翠俊鎭�"+ param.toString());
+ if (null == camera) {
+ log.error("缂撳瓨涓病鏈夎幏鍙栧埌鎽勫儚澶翠俊鎭�" + param.toString());
return new ApiCameraResp("ERROR", "缂撳瓨涓病鏈夎幏鍙栧埌鎽勫儚澶翠俊鎭紒");
}
@@ -125,12 +126,13 @@
/**
* 浜戝彴鎺у埗
+ *
* @param param
* @return
*/
public ApiCameraResp ptzMedia(ApiCameraData param) {
- if(StringUtils.isEmpty(param.getCompanyId())){
+ if (StringUtils.isEmpty(param.getCompanyId())) {
param.setCompanyId(ContextUtil.getCompanyId());
}
return apiCameraManager.getApiCameraService(param.getPtzType()).ptzMedia(param);
@@ -138,6 +140,7 @@
/**
* 棰勭疆浣嶈缃�
+ *
* @param param
* @return
*/
@@ -146,7 +149,6 @@
}
/**
- *
* @param params
* @return
*/
@@ -162,19 +164,20 @@
}
secCameraService.refreshCache(ContextUtil.getCompanyId());
- return new PageResponse<>(RespCodeEnum.CODE_0000, "鎵ц鎴愬姛锛侊紒");
+ return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛锛侊紒");
}
/**
* 宸℃缁熻
+ *
* @return
*/
public PatrolSuperData patrolTrack() {
PatrolSuperData patrolSuperData = new PatrolSuperData();
List<Dept> deptList = coreDeptService.getDeptData();
- if(null == deptList || deptList.isEmpty()){
- return patrolSuperData;
+ if (null == deptList || deptList.isEmpty()) {
+ return patrolSuperData;
}
//搴撳尯杞崲
@@ -185,7 +188,7 @@
List<Patrol> weekList = patrolService.getWeekList();
- if(null != weekList && weekList.size() > 0){
+ if (null != weekList && weekList.size() > 0) {
Date start = DateUtil.getCurZero(DateUtil.getNewByDay(new Date(), -1)); //鏄ㄥぉ闆剁偣闆跺垎
Date end = DateUtil.getCurZero(new Date()); //浠婂ぉ闆剁偣闆跺垎
for (Patrol patrol : weekList) {
@@ -193,13 +196,13 @@
patrolSuperData.setWeekSum(patrolSuperData.getWeekSum() + 1);
//鏄ㄥぉ浜烘
- if(patrol.getCreateTime().after(start) && patrol.getCreateTime().before(end)){
+ if (patrol.getCreateTime().after(start) && patrol.getCreateTime().before(end)) {
patrolSuperData.setYesterdaySum(patrolSuperData.getYesterdaySum() + 1);
}
//褰撳ぉ缁熻
- if(patrol.getCreateTime().after(end)){
- if(map.get(patrol.getDeptId()) == 0){
+ if (patrol.getCreateTime().after(end)) {
+ if (map.get(patrol.getDeptId()) == 0) {
patrolSuperData.setIsDeptNum(patrolSuperData.getIsDeptNum() + 1);
map.put(patrol.getDeptId(), map.get(patrol.getDeptId()) + 1);
}
@@ -221,13 +224,96 @@
List<PatrolRecord> patrolRecords = patrolService.getRecordByPatrolId(patrolId);
- if(null != patrolRecords && !patrolRecords.isEmpty()){
+ if (null != patrolRecords && !patrolRecords.isEmpty()) {
//鍒ゆ柇鏂囦欢鏄惁瀛樺湪
for (PatrolRecord record : patrolRecords) {
- record.setImgName(commonManager.isImgExit( record.getImgName(), null));
+ record.setImgName(commonManager.isImgExit(record.getImgName(), null));
}
}
return patrolRecords;
}
+
+ /**
+ * 鑾峰彇鏁伴噺妫�娴嬮厤缃俊鎭�
+ *
+ * @param deptId
+ * @return
+ */
+ public List<QuantityConf> getQuantityConfByDeptId(String deptId) {
+
+ return quantityService.getConfList(ContextUtil.getCompanyId(), deptId);
+ }
+
+ /**
+ * 鏌ヨ鏁伴噺妫�娴嬭褰曪紝榛樿鏌ヨ4鏉�
+ *
+ * @param param
+ * @return
+ */
+ public PageResponse<List<Quantity>> quantityList(IgdsBaseParam param) {
+
+ if (StringUtils.isEmpty(param.getDepotId())) {
+ return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓虹┖锛侊紒");
+ }
+
+ List<Quantity> quantityList = quantityService.getQuantityList(param.getDepotId(), 4);
+ if (null == quantityList || quantityList.isEmpty()) {
+ return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鏁版嵁涓虹┖锛侊紒");
+ }
+
+ return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛锛侊紒", quantityList);
+ }
+
+ /**
+ * 鏌ヨ鏁伴噺妫�娴嬭褰曪紝榛樿鏌ヨ7鏉★紝灏佽鎴愬浘琛ㄤ俊鎭�
+ *
+ * @param param
+ * @return
+ */
+ public PageResponse<GroupIndexData> getQuantityChart(IgdsBaseParam param) {
+
+ if (StringUtils.isEmpty(param.getDepotId())) {
+ return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓虹┖锛侊紒");
+ }
+
+
+ List<Quantity> quantityList = quantityService.getQuantityList(param.getDepotId(), 7);
+ if (null == quantityList || quantityList.isEmpty()) {
+ return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鏁版嵁涓虹┖锛侊紒");
+ }
+
+ GroupIndexData data = new GroupIndexData();
+
+ for (int i = (quantityList.size() - 1); i >= 0; i--) {
+ data.getXaxis().add(DateFormatUtils.format(quantityList.get(i).getReceiveDate(), "MM-dd HH:mm"));
+ data.getSeriesData().add(quantityList.get(i).getWeight() + "");
+ }
+
+ return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛锛侊紒", data);
+ }
+
+ /**
+ * 鏌ヨ妫�娴嬫暟鎹搴旀姄鍥�
+ * @param param
+ * @return
+ */
+ public PageResponse<List<FileInfo>> getQuantityFiles(IgdsBaseParam param) {
+
+ if (StringUtils.isEmpty(param.getKey())) {
+ return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓虹┖锛侊紒");
+ }
+
+ List<FileInfo> fileList = fileService.listFile(null, param.getKey());
+ if (null == fileList || fileList.isEmpty()) {
+ return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鏁版嵁涓虹┖锛侊紒");
+ }
+
+ //鍒ゆ柇鏂囦欢鏄惁瀛樺湪
+ for (FileInfo fileInfo : fileList) {
+ fileInfo.setFilePath(commonManager.isImgExit(fileInfo.getFilePath(), null));
+ }
+
+ return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛锛侊紒", fileList);
+ }
}
diff --git a/fzzy-igdss-web/src/main/resources/static/security/quantity.css b/fzzy-igdss-web/src/main/resources/static/security/quantity.css
index db7e3c5..4cafb9d 100644
--- a/fzzy-igdss-web/src/main/resources/static/security/quantity.css
+++ b/fzzy-igdss-web/src/main/resources/static/security/quantity.css
@@ -304,12 +304,19 @@
margin-top: 5px;
}
+.render_btn {
+ background-color: #f1ba1f;
+ color: #333;
+ height: 30px;
+}
+
.alert-item {
border-left: 4px solid #e6a23c;
background-color: #fdf6ec;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 0 4px 4px 0;
+ height: 75px;
}
.alert-item.accent {
@@ -320,6 +327,11 @@
.alert-item.gray {
border-left-color: #909399;
background-color: #f2f2f2;
+}
+
+.alert-item.blue {
+ border-left-color: #205191;
+ background-color: #dde8f1;
}
.alert-header {
@@ -342,6 +354,7 @@
font-size: 13px;
color: #606266;
margin-bottom: 10px;
+ margin-top: 20px;
}
.tool-grid {
@@ -526,7 +539,7 @@
}
.w-select {
- min-width: 150px;
+ min-width: 250px;
min-height: 36px;
border-radius: 4px;
}
diff --git a/fzzy-igdss-web/src/main/resources/static/security/quantity.js b/fzzy-igdss-web/src/main/resources/static/security/quantity.js
index 856ddd3..0970d82 100644
--- a/fzzy-igdss-web/src/main/resources/static/security/quantity.js
+++ b/fzzy-igdss-web/src/main/resources/static/security/quantity.js
@@ -1,6 +1,12 @@
var layer;
var form;
var curCamera;
+var firstQuantity;
+var hisChart = null; //鏇茬嚎鍥�
+var listRecord;
+var fileRecord;
+var names = ['12-01', '12-02', '12-03', '12-04', '12-05', '12-06', '12-07'];
+var data = [2560000, 2510000, 2540000, 2530000, 2490000, 2610000, 2570000];
layui.use(['layer'], function () {
form = layui.form;
@@ -8,7 +14,7 @@
// 璋冭壊鏉垮垏鎹簨浠�
document.querySelectorAll('.palette-item').forEach(item => {
- item.addEventListener('click', function() {
+ item.addEventListener('click', function () {
document.querySelectorAll('.palette-item').forEach(i => {
i.classList.remove('active');
});
@@ -21,18 +27,14 @@
//閫夋嫨鎽勫儚澶村悗瑙﹀彂鐨勪簨浠�
const cameraSelect = document.getElementById('select-camera');
- cameraSelect.addEventListener('change', function() {
- const selectedCamera = this.value;
- //console.log("--------------"+selectedCamera);
- video(selectedCamera);
+ cameraSelect.addEventListener('change', function () {
+ const selectId = this.value;
- // 鏇存柊娓╁害璧板娍鍥�
- // updateEchartsTemp(selectedCamera);
+ ajaxData(selectId);
});
-
- // 鍒濆鍖朎Charts娓╁害璧板娍鍥�
- initEchartsTemp();
+ // 鍒濆鍖栬蛋鍔垮浘
+ initEcharts(names, data);
});
@@ -40,39 +42,283 @@
* 瑙嗛鎾斁
* @param selectId
*/
-function video(selectId) {
+function ajaxData(selectId) {
+ curCamera = null;
//浠庡垪琛ㄤ腑鑾峰彇鎽勫儚澶翠俊鎭�
- curCamera = listCamera.find(camera => camera.id === selectId);
- if (!curCamera) { layer.msg('娌℃湁鑾峰彇鍒板綋鍓嶆憚鍍忓ご淇℃伅鈥︹��', {icon: 1, time: 1200});}
+ curCamera = listCamera.find(camera => camera.depotId === selectId);
+ if (!curCamera) {
+ layer.msg('娌℃湁鑾峰彇鍒板綋鍓嶆憚鍍忓ご淇℃伅鈥︹��', {icon: 1, time: 1200});
+ return;
+ }
+ //鑾峰彇瑙嗛
+ video();
+ //娓叉煋璧板娍鍥�
+ ajaxEcharts();
+
+ //娓叉煋璁板綍
+ ajaxListRecord();
+
+ //娓叉煋鎶撴媿鍥�
+ ajaxSnapImg();
}
/**
- * 鏇存柊娓╁害璧板娍鍥�
- * @param selectId
+ * 璇锋眰鍥捐〃淇℃伅
*/
-function updateEchartsTemp(selectId) {
+function ajaxSnapImg() {
+ if(!firstQuantity){
+ renderSnapImg();
+ return;
+ }
+ fileRecord = null;
var data = {
- cameraId: selectId
+ key: firstQuantity.batchId
};
$.ajax({
type: 'POST',
- url: "/security/infrared/chart-data",
+ url: "/security/quantity-files",
dataType: 'JSON',
contentType: "application/json;charset=UTF-8",
data: JSON.stringify(data),
success: function (result) {
- //layer.msg("淇℃伅鏇存柊瀹屾垚锛侊紒");
+ if (result.code != "SUCCESS") {
+ renderSnapImg();
+ } else {
+ fileRecord = result.data;
+ renderSnapImg();
+ }
},
error: function (result) {
- // layer.msg(result.msg);
+ renderSnapImg();
}
});
}
+/**
+ * 娓叉煋鎶撳浘
+ * @returns {null}
+ */
+function renderSnapImg() {
+
+ if (!fileRecord) return null;
+
+ if (fileRecord.length === 0) return null;
+
+ var record = fileRecord[0];
+ if (record) {
+ $("#file-time1").text(record.createTime);
+ $("#file-img1").attr("src", record.filePath);
+ } else {
+ $("#file-time1").text("----");
+ $("#file-img1").attr("src", "/img/web/security/p-snap.jpg");
+ }
+
+ record = fileRecord[1];
+ if (record) {
+ $("#file-time2").text(record.createTime);
+ $("#file-img2").attr("src", record.filePath);
+ } else {
+ $("#file-time2").text("----");
+ $("#file-img2").attr("src", "/img/web/security/p-snap.jpg");
+ }
+
+ record = fileRecord[2];
+ if (record) {
+ $("#file-time3").text(record.createTime);
+ $("#file-img3").attr("src", record.filePath);
+ } else {
+ $("#file-time3").text("----");
+ $("#file-img3").attr("src", "/img/web/security/p-snap.jpg");
+ }
+
+ record = fileRecord[3];
+ if (record) {
+ $("#file-time4").text(record.createTime);
+ $("#file-img4").attr("src", record.filePath);
+ } else {
+ $("#file-time4").text("----");
+ $("#file-img4").attr("src", "/img/web/security/p-snap.jpg");
+ }
+}
+
+
+/**
+ * 璇锋眰鍥捐〃淇℃伅
+ */
+function ajaxEcharts() {
+ var data = {
+ depotId: curCamera.depotId
+ };
+ $.ajax({
+ type: 'POST',
+ url: "/security/quantity-chart",
+ dataType: 'JSON',
+ contentType: "application/json;charset=UTF-8",
+ data: JSON.stringify(data),
+ success: function (result) {
+ if (result.code != "SUCCESS") {
+ renderEcharts(null);
+ } else {
+ renderEcharts(result.data);
+ }
+ },
+ error: function (result) {
+ renderEcharts(null);
+ }
+ });
+}
+
+/**
+ * 娓叉煋鍥捐〃
+ * @param chartData
+ */
+function renderEcharts(chartData) {
+ var chart = hisChart;
+ if (chartData && chartData.xaxis.length > 0 && chartData.seriesData.length > 0) {
+ chart.option.xAxis.data = chartData.xaxis;
+ chart.option.series[0].data = chartData.seriesData;
+ chart.chart.setOption(chart.option, true);
+ } else {
+ chart.option.xAxis.data = names;
+ chart.option.series[0].data = data;
+ chart.chart.setOption(chart.option, true);
+ }
+ hisChart = chart;
+}
+
+/**
+ * 璇锋眰璁板綍
+ */
+function ajaxListRecord() {
+ firstQuantity = null;
+ listRecord = null;
+ var data = {
+ depotId: curCamera.depotId
+ };
+ $.ajax({
+ type: 'POST',
+ url: "/security/quantity-list",
+ dataType: 'JSON',
+ contentType: "application/json;charset=UTF-8",
+ data: JSON.stringify(data),
+ success: function (result) {
+ if (result.code != "SUCCESS") {
+ renderListRecord();
+ } else {
+ listRecord = result.data;
+ renderListRecord();
+ }
+ },
+ error: function (result) {
+ renderListRecord();
+ }
+ });
+}
+
+/**
+ * 娓叉煋璁板綍
+ * @returns {null}
+ */
+function renderListRecord() {
+
+ if (!listRecord) return null;
+
+ if (listRecord.length === 0) return null;
+
+ var record = listRecord[0];
+ if (record) {
+ firstQuantity = record;
+ $("#record_title1").text("妫�娴嬮噸閲忥細" + record.weight + " KG");
+ $("#record_time1").text(record.receiveDate);
+ $("#record_content1").text(record.remark);
+ } else {
+ $("#record_title1").text("妫�娴嬮噸閲忥細---- KG");
+ $("#record_time1").text("----");
+ $("#record_content1").text("妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�");
+ }
+
+ record = listRecord[1];
+ if (record) {
+ $("#record_title2").text("妫�娴嬮噸閲忥細" + record.weight + " KG");
+ $("#record_time2").text(record.receiveDate);
+ $("#record_content2").text(record.remark);
+ } else {
+ $("#record_title2").text("妫�娴嬮噸閲忥細---- KG");
+ $("#record_time2").text("----");
+ $("#record_content2").text("妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�");
+ }
+
+ record = listRecord[2];
+ if (record) {
+ $("#record_title3").text("妫�娴嬮噸閲忥細" + record.weight + " KG");
+ $("#record_time3").text(record.receiveDate);
+ $("#record_content3").text(record.remark);
+ } else {
+ $("#record_title3").text("妫�娴嬮噸閲忥細---- KG");
+ $("#record_time3").text("----");
+ $("#record_content3").text("妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�");
+ }
+
+ record = listRecord[3];
+ if (record) {
+ $("#record_title4").text("妫�娴嬮噸閲忥細" + record.weight + " KG");
+ $("#record_time4").text(record.receiveDate);
+ $("#record_content4").text(record.remark);
+ } else {
+ $("#record_title4").text("妫�娴嬮噸閲忥細---- KG");
+ $("#record_time4").text("----");
+ $("#record_content4").text("妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�");
+ }
+}
+
+/**
+ * 瑙嗛鎾斁
+ * @param
+ */
+function video() {
+
+ var data = {
+ id: curCamera.cameraSn,
+ playType: curCamera.playType
+ };
+ $.ajax({
+ type: 'POST',
+ url: "/security/get-media",
+ dataType: 'JSON',
+ contentType: "application/json;charset=UTF-8",
+ data: JSON.stringify(data),
+ success: function (result) {
+ if (result.code != "SUCCESS") {
+ layer.msg(result.msg, {icon: 1, time: 1200});
+ } else {
+ toPlay(result.playUrl);
+ }
+ },
+ error: function (result) {
+ layer.msg("鏈幏鍙栧埌鎾斁淇℃伅锛侊紒", {icon: 1, time: 1200});
+ }
+ });
+
+}
+
+/**
+ * 鎾斁瑙嗛
+ * @param url
+ */
+function toPlay(url) {
+ var html = '';
+ if (url) {
+ html += '<iframe src="' + url + '" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>';
+ } else {
+ html += '<img src="/img/web/security/p-snap.jpg">';
+ }
+ $("#divPlugin2").html(html);
+}
+
// 鍒濆鍖朎Charts娓╁害璧板娍鍥�
-function initEchartsTemp() {
+function initEcharts(names, data) {
// 鍒濆鍖朎Charts娓╁害璧板娍鍥�
var temperatureChartDom = document.getElementById('temperatureChart');
var temperatureChart = echarts.init(temperatureChartDom);
@@ -102,7 +348,7 @@
{
type: 'category',
boundaryGap: false,
- data: ['12-01', '12-02', '12-03', '12-04', '12-05', '12-06', '12-07']
+ data: names
}
],
yAxis: [
@@ -127,18 +373,20 @@
},
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: 'rgba(15, 52, 96, 0.3)' },
- { offset: 1, color: 'rgba(15, 52, 96, 0.05)' }
+ {offset: 0, color: 'rgba(15, 52, 96, 0.3)'},
+ {offset: 1, color: 'rgba(15, 52, 96, 0.05)'}
])
},
- data: [2560000, 2510000, 2540000, 2530000, 2490000, 2610000, 2570000]
+ data: data
}
]
};
// 娓叉煋鍥捐〃
option && temperatureChart.setOption(option);
+ hisChart = {"chart": temperatureChart, "option": option};
+
// 绐楀彛澶у皬鍙樺寲鏃惰皟鏁村浘琛ㄥぇ灏�
- window.addEventListener('resize', function() {
+ window.addEventListener('resize', function () {
temperatureChart.resize();
});
}
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/templates/security/quantity.html b/fzzy-igdss-web/src/main/resources/templates/security/quantity.html
index 8ef6b9b..d079147 100644
--- a/fzzy-igdss-web/src/main/resources/templates/security/quantity.html
+++ b/fzzy-igdss-web/src/main/resources/templates/security/quantity.html
@@ -22,24 +22,24 @@
<h2>瀹炴椂鐩戞帶鐢婚潰</h2>
<div class="layui-row layui-col-space10">
<div class="layui-inline">
- <label class="layui-form-label">浠撳簱鍒楄〃</label>
+ <label class="layui-form-label">璁惧鍒楄〃</label>
<select id="select-camera" class="layui-form-select w-select">
<option>璇烽�夋嫨鈥︹��</option>
- <option th:each="camera:${listCamera}" th:value="${camera.id}" th:text="${camera.name}"></option>
+ <option th:each="camera:${listCamera}" th:value="${camera.depotId}" th:text="${camera.name}"></option>
</select>
</div>
</div>
</div>
<div class="card-body">
<!-- 鍙岃棰戝睍绀哄尯鍩� -->
- <div class="video-container" id="video-container" style="grid-template-columns: 1fr;">
- <!-- 鐑垚鍍忚棰戠敾闈� -->
- <div class="video-box" id="thermal-video">
- <div class="video-label">
- <i class="layui-icon layui-icon-camera-fill"></i> 鐑垚鍍忚棰�
- </div>
- <div id="divPlugin2">
- <img th:src="@{/img/web/security/p-snap.jpg}" alt="鐑垚鍍忓疄鏃剁敾闈�">
+ <div class="video-container" id="video-container" style="grid-template-columns: 1fr;min-height: 610px;">
+<!-- <!– 鐑垚鍍忚棰戠敾闈� –>-->
+<!-- <div class="video-box" id="thermal-video">-->
+<!-- <div class="video-label">-->
+<!-- <i class="layui-icon layui-icon-camera-fill"></i>-->
+<!-- </div>-->
+ <div id="divPlugin2" style="height: 100%">
+ <img th:src="@{/img/web/security/p-snap.jpg}" alt="">
</div>
<!-- 娓╁害鏍囪鐐�
<div class="temp-mark" title="寮傚父楂樻俯鐐�: 32掳C">
@@ -63,7 +63,7 @@
</div>
-->
- </div>
+<!-- </div>-->
</div>
<!-- 绠�鍖栫殑瑙嗛鎺у埗宸ュ叿鏍�-->
@@ -86,6 +86,12 @@
<button class="layui-btn layui-btn-default layui-btn-sm">
鍑忓�� <i class="layui-icon layui-icon-subtraction"></i>
</button>
+ <button class="layui-btn layui-btn-default layui-btn-sm">
+ 寮�濮嬫娴� <i class="layui-icon layui-icon-subtraction"></i>
+ </button>
+ <button class="layui-btn layui-btn-default layui-btn-sm">
+ 鍋滄妫�娴� <i class="layui-icon layui-icon-subtraction"></i>
+ </button>
</div>
@@ -100,46 +106,46 @@
<div class="card-body">
<div class="record-grid">
<!-- 鏅�氳棰戣褰� -->
- <div class="record-item">
+ <div class="record-item" style="border: 2px solid var(--warning-color);">
<div class="record-img">
- <img th:src="@{/img/web/security/p-snap.jpg}" alt="鏅�氳棰戣褰�">
+ <img id="file-img1" th:src="@{/img/web/security/p-snap.jpg}">
</div>
<div class="record-info">
- <div class="record-name">绮粨1鍙�</div>
- <div class="record-time">2025-12-03 10:00</div>
+ <div class="record-name">杩囩▼鎶撴媿1</div>
+ <div id="file-time1" class="record-time">2025-12-03 10:00</div>
</div>
</div>
<!-- 鐑垚鍍忚棰戣褰� -->
- <div class="record-item">
+ <div class="record-item" style="border: 2px solid var(--warning-color);">
<div class="record-img">
- <img th:src="@{/img/web/security/p-snap-red.jpg}" alt="鐑垚鍍忚棰戣褰�">
+ <img id="record-img2" th:src="@{/img/web/security/p-snap.jpg}">
</div>
<div class="record-info">
- <div class="record-name">绮粨1鍙�</div>
- <div class="record-time">2025-12-03 10:00</div>
+ <div class="record-name">杩囩▼鎶撴媿2</div>
+ <div id="file-time2" class="record-time">2025-12-03 10:00</div>
</div>
</div>
<!-- 寮傚父浜嬩欢璁板綍 -->
<div class="record-item" style="border: 2px solid var(--warning-color);">
<div class="record-img">
- <img th:src="@{/img/web/security/p-snap.jpg}" alt="寮傚父浜嬩欢璁板綍">
+ <img id="record-img3" th:src="@{/img/web/security/p-snap.jpg}">
</div>
<div class="record-info">
- <div class="record-name">绮粨3鍙�</div>
- <div class="record-time">2025-12-03 14:20</div>
+ <div class="record-name">杩囩▼鎶撴媿3</div>
+ <div id="file-time3" class="record-time">2025-12-03 14:20</div>
</div>
</div>
<!-- 鐑垚鍍忚棰戣褰� -->
- <div class="record-item">
+ <div class="record-item" style="border: 2px solid var(--warning-color);">
<div class="record-img">
- <img th:src="@{/img/web/security/p-snap-red.jpg}" alt="鐑垚鍍忚棰戣褰�">
+ <img id="record-img4" th:src="@{/img/web/security/p-snap.jpg}">
</div>
<div class="record-info">
- <div class="record-name">绮粨1鍙�</div>
- <div class="record-time">2025-12-03 10:00</div>
+ <div class="record-name">杩囩▼鎶撴媿4</div>
+ <div id="file-time4" class="record-time">2025-12-03 10:00</div>
</div>
</div>
</div>
@@ -175,43 +181,31 @@
<div class="card-body" style="max-height: 410px; overflow-y: hidden;">
<div class="alert-item accent">
<div class="alert-header">
- <div class="alert-title">妫�娴嬮噸閲忥細2590000 KG</div>
- <div class="alert-time">2025-12-07 10:00</div>
+ <div class="alert-title" id="record_title1">妫�娴嬮噸閲忥細---- KG</div>
+ <div class="alert-time" id="record_time1">----</div>
</div>
- <div class="alert-content">妫�娴嬮噸閲忎负2590000 KG锛屽疄闄呴噸閲忎负2550000 KG锛岃宸皬浜�5%銆�</div>
- <div style="text-align: right;">
- <button class="layui-btn layui-btn-xs" style="background-color: var(--primary-color);">鏌ョ湅涓夌淮娓叉煋</button>
- </div>
+ <div class="alert-content" id="record_content1">妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�</div>
</div>
<div class="alert-item">
<div class="alert-header">
- <div class="alert-title">妫�娴嬮噸閲忥細2540000 KG</div>
- <div class="alert-time">2025-12-06 10:00</div>
+ <div class="alert-title" id="record_title2">妫�娴嬮噸閲忥細---- KG</div>
+ <div class="alert-time" id="record_time2">----</div>
</div>
- <div class="alert-content">妫�娴嬮噸閲忎负2540000 KG锛屽疄闄呴噸閲忎负2550000 KG锛岃宸皬浜�5%銆�</div>
- <div style="text-align: right;">
- <button class="layui-btn layui-btn-xs" style="background-color: var(--primary-color);">鏌ョ湅涓夌淮娓叉煋</button>
+ <div class="alert-content" id="record_content2">妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�</div>
+ </div>
+ <div class="alert-item blue">
+ <div class="alert-header">
+ <div class="alert-title" id="record_title3">妫�娴嬮噸閲忥細---- KG</div>
+ <div class="alert-time" id="record_time3">----</div>
</div>
+ <div class="alert-content" id="record_content3">妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�</div>
</div>
<div class="alert-item gray">
<div class="alert-header">
- <div class="alert-title">妫�娴嬮噸閲忥細2510000 KG</div>
- <div class="alert-time">2025-12-05 10:00</div>
+ <div class="alert-title" id="record_title4">妫�娴嬮噸閲忥細---- KG</div>
+ <div class="alert-time" id="record_time4">----</div>
</div>
- <div class="alert-content">妫�娴嬮噸閲忎负2510000 KG锛屽疄闄呴噸閲忎负2550000 KG锛岃宸皬浜�5%銆�</div>
- <div style="text-align: right;">
- <button class="layui-btn layui-btn-xs" style="background-color: var(--primary-color);">鏌ョ湅涓夌淮娓叉煋</button>
- </div>
- </div>
- <div class="alert-item gray">
- <div class="alert-header">
- <div class="alert-title">妫�娴嬮噸閲忥細2560000 KG</div>
- <div class="alert-time">2025-12-04 10:00</div>
- </div>
- <div class="alert-content">妫�娴嬮噸閲忎负2560000 KG锛屽疄闄呴噸閲忎负2550000 KG锛岃宸皬浜�5%銆�</div>
- <div style="text-align: right;">
- <button class="layui-btn layui-btn-xs" style="background-color: var(--primary-color);">鏌ョ湅涓夌淮娓叉煋</button>
- </div>
+ <div class="alert-content" id="record_content4">妫�娴嬮噸閲忎负---- KG锛屽疄闄呴噸閲忎负---- KG锛岃宸皬浜�-%銆�</div>
</div>
</div>
</div>
@@ -228,15 +222,15 @@
<div class="tool-item-simple" style="height: 65px">
<div class="tool-icon-simple"><i class="layui-icon layui-icon-chart"></i></div>
<div class="tool-text">
- <div class="tool-name-simple">娓╁害鍙樺寲鏇茬嚎</div>
- <div class="tool-desc">鏌ョ湅娓╁害鍙樺寲瓒嬪娍鍒嗘瀽</div>
- </div>
+ <div class="tool-name-simple">鏁版嵁鎶ヨ〃</div>
+ <div class="tool-desc">鏌ョ湅鏁版嵁鎶ヨ〃鍒嗘瀽</div>
+ </div>--
</div>
<div class="tool-item-simple" style="height: 65px">
<div class="tool-icon-simple"><i class="layui-icon layui-icon-print"></i></div>
<div class="tool-text">
<div class="tool-name-simple">瀵煎嚭鍒嗘瀽鎶ュ憡</div>
- <div class="tool-desc">瀵煎嚭娓╁害鏁版嵁鍙婂垎鏋愮粨鏋�</div>
+ <div class="tool-desc">瀵煎嚭鏁版嵁鏁伴噺鍒嗘瀽缁撴灉</div>
</div>
</div>
</div>
--
Gitblit v1.9.3