From 560e679c239af089e2ba79bdbec4bac331c01b4f Mon Sep 17 00:00:00 2001
From: suerwei <18810552194@163.com>
Date: 星期四, 16 五月 2024 15:39:27 +0800
Subject: [PATCH] 人员管理、设备管理、质量管理
---
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectPersonServiceImpl.java | 101 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceLogMapper.java | 61 +
javaweb-plus/javaweb-admin/src/main/resources/application-druid.yml | 10
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceService.java | 61 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java | 120 ++
javaweb-plus/javaweb-admin/src/main/resources/application.yml | 2
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectPersonController.java | 120 ++
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/edit.html | 87 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectPerson.java | 164 ++
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceLogMapper.xml | 108 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceMapper.java | 61 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/add.html | 86 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/edit.html | 54
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceController.java | 119 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java | 102 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/add.html | 53
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/deviceLog.html | 145 ++
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Device.java | 150 ++
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectDataMapper.xml | 106 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceLogService.java | 61 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/device.html | 139 ++
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/add.html | 57
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/edit.html | 76 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/navigate.html | 43
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html | 128 ++
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java | 96 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/edit.html | 58
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectData.java | 137 ++
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectPersonMapper.xml | 114 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectDataMapper.java | 61 +
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceMapper.xml | 91 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectPersonMapper.java | 61 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/DeviceLog.java | 190 +++
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/projectPerson.html | 122 ++
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java | 118 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectPersonService.java | 61 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceServiceImpl.java | 102 +
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/add.html | 75 +
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectDataService.java | 61 +
39 files changed, 3,535 insertions(+), 26 deletions(-)
diff --git a/javaweb-plus/javaweb-admin/src/main/resources/application-druid.yml b/javaweb-plus/javaweb-admin/src/main/resources/application-druid.yml
index 9c1e3e8..229ae68 100644
--- a/javaweb-plus/javaweb-admin/src/main/resources/application-druid.yml
+++ b/javaweb-plus/javaweb-admin/src/main/resources/application-druid.yml
@@ -6,12 +6,12 @@
druid:
# 涓诲簱鏁版嵁婧�
master:
- url: jdbc:mysql://localhost:3306/chenjiang?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
- username: root
- password: 123456
-# url: jdbc:mysql://117.78.1.188:8979/jianguan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+# url: jdbc:mysql://localhost:3306/chenjiang?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# username: root
-# password: 0a6a0fca362f482bb42950be47237946Aa@
+# password: 123456
+ url: jdbc:mysql://117.78.1.188:8979/chenjiang?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: root
+ password: 0a6a0fca362f482bb42950be47237946Aa@
# 浠庡簱鏁版嵁婧�
slave:
# 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
diff --git a/javaweb-plus/javaweb-admin/src/main/resources/application.yml b/javaweb-plus/javaweb-admin/src/main/resources/application.yml
index 5ff8137..aea707c 100644
--- a/javaweb-plus/javaweb-admin/src/main/resources/application.yml
+++ b/javaweb-plus/javaweb-admin/src/main/resources/application.yml
@@ -9,7 +9,7 @@
# 瀹炰緥婕旂ず寮�鍏�
demoEnabled: true
# 鏂囦欢璺緞 绀轰緥
- profile: D:\dkyWeb\uploads
+ profile: D:\ChenjiangWeb\uploads
# 鑾峰彇ip鍦板潃寮�鍏�
addressEnabled: false
#铏氭嫙鏂囦欢涓婁紶璺緞
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceController.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceController.java
new file mode 100644
index 0000000..aa87dc1
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceController.java
@@ -0,0 +1,119 @@
+package com.javaweb.geo.controller;
+
+import java.util.List;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.javaweb.common.annotation.Log;
+import com.javaweb.common.enums.BusinessType;
+import com.javaweb.geo.domain.Device;
+import com.javaweb.geo.service.IDeviceService;
+import com.javaweb.common.core.controller.BaseController;
+import com.javaweb.common.core.domain.AjaxResult;
+import com.javaweb.common.utils.poi.ExcelUtil;
+import com.javaweb.common.core.page.TableDataInfo;
+
+/**
+ * 璁惧搴揅ontroller
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Controller
+@RequestMapping("/geo/device")
+public class DeviceController extends BaseController {
+ private String prefix = "geo/device";
+
+ @Autowired
+ private IDeviceService deviceService;
+
+ @RequiresPermissions("geo:device:view")
+ @GetMapping()
+ public String device(String id, ModelMap mmap) {
+ mmap.put("projectId", id);
+ return prefix + "/device";
+ }
+
+ /**
+ * 鏌ヨ璁惧搴撳垪琛�
+ */
+ @RequiresPermissions("geo:device:list")
+ @PostMapping("/list")
+ @ResponseBody
+ public TableDataInfo list(Device device) {
+ startPage();
+ List<Device> list = deviceService.selectDeviceList(device);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭璁惧搴撳垪琛�
+ */
+ @RequiresPermissions("geo:device:export")
+ @Log(title = "璁惧搴�", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ @ResponseBody
+ public AjaxResult export(Device device) {
+ List<Device> list = deviceService.selectDeviceList(device);
+ ExcelUtil<Device> util = new ExcelUtil<Device>(Device.class);
+ return util.exportExcel(list, "device");
+ }
+
+ /**
+ * 鏂板璁惧搴�
+ */
+ @GetMapping("/add")
+ public String add() {
+ return prefix + "/add";
+ }
+
+ /**
+ * 鏂板淇濆瓨璁惧搴�
+ */
+ @RequiresPermissions("geo:device:add")
+ @Log(title = "璁惧搴�", businessType = BusinessType.INSERT)
+ @PostMapping("/add")
+ @ResponseBody
+ public AjaxResult addSave(Device device) {
+ return toAjax(deviceService.insertDevice(device));
+ }
+
+ /**
+ * 淇敼璁惧搴�
+ */
+ @GetMapping("/edit/{id}")
+ public String edit(@PathVariable("id") String id, ModelMap mmap) {
+ Device device = deviceService.selectDeviceById(id);
+ mmap.put("device", device);
+ return prefix + "/edit";
+ }
+
+ /**
+ * 淇敼淇濆瓨璁惧搴�
+ */
+ @RequiresPermissions("geo:device:edit")
+ @Log(title = "璁惧搴�", businessType = BusinessType.UPDATE)
+ @PostMapping("/edit")
+ @ResponseBody
+ public AjaxResult editSave(Device device) {
+ return toAjax(deviceService.updateDevice(device));
+ }
+
+ /**
+ * 鍒犻櫎璁惧搴�
+ */
+ @RequiresPermissions("geo:device:remove")
+ @Log(title = "璁惧搴�", businessType = BusinessType.DELETE)
+ @PostMapping("/remove")
+ @ResponseBody
+ public AjaxResult remove(String ids) {
+ return toAjax(deviceService.deleteDeviceByIds(ids));
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java
new file mode 100644
index 0000000..8e1a447
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java
@@ -0,0 +1,118 @@
+package com.javaweb.geo.controller;
+
+import java.util.List;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.javaweb.common.annotation.Log;
+import com.javaweb.common.enums.BusinessType;
+import com.javaweb.geo.domain.DeviceLog;
+import com.javaweb.geo.service.IDeviceLogService;
+import com.javaweb.common.core.controller.BaseController;
+import com.javaweb.common.core.domain.AjaxResult;
+import com.javaweb.common.utils.poi.ExcelUtil;
+import com.javaweb.common.core.page.TableDataInfo;
+
+/**
+ * 璁惧鍑哄叆搴撹褰旵ontroller
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Controller
+@RequestMapping("/geo/deviceLog")
+public class DeviceLogController extends BaseController {
+ private String prefix = "geo/deviceLog";
+
+ @Autowired
+ private IDeviceLogService deviceLogService;
+
+ @RequiresPermissions("geo:deviceLog:view")
+ @GetMapping()
+ public String deviceLog() {
+ return prefix + "/deviceLog";
+ }
+
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰曞垪琛�
+ */
+ @RequiresPermissions("geo:deviceLog:list")
+ @PostMapping("/list")
+ @ResponseBody
+ public TableDataInfo list(DeviceLog deviceLog) {
+ startPage();
+ List<DeviceLog> list = deviceLogService.selectDeviceLogList(deviceLog);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭璁惧鍑哄叆搴撹褰曞垪琛�
+ */
+ @RequiresPermissions("geo:deviceLog:export")
+ @Log(title = "璁惧鍑哄叆搴撹褰�", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ @ResponseBody
+ public AjaxResult export(DeviceLog deviceLog) {
+ List<DeviceLog> list = deviceLogService.selectDeviceLogList(deviceLog);
+ ExcelUtil<DeviceLog> util = new ExcelUtil<DeviceLog>(DeviceLog.class);
+ return util.exportExcel(list, "deviceLog");
+ }
+
+ /**
+ * 鏂板璁惧鍑哄叆搴撹褰�
+ */
+ @GetMapping("/add")
+ public String add() {
+ return prefix + "/add";
+ }
+
+ /**
+ * 鏂板淇濆瓨璁惧鍑哄叆搴撹褰�
+ */
+ @RequiresPermissions("geo:deviceLog:add")
+ @Log(title = "璁惧鍑哄叆搴撹褰�", businessType = BusinessType.INSERT)
+ @PostMapping("/add")
+ @ResponseBody
+ public AjaxResult addSave(DeviceLog deviceLog) {
+ return toAjax(deviceLogService.insertDeviceLog(deviceLog));
+ }
+
+ /**
+ * 淇敼璁惧鍑哄叆搴撹褰�
+ */
+ @GetMapping("/edit/{id}")
+ public String edit(@PathVariable("id") String id, ModelMap mmap) {
+ DeviceLog deviceLog = deviceLogService.selectDeviceLogById(id);
+ mmap.put("deviceLog", deviceLog);
+ return prefix + "/edit";
+ }
+
+ /**
+ * 淇敼淇濆瓨璁惧鍑哄叆搴撹褰�
+ */
+ @RequiresPermissions("geo:deviceLog:edit")
+ @Log(title = "璁惧鍑哄叆搴撹褰�", businessType = BusinessType.UPDATE)
+ @PostMapping("/edit")
+ @ResponseBody
+ public AjaxResult editSave(DeviceLog deviceLog) {
+ return toAjax(deviceLogService.updateDeviceLog(deviceLog));
+ }
+
+ /**
+ * 鍒犻櫎璁惧鍑哄叆搴撹褰�
+ */
+ @RequiresPermissions("geo:deviceLog:remove")
+ @Log(title = "璁惧鍑哄叆搴撹褰�", businessType = BusinessType.DELETE)
+ @PostMapping("/remove")
+ @ResponseBody
+ public AjaxResult remove(String ids) {
+ return toAjax(deviceLogService.deleteDeviceLogByIds(ids));
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java
new file mode 100644
index 0000000..c7f6597
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java
@@ -0,0 +1,120 @@
+package com.javaweb.geo.controller;
+
+import java.util.List;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.javaweb.common.annotation.Log;
+import com.javaweb.common.enums.BusinessType;
+import com.javaweb.geo.domain.ProjectData;
+import com.javaweb.geo.service.IProjectDataService;
+import com.javaweb.common.core.controller.BaseController;
+import com.javaweb.common.core.domain.AjaxResult;
+import com.javaweb.common.utils.poi.ExcelUtil;
+import com.javaweb.common.core.page.TableDataInfo;
+
+/**
+ * 椤圭洰璧勬枡Controller
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Controller
+@RequestMapping("/geo/projectData")
+public class ProjectDataController extends BaseController {
+ private String prefix = "geo/projectData";
+
+ @Autowired
+ private IProjectDataService projectDataService;
+
+ @RequiresPermissions("geo:projectData:view")
+ @GetMapping()
+ public String projectData(String id, String type, ModelMap mmap) {
+ mmap.put("projectId", id);
+ mmap.put("type", type);
+ return prefix + "/projectData";
+ }
+
+ /**
+ * 鏌ヨ椤圭洰璧勬枡鍒楄〃
+ */
+ @RequiresPermissions("geo:projectData:list")
+ @PostMapping("/list")
+ @ResponseBody
+ public TableDataInfo list(ProjectData projectData) {
+ startPage();
+ List<ProjectData> list = projectDataService.selectProjectDataList(projectData);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭椤圭洰璧勬枡鍒楄〃
+ */
+ @RequiresPermissions("geo:projectData:export")
+ @Log(title = "椤圭洰璧勬枡", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ @ResponseBody
+ public AjaxResult export(ProjectData projectData) {
+ List<ProjectData> list = projectDataService.selectProjectDataList(projectData);
+ ExcelUtil<ProjectData> util = new ExcelUtil<ProjectData>(ProjectData.class);
+ return util.exportExcel(list, "projectData");
+ }
+
+ /**
+ * 鏂板椤圭洰璧勬枡
+ */
+ @GetMapping("/add")
+ public String add() {
+ return prefix + "/add";
+ }
+
+ /**
+ * 鏂板淇濆瓨椤圭洰璧勬枡
+ */
+ @RequiresPermissions("geo:projectData:add")
+ @Log(title = "椤圭洰璧勬枡", businessType = BusinessType.INSERT)
+ @PostMapping("/add")
+ @ResponseBody
+ public AjaxResult addSave(ProjectData projectData) {
+ return toAjax(projectDataService.insertProjectData(projectData));
+ }
+
+ /**
+ * 淇敼椤圭洰璧勬枡
+ */
+ @GetMapping("/edit/{id}")
+ public String edit(@PathVariable("id") String id, ModelMap mmap) {
+ ProjectData projectData = projectDataService.selectProjectDataById(id);
+ mmap.put("projectData", projectData);
+ return prefix + "/edit";
+ }
+
+ /**
+ * 淇敼淇濆瓨椤圭洰璧勬枡
+ */
+ @RequiresPermissions("geo:projectData:edit")
+ @Log(title = "椤圭洰璧勬枡", businessType = BusinessType.UPDATE)
+ @PostMapping("/edit")
+ @ResponseBody
+ public AjaxResult editSave(ProjectData projectData) {
+ return toAjax(projectDataService.updateProjectData(projectData));
+ }
+
+ /**
+ * 鍒犻櫎椤圭洰璧勬枡
+ */
+ @RequiresPermissions("geo:projectData:remove")
+ @Log(title = "椤圭洰璧勬枡", businessType = BusinessType.DELETE)
+ @PostMapping("/remove")
+ @ResponseBody
+ public AjaxResult remove(String ids) {
+ return toAjax(projectDataService.deleteProjectDataByIds(ids));
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectPersonController.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectPersonController.java
new file mode 100644
index 0000000..cee23fd
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectPersonController.java
@@ -0,0 +1,120 @@
+package com.javaweb.geo.controller;
+
+import java.util.List;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.javaweb.common.annotation.Log;
+import com.javaweb.common.enums.BusinessType;
+import com.javaweb.geo.domain.ProjectPerson;
+import com.javaweb.geo.service.IProjectPersonService;
+import com.javaweb.common.core.controller.BaseController;
+import com.javaweb.common.core.domain.AjaxResult;
+import com.javaweb.common.utils.poi.ExcelUtil;
+import com.javaweb.common.core.page.TableDataInfo;
+
+/**
+ * 椤圭洰浜哄憳Controller
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Controller
+@RequestMapping("/geo/projectPerson")
+public class ProjectPersonController extends BaseController {
+
+ private String prefix = "geo/projectPerson";
+
+ @Autowired
+ private IProjectPersonService projectPersonService;
+
+ @RequiresPermissions("geo:projectPerson:view")
+ @GetMapping()
+ public String projectPerson(String id, ModelMap mmap) {
+ mmap.put("projectId", id);
+ return prefix + "/projectPerson";
+ }
+
+ /**
+ * 鏌ヨ椤圭洰浜哄憳鍒楄〃
+ */
+ @RequiresPermissions("geo:projectPerson:list")
+ @PostMapping("/list")
+ @ResponseBody
+ public TableDataInfo list(ProjectPerson projectPerson) {
+ startPage();
+ List<ProjectPerson> list = projectPersonService.selectProjectPersonList(projectPerson);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭椤圭洰浜哄憳鍒楄〃
+ */
+ @RequiresPermissions("geo:projectPerson:export")
+ @Log(title = "椤圭洰浜哄憳", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ @ResponseBody
+ public AjaxResult export(ProjectPerson projectPerson) {
+ List<ProjectPerson> list = projectPersonService.selectProjectPersonList(projectPerson);
+ ExcelUtil<ProjectPerson> util = new ExcelUtil<ProjectPerson>(ProjectPerson.class);
+ return util.exportExcel(list, "projectPerson");
+ }
+
+ /**
+ * 鏂板椤圭洰浜哄憳
+ */
+ @GetMapping("/add")
+ public String add() {
+ return prefix + "/add";
+ }
+
+ /**
+ * 鏂板淇濆瓨椤圭洰浜哄憳
+ */
+ @RequiresPermissions("geo:projectPerson:add")
+ @Log(title = "椤圭洰浜哄憳", businessType = BusinessType.INSERT)
+ @PostMapping("/add")
+ @ResponseBody
+ public AjaxResult addSave(ProjectPerson projectPerson) {
+ return toAjax(projectPersonService.insertProjectPerson(projectPerson));
+ }
+
+ /**
+ * 淇敼椤圭洰浜哄憳
+ */
+ @GetMapping("/edit/{ids}")
+ public String edit(@PathVariable("ids") String ids, ModelMap mmap) {
+ ProjectPerson projectPerson = projectPersonService.selectProjectPersonById(ids);
+ mmap.put("projectPerson", projectPerson);
+ return prefix + "/edit";
+ }
+
+ /**
+ * 淇敼淇濆瓨椤圭洰浜哄憳
+ */
+ @RequiresPermissions("geo:projectPerson:edit")
+ @Log(title = "椤圭洰浜哄憳", businessType = BusinessType.UPDATE)
+ @PostMapping("/edit")
+ @ResponseBody
+ public AjaxResult editSave(ProjectPerson projectPerson) {
+ return toAjax(projectPersonService.updateProjectPerson(projectPerson));
+ }
+
+ /**
+ * 鍒犻櫎椤圭洰浜哄憳
+ */
+ @RequiresPermissions("geo:projectPerson:remove")
+ @Log(title = "椤圭洰浜哄憳", businessType = BusinessType.DELETE)
+ @PostMapping("/remove")
+ @ResponseBody
+ public AjaxResult remove(String ids) {
+ return toAjax(projectPersonService.deleteProjectPersonByIds(ids));
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Device.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Device.java
new file mode 100644
index 0000000..a72aa2e
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Device.java
@@ -0,0 +1,150 @@
+package com.javaweb.geo.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.javaweb.common.annotation.Excel;
+import com.javaweb.common.core.domain.BaseEntity;
+import java.util.Date;
+
+/**
+ * 璁惧搴撳璞� js_device
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public class Device extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 涓婚敭 */
+ private String id;
+
+ /** 璁惧缂栧彿 */
+ @Excel(name = "璁惧缂栧彿")
+ private String code;
+
+ /** 鍚嶅瓧 */
+ @Excel(name = "鍚嶅瓧")
+ private String name;
+
+ /** 鍨嬪彿 */
+ @Excel(name = "鍨嬪彿")
+ private String type;
+
+ /** 鐢熶骇鍟� */
+ @Excel(name = "鐢熶骇鍟�")
+ private String manufacturer;
+
+ /** 璐拱鏃ユ湡 */
+ @Excel(name = "璐拱鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date buyDate;
+
+ /** 浠锋牸 */
+ @Excel(name = "浠锋牸")
+ private Double price;
+
+ /** 璁惧鐘舵�� */
+ @Excel(name = "璁惧鐘舵��")
+ private String status;
+
+ /** 瀛樻斁浣嶇疆 */
+ @Excel(name = "瀛樻斁浣嶇疆")
+ private String storageAddress;
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+ public void setCode(String code)
+ {
+ this.code = code;
+ }
+
+ public String getCode()
+ {
+ return code;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+ public void setManufacturer(String manufacturer)
+ {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturer()
+ {
+ return manufacturer;
+ }
+ public void setBuyDate(Date buyDate)
+ {
+ this.buyDate = buyDate;
+ }
+
+ public Date getBuyDate()
+ {
+ return buyDate;
+ }
+ public void setPrice(Double price)
+ {
+ this.price = price;
+ }
+
+ public Double getPrice()
+ {
+ return price;
+ }
+ public void setStatus(String status)
+ {
+ this.status = status;
+ }
+
+ public String getStatus()
+ {
+ return status;
+ }
+ public void setStorageAddress(String storageAddress)
+ {
+ this.storageAddress = storageAddress;
+ }
+
+ public String getStorageAddress()
+ {
+ return storageAddress;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("code", getCode())
+ .append("name", getName())
+ .append("type", getType())
+ .append("manufacturer", getManufacturer())
+ .append("buyDate", getBuyDate())
+ .append("price", getPrice())
+ .append("status", getStatus())
+ .append("storageAddress", getStorageAddress())
+ .toString();
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/DeviceLog.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/DeviceLog.java
new file mode 100644
index 0000000..fa47aca
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/DeviceLog.java
@@ -0,0 +1,190 @@
+package com.javaweb.geo.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.javaweb.common.annotation.Excel;
+import com.javaweb.common.core.domain.BaseEntity;
+import java.util.Date;
+
+/**
+ * 璁惧鍑哄叆搴撹褰曞璞� js_device_log
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public class DeviceLog extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 涓婚敭 */
+ private String id;
+
+ /** 鍑哄叆搴撳崟瀛愬彿 */
+ @Excel(name = "鍑哄叆搴撳崟瀛愬彿")
+ private String code;
+
+ /** 椤圭洰id */
+ private String projectId;
+
+ /** 椤圭洰鍚嶇О */
+ @Excel(name = "椤圭洰鍚嶇О")
+ private String projectName;
+
+ /** 璁惧id */
+ private String deviceId;
+
+ /** 璁惧鍚嶇О */
+ @Excel(name = "璁惧鍚嶇О")
+ private String deviceName;
+
+ /** 鍑哄叆搴撶被鍨嬶紙in /out锛� */
+ @Excel(name = "鍑哄叆搴撶被鍨�", readConverterExp = "i=n,/=out")
+ private String type;
+
+ /** 鍑哄叆搴撴椂闂� */
+ @Excel(name = "鍑哄叆搴撴椂闂�")
+ private String transactionDate;
+
+ /** 缁忓姙浜� */
+ @Excel(name = "缁忓姙浜�")
+ private String optUser;
+
+ /** 浣跨敤浜� */
+ @Excel(name = "浣跨敤浜�")
+ private String applyUser;
+
+ /** 鍑哄叆搴撴暟閲� */
+ @Excel(name = "鍑哄叆搴撴暟閲�")
+ private String number;
+
+ /** 鏃堕棿 */
+ private Date createDate;
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+ public void setCode(String code)
+ {
+ this.code = code;
+ }
+
+ public String getCode()
+ {
+ return code;
+ }
+ public void setProjectId(String projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public String getProjectId()
+ {
+ return projectId;
+ }
+ public void setProjectName(String projectName)
+ {
+ this.projectName = projectName;
+ }
+
+ public String getProjectName()
+ {
+ return projectName;
+ }
+ public void setDeviceId(String deviceId)
+ {
+ this.deviceId = deviceId;
+ }
+
+ public String getDeviceId()
+ {
+ return deviceId;
+ }
+ public void setDeviceName(String deviceName)
+ {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceName()
+ {
+ return deviceName;
+ }
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+ public void setTransactionDate(String transactionDate)
+ {
+ this.transactionDate = transactionDate;
+ }
+
+ public String getTransactionDate()
+ {
+ return transactionDate;
+ }
+ public void setOptUser(String optUser)
+ {
+ this.optUser = optUser;
+ }
+
+ public String getOptUser()
+ {
+ return optUser;
+ }
+ public void setApplyUser(String applyUser)
+ {
+ this.applyUser = applyUser;
+ }
+
+ public String getApplyUser()
+ {
+ return applyUser;
+ }
+ public void setNumber(String number)
+ {
+ this.number = number;
+ }
+
+ public String getNumber()
+ {
+ return number;
+ }
+ public void setCreateDate(Date createDate)
+ {
+ this.createDate = createDate;
+ }
+
+ public Date getCreateDate()
+ {
+ return createDate;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("code", getCode())
+ .append("projectId", getProjectId())
+ .append("projectName", getProjectName())
+ .append("deviceId", getDeviceId())
+ .append("deviceName", getDeviceName())
+ .append("type", getType())
+ .append("transactionDate", getTransactionDate())
+ .append("optUser", getOptUser())
+ .append("applyUser", getApplyUser())
+ .append("number", getNumber())
+ .append("createDate", getCreateDate())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectData.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectData.java
new file mode 100644
index 0000000..399fd5e
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectData.java
@@ -0,0 +1,137 @@
+package com.javaweb.geo.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.javaweb.common.annotation.Excel;
+import com.javaweb.common.core.domain.BaseEntity;
+
+/**
+ * 椤圭洰璧勬枡瀵硅薄 js_project_data
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public class ProjectData extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 涓婚敭 */
+ private String id;
+
+ /** 椤圭洰id */
+ private String projectId;
+
+ /** 閽诲瓟id */
+ private String holeId;
+
+ /** 璧勬枡鍚嶇О */
+ @Excel(name = "璧勬枡鍚嶇О")
+ private String name;
+
+ /** 璧勬枡绫诲瀷 */
+ @Excel(name = "璧勬枡绫诲瀷")
+ private String dataType;
+
+ /** 璧勬枡璺緞 */
+ private String dataUrl;
+
+ /** 鏂囦欢绫诲瀷 */
+ @Excel(name = "鏂囦欢绫诲瀷")
+ private String fileType;
+
+ /** 鏍囩 */
+ @Excel(name = "鏍囩")
+ private String labels;
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+ public void setProjectId(String projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public String getProjectId()
+ {
+ return projectId;
+ }
+ public void setHoleId(String holeId)
+ {
+ this.holeId = holeId;
+ }
+
+ public String getHoleId()
+ {
+ return holeId;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setDataType(String dataType)
+ {
+ this.dataType = dataType;
+ }
+
+ public String getDataType()
+ {
+ return dataType;
+ }
+ public void setDataUrl(String dataUrl)
+ {
+ this.dataUrl = dataUrl;
+ }
+
+ public String getDataUrl()
+ {
+ return dataUrl;
+ }
+ public void setFileType(String fileType)
+ {
+ this.fileType = fileType;
+ }
+
+ public String getFileType()
+ {
+ return fileType;
+ }
+ public void setLabels(String labels)
+ {
+ this.labels = labels;
+ }
+
+ public String getLabels()
+ {
+ return labels;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("projectId", getProjectId())
+ .append("holeId", getHoleId())
+ .append("name", getName())
+ .append("dataType", getDataType())
+ .append("dataUrl", getDataUrl())
+ .append("fileType", getFileType())
+ .append("labels", getLabels())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectPerson.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectPerson.java
new file mode 100644
index 0000000..2d694c7
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectPerson.java
@@ -0,0 +1,164 @@
+package com.javaweb.geo.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.javaweb.common.annotation.Excel;
+import com.javaweb.common.core.domain.BaseEntity;
+
+/**
+ * 椤圭洰浜哄憳瀵硅薄 js_project_person
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public class ProjectPerson extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private String ids;
+
+ /** 椤圭洰id */
+ private String projectId;
+
+ /** 閽诲瓟id */
+ private String holeId;
+
+ /** 浜哄憳鍚嶇О */
+ @Excel(name = "浜哄憳鍚嶇О")
+ private String name;
+
+ /** 绫诲瀷 */
+ @Excel(name = "绫诲瀷")
+ private String type;
+
+ /** 鎵嬫満鍙� */
+ @Excel(name = "鎵嬫満鍙�")
+ private String phone;
+
+ /** 鍦板潃 */
+ @Excel(name = "鍦板潃")
+ private String address;
+
+ /** 鑱岃矗 */
+ @Excel(name = "鑱岃矗")
+ private String responsibility;
+
+ /** 鐘舵�� */
+ private String status;
+
+ /** 鏄惁鍒犻櫎锛�0 鏈垹闄� 1鍒犻櫎锛� */
+ private String isDeleted;
+
+ public void setIds(String ids)
+ {
+ this.ids = ids;
+ }
+
+ public String getIds()
+ {
+ return ids;
+ }
+ public void setProjectId(String projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public String getProjectId()
+ {
+ return projectId;
+ }
+ public void setHoleId(String holeId)
+ {
+ this.holeId = holeId;
+ }
+
+ public String getHoleId()
+ {
+ return holeId;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+ public void setPhone(String phone)
+ {
+ this.phone = phone;
+ }
+
+ public String getPhone()
+ {
+ return phone;
+ }
+ public void setAddress(String address)
+ {
+ this.address = address;
+ }
+
+ public String getAddress()
+ {
+ return address;
+ }
+ public void setResponsibility(String responsibility)
+ {
+ this.responsibility = responsibility;
+ }
+
+ public String getResponsibility()
+ {
+ return responsibility;
+ }
+ public void setStatus(String status)
+ {
+ this.status = status;
+ }
+
+ public String getStatus()
+ {
+ return status;
+ }
+ public void setIsDeleted(String isDeleted)
+ {
+ this.isDeleted = isDeleted;
+ }
+
+ public String getIsDeleted()
+ {
+ return isDeleted;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("ids", getIds())
+ .append("projectId", getProjectId())
+ .append("holeId", getHoleId())
+ .append("name", getName())
+ .append("type", getType())
+ .append("phone", getPhone())
+ .append("address", getAddress())
+ .append("responsibility", getResponsibility())
+ .append("status", getStatus())
+ .append("isDeleted", getIsDeleted())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceLogMapper.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceLogMapper.java
new file mode 100644
index 0000000..b8d3475
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceLogMapper.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.mapper;
+
+import com.javaweb.geo.domain.DeviceLog;
+import java.util.List;
+
+/**
+ * 璁惧鍑哄叆搴撹褰昅apper鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface DeviceLogMapper
+{
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰�
+ *
+ * @param id 璁惧鍑哄叆搴撹褰旾D
+ * @return 璁惧鍑哄叆搴撹褰�
+ */
+ public DeviceLog selectDeviceLogById(String id);
+
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰曞垪琛�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 璁惧鍑哄叆搴撹褰曢泦鍚�
+ */
+ public List<DeviceLog> selectDeviceLogList(DeviceLog deviceLog);
+
+ /**
+ * 鏂板璁惧鍑哄叆搴撹褰�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 缁撴灉
+ */
+ public int insertDeviceLog(DeviceLog deviceLog);
+
+ /**
+ * 淇敼璁惧鍑哄叆搴撹褰�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 缁撴灉
+ */
+ public int updateDeviceLog(DeviceLog deviceLog);
+
+ /**
+ * 鍒犻櫎璁惧鍑哄叆搴撹褰�
+ *
+ * @param id 璁惧鍑哄叆搴撹褰旾D
+ * @return 缁撴灉
+ */
+ public int deleteDeviceLogById(String id);
+
+ /**
+ * 鎵归噺鍒犻櫎璁惧鍑哄叆搴撹褰�
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteDeviceLogByIds(String[] ids);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceMapper.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceMapper.java
new file mode 100644
index 0000000..af55222
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceMapper.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.mapper;
+
+import com.javaweb.geo.domain.Device;
+import java.util.List;
+
+/**
+ * 璁惧搴揗apper鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface DeviceMapper
+{
+ /**
+ * 鏌ヨ璁惧搴�
+ *
+ * @param id 璁惧搴揑D
+ * @return 璁惧搴�
+ */
+ public Device selectDeviceById(String id);
+
+ /**
+ * 鏌ヨ璁惧搴撳垪琛�
+ *
+ * @param device 璁惧搴�
+ * @return 璁惧搴撻泦鍚�
+ */
+ public List<Device> selectDeviceList(Device device);
+
+ /**
+ * 鏂板璁惧搴�
+ *
+ * @param device 璁惧搴�
+ * @return 缁撴灉
+ */
+ public int insertDevice(Device device);
+
+ /**
+ * 淇敼璁惧搴�
+ *
+ * @param device 璁惧搴�
+ * @return 缁撴灉
+ */
+ public int updateDevice(Device device);
+
+ /**
+ * 鍒犻櫎璁惧搴�
+ *
+ * @param id 璁惧搴揑D
+ * @return 缁撴灉
+ */
+ public int deleteDeviceById(String id);
+
+ /**
+ * 鎵归噺鍒犻櫎璁惧搴�
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteDeviceByIds(String[] ids);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectDataMapper.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectDataMapper.java
new file mode 100644
index 0000000..01923a0
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectDataMapper.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.mapper;
+
+import com.javaweb.geo.domain.ProjectData;
+import java.util.List;
+
+/**
+ * 椤圭洰璧勬枡Mapper鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface ProjectDataMapper
+{
+ /**
+ * 鏌ヨ椤圭洰璧勬枡
+ *
+ * @param id 椤圭洰璧勬枡ID
+ * @return 椤圭洰璧勬枡
+ */
+ public ProjectData selectProjectDataById(String id);
+
+ /**
+ * 鏌ヨ椤圭洰璧勬枡鍒楄〃
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 椤圭洰璧勬枡闆嗗悎
+ */
+ public List<ProjectData> selectProjectDataList(ProjectData projectData);
+
+ /**
+ * 鏂板椤圭洰璧勬枡
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 缁撴灉
+ */
+ public int insertProjectData(ProjectData projectData);
+
+ /**
+ * 淇敼椤圭洰璧勬枡
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 缁撴灉
+ */
+ public int updateProjectData(ProjectData projectData);
+
+ /**
+ * 鍒犻櫎椤圭洰璧勬枡
+ *
+ * @param id 椤圭洰璧勬枡ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectDataById(String id);
+
+ /**
+ * 鎵归噺鍒犻櫎椤圭洰璧勬枡
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectDataByIds(String[] ids);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectPersonMapper.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectPersonMapper.java
new file mode 100644
index 0000000..59496d0
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectPersonMapper.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.mapper;
+
+import com.javaweb.geo.domain.ProjectPerson;
+import java.util.List;
+
+/**
+ * 椤圭洰浜哄憳Mapper鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface ProjectPersonMapper
+{
+ /**
+ * 鏌ヨ椤圭洰浜哄憳
+ *
+ * @param ids 椤圭洰浜哄憳ID
+ * @return 椤圭洰浜哄憳
+ */
+ public ProjectPerson selectProjectPersonById(String ids);
+
+ /**
+ * 鏌ヨ椤圭洰浜哄憳鍒楄〃
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 椤圭洰浜哄憳闆嗗悎
+ */
+ public List<ProjectPerson> selectProjectPersonList(ProjectPerson projectPerson);
+
+ /**
+ * 鏂板椤圭洰浜哄憳
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 缁撴灉
+ */
+ public int insertProjectPerson(ProjectPerson projectPerson);
+
+ /**
+ * 淇敼椤圭洰浜哄憳
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 缁撴灉
+ */
+ public int updateProjectPerson(ProjectPerson projectPerson);
+
+ /**
+ * 鍒犻櫎椤圭洰浜哄憳
+ *
+ * @param ids 椤圭洰浜哄憳ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectPersonById(String ids);
+
+ /**
+ * 鎵归噺鍒犻櫎椤圭洰浜哄憳
+ *
+ * @param idss 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectPersonByIds(String[] idss);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceLogService.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceLogService.java
new file mode 100644
index 0000000..1d28b72
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceLogService.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.service;
+
+import com.javaweb.geo.domain.DeviceLog;
+import java.util.List;
+
+/**
+ * 璁惧鍑哄叆搴撹褰昐ervice鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface IDeviceLogService
+{
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰�
+ *
+ * @param id 璁惧鍑哄叆搴撹褰旾D
+ * @return 璁惧鍑哄叆搴撹褰�
+ */
+ public DeviceLog selectDeviceLogById(String id);
+
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰曞垪琛�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 璁惧鍑哄叆搴撹褰曢泦鍚�
+ */
+ public List<DeviceLog> selectDeviceLogList(DeviceLog deviceLog);
+
+ /**
+ * 鏂板璁惧鍑哄叆搴撹褰�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 缁撴灉
+ */
+ public int insertDeviceLog(DeviceLog deviceLog);
+
+ /**
+ * 淇敼璁惧鍑哄叆搴撹褰�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 缁撴灉
+ */
+ public int updateDeviceLog(DeviceLog deviceLog);
+
+ /**
+ * 鎵归噺鍒犻櫎璁惧鍑哄叆搴撹褰�
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteDeviceLogByIds(String ids);
+
+ /**
+ * 鍒犻櫎璁惧鍑哄叆搴撹褰曚俊鎭�
+ *
+ * @param id 璁惧鍑哄叆搴撹褰旾D
+ * @return 缁撴灉
+ */
+ public int deleteDeviceLogById(String id);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceService.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceService.java
new file mode 100644
index 0000000..b38bee2
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceService.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.service;
+
+import com.javaweb.geo.domain.Device;
+import java.util.List;
+
+/**
+ * 璁惧搴揝ervice鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface IDeviceService
+{
+ /**
+ * 鏌ヨ璁惧搴�
+ *
+ * @param id 璁惧搴揑D
+ * @return 璁惧搴�
+ */
+ public Device selectDeviceById(String id);
+
+ /**
+ * 鏌ヨ璁惧搴撳垪琛�
+ *
+ * @param device 璁惧搴�
+ * @return 璁惧搴撻泦鍚�
+ */
+ public List<Device> selectDeviceList(Device device);
+
+ /**
+ * 鏂板璁惧搴�
+ *
+ * @param device 璁惧搴�
+ * @return 缁撴灉
+ */
+ public int insertDevice(Device device);
+
+ /**
+ * 淇敼璁惧搴�
+ *
+ * @param device 璁惧搴�
+ * @return 缁撴灉
+ */
+ public int updateDevice(Device device);
+
+ /**
+ * 鎵归噺鍒犻櫎璁惧搴�
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteDeviceByIds(String ids);
+
+ /**
+ * 鍒犻櫎璁惧搴撲俊鎭�
+ *
+ * @param id 璁惧搴揑D
+ * @return 缁撴灉
+ */
+ public int deleteDeviceById(String id);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectDataService.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectDataService.java
new file mode 100644
index 0000000..47afa98
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectDataService.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.service;
+
+import com.javaweb.geo.domain.ProjectData;
+import java.util.List;
+
+/**
+ * 椤圭洰璧勬枡Service鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface IProjectDataService
+{
+ /**
+ * 鏌ヨ椤圭洰璧勬枡
+ *
+ * @param id 椤圭洰璧勬枡ID
+ * @return 椤圭洰璧勬枡
+ */
+ public ProjectData selectProjectDataById(String id);
+
+ /**
+ * 鏌ヨ椤圭洰璧勬枡鍒楄〃
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 椤圭洰璧勬枡闆嗗悎
+ */
+ public List<ProjectData> selectProjectDataList(ProjectData projectData);
+
+ /**
+ * 鏂板椤圭洰璧勬枡
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 缁撴灉
+ */
+ public int insertProjectData(ProjectData projectData);
+
+ /**
+ * 淇敼椤圭洰璧勬枡
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 缁撴灉
+ */
+ public int updateProjectData(ProjectData projectData);
+
+ /**
+ * 鎵归噺鍒犻櫎椤圭洰璧勬枡
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectDataByIds(String ids);
+
+ /**
+ * 鍒犻櫎椤圭洰璧勬枡淇℃伅
+ *
+ * @param id 椤圭洰璧勬枡ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectDataById(String id);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectPersonService.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectPersonService.java
new file mode 100644
index 0000000..f635523
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectPersonService.java
@@ -0,0 +1,61 @@
+package com.javaweb.geo.service;
+
+import com.javaweb.geo.domain.ProjectPerson;
+import java.util.List;
+
+/**
+ * 椤圭洰浜哄憳Service鎺ュ彛
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+public interface IProjectPersonService
+{
+ /**
+ * 鏌ヨ椤圭洰浜哄憳
+ *
+ * @param ids 椤圭洰浜哄憳ID
+ * @return 椤圭洰浜哄憳
+ */
+ public ProjectPerson selectProjectPersonById(String ids);
+
+ /**
+ * 鏌ヨ椤圭洰浜哄憳鍒楄〃
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 椤圭洰浜哄憳闆嗗悎
+ */
+ public List<ProjectPerson> selectProjectPersonList(ProjectPerson projectPerson);
+
+ /**
+ * 鏂板椤圭洰浜哄憳
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 缁撴灉
+ */
+ public int insertProjectPerson(ProjectPerson projectPerson);
+
+ /**
+ * 淇敼椤圭洰浜哄憳
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 缁撴灉
+ */
+ public int updateProjectPerson(ProjectPerson projectPerson);
+
+ /**
+ * 鎵归噺鍒犻櫎椤圭洰浜哄憳
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectPersonByIds(String ids);
+
+ /**
+ * 鍒犻櫎椤圭洰浜哄憳淇℃伅
+ *
+ * @param ids 椤圭洰浜哄憳ID
+ * @return 缁撴灉
+ */
+ public int deleteProjectPersonById(String ids);
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java
new file mode 100644
index 0000000..ee49ede
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java
@@ -0,0 +1,96 @@
+package com.javaweb.geo.service.impl;
+
+import java.util.List;
+
+import com.javaweb.common.utils.DateUtils;
+import com.javaweb.common.utils.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.javaweb.geo.mapper.DeviceLogMapper;
+import com.javaweb.geo.domain.DeviceLog;
+import com.javaweb.geo.service.IDeviceLogService;
+import com.javaweb.common.core.text.Convert;
+import org.springframework.util.ObjectUtils;
+import tk.mybatis.mapper.genid.GenIdUtil;
+
+/**
+ * 璁惧鍑哄叆搴撹褰昐ervice涓氬姟灞傚鐞�
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Service
+public class DeviceLogServiceImpl implements IDeviceLogService {
+ @Autowired
+ private DeviceLogMapper deviceLogMapper;
+
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰�
+ *
+ * @param id 璁惧鍑哄叆搴撹褰旾D
+ * @return 璁惧鍑哄叆搴撹褰�
+ */
+ @Override
+ public DeviceLog selectDeviceLogById(String id) {
+ return deviceLogMapper.selectDeviceLogById(id);
+ }
+
+ /**
+ * 鏌ヨ璁惧鍑哄叆搴撹褰曞垪琛�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 璁惧鍑哄叆搴撹褰�
+ */
+ @Override
+ public List<DeviceLog> selectDeviceLogList(DeviceLog deviceLog) {
+ return deviceLogMapper.selectDeviceLogList(deviceLog);
+ }
+
+ /**
+ * 鏂板璁惧鍑哄叆搴撹褰�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertDeviceLog(DeviceLog deviceLog) {
+ if(ObjectUtils.isEmpty(deviceLog.getId())){
+ deviceLog.setId(IdGenerate.nextId());
+ }
+ deviceLog.setCreateTime(DateUtils.getNowDate());
+ return deviceLogMapper.insertDeviceLog(deviceLog);
+ }
+
+ /**
+ * 淇敼璁惧鍑哄叆搴撹褰�
+ *
+ * @param deviceLog 璁惧鍑哄叆搴撹褰�
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateDeviceLog(DeviceLog deviceLog) {
+ return deviceLogMapper.updateDeviceLog(deviceLog);
+ }
+
+ /**
+ * 鍒犻櫎璁惧鍑哄叆搴撹褰曞璞�
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteDeviceLogByIds(String ids) {
+ return deviceLogMapper.deleteDeviceLogByIds(Convert.toStrArray(ids));
+ }
+
+ /**
+ * 鍒犻櫎璁惧鍑哄叆搴撹褰曚俊鎭�
+ *
+ * @param id 璁惧鍑哄叆搴撹褰旾D
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteDeviceLogById(String id) {
+ return deviceLogMapper.deleteDeviceLogById(id);
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceServiceImpl.java
new file mode 100644
index 0000000..1ea9309
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceServiceImpl.java
@@ -0,0 +1,102 @@
+package com.javaweb.geo.service.impl;
+
+import java.util.List;
+
+import com.javaweb.common.utils.DateUtils;
+import com.javaweb.common.utils.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.javaweb.geo.mapper.DeviceMapper;
+import com.javaweb.geo.domain.Device;
+import com.javaweb.geo.service.IDeviceService;
+import com.javaweb.common.core.text.Convert;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * 璁惧搴揝ervice涓氬姟灞傚鐞�
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Service
+public class DeviceServiceImpl implements IDeviceService
+{
+ @Autowired
+ private DeviceMapper deviceMapper;
+
+ /**
+ * 鏌ヨ璁惧搴�
+ *
+ * @param id 璁惧搴揑D
+ * @return 璁惧搴�
+ */
+ @Override
+ public Device selectDeviceById(String id)
+ {
+ return deviceMapper.selectDeviceById(id);
+ }
+
+ /**
+ * 鏌ヨ璁惧搴撳垪琛�
+ *
+ * @param device 璁惧搴�
+ * @return 璁惧搴�
+ */
+ @Override
+ public List<Device> selectDeviceList(Device device)
+ {
+ return deviceMapper.selectDeviceList(device);
+ }
+
+ /**
+ * 鏂板璁惧搴�
+ *
+ * @param device 璁惧搴�
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertDevice(Device device)
+ {
+ if(ObjectUtils.isEmpty(device.getId())){
+ device.setId(IdGenerate.nextId());
+ }
+ device.setCreateTime(DateUtils.getNowDate());
+ return deviceMapper.insertDevice(device);
+ }
+
+ /**
+ * 淇敼璁惧搴�
+ *
+ * @param device 璁惧搴�
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateDevice(Device device)
+ {
+ return deviceMapper.updateDevice(device);
+ }
+
+ /**
+ * 鍒犻櫎璁惧搴撳璞�
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteDeviceByIds(String ids)
+ {
+ return deviceMapper.deleteDeviceByIds(Convert.toStrArray(ids));
+ }
+
+ /**
+ * 鍒犻櫎璁惧搴撲俊鎭�
+ *
+ * @param id 璁惧搴揑D
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteDeviceById(String id)
+ {
+ return deviceMapper.deleteDeviceById(id);
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
new file mode 100644
index 0000000..732af07
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
@@ -0,0 +1,102 @@
+package com.javaweb.geo.service.impl;
+
+import java.util.List;
+import com.javaweb.common.utils.DateUtils;
+import com.javaweb.common.utils.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.javaweb.geo.mapper.ProjectDataMapper;
+import com.javaweb.geo.domain.ProjectData;
+import com.javaweb.geo.service.IProjectDataService;
+import com.javaweb.common.core.text.Convert;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * 椤圭洰璧勬枡Service涓氬姟灞傚鐞�
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Service
+public class ProjectDataServiceImpl implements IProjectDataService
+{
+ @Autowired
+ private ProjectDataMapper projectDataMapper;
+
+ /**
+ * 鏌ヨ椤圭洰璧勬枡
+ *
+ * @param id 椤圭洰璧勬枡ID
+ * @return 椤圭洰璧勬枡
+ */
+ @Override
+ public ProjectData selectProjectDataById(String id)
+ {
+ return projectDataMapper.selectProjectDataById(id);
+ }
+
+ /**
+ * 鏌ヨ椤圭洰璧勬枡鍒楄〃
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 椤圭洰璧勬枡
+ */
+ @Override
+ public List<ProjectData> selectProjectDataList(ProjectData projectData)
+ {
+ return projectDataMapper.selectProjectDataList(projectData);
+ }
+
+ /**
+ * 鏂板椤圭洰璧勬枡
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertProjectData(ProjectData projectData)
+ {
+ if(ObjectUtils.isEmpty(projectData.getId())){
+ projectData.setId(IdGenerate.nextId());
+ }
+ projectData.setCreateTime(DateUtils.getNowDate());
+ return projectDataMapper.insertProjectData(projectData);
+ }
+
+ /**
+ * 淇敼椤圭洰璧勬枡
+ *
+ * @param projectData 椤圭洰璧勬枡
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateProjectData(ProjectData projectData)
+ {
+ projectData.setUpdateTime(DateUtils.getNowDate());
+ return projectDataMapper.updateProjectData(projectData);
+ }
+
+ /**
+ * 鍒犻櫎椤圭洰璧勬枡瀵硅薄
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteProjectDataByIds(String ids)
+ {
+ return projectDataMapper.deleteProjectDataByIds(Convert.toStrArray(ids));
+ }
+
+ /**
+ * 鍒犻櫎椤圭洰璧勬枡淇℃伅
+ *
+ * @param id 椤圭洰璧勬枡ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteProjectDataById(String id)
+ {
+ return projectDataMapper.deleteProjectDataById(id);
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectPersonServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectPersonServiceImpl.java
new file mode 100644
index 0000000..2736c43
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectPersonServiceImpl.java
@@ -0,0 +1,101 @@
+package com.javaweb.geo.service.impl;
+
+import java.util.List;
+import com.javaweb.common.utils.DateUtils;
+import com.javaweb.common.utils.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.javaweb.geo.mapper.ProjectPersonMapper;
+import com.javaweb.geo.domain.ProjectPerson;
+import com.javaweb.geo.service.IProjectPersonService;
+import com.javaweb.common.core.text.Convert;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * 椤圭洰浜哄憳Service涓氬姟灞傚鐞�
+ *
+ * @author cxy
+ * @date 2024-05-16
+ */
+@Service
+public class ProjectPersonServiceImpl implements IProjectPersonService
+{
+ @Autowired
+ private ProjectPersonMapper projectPersonMapper;
+
+ /**
+ * 鏌ヨ椤圭洰浜哄憳
+ *
+ * @param ids 椤圭洰浜哄憳ID
+ * @return 椤圭洰浜哄憳
+ */
+ @Override
+ public ProjectPerson selectProjectPersonById(String ids)
+ {
+ return projectPersonMapper.selectProjectPersonById(ids);
+ }
+
+ /**
+ * 鏌ヨ椤圭洰浜哄憳鍒楄〃
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 椤圭洰浜哄憳
+ */
+ @Override
+ public List<ProjectPerson> selectProjectPersonList(ProjectPerson projectPerson)
+ {
+ return projectPersonMapper.selectProjectPersonList(projectPerson);
+ }
+
+ /**
+ * 鏂板椤圭洰浜哄憳
+ *
+ * @param projectPerson 椤圭洰浜哄憳fg
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertProjectPerson(ProjectPerson projectPerson) {
+ if(ObjectUtils.isEmpty(projectPerson.getIds())){
+ projectPerson.setIds(IdGenerate.nextId());
+ }
+ projectPerson.setCreateTime(DateUtils.getNowDate());
+ return projectPersonMapper.insertProjectPerson(projectPerson);
+ }
+
+ /**
+ * 淇敼椤圭洰浜哄憳
+ *
+ * @param projectPerson 椤圭洰浜哄憳
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateProjectPerson(ProjectPerson projectPerson)
+ {
+ projectPerson.setUpdateTime(DateUtils.getNowDate());
+ return projectPersonMapper.updateProjectPerson(projectPerson);
+ }
+
+ /**
+ * 鍒犻櫎椤圭洰浜哄憳瀵硅薄
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteProjectPersonByIds(String ids)
+ {
+ return projectPersonMapper.deleteProjectPersonByIds(Convert.toStrArray(ids));
+ }
+
+ /**
+ * 鍒犻櫎椤圭洰浜哄憳淇℃伅
+ *
+ * @param ids 椤圭洰浜哄憳ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteProjectPersonById(String ids)
+ {
+ return projectPersonMapper.deleteProjectPersonById(ids);
+ }
+}
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceLogMapper.xml b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceLogMapper.xml
new file mode 100644
index 0000000..16ec34c
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceLogMapper.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.javaweb.geo.mapper.DeviceLogMapper">
+
+ <resultMap type="DeviceLog" id="DeviceLogResult">
+ <result property="id" column="id" />
+ <result property="code" column="code" />
+ <result property="projectId" column="project_id" />
+ <result property="projectName" column="project_name" />
+ <result property="deviceId" column="device_id" />
+ <result property="deviceName" column="device_name" />
+ <result property="type" column="type" />
+ <result property="transactionDate" column="transaction_date" />
+ <result property="optUser" column="opt_user" />
+ <result property="applyUser" column="apply_user" />
+ <result property="number" column="number" />
+ <result property="createDate" column="create_date" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectDeviceLogVo">
+ select id, code, project_id, project_name, device_id, device_name, type, transaction_date, opt_user, apply_user, number, create_date, remark from js_device_log
+ </sql>
+
+ <select id="selectDeviceLogList" parameterType="DeviceLog" resultMap="DeviceLogResult">
+ <include refid="selectDeviceLogVo"/>
+ <where>
+ <if test="code != null and code != ''"> and code = #{code}</if>
+ <if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
+ <if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
+ <if test="type != null and type != ''"> and type = #{type}</if>
+ <if test="optUser != null and optUser != ''"> and opt_user = #{optUser}</if>
+ <if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
+ </where>
+ </select>
+
+ <select id="selectDeviceLogById" parameterType="String" resultMap="DeviceLogResult">
+ <include refid="selectDeviceLogVo"/>
+ where id = #{id}
+ </select>
+
+ <insert id="insertDeviceLog" parameterType="DeviceLog">
+ insert into js_device_log
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null and id != ''">id,</if>
+ <if test="code != null and code != ''">code,</if>
+ <if test="projectId != null and projectId != ''">project_id,</if>
+ <if test="projectName != null and projectName != ''">project_name,</if>
+ <if test="deviceId != null and deviceId != ''">device_id,</if>
+ <if test="deviceName != null and deviceName != ''">device_name,</if>
+ <if test="type != null and type != ''">type,</if>
+ <if test="transactionDate != null and transactionDate != ''">transaction_date,</if>
+ <if test="optUser != null and optUser != ''">opt_user,</if>
+ <if test="applyUser != null and applyUser != ''">apply_user,</if>
+ <if test="number != null and number != ''">number,</if>
+ <if test="createDate != null ">create_date,</if>
+ <if test="remark != null and remark != ''">remark,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null and id != ''">#{id},</if>
+ <if test="code != null and code != ''">#{code},</if>
+ <if test="projectId != null and projectId != ''">#{projectId},</if>
+ <if test="projectName != null and projectName != ''">#{projectName},</if>
+ <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
+ <if test="deviceName != null and deviceName != ''">#{deviceName},</if>
+ <if test="type != null and type != ''">#{type},</if>
+ <if test="transactionDate != null and transactionDate != ''">#{transactionDate},</if>
+ <if test="optUser != null and optUser != ''">#{optUser},</if>
+ <if test="applyUser != null and applyUser != ''">#{applyUser},</if>
+ <if test="number != null and number != ''">#{number},</if>
+ <if test="createDate != null ">#{createDate},</if>
+ <if test="remark != null and remark != ''">#{remark},</if>
+ </trim>
+ </insert>
+
+ <update id="updateDeviceLog" parameterType="DeviceLog">
+ update js_device_log
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="code != null and code != ''">code = #{code},</if>
+ <if test="projectId != null and projectId != ''">project_id = #{projectId},</if>
+ <if test="projectName != null and projectName != ''">project_name = #{projectName},</if>
+ <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
+ <if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if>
+ <if test="type != null and type != ''">type = #{type},</if>
+ <if test="transactionDate != null and transactionDate != ''">transaction_date = #{transactionDate},</if>
+ <if test="optUser != null and optUser != ''">opt_user = #{optUser},</if>
+ <if test="applyUser != null and applyUser != ''">apply_user = #{applyUser},</if>
+ <if test="number != null and number != ''">number = #{number},</if>
+ <if test="createDate != null ">create_date = #{createDate},</if>
+ <if test="remark != null and remark != ''">remark = #{remark},</if>
+ </trim>
+ where id = #{id}
+ </update>
+
+ <delete id="deleteDeviceLogById" parameterType="String">
+ delete from js_device_log where id = #{id}
+ </delete>
+
+ <delete id="deleteDeviceLogByIds" parameterType="String">
+ delete from js_device_log where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceMapper.xml b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceMapper.xml
new file mode 100644
index 0000000..1311038
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceMapper.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.javaweb.geo.mapper.DeviceMapper">
+
+ <resultMap type="Device" id="DeviceResult">
+ <result property="id" column="id" />
+ <result property="code" column="code" />
+ <result property="name" column="name" />
+ <result property="type" column="type" />
+ <result property="manufacturer" column="manufacturer" />
+ <result property="buyDate" column="buy_date" />
+ <result property="price" column="price" />
+ <result property="status" column="status" />
+ <result property="storageAddress" column="storage_address" />
+ </resultMap>
+
+ <sql id="selectDeviceVo">
+ select id, code, name, type, manufacturer, buy_date, price, status, storage_address from js_device
+ </sql>
+
+ <select id="selectDeviceList" parameterType="Device" resultMap="DeviceResult">
+ <include refid="selectDeviceVo"/>
+ <where>
+ <if test="code != null and code != ''"> and code like concat('%', #{code}, '%')</if>
+ <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
+ <if test="type != null and type != ''"> and type like concat('%', #{type}, '%')</if>
+ <if test="buyDate != null "> and buy_date = #{buyDate}</if>
+ <if test="status != null and status != ''"> and status = #{status}</if>
+ </where>
+ </select>
+
+ <select id="selectDeviceById" parameterType="String" resultMap="DeviceResult">
+ <include refid="selectDeviceVo"/>
+ where id = #{id}
+ </select>
+
+ <insert id="insertDevice" parameterType="Device">
+ insert into js_device
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null and id != ''">id,</if>
+ <if test="code != null and code != ''">code,</if>
+ <if test="name != null and name != ''">name,</if>
+ <if test="type != null and type != ''">type,</if>
+ <if test="manufacturer != null and manufacturer != ''">manufacturer,</if>
+ <if test="buyDate != null ">buy_date,</if>
+ <if test="price != null ">price,</if>
+ <if test="status != null and status != ''">status,</if>
+ <if test="storageAddress != null and storageAddress != ''">storage_address,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null and id != ''">#{id},</if>
+ <if test="code != null and code != ''">#{code},</if>
+ <if test="name != null and name != ''">#{name},</if>
+ <if test="type != null and type != ''">#{type},</if>
+ <if test="manufacturer != null and manufacturer != ''">#{manufacturer},</if>
+ <if test="buyDate != null ">#{buyDate},</if>
+ <if test="price != null ">#{price},</if>
+ <if test="status != null and status != ''">#{status},</if>
+ <if test="storageAddress != null and storageAddress != ''">#{storageAddress},</if>
+ </trim>
+ </insert>
+
+ <update id="updateDevice" parameterType="Device">
+ update js_device
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="code != null and code != ''">code = #{code},</if>
+ <if test="name != null and name != ''">name = #{name},</if>
+ <if test="type != null and type != ''">type = #{type},</if>
+ <if test="manufacturer != null and manufacturer != ''">manufacturer = #{manufacturer},</if>
+ <if test="buyDate != null ">buy_date = #{buyDate},</if>
+ <if test="price != null ">price = #{price},</if>
+ <if test="status != null and status != ''">status = #{status},</if>
+ <if test="storageAddress != null and storageAddress != ''">storage_address = #{storageAddress},</if>
+ </trim>
+ where id = #{id}
+ </update>
+
+ <delete id="deleteDeviceById" parameterType="String">
+ delete from js_device where id = #{id}
+ </delete>
+
+ <delete id="deleteDeviceByIds" parameterType="String">
+ delete from js_device where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectDataMapper.xml b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectDataMapper.xml
new file mode 100644
index 0000000..070168f
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectDataMapper.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.javaweb.geo.mapper.ProjectDataMapper">
+
+ <resultMap type="ProjectData" id="ProjectDataResult">
+ <result property="id" column="id" />
+ <result property="projectId" column="project_id" />
+ <result property="holeId" column="hole_id" />
+ <result property="name" column="name" />
+ <result property="dataType" column="data_type" />
+ <result property="dataUrl" column="data_url" />
+ <result property="fileType" column="file_type" />
+ <result property="labels" column="labels" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectProjectDataVo">
+ select id, project_id, hole_id, name, data_type, data_url, file_type, labels, create_by, create_time, update_by, update_time, remark from js_project_data
+ </sql>
+
+ <select id="selectProjectDataList" parameterType="ProjectData" resultMap="ProjectDataResult">
+ <include refid="selectProjectDataVo"/>
+ <where>
+ <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
+ <if test="dataType != null and dataType != ''"> and data_type = #{dataType}</if>
+ <if test="fileType != null and fileType != ''"> and file_type = #{fileType}</if>
+ <if test="labels != null and labels != ''"> and labels = #{labels}</if>
+ </where>
+ </select>
+
+ <select id="selectProjectDataById" parameterType="String" resultMap="ProjectDataResult">
+ <include refid="selectProjectDataVo"/>
+ where id = #{id}
+ </select>
+
+ <insert id="insertProjectData" parameterType="ProjectData">
+ insert into js_project_data
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null and id != ''">id,</if>
+ <if test="projectId != null and projectId != ''">project_id,</if>
+ <if test="holeId != null and holeId != ''">hole_id,</if>
+ <if test="name != null and name != ''">name,</if>
+ <if test="dataType != null and dataType != ''">data_type,</if>
+ <if test="dataUrl != null and dataUrl != ''">data_url,</if>
+ <if test="fileType != null and fileType != ''">file_type,</if>
+ <if test="labels != null and labels != ''">labels,</if>
+ <if test="createBy != null and createBy != ''">create_by,</if>
+ <if test="createTime != null ">create_time,</if>
+ <if test="updateBy != null and updateBy != ''">update_by,</if>
+ <if test="updateTime != null ">update_time,</if>
+ <if test="remark != null and remark != ''">remark,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null and id != ''">#{id},</if>
+ <if test="projectId != null and projectId != ''">#{projectId},</if>
+ <if test="holeId != null and holeId != ''">#{holeId},</if>
+ <if test="name != null and name != ''">#{name},</if>
+ <if test="dataType != null and dataType != ''">#{dataType},</if>
+ <if test="dataUrl != null and dataUrl != ''">#{dataUrl},</if>
+ <if test="fileType != null and fileType != ''">#{fileType},</if>
+ <if test="labels != null and labels != ''">#{labels},</if>
+ <if test="createBy != null and createBy != ''">#{createBy},</if>
+ <if test="createTime != null ">#{createTime},</if>
+ <if test="updateBy != null and updateBy != ''">#{updateBy},</if>
+ <if test="updateTime != null ">#{updateTime},</if>
+ <if test="remark != null and remark != ''">#{remark},</if>
+ </trim>
+ </insert>
+
+ <update id="updateProjectData" parameterType="ProjectData">
+ update js_project_data
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="projectId != null and projectId != ''">project_id = #{projectId},</if>
+ <if test="holeId != null and holeId != ''">hole_id = #{holeId},</if>
+ <if test="name != null and name != ''">name = #{name},</if>
+ <if test="dataType != null and dataType != ''">data_type = #{dataType},</if>
+ <if test="dataUrl != null and dataUrl != ''">data_url = #{dataUrl},</if>
+ <if test="fileType != null and fileType != ''">file_type = #{fileType},</if>
+ <if test="labels != null and labels != ''">labels = #{labels},</if>
+ <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
+ <if test="createTime != null ">create_time = #{createTime},</if>
+ <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ <if test="updateTime != null ">update_time = #{updateTime},</if>
+ <if test="remark != null and remark != ''">remark = #{remark},</if>
+ </trim>
+ where id = #{id}
+ </update>
+
+ <delete id="deleteProjectDataById" parameterType="String">
+ delete from js_project_data where id = #{id}
+ </delete>
+
+ <delete id="deleteProjectDataByIds" parameterType="String">
+ delete from js_project_data where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectPersonMapper.xml b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectPersonMapper.xml
new file mode 100644
index 0000000..3044abd
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectPersonMapper.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.javaweb.geo.mapper.ProjectPersonMapper">
+
+ <resultMap type="ProjectPerson" id="ProjectPersonResult">
+ <result property="ids" column="ids" />
+ <result property="projectId" column="project_id" />
+ <result property="holeId" column="hole_id" />
+ <result property="name" column="name" />
+ <result property="type" column="type" />
+ <result property="phone" column="phone" />
+ <result property="address" column="address" />
+ <result property="responsibility" column="responsibility" />
+ <result property="status" column="status" />
+ <result property="isDeleted" column="is_deleted" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectProjectPersonVo">
+ select ids, project_id, hole_id, name, type, phone, address, responsibility, status, is_deleted, create_by, create_time, update_by, update_time, remark from js_project_person
+ </sql>
+
+ <select id="selectProjectPersonList" parameterType="ProjectPerson" resultMap="ProjectPersonResult">
+ <include refid="selectProjectPersonVo"/>
+ <where>
+ <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
+ <if test="type != null and type != ''"> and type = #{type}</if>
+ <if test="phone != null and phone != ''"> and phone = #{phone}</if>
+ <if test="remark != null and remark != ''"> and remark = #{remark}</if>
+ </where>
+ </select>
+
+ <select id="selectProjectPersonById" parameterType="String" resultMap="ProjectPersonResult">
+ <include refid="selectProjectPersonVo"/>
+ where ids = #{ids}
+ </select>
+
+ <insert id="insertProjectPerson" parameterType="ProjectPerson">
+ insert into js_project_person
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="ids != null and ids != ''">ids,</if>
+ <if test="projectId != null and projectId != ''">project_id,</if>
+ <if test="holeId != null and holeId != ''">hole_id,</if>
+ <if test="name != null and name != ''">name,</if>
+ <if test="type != null and type != ''">type,</if>
+ <if test="phone != null and phone != ''">phone,</if>
+ <if test="address != null and address != ''">address,</if>
+ <if test="responsibility != null and responsibility != ''">responsibility,</if>
+ <if test="status != null and status != ''">status,</if>
+ <if test="isDeleted != null and isDeleted != ''">is_deleted,</if>
+ <if test="createBy != null and createBy != ''">create_by,</if>
+ <if test="createTime != null ">create_time,</if>
+ <if test="updateBy != null and updateBy != ''">update_by,</if>
+ <if test="updateTime != null ">update_time,</if>
+ <if test="remark != null and remark != ''">remark,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="ids != null and ids != ''">#{ids},</if>
+ <if test="projectId != null and projectId != ''">#{projectId},</if>
+ <if test="holeId != null and holeId != ''">#{holeId},</if>
+ <if test="name != null and name != ''">#{name},</if>
+ <if test="type != null and type != ''">#{type},</if>
+ <if test="phone != null and phone != ''">#{phone},</if>
+ <if test="address != null and address != ''">#{address},</if>
+ <if test="responsibility != null and responsibility != ''">#{responsibility},</if>
+ <if test="status != null and status != ''">#{status},</if>
+ <if test="isDeleted != null and isDeleted != ''">#{isDeleted},</if>
+ <if test="createBy != null and createBy != ''">#{createBy},</if>
+ <if test="createTime != null ">#{createTime},</if>
+ <if test="updateBy != null and updateBy != ''">#{updateBy},</if>
+ <if test="updateTime != null ">#{updateTime},</if>
+ <if test="remark != null and remark != ''">#{remark},</if>
+ </trim>
+ </insert>
+
+ <update id="updateProjectPerson" parameterType="ProjectPerson">
+ update js_project_person
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="projectId != null and projectId != ''">project_id = #{projectId},</if>
+ <if test="holeId != null and holeId != ''">hole_id = #{holeId},</if>
+ <if test="name != null and name != ''">name = #{name},</if>
+ <if test="type != null and type != ''">type = #{type},</if>
+ <if test="phone != null and phone != ''">phone = #{phone},</if>
+ <if test="address != null and address != ''">address = #{address},</if>
+ <if test="responsibility != null and responsibility != ''">responsibility = #{responsibility},</if>
+ <if test="status != null and status != ''">status = #{status},</if>
+ <if test="isDeleted != null and isDeleted != ''">is_deleted = #{isDeleted},</if>
+ <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
+ <if test="createTime != null ">create_time = #{createTime},</if>
+ <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ <if test="updateTime != null ">update_time = #{updateTime},</if>
+ <if test="remark != null and remark != ''">remark = #{remark},</if>
+ </trim>
+ where ids = #{ids}
+ </update>
+
+ <delete id="deleteProjectPersonById" parameterType="String">
+ delete from js_project_person where ids = #{ids}
+ </delete>
+
+ <delete id="deleteProjectPersonByIds" parameterType="String">
+ delete from js_project_person where ids in
+ <foreach item="ids" collection="array" open="(" separator="," close=")">
+ #{ids}
+ </foreach>
+ </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/add.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/add.html
new file mode 100644
index 0000000..0a8fb12
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/add.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('鏂板璁惧搴�')" />
+ <th:block th:include="include :: datetimepicker-css" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-device-add">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璁惧缂栧彿锛�</label>
+ <div class="col-sm-8">
+ <input name="code" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍚嶅瓧锛�</label>
+ <div class="col-sm-8">
+ <input name="name" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍨嬪彿锛�</label>
+ <div class="col-sm-8">
+ <input name="type" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鐢熶骇鍟嗭細</label>
+ <div class="col-sm-8">
+ <input name="manufacturer" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璐拱鏃ユ湡锛�</label>
+ <div class="col-sm-8">
+ <div class="input-group date">
+ <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+ <input name="buyDate" class="form-control" placeholder="yyyy-MM-dd" type="text">
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">浠锋牸锛�</label>
+ <div class="col-sm-8">
+ <input name="price" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璁惧鐘舵�侊細</label>
+ <div class="col-sm-8">
+ <select name="status" class="form-control m-b" th:with="type=${@dict.getType('device_status')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">瀛樻斁浣嶇疆锛�</label>
+ <div class="col-sm-8">
+ <input name="storageAddress" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <th:block th:include="include :: datetimepicker-js" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/device"
+ $("#form-device-add").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/add", $('#form-device-add').serialize());
+ }
+ }
+
+ $("input[name='buyDate']").datetimepicker({
+ format: "yyyy-mm-dd",
+ minView: "month",
+ autoclose: true
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/device.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/device.html
new file mode 100644
index 0000000..2dd10eb
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/device.html
@@ -0,0 +1,139 @@
+<!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('璁惧搴撳垪琛�')" />
+</head>
+<body class="gray-bg">
+ <div class="container-div">
+ <div class="row">
+ <div class="col-sm-12 search-collapse">
+ <form id="formId">
+ <div class="select-list">
+ <ul>
+ <li>
+ <p>璁惧缂栧彿锛�</p>
+ <input type="text" name="code"/>
+ </li>
+ <li>
+ <p>鍚嶅瓧锛�</p>
+ <input type="text" name="name"/>
+ </li>
+ <li>
+ <p>鍨嬪彿锛�</p>
+ <input type="text" name="type"/>
+ </li>
+ <li class="select-time">
+ <p>璐拱鏃ユ湡锛�</p>
+ <input type="text" class="time-input" id="startTime" placeholder="寮�濮嬫椂闂�" name="params[beginBuyDate]"/>
+ <span>-</span>
+ <input type="text" class="time-input" id="endTime" placeholder="缁撴潫鏃堕棿" name="params[endBuyDate]"/>
+ </li>
+ <li>
+ <p>璁惧鐘舵�侊細</p>
+ <select name="status" th:with="type=${@dict.getType('device_status')}">
+ <option value="">鎵�鏈�</option>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </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()" shiro:hasPermission="geo:device:add">
+ <i class="fa fa-plus"></i> 娣诲姞
+ </a>
+ <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="geo:device:edit">
+ <i class="fa fa-edit"></i> 淇敼
+ </a>
+ <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="geo:device:remove">
+ <i class="fa fa-remove"></i> 鍒犻櫎
+ </a>
+ <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="geo:device:export">
+ <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" />
+ <script th:inline="javascript">
+ var editFlag = [[${@permission.hasPermi('geo:device:edit')}]];
+ var removeFlag = [[${@permission.hasPermi('geo:device:remove')}]];
+ var statusDatas = [[${@dict.getType('device_status')}]];
+ var prefix = ctx + "geo/device";
+
+ $(function() {
+ var options = {
+ url: prefix + "/list",
+ createUrl: prefix + "/add",
+ updateUrl: prefix + "/edit/{id}",
+ removeUrl: prefix + "/remove",
+ exportUrl: prefix + "/export",
+ modalName: "璁惧搴�",
+ columns: [{
+ checkbox: true
+ },
+ {
+ field : 'id',
+ title : '涓婚敭',
+ visible: false
+ },
+ {
+ field : 'code',
+ title : '璁惧缂栧彿'
+ },
+ {
+ field : 'name',
+ title : '鍚嶅瓧'
+ },
+ {
+ field : 'type',
+ title : '鍨嬪彿'
+ },
+ {
+ field : 'manufacturer',
+ title : '鐢熶骇鍟�'
+ },
+ {
+ field : 'buyDate',
+ title : '璐拱鏃ユ湡'
+ },
+ {
+ field : 'price',
+ title : '浠锋牸'
+ },
+ {
+ field : 'status',
+ title : '璁惧鐘舵��',
+ formatter: function(value, row, index) {
+ return $.table.selectDictLabel(statusDatas, value);
+ }
+ },
+ {
+ field : 'storageAddress',
+ title : '瀛樻斁浣嶇疆'
+ },
+ {
+ title: '鎿嶄綔',
+ 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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>鍒犻櫎</a>');
+ return actions.join('');
+ }
+ }]
+ };
+ $.table.init(options);
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/edit.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/edit.html
new file mode 100644
index 0000000..dab5007
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/edit.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('淇敼璁惧搴�')" />
+ <th:block th:include="include :: datetimepicker-css" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-device-edit" th:object="${device}">
+ <input name="id" th:field="*{id}" type="hidden">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璁惧缂栧彿锛�</label>
+ <div class="col-sm-8">
+ <input name="code" th:field="*{code}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍚嶅瓧锛�</label>
+ <div class="col-sm-8">
+ <input name="name" th:field="*{name}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍨嬪彿锛�</label>
+ <div class="col-sm-8">
+ <input name="type" th:field="*{type}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鐢熶骇鍟嗭細</label>
+ <div class="col-sm-8">
+ <input name="manufacturer" th:field="*{manufacturer}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璐拱鏃ユ湡锛�</label>
+ <div class="col-sm-8">
+ <div class="input-group date">
+ <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+ <input name="buyDate" th:value="${#dates.format(device.buyDate, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">浠锋牸锛�</label>
+ <div class="col-sm-8">
+ <input name="price" th:field="*{price}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璁惧鐘舵�侊細</label>
+ <div class="col-sm-8">
+ <select name="status" class="form-control m-b" th:with="type=${@dict.getType('device_status')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{status}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">瀛樻斁浣嶇疆锛�</label>
+ <div class="col-sm-8">
+ <input name="storageAddress" th:field="*{storageAddress}" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <th:block th:include="include :: datetimepicker-js" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/device";
+ $("#form-device-edit").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/edit", $('#form-device-edit').serialize());
+ }
+ }
+
+ $("input[name='buyDate']").datetimepicker({
+ format: "yyyy-mm-dd",
+ minView: "month",
+ autoclose: true
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/add.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/add.html
new file mode 100644
index 0000000..d02353d
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/add.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('鏂板璁惧鍑哄叆搴撹褰�')" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-deviceLog-add">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撳崟瀛愬彿锛�</label>
+ <div class="col-sm-8">
+ <input name="code" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">椤圭洰鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="projectName" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璁惧鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="deviceName" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撶被鍨嬶細</label>
+ <div class="col-sm-8">
+ <select name="type" class="form-control m-b" th:with="type=${@dict.getType('device_log_type')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撴椂闂达細</label>
+ <div class="col-sm-8">
+ <input name="transactionDate" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">缁忓姙浜猴細</label>
+ <div class="col-sm-8">
+ <input name="optUser" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">浣跨敤浜猴細</label>
+ <div class="col-sm-8">
+ <input name="applyUser" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撴暟閲忥細</label>
+ <div class="col-sm-8">
+ <input name="number" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/deviceLog"
+ $("#form-deviceLog-add").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/add", $('#form-deviceLog-add').serialize());
+ }
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/deviceLog.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/deviceLog.html
new file mode 100644
index 0000000..f8f04dc
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/deviceLog.html
@@ -0,0 +1,145 @@
+<!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('璁惧鍑哄叆搴撹褰曞垪琛�')" />
+</head>
+<body class="gray-bg">
+ <div class="container-div">
+ <div class="row">
+ <div class="col-sm-12 search-collapse">
+ <form id="formId">
+ <div class="select-list">
+ <ul>
+ <li>
+ <p>鍑哄叆搴撳崟瀛愬彿锛�</p>
+ <input type="text" name="code"/>
+ </li>
+ <li>
+ <p>椤圭洰鍚嶇О锛�</p>
+ <input type="text" name="projectName"/>
+ </li>
+ <li>
+ <p>璁惧鍚嶇О锛�</p>
+ <input type="text" name="deviceName"/>
+ </li>
+ <li>
+ <p>鍑哄叆搴撶被鍨嬶細</p>
+ <select name="type" th:with="type=${@dict.getType('device_log_type')}">
+ <option value="">鎵�鏈�</option>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </li>
+ <li>
+ <p>缁忓姙浜猴細</p>
+ <input type="text" name="optUser"/>
+ </li>
+ <li>
+ <p>浣跨敤浜猴細</p>
+ <input type="text" name="applyUser"/>
+ </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()" shiro:hasPermission="geo:deviceLog:add">
+ <i class="fa fa-plus"></i> 娣诲姞
+ </a>
+ <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="geo:deviceLog:edit">
+ <i class="fa fa-edit"></i> 淇敼
+ </a>
+ <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="geo:deviceLog:remove">
+ <i class="fa fa-remove"></i> 鍒犻櫎
+ </a>
+ <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="geo:deviceLog:export">
+ <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" />
+ <script th:inline="javascript">
+ var editFlag = [[${@permission.hasPermi('geo:deviceLog:edit')}]];
+ var removeFlag = [[${@permission.hasPermi('geo:deviceLog:remove')}]];
+ var typeDatas = [[${@dict.getType('device_log_type')}]];
+ var prefix = ctx + "geo/deviceLog";
+
+ $(function() {
+ var options = {
+ url: prefix + "/list",
+ createUrl: prefix + "/add",
+ updateUrl: prefix + "/edit/{id}",
+ removeUrl: prefix + "/remove",
+ exportUrl: prefix + "/export",
+ modalName: "璁惧鍑哄叆搴撹褰�",
+ columns: [{
+ checkbox: true
+ },
+ {
+ field : 'id',
+ title : '涓婚敭',
+ visible: false
+ },
+ {
+ field : 'code',
+ title : '鍑哄叆搴撳崟瀛愬彿'
+ },
+ {
+ field : 'projectName',
+ title : '椤圭洰鍚嶇О'
+ },
+ {
+ field : 'deviceName',
+ title : '璁惧鍚嶇О'
+ },
+ {
+ field : 'type',
+ title : '鍑哄叆搴撶被鍨�',
+ formatter: function(value, row, index) {
+ return $.table.selectDictLabel(typeDatas, value);
+ }
+ },
+ {
+ field : 'transactionDate',
+ title : '鍑哄叆搴撴椂闂�'
+ },
+ {
+ field : 'optUser',
+ title : '缁忓姙浜�'
+ },
+ {
+ field : 'applyUser',
+ title : '浣跨敤浜�'
+ },
+ {
+ field : 'number',
+ title : '鍑哄叆搴撴暟閲�'
+ },
+ {
+ field : 'remark',
+ title : '澶囨敞'
+ },
+ {
+ title: '鎿嶄綔',
+ 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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>鍒犻櫎</a>');
+ return actions.join('');
+ }
+ }]
+ };
+ $.table.init(options);
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/edit.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/edit.html
new file mode 100644
index 0000000..0dc7b9c
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/edit.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('淇敼璁惧鍑哄叆搴撹褰�')" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-deviceLog-edit" th:object="${deviceLog}">
+ <input name="id" th:field="*{id}" type="hidden">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撳崟瀛愬彿锛�</label>
+ <div class="col-sm-8">
+ <input name="code" th:field="*{code}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">椤圭洰鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="projectName" th:field="*{projectName}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璁惧鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="deviceName" th:field="*{deviceName}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撶被鍨嬶細</label>
+ <div class="col-sm-8">
+ <select name="type" class="form-control m-b" th:with="type=${@dict.getType('device_log_type')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{type}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撴椂闂达細</label>
+ <div class="col-sm-8">
+ <input name="transactionDate" th:field="*{transactionDate}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">缁忓姙浜猴細</label>
+ <div class="col-sm-8">
+ <input name="optUser" th:field="*{optUser}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">浣跨敤浜猴細</label>
+ <div class="col-sm-8">
+ <input name="applyUser" th:field="*{applyUser}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍑哄叆搴撴暟閲忥細</label>
+ <div class="col-sm-8">
+ <input name="number" th:field="*{number}" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/deviceLog";
+ $("#form-deviceLog-edit").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/edit", $('#form-deviceLog-edit').serialize());
+ }
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/navigate.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/navigate.html
index 7618956..59fd409 100644
--- a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/navigate.html
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/navigate.html
@@ -28,49 +28,52 @@
<div class="box-title">
<i class="glyphicon glyphicon-map-marker"></i> <a class="afont" th:href="@{/geo/hole(id=${project.ids})}" target="mainFrame" onclick="selected(this)">鍕樻帰鐐�</a>
</div>
- </div>
- <div class="box-header ">
- <div class="box-title">
- <i class="glyphicon glyphicon-user"></i> <a class="afont" th:href="@{/geo/person(id=${project.ids})}" target="mainFrame" onclick="selected(this)">鍙備笌浜�</a>
- </div>
</div>
-
<div class="box-header ">
<div class="box-title">
- <i class="glyphicon glyphicon-adjust"></i> <a class="afont" th:href="@{/geo/yantu(id=${project.ids})}" target="mainFrame" onclick="selected(this)">宀╁湡</a>
+ <i class="glyphicon glyphicon-user"></i> <a class="afont" th:href="@{/geo/projectPerson(id=${project.ids})}" target="mainFrame" onclick="selected(this)">浜哄憳绠$悊</a>
</div>
</div>
-
<div class="box-header ">
<div class="box-title">
- <i class="glyphicon glyphicon-ban-circle"></i> <a class="afont" th:href="@{/geo/qutu(id=${project.ids})}" target="mainFrame" onclick="selected(this)">鍙栧湡</a>
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/deviceLog(id=${project.ids})}" target="mainFrame" onclick="selected(this)">杩涘嚭搴撶鐞�</a>
</div>
</div>
-
<div class="box-header ">
<div class="box-title">
- <i class="glyphicon glyphicon-screenshot"></i> <a class="afont" th:href="@{/geo/huici(id=${project.ids})}" target="mainFrame" onclick="selected(this)">鍥炴</a>
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='1')}" target="mainFrame" onclick="selected(this)">璐ㄩ噺绠$悊</a>
</div>
</div>
-
<div class="box-header ">
<div class="box-title">
- <i class="glyphicon glyphicon-tint"></i> <a class="afont" th:href="@{/geo/shuiwei(id=${project.ids})}" target="mainFrame" onclick="selected(this)">姘翠綅</a>
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='2')}" target="mainFrame" onclick="selected(this)">瀹夊叏绠$悊</a>
</div>
</div>
-
<div class="box-header ">
<div class="box-title">
- <i class="glyphicon glyphicon-tower"></i> <a class="afont" th:href="@{/geo/biaoguan(id=${project.ids})}" target="mainFrame" onclick="selected(this)">鏍囪疮/鍔ㄦ帰</a>
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='3')}" target="mainFrame" onclick="selected(this)">娴嬩簳</a>
</div>
</div>
-
<div class="box-header ">
<div class="box-title">
- <i class="glyphicon glyphicon-blackboard"></i> <a class="afont" th:href="@{/geo/projectwork/work(id=${project.ids})}" target="mainFrame" onclick="selected(this)">宸ヤ綔閲�</a>
- </div>
- </div>
-
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='4')}" target="mainFrame" onclick="selected(this)">鏂滄祴</a>
+ </div>
+ </div>
+ <div class="box-header ">
+ <div class="box-title">
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='5')}" target="mainFrame" onclick="selected(this)">瀹ゅ唴璇曢獙</a>
+ </div>
+ </div>
+ <div class="box-header ">
+ <div class="box-title">
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='6')}" target="mainFrame" onclick="selected(this)">宸ョ▼娴嬬粯</a>
+ </div>
+ </div>
+ <div class="box-header ">
+ <div class="box-title">
+ <i class="glyphicon glyphicon-modal-window"></i> <a class="afont" th:href="@{/geo/projectData(id=${project.ids},type='7')}" target="mainFrame" onclick="selected(this)">姘磋川鍒嗘瀽</a>
+ </div>
+ </div>
</div>
</div>
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/add.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/add.html
new file mode 100644
index 0000000..7f34c23
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/add.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('鏂板椤圭洰璧勬枡')" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-projectData-add">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璧勬枡鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="name" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璧勬枡绫诲瀷锛�</label>
+ <div class="col-sm-8">
+ <select name="dataType" class="form-control m-b" th:with="type=${@dict.getType('project_data_type')}" required>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鏂囦欢绫诲瀷锛�</label>
+ <div class="col-sm-8">
+ <select name="fileType" class="form-control m-b" th:with="type=${@dict.getType('project_data_file_type')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鏍囩锛�</label>
+ <div class="col-sm-8">
+ <input name="labels" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/projectData"
+ $("#form-projectData-add").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/add", $('#form-projectData-add').serialize());
+ }
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/edit.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/edit.html
new file mode 100644
index 0000000..804b13c
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/edit.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('淇敼椤圭洰璧勬枡')" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-projectData-edit" th:object="${projectData}">
+ <input name="id" th:field="*{id}" type="hidden">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璧勬枡鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="name" th:field="*{name}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">璧勬枡绫诲瀷锛�</label>
+ <div class="col-sm-8">
+ <select name="dataType" class="form-control m-b" th:with="type=${@dict.getType('project_data_type')}" required>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{dataType}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鏂囦欢绫诲瀷锛�</label>
+ <div class="col-sm-8">
+ <select name="fileType" class="form-control m-b" th:with="type=${@dict.getType('project_data_file_type')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{fileType}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鏍囩锛�</label>
+ <div class="col-sm-8">
+ <input name="labels" th:field="*{labels}" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/projectData";
+ $("#form-projectData-edit").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/edit", $('#form-projectData-edit').serialize());
+ }
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html
new file mode 100644
index 0000000..ec854eb
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html
@@ -0,0 +1,128 @@
+<!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('椤圭洰璧勬枡鍒楄〃')" />
+</head>
+<body class="gray-bg">
+ <div class="container-div">
+ <div class="row">
+ <div class="col-sm-12 search-collapse">
+ <form id="formId">
+ <div class="select-list">
+ <ul>
+ <li>
+ <p>璧勬枡鍚嶇О锛�</p>
+ <input type="text" name="name"/>
+ </li>
+ <li>
+ <p>璧勬枡绫诲瀷锛�</p>
+ <select name="dataType" th:with="type=${@dict.getType('project_data_type')}">
+ <option value="">鎵�鏈�</option>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </li>
+ <li>
+ <p>鏂囦欢绫诲瀷锛�</p>
+ <select name="fileType" th:with="type=${@dict.getType('project_data_file_type')}">
+ <option value="">鎵�鏈�</option>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </li>
+ <li>
+ <p>鏍囩锛�</p>
+ <input type="text" name="labels"/>
+ </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()" shiro:hasPermission="geo:projectData:add">
+ <i class="fa fa-plus"></i> 娣诲姞
+ </a>
+ <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="geo:projectData:edit">
+ <i class="fa fa-edit"></i> 淇敼
+ </a>
+ <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="geo:projectData:remove">
+ <i class="fa fa-remove"></i> 鍒犻櫎
+ </a>
+ <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="geo:projectData:export">
+ <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" />
+ <script th:inline="javascript">
+ var editFlag = [[${@permission.hasPermi('geo:projectData:edit')}]];
+ var removeFlag = [[${@permission.hasPermi('geo:projectData:remove')}]];
+ var dataTypeDatas = [[${@dict.getType('project_data_type')}]];
+ var fileTypeDatas = [[${@dict.getType('project_data_file_type')}]];
+ var prefix = ctx + "geo/projectData";
+
+ $(function() {
+ var options = {
+ url: prefix + "/list",
+ createUrl: prefix + "/add",
+ updateUrl: prefix + "/edit/{id}",
+ removeUrl: prefix + "/remove",
+ exportUrl: prefix + "/export",
+ modalName: "椤圭洰璧勬枡",
+ columns: [{
+ checkbox: true
+ },
+ {
+ field : 'id',
+ title : '涓婚敭',
+ visible: false
+ },
+ {
+ field : 'name',
+ title : '璧勬枡鍚嶇О'
+ },
+ {
+ field : 'dataType',
+ title : '璧勬枡绫诲瀷',
+ formatter: function(value, row, index) {
+ return $.table.selectDictLabel(dataTypeDatas, value);
+ }
+ },
+ {
+ field : 'fileType',
+ title : '鏂囦欢绫诲瀷',
+ formatter: function(value, row, index) {
+ return $.table.selectDictLabel(fileTypeDatas, value);
+ }
+ },
+ {
+ field : 'labels',
+ title : '鏍囩'
+ },
+ {
+ field : 'remark',
+ title : '澶囨敞'
+ },
+ {
+ title: '鎿嶄綔',
+ 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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>鍒犻櫎</a>');
+ return actions.join('');
+ }
+ }]
+ };
+ $.table.init(options);
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/add.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/add.html
new file mode 100644
index 0000000..bd90031
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/add.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('鏂板椤圭洰浜哄憳')" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-projectPerson-add">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">浜哄憳鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="name" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">绫诲瀷锛�</label>
+ <div class="col-sm-8">
+ <select name="type" class="form-control m-b" th:with="type=${@dict.getType('project_person_type')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鎵嬫満鍙凤細</label>
+ <div class="col-sm-8">
+ <input name="phone" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍦板潃锛�</label>
+ <div class="col-sm-8">
+ <input name="address" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鑱岃矗锛�</label>
+ <div class="col-sm-8">
+ <input name="responsibility" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/projectPerson"
+ $("#form-projectPerson-add").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/add", $('#form-projectPerson-add').serialize());
+ }
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/edit.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/edit.html
new file mode 100644
index 0000000..438156c
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/edit.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+ <th:block th:include="include :: header('淇敼椤圭洰浜哄憳')" />
+</head>
+<body class="white-bg">
+ <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+ <form class="form-horizontal m" id="form-projectPerson-edit" th:object="${projectPerson}">
+ <input name="ids" th:field="*{ids}" type="hidden">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">浜哄憳鍚嶇О锛�</label>
+ <div class="col-sm-8">
+ <input name="name" th:field="*{name}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">绫诲瀷锛�</label>
+ <div class="col-sm-8">
+ <select name="type" class="form-control m-b" th:with="type=${@dict.getType('project_person_type')}">
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{type}"></option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鎵嬫満鍙凤細</label>
+ <div class="col-sm-8">
+ <input name="phone" th:field="*{phone}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鍦板潃锛�</label>
+ <div class="col-sm-8">
+ <input name="address" th:field="*{address}" class="form-control" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">鑱岃矗锛�</label>
+ <div class="col-sm-8">
+ <input name="responsibility" th:field="*{responsibility}" class="form-control" type="text">
+ </div>
+ </div>
+ </form>
+ </div>
+ <th:block th:include="include :: footer" />
+ <script type="text/javascript">
+ var prefix = ctx + "geo/projectPerson";
+ $("#form-projectPerson-edit").validate({
+ focusCleanup: true
+ });
+
+ function submitHandler() {
+ if ($.validate.form()) {
+ $.operate.save(prefix + "/edit", $('#form-projectPerson-edit').serialize());
+ }
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/projectPerson.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/projectPerson.html
new file mode 100644
index 0000000..4bcc484
--- /dev/null
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/projectPerson.html
@@ -0,0 +1,122 @@
+<!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('椤圭洰浜哄憳鍒楄〃')" />
+</head>
+<body class="gray-bg">
+ <div class="container-div">
+ <div class="row">
+ <div class="col-sm-12 search-collapse">
+ <form id="formId">
+ <div class="select-list">
+ <ul>
+ <li>
+ <p>浜哄憳鍚嶇О锛�</p>
+ <input type="text" name="name"/>
+ </li>
+ <li>
+ <p>绫诲瀷锛�</p>
+ <select name="type" th:with="type=${@dict.getType('project_person_type')}">
+ <option value="">鎵�鏈�</option>
+ <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+ </select>
+ </li>
+ <li>
+ <p>鎵嬫満鍙凤細</p>
+ <input type="text" name="phone"/>
+ </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()" shiro:hasPermission="geo:projectPerson:add">
+ <i class="fa fa-plus"></i> 娣诲姞
+ </a>
+ <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="geo:projectPerson:edit">
+ <i class="fa fa-edit"></i> 淇敼
+ </a>
+ <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="geo:projectPerson:remove">
+ <i class="fa fa-remove"></i> 鍒犻櫎
+ </a>
+ <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="geo:projectPerson:export">
+ <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" />
+ <script th:inline="javascript">
+ var editFlag = [[${@permission.hasPermi('geo:projectPerson:edit')}]];
+ var removeFlag = [[${@permission.hasPermi('geo:projectPerson:remove')}]];
+ var typeDatas = [[${@dict.getType('project_person_type')}]];
+ var projectId=[[${projectId}]];
+ var prefix = ctx + "geo/projectPerson";
+
+ $(function() {
+ var options = {
+ url: prefix + "/list?projectId="+projectId,
+ createUrl: prefix + "/add",
+ updateUrl: prefix + "/edit/{id}",
+ removeUrl: prefix + "/remove",
+ exportUrl: prefix + "/export",
+ modalName: "椤圭洰浜哄憳",
+ columns: [{
+ checkbox: true
+ },
+ {
+ field : 'ids',
+ title : 'id',
+ visible: false
+ },
+ {
+ field : 'name',
+ title : '浜哄憳鍚嶇О'
+ },
+ {
+ field : 'type',
+ title : '绫诲瀷',
+ formatter: function(value, row, index) {
+ return $.table.selectDictLabel(typeDatas, value);
+ }
+ },
+ {
+ field : 'phone',
+ title : '鎵嬫満鍙�'
+ },
+ {
+ field : 'address',
+ title : '鍦板潃'
+ },
+ {
+ field : 'responsibility',
+ title : '鑱岃矗'
+ },
+ {
+ field : 'remark',
+ title : '澶囨敞'
+ },
+ {
+ title: '鎿嶄綔',
+ 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.ids + '\')"><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.ids + '\')"><i class="fa fa-remove"></i>鍒犻櫎</a>');
+ return actions.join('');
+ }
+ }]
+ };
+ $.table.init(options);
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
--
Gitblit v1.9.1