fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SnapConfService.java
@@ -6,6 +6,7 @@ import com.fzzy.igds.domain.SnapConf; import com.fzzy.igds.mapper.SnapConfMapper; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -22,63 +23,82 @@ private SnapConfMapper snapConfMapper; /** * æ¥è¯¢æææ°æ® * æ¥è¯¢åè¡¨æ°æ® * * @param param * @author sgj * @date 2025/12/10 * @param param æ¥è¯¢åæ° * @return æ°æ®å表 */ public List<SnapConf> listAll(IgdsBaseParam param) { if (null == param) return snapConfMapper.selectList(null); QueryWrapper<SnapConf> queryWrapper = new QueryWrapper<>(); if (StringUtils.isNotEmpty(param.getName())) { queryWrapper.like("name", param.getName()); } public List<SnapConf> selectList(SnapConf param) { QueryWrapper<SnapConf> queryWrapper = getQueryWrapper(param); return snapConfMapper.selectList(queryWrapper); } /** * æ°å¢æ°æ® * å°è£ æ¥è¯¢æ¡ä»¶ * * @param snapConf * @author sgj * @date 2025/12/10 * @param param æ¥è¯¢åæ° * @return æ¥è¯¢æé å¨ */ public BaseResp addData(SnapConf snapConf) { snapConf.setId(ContextUtil.generateId()); snapConf.setCompanyId(ContextUtil.getCompanyId()); snapConf.setUpdateBy(ContextUtil.getLoginUserName()); snapConf.setUpdateTime(new Date()); snapConf.setCreateBy(ContextUtil.getLoginUserName()); snapConf.setCreateTime(new Date()); return snapConfMapper.insert(snapConf) > 0 ? BaseResp.success() : BaseResp.error("æ·»å 失败"); public QueryWrapper<SnapConf> getQueryWrapper(SnapConf param) { QueryWrapper<SnapConf> queryWrapper = new QueryWrapper<>(); // è®¾ç½®å ¬å¸IDå¹¶ä½ä¸ºæ¥è¯¢æ¡ä»¶ param.setCompanyId(ContextUtil.getCompanyId()); queryWrapper.eq("company_id", param.getCompanyId()); // æå建æ¶é´ååºæåº queryWrapper.orderByDesc("create_time"); return queryWrapper; } /** * æ´æ°æ°æ® * æ ¹æ®IDæ¥è¯¢è¯¦æ * * @param snapConf * @author sgj * @date 2025/12/10 * @param id 主é®ID * @return å®ä½å¯¹è±¡ */ public BaseResp updateData(SnapConf snapConf) { snapConf.setUpdateBy(ContextUtil.getLoginUserName()); snapConf.setUpdateTime(new Date()); return snapConfMapper.updateById(snapConf) > 0 ? BaseResp.success() : BaseResp.error("æ´æ°å¤±è´¥"); public SnapConf selectById(String id) { return snapConfMapper.selectById(id); } /** * å 餿°æ® * æå ¥æ°æ°æ® * * @param snapConf * @author sgj * @date 2025/12/10 * @param param æ°æ®å®ä½ * @return å½±åè¡æ° */ public BaseResp deleteData(SnapConf snapConf) { return snapConfMapper.deleteById(snapConf) > 0 ? BaseResp.success() : BaseResp.error("å é¤å¤±è´¥"); public int insertData(SnapConf param) { param.setId(ContextUtil.generateId()); param.setCompanyId(ContextUtil.getCompanyId()); param.setUpdateBy(ContextUtil.getLoginUserName()); param.setUpdateTime(new Date()); param.setCreateBy(ContextUtil.getLoginUserName()); param.setCreateTime(new Date()); return snapConfMapper.insert(param); } /** * æ´æ°å·²ææ°æ® * * @param param æ°æ®å®ä½ * @return å½±åè¡æ° */ public int updateData(SnapConf param) { param.setUpdateBy(ContextUtil.getLoginUserName()); param.setUpdateTime(new Date()); return snapConfMapper.updateById(param); } /** * å 餿å®IDçæ°æ® * * @param ids è¦å é¤çè®°å½IDéåï¼éå·åéï¼ */ public void deleteDataById(String ids) { String[] recordIds = Convert.toStrArray(ids); for (String recordId : recordIds) { snapConfMapper.deleteById(recordId); } } } fzzy-igdss-view/src/main/java/com/fzzy/igds/SnapConf.view.xml
ÎļþÒÑɾ³ý fzzy-igdss-view/src/main/java/com/fzzy/igds/SnapConfPR.java
ÎļþÒÑɾ³ý fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SnapConfController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,136 @@ package com.fzzy.sys.controller.security; import com.fzzy.igds.domain.SnapConf; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.sys.manager.security.SnapConfManager; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Date; import java.util.List; @Controller @RequestMapping("/security/snap/snapConf") public class SnapConfController extends BaseController { private static final String prefix = "security/snap/snapConf"; @Resource private SnapConfManager snapConfManager; /** * ææé ç½®é¡µé¢ */ @GetMapping() public String snapConf() { return prefix + "/snapConf"; } /** * æ¥è¯¢ææé ç½®å表 */ @PostMapping("/list") @ResponseBody public TableDataInfo list(SnapConf param) { if (null == param.getCompanyId()) { param.setCompanyId(ShiroUtils.getLoginUserCompanyId()); } startPage(); List<SnapConf> list = snapConfManager.selectList(param); return getDataTable(list); } /** * å¯¼åºææé ç½®å表 */ @Log(title = "ææé 置管ç", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody public AjaxResult export(SnapConf param) { if (null == param.getCompanyId()) { param.setCompanyId(ShiroUtils.getLoginUserCompanyId()); } List<SnapConf> list = snapConfManager.selectList(param); ExcelUtil<SnapConf> util = new ExcelUtil<>(SnapConf.class); return util.exportExcel(list, "ææé ç½®æ°æ®"); } /** * æ°å¢ææé ç½®é¡µé¢ */ @GetMapping("/add") public String add(ModelMap mmap) { return prefix + "/add"; } /** * æ°å¢ææé ç½®æ°æ® */ @Log(title = "ææé 置管ç", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(@Validated SnapConf param) { if (null == param.getCompanyId()) { param.setCompanyId(ShiroUtils.getLoginUserCompanyId()); } param.setCreateBy(getLoginName()); param.setCreateTime(new Date()); if (StringUtils.isEmpty(param.getId())) { param.setId(ContextUtil.generateId()); } return toAjax(snapConfManager.insertData(param)); } /** * ä¿®æ¹ææé ç½®é¡µé¢ */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") String id, ModelMap mmap) { SnapConf record = snapConfManager.selectById(id); mmap.put("snapConf", record); return prefix + "/edit"; } /** * ä¿®æ¹ææé ç½®æ°æ® */ @Log(title = "ææé 置管ç", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(@Validated SnapConf param) { if (null == param.getCompanyId()) { param.setCompanyId(ShiroUtils.getLoginUserCompanyId()); } param.setUpdateBy(getLoginName()); param.setUpdateTime(new Date()); SnapConf snapConf = snapConfManager.selectById(param.getId()); if (snapConf == null) { param.setId(ContextUtil.generateId()); return toAjax(snapConfManager.insertData(param)); } return toAjax(snapConfManager.updateData(param)); } /** * å 餿æé ç½®æ°æ® */ @Log(title = "ææé 置管ç", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { snapConfManager.deleteDataById(ids); return success(); } } fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SnapConfManager.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ package com.fzzy.sys.manager.security; import com.fzzy.igds.domain.SnapConf; import com.fzzy.igds.service.SnapConfService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; @Slf4j @Component public class SnapConfManager { @Resource private SnapConfService snapConfService; /** * æ¥è¯¢æ°æ® * * @param param æ¥è¯¢åæ° * @return æ°æ®å表 */ public List<SnapConf> selectList(SnapConf param) { return snapConfService.selectList(param); } /** * æ ¹æ®IDæ¥è¯¢æ°æ® * * @param id 主é®ID * @return SnapConfå®ä½å¯¹è±¡ */ public SnapConf selectById(String id) { return snapConfService.selectById(id); } /** * æå ¥æ°æ® * * @param param æ°æ®å®ä½ * @return å½±åè¡æ° */ public int insertData(SnapConf param) { return snapConfService.insertData(param); } /** * æ´æ°æ°æ® * * @param param æ°æ®å®ä½ * @return å½±åè¡æ° */ public int updateData(SnapConf param) { return snapConfService.updateData(param); } /** * å 餿°æ® * * @param ids è¦å é¤çè®°å½IDéåï¼éå·åéï¼ */ public void deleteDataById(String ids) { snapConfService.deleteDataById(ids); } } fzzy-igdss-web/src/main/resources/static/security/snap/snapRecord.js
@@ -288,6 +288,6 @@ }); } function openConf() { var url = ctx + "com.fzzy.igds.SnapConf.d"; var url = ctx + "security/snap/snapConf"; $.modal.openTab("ææé ç½®", url); } fzzy-igdss-web/src/main/resources/templates/security/patrol/patrolConf/patrolConf.html
@@ -24,16 +24,16 @@ </div> <div class="btn-group-sm" id="toolbar" role="group"> <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="web:security:patrol:patrolConf:add"> <a class="btn btn-success" onclick="$.operate.add()" > <i class="fa fa-plus"></i> æ°å¢ </a> <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="web:security:patrol:patrolConf:edit"> <a class="btn btn-primary single disabled" onclick="$.operate.edit()" > <i class="fa fa-edit"></i> ä¿®æ¹ </a> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="web:security:patrol:patrolConf:remove"> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" > <i class="fa fa-remove"></i> å é¤ </a> <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="web:security:patrol:patrolConf:export"> <a class="btn btn-warning" onclick="$.table.exportExcel()" > <i class="fa fa-download"></i> å¯¼åº </a> </div> @@ -45,8 +45,6 @@ <th:block th:include="include :: footer" /> <th:block th:include="include :: select2-js" /> <script th:inline="javascript"> var editFlag = [[${@permission.hasPermi('web:security:patrol:patrolConf:edit')}]]; var removeFlag = [[${@permission.hasPermi('web:security:patrol:patrolConf:remove')}]]; var prefix = ctx + "security/patrol/patrolConf"; $(function() { @@ -88,8 +86,8 @@ align: 'center', formatter: function(value, row, index) { var actions = []; actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.batchId + '\')"><i class="fa fa-edit"></i>ç¼è¾</a> '); actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.batchId + '\')"><i class="fa fa-remove"></i>å é¤</a>'); actions.push('<a class="btn btn-success btn-xs ' + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.batchId + '\')"><i class="fa fa-edit"></i>ç¼è¾</a> '); actions.push('<a class="btn btn-danger btn-xs ' + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.batchId + '\')"><i class="fa fa-remove"></i>å é¤</a>'); return actions.join(''); } }] fzzy-igdss-web/src/main/resources/templates/security/snap/snapConf/add.html
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,85 @@ <!DOCTYPE html> <html lang="zh" xmlns:th="http://www.thymeleaf.org"> <head> <th:block th:include="include :: header('æ°å¢ææé ç½®')"/> <th:block th:include="include :: select2-css"/> </head> <body> <div class="main-content"> <form id="form-snap-add" class="form-horizontal"> <input name="deptId" type="hidden" id="treeId"/> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æå±åºåºï¼</label> <div class="col-sm-8"> <input name="deptId" id="deptId" placeholder="请è¾å ¥æå±åºåº" class="form-control" type="text" maxlength="40"> </div> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">ææçæ§ï¼</label> <div class="col-sm-8"> <input name="cameraId" id="cameraId" placeholder="请è¾å ¥ææçæ§ID" class="form-control" type="text" maxlength="40"> </div> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æ§è¡æ¶é´1ï¼å°æ¶ï¼ï¼</label> <div class="col-sm-8"> <input name="actHour1" id="actHour1" placeholder="请è¾å ¥æ§è¡æ¶é´1" class="form-control" type="number" min="0" max="23"> </div> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æ§è¡æ¶é´2ï¼å°æ¶ï¼ï¼</label> <div class="col-sm-8"> <input name="actHour2" id="actHour2" placeholder="请è¾å ¥æ§è¡æ¶é´2" class="form-control" type="number" min="0" max="23"> </div> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æ§è¡æ¶é´3ï¼å°æ¶ï¼ï¼</label> <div class="col-sm-8"> <input name="actHour3" id="actHour3" placeholder="请è¾å ¥æ§è¡æ¶é´3" class="form-control" type="number" min="0" max="23"> </div> </div> </div> </div> </form> </div> <th:block th:include="include :: footer"/> <th:block th:include="include :: select2-js"/> <script> var prefix = ctx + "security/snap/snapConf"; $("#form-snap-add").validate({ onkeyup: false, rules: {}, messages: {}, focusCleanup: true }); // ç¡®å®æé® æäº¤æ°æ® function submitHandler() { if ($.validate.form()) { $.operate.save(prefix + "/add", $('#form-snap-add').serialize()); } } </script> </body> </html> fzzy-igdss-web/src/main/resources/templates/security/snap/snapConf/edit.html
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ <!DOCTYPE html> <html lang="zh" xmlns:th="http://www.thymeleaf.org"> <head> <th:block th:include="include :: header('ä¿®æ¹ææé ç½®')"/> <th:block th:include="include :: select2-css"/> </head> <body class="white-bg"> <div class="wrapper wrapper-content animated fadeInRight ibox-content"> <form class="form-horizontal m" id="form-snap-edit" th:object="${snapConf}"> <input id="id" name="id" th:field="*{id}" type="hidden"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æå±åºåºï¼</label> <div class="col-sm-8"> <input name="deptId" id="deptId" th:field="*{deptId}" placeholder="请è¾å ¥æå±åºåº" class="form-control" type="text" maxlength="40"> </div> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">ææçæ§ï¼</label> <div class="col-sm-8"> <input name="cameraId" id="cameraId" th:field="*{cameraId}" placeholder="请è¾å ¥ææçæ§ID" class="form-control" type="text" maxlength="40"> </div> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æ§è¡æ¶é´1ï¼å°æ¶ï¼ï¼</label> <div class="col-sm-8"> <input name="actHour1" id="actHour1" th:field="*{actHour1}" placeholder="请è¾å ¥æ§è¡æ¶é´1" class="form-control" type="number" min="0" max="23"> </div> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æ§è¡æ¶é´2ï¼å°æ¶ï¼ï¼</label> <div class="col-sm-8"> <input name="actHour2" id="actHour2" th:field="*{actHour2}" placeholder="请è¾å ¥æ§è¡æ¶é´2" class="form-control" type="number" min="0" max="23"> </div> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label class="col-sm-4 control-label">æ§è¡æ¶é´3ï¼å°æ¶ï¼ï¼</label> <div class="col-sm-8"> <input name="actHour3" id="actHour3" th:field="*{actHour3}" placeholder="请è¾å ¥æ§è¡æ¶é´3" class="form-control" type="number" min="0" max="23"> </div> </div> </div> </div> </form> </div> <th:block th:include="include :: footer"/> <th:block th:include="include :: select2-js"/> <script type="text/javascript"> var prefix = ctx + "security/snap/snapConf"; $("#form-snap-edit").validate({ onkeyup: false, rules: {}, messages: {}, focusCleanup: true }); function submitHandler() { if ($.validate.form()) { $.operate.save(prefix + "/edit", $('#form-snap-edit').serialize()); } } </script> </body> </html> fzzy-igdss-web/src/main/resources/templates/security/snap/snapConf/snapConf.html
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,92 @@ <!DOCTYPE html> <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <head> <th:block th:include="include :: header('å¿«æé ç½®å表')" /> <th:block th:include="include :: select2-css" /> </head> <body class="gray-bg"> <div class="container-div"> <div class="row"> <div class="col-sm-12 search-collapse"> <form id="property-form"> <div class="select-list"> <ul> <li> åç§°ï¼<input type="text" name="name"/> </li> <li> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> æç´¢</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> éç½®</a> </li> </ul> </div> </form> </div> <div class="btn-group-sm" id="toolbar" role="group"> <a class="btn btn-success" onclick="$.operate.add()" > <i class="fa fa-plus"></i> æ°å¢ </a> <a class="btn btn-primary single disabled" onclick="$.operate.edit()" > <i class="fa fa-edit"></i> ä¿®æ¹ </a> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" > <i class="fa fa-remove"></i> å é¤ </a> <a class="btn btn-warning" onclick="$.table.exportExcel()" > <i class="fa fa-download"></i> å¯¼åº </a> </div> <div class="col-sm-12 select-table table-striped"> <table id="bootstrap-table"></table> </div> </div> </div> <th:block th:include="include :: footer" /> <th:block th:include="include :: select2-js" /> <script th:inline="javascript"> var prefix = ctx + "security/snap/snapConf"; $(function() { var options = { url: prefix + "/list", createUrl: prefix + "/add", updateUrl: prefix + "/edit/{id}", removeUrl: prefix + "/remove", exportUrl: prefix + "/export", sortName: "id", sortOrder: "asc", modalName: "ææé ç½®", columns: [{ checkbox: true }, { field: 'id', title: '主é®', visible: false, }, { field: 'deptId', title: 'æå±åºåº', align: 'left', }, { field: 'cameraId', title: 'ææçæ§', }, { title: 'æä½', align: 'center', formatter: function(value, row, index) { var actions = []; actions.push('<a class="btn btn-success btn-xs ' + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>ç¼è¾</a> '); actions.push('<a class="btn btn-danger btn-xs ' + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>å é¤</a>'); return actions.join(''); } }] }; $.table.init(options); }); </script> </body> </html>