地质所 沉降监测网建设项目
chenhuan
2024-05-16 0fdd42e318f51f9e3c6581473416af1cca69877f
Merge branch 'master' of http://117.78.1.188:8089/r/dkyChenJiang
2个文件已修改
36个文件已添加
3551 ■■■■■ 已修改文件
javaweb-plus/javaweb-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectPersonController.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Device.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/DeviceLog.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectData.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectPerson.java 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceLogMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectDataMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectPersonMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceLogService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectDataService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectPersonService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectPersonServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceLogMapper.xml 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceMapper.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectDataMapper.xml 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectPersonMapper.xml 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/add.html 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/device.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/edit.html 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/add.html 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/deviceLog.html 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/edit.html 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/navigate.html 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/add.html 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/edit.html 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/add.html 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/edit.html 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/projectPerson.html 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
  #虚拟文件上传路径
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceController.java
New file
@@ -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;
/**
 * 设备库Controller
 *
 * @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));
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java
New file
@@ -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;
/**
 * 设备出入库记录Controller
 *
 * @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));
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java
New file
@@ -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));
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectPersonController.java
New file
@@ -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));
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Device.java
New file
@@ -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();
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/DeviceLog.java
New file
@@ -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();
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectData.java
New file
@@ -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();
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/ProjectPerson.java
New file
@@ -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();
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceLogMapper.java
New file
@@ -0,0 +1,61 @@
package com.javaweb.geo.mapper;
import com.javaweb.geo.domain.DeviceLog;
import java.util.List;
/**
 * 设备出入库记录Mapper接口
 *
 * @author cxy
 * @date 2024-05-16
 */
public interface DeviceLogMapper
{
    /**
     * 查询设备出入库记录
     *
     * @param id 设备出入库记录ID
     * @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 设备出入库记录ID
     * @return 结果
     */
    public int deleteDeviceLogById(String id);
    /**
     * 批量删除设备出入库记录
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteDeviceLogByIds(String[] ids);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/DeviceMapper.java
New file
@@ -0,0 +1,61 @@
package com.javaweb.geo.mapper;
import com.javaweb.geo.domain.Device;
import java.util.List;
/**
 * 设备库Mapper接口
 *
 * @author cxy
 * @date 2024-05-16
 */
public interface DeviceMapper
{
    /**
     * 查询设备库
     *
     * @param id 设备库ID
     * @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 设备库ID
     * @return 结果
     */
    public int deleteDeviceById(String id);
    /**
     * 批量删除设备库
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteDeviceByIds(String[] ids);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectDataMapper.java
New file
@@ -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);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/mapper/ProjectPersonMapper.java
New file
@@ -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);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceLogService.java
New file
@@ -0,0 +1,61 @@
package com.javaweb.geo.service;
import com.javaweb.geo.domain.DeviceLog;
import java.util.List;
/**
 * 设备出入库记录Service接口
 *
 * @author cxy
 * @date 2024-05-16
 */
public interface IDeviceLogService
{
    /**
     * 查询设备出入库记录
     *
     * @param id 设备出入库记录ID
     * @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 设备出入库记录ID
     * @return 结果
     */
    public int deleteDeviceLogById(String id);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IDeviceService.java
New file
@@ -0,0 +1,61 @@
package com.javaweb.geo.service;
import com.javaweb.geo.domain.Device;
import java.util.List;
/**
 * 设备库Service接口
 *
 * @author cxy
 * @date 2024-05-16
 */
public interface IDeviceService
{
    /**
     * 查询设备库
     *
     * @param id 设备库ID
     * @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 设备库ID
     * @return 结果
     */
    public int deleteDeviceById(String id);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectDataService.java
New file
@@ -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);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/IProjectPersonService.java
New file
@@ -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);
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java
New file
@@ -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;
/**
 * 设备出入库记录Service业务层处理
 *
 * @author cxy
 * @date 2024-05-16
 */
@Service
public class DeviceLogServiceImpl implements IDeviceLogService {
    @Autowired
    private DeviceLogMapper deviceLogMapper;
    /**
     * 查询设备出入库记录
     *
     * @param id 设备出入库记录ID
     * @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 设备出入库记录ID
     * @return 结果
     */
    @Override
    public int deleteDeviceLogById(String id) {
        return deviceLogMapper.deleteDeviceLogById(id);
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceServiceImpl.java
New file
@@ -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;
/**
 * 设备库Service业务层处理
 *
 * @author cxy
 * @date 2024-05-16
 */
@Service
public class DeviceServiceImpl implements IDeviceService
{
    @Autowired
    private DeviceMapper deviceMapper;
    /**
     * 查询设备库
     *
     * @param id 设备库ID
     * @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 设备库ID
     * @return 结果
     */
    @Override
    public int deleteDeviceById(String id)
    {
        return deviceMapper.deleteDeviceById(id);
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
New file
@@ -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);
    }
}
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectPersonServiceImpl.java
New file
@@ -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);
    }
}
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceLogMapper.xml
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/DeviceMapper.xml
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectDataMapper.xml
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/ProjectPersonMapper.xml
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/add.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/device.html
New file
@@ -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>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/device/edit.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/add.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/deviceLog.html
New file
@@ -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>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/deviceLog/edit.html
New file
@@ -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>
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>
    
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/add.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/edit.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html
New file
@@ -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>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/add.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/edit.html
New file
@@ -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>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectPerson/projectPerson.html
New file
@@ -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>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</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>