Compare commits

...

29 Commits

Author SHA1 Message Date
zhuyulei 4f53d89df7 Merge branch 'release-sy-v1.0.0' 1 year ago
hxh 6c39f095cc fix: 修复查询条件问题 1 year ago
hxh 1925694154 Merge remote-tracking branch 'origin/release-sy-v1.0.0' into release-sy-v1.0.0 1 year ago
hxh ba50a4d213 Merge branch 'master' into release-sy-v1.0.0 1 year ago
杜鑫 995fa16993 Merge remote-tracking branch 'origin/release-sy-v1.0.0' into release-sy-v1.0.0 1 year ago
杜鑫 d8f1050a02 feat:添加字典数据map接口(key:value value:label) 1 year ago
hxh f9efb5d7d7 Merge remote-tracking branch 'origin/release-sy-v1.0.0' into release-sy-v1.0.0 1 year ago
hxh de5ad599a5 fix: 记录保存问题 1 year ago
杜鑫 c15cc70ab5 feat:添加字典数据map接口(key:value value:label) 1 year ago
杜鑫 b1f89af0aa feat:添加字典数据map接口(key:value value:label) 1 year ago
杜鑫 147d90c08a feat:添加字典数据map接口(key:value value:label) 1 year ago
杜鑫 522a067355 feat:添加字典数据map接口(key:value value:label) 1 year ago
杜鑫 7e855776c1 feat:添加字典数据map接口(key:value value:label) 1 year ago
hxh e8160a96e7 fix: 修复上传接口空指针问题 1 year ago
hxh 07db896412 fix: 修复上传接口空指针问题 1 year ago
hxh b6030630b3 feat: 水闸、地方基本信息返回具体数据结构类型 1 year ago
hxh a01d65c1a8 feat: 添加上传接口文档 1 year ago
hxh 04a3dd7e2c feat: 巡查计划添加巡查依据附件文档 1 year ago
hxh f04fbbdb2f feat: component允许置空 1 year ago
hxh ef7610cc76 Merge branch 'master' into release-sy-v1.0.0 1 year ago
hxh b4b6b51901 feat: 添加字符集 1 year ago
hxh cc8a834c21 Merge branch 'master' into release-sy-v1.0.0 1 year ago
hxh 10a9afcf67 feat: 修改基础类 1 year ago
hxh 87b82dcbff feat: 新增数据时避免外部设置id 1 year ago
hxh 6c7aa222d6 feat: 修改url 1 year ago
hxh 5a5a23f096 feat: 添加害堤动物防治 1 year ago
hxh d2a95b0aba feat: 调整sql脚本 1 year ago
hxh adbe49c498 feat: 添加是否提醒字段 1 year ago
hxh bc5f91547a feat: 镜像导出脚本与sql优化 1 year ago
  1. 6
      sbin/images.sh
  2. 107
      shuili-admin/src/main/java/com/kms/web/controller/common/CommonController.java
  3. 23
      shuili-admin/src/main/java/com/kms/web/controller/system/SysDictDataController.java
  4. 39
      shuili-system/src/main/java/com/kms/system/service/SysDictDataService.java
  5. 4
      shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfJbxxController.java
  6. 2
      shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzGcglController.java
  7. 26
      shuili-system/src/main/java/com/kms/yxgh/base/enums/DfAnimalRecordStatus.java
  8. 81
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfAnimalPlanController.java
  9. 80
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfAnimalRecordController.java
  10. 102
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYhPlanController.java
  11. 57
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalDrug.java
  12. 52
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalOperator.java
  13. 100
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalPlan.java
  14. 57
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalPlanDetail.java
  15. 76
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalRecord.java
  16. 100
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfPlan.java
  17. 46
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfRecordImage.java
  18. 151
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfAnimalPlanDto.java
  19. 81
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfAnimalRecordDto.java
  20. 65
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfPlanDetailDto.java
  21. 16
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalDrugMapper.java
  22. 16
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalOperatorMapper.java
  23. 16
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalPlanDetailMapper.java
  24. 16
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalPlanMapper.java
  25. 16
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalRecordMapper.java
  26. 16
      shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordImageMapper.java
  27. 172
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalPlanService.java
  28. 173
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalRecordService.java
  29. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java
  30. 247
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfPlanService.java
  31. 248
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java
  32. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java
  33. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java
  34. 6
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzPlan.java
  35. 3
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzPlanDetailDto.java
  36. 1
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingService.java
  37. 244
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzPlanService.java
  38. 248
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzRecordService.java
  39. 1
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java
  40. 1
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java
  41. 2
      shuili-system/src/main/resources/mapper/system/SysMenuMapper.xml
  42. 3
      sql/sy/v1.0.0/v1.0.0.sql
  43. 410
      sql/sy/v1.1.0/全量脚本/v1.1.0-all.sql
  44. 92
      sql/sy/v1.1.0/增量脚本/v1.1.0-update.sql

6
sbin/images.sh

@ -0,0 +1,6 @@
#!/bin/bash
podman pull --platform=linux/arm64 ccr.ccs.tencentyun.com/shuyuan/shuili-ui:v1.0.0
podman pull --platform=linux/arm64 ccr.ccs.tencentyun.com/shuyuan/shuili-admin:v1.0.0
podman save -m ccr.ccs.tencentyun.com/shuyuan/shuili-admin:v1.0.0 ccr.ccs.tencentyun.com/shuyuan/shuili-ui:v1.0.0 > images.tar.gz

107
shuili-admin/src/main/java/com/kms/web/controller/common/CommonController.java

@ -1,13 +1,18 @@
package com.kms.web.controller.common;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.shuili.common.utils.FileUploadUtils;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.stp.StpUtil;
import com.kms.framework.config.ServerConfig;
import com.shuili.common.config.ShuiliConfig;
import com.shuili.common.constant.Constants;
import com.shuili.common.core.domain.AjaxResult;
import com.shuili.common.exception.BaseException;
import com.shuili.common.utils.FastDfsUtil;
import com.shuili.common.utils.FileUploadUtils;
import com.shuili.common.utils.StringUtils;
import com.shuili.common.utils.file.FileUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -17,25 +22,19 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.shuili.common.config.ShuiliConfig;
import com.shuili.common.constant.Constants;
import com.shuili.common.core.domain.AjaxResult;
import com.shuili.common.exception.BaseException;
import com.shuili.common.utils.FastDfsUtil;
import com.shuili.common.utils.StringUtils;
import com.shuili.common.utils.file.FileUtils;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.stp.StpUtil;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 通用请求处理
*
* @author kms
*/
@Api(tags = "通用上传接口")
@RestController
public class CommonController
{
public class CommonController {
private static final Logger log = LoggerFactory.getLogger(CommonController.class);
@ -50,15 +49,12 @@ public class CommonController
* 通用下载请求
*
* @param fileName 文件名称
* 必须登录才可以下载
*
* 必须登录才可以下载
*/
@SaCheckLogin
@GetMapping("common/download")
public void fileDownload(String fileUrl,String fileName, HttpServletResponse response, HttpServletRequest request)
{
try
{
public void fileDownload(String fileUrl, String fileName, HttpServletResponse response, HttpServletRequest request) {
try {
String uploadType = ShuiliConfig.getUploadType();
@ -81,15 +77,15 @@ public class CommonController
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition",
"attachment;fileName=" + fileName);
ServletOutputStream outputStream=null;
ServletOutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
byte[] bytes = fastdfs.downloadFile(fileUrl);
IOUtils.write(bytes,response.getOutputStream());
} catch (Exception e){
IOUtils.write(bytes, response.getOutputStream());
} catch (Exception e) {
throw new BaseException("文件下载失败");
}finally {
if (outputStream!=null) {
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
@ -115,9 +111,7 @@ public class CommonController
{
FileUtils.deleteFile(filePath);
}*/
}
catch (Exception e)
{
} catch (Exception e) {
log.error("下载文件失败", e);
}
}
@ -126,15 +120,13 @@ public class CommonController
/**
* 通用上传请求
*/
@ApiOperation("通用上传请求")
@PostMapping("/common/upload")
public AjaxResult uploadFile(MultipartFile file) throws Exception
{
public AjaxResult uploadFile(MultipartFile file) throws Exception {
String uploadType = ShuiliConfig.getUploadType();
try
{
try {
if (uploadType.equals("FastDFS")) {
if ("FastDFS".equals(uploadType)) {
String fileName = file.getOriginalFilename();
// 上传并返回文件名称
@ -155,21 +147,18 @@ public class CommonController
return ajax;
}
}
catch (Exception e)
{
e.printStackTrace();
} catch (Exception e) {
log.error("上传文件异常", e);
return AjaxResult.error(e.getMessage());
}
}
/**
* 本地资源通用下载
* 本地资源通用下载
*/
@GetMapping("/common/download/resource")
public void resourceDownload(String name, HttpServletRequest request, HttpServletResponse response) throws Exception
{
public void resourceDownload(String name, HttpServletRequest request, HttpServletResponse response) throws Exception {
// 本地资源路径
String localPath = ShuiliConfig.getProfile();
// 数据库资源地址
@ -187,33 +176,33 @@ public class CommonController
@PostMapping("/logout")
@SaCheckLogin
public AjaxResult logout() {
public AjaxResult logout() {
// 登录保存缓存
StpUtil.logout();
//删除缓存
return AjaxResult.success();
}
// 登录保存缓存
StpUtil.logout();
//删除缓存
return AjaxResult.success();
}
/**
* 从fastDfs 使用文件路径
*/
@GetMapping("/download/fastDfs")
@SaCheckLogin
public void downFile(String fileUrl,String fileName,HttpServletResponse response){
public void downFile(String fileUrl, String fileName, HttpServletResponse response) {
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition",
"attachment;fileName=" + fileName);
ServletOutputStream outputStream=null;
ServletOutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
byte[] bytes = fastdfs.downloadFile(fileUrl);
IOUtils.write(bytes,response.getOutputStream());
} catch (Exception e){
IOUtils.write(bytes, response.getOutputStream());
} catch (Exception e) {
throw new BaseException("文件下载失败");
}finally {
if (outputStream!=null) {
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {

23
shuili-admin/src/main/java/com/kms/web/controller/system/SysDictDataController.java

@ -1,9 +1,11 @@
package com.kms.web.controller.system;
import com.kms.yxgh.base.Response;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import java.util.Map;
import cn.dev33.satoken.annotation.SaCheckLogin;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -12,14 +14,7 @@ import com.kms.system.service.SysDictDataService;
import com.kms.system.service.SysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
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.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.controller.BaseController;
@ -125,4 +120,16 @@ public class SysDictDataController extends BaseController
{
return toAjax(dictDataService.deleteDictDataByIds(dictCodes));
}
/**
* 字典数据map(key:dictValue,value:dictLabel)
* @param dictType 字典类型
* @return
*/
@ApiOperation("字典数据Map")
@GetMapping(value = "/map")
public Response<Map<String, String>> map(@RequestParam(value = "dictType") String dictType) {
return Response.ok(dictDataService.selectMap(dictType));
}
}

39
shuili-system/src/main/java/com/kms/system/service/SysDictDataService.java

@ -1,17 +1,24 @@
package com.kms.system.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.kms.system.mapper.SysDictTypeMapper;
import com.shuili.common.constant.YesOrNo;
import com.shuili.common.core.domain.entity.SysDictData;
import com.shuili.common.core.domain.entity.SysDictType;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.DictUtils;
import com.shuili.common.utils.StringUtils;
import com.kms.common.utils.BaseEntityUtils;
import com.kms.system.mapper.SysDictDataMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 字典 业务层处理
@ -24,6 +31,9 @@ public class SysDictDataService extends BaseService<SysDictDataMapper,SysDictDat
@Autowired
private SysDictDataMapper dictDataMapper;
@Autowired
private SysDictTypeMapper dictTypeMapper;
/**
* 根据条件分页查询字典数据
*
@ -130,4 +140,33 @@ public class SysDictDataService extends BaseService<SysDictDataMapper,SysDictDat
}
public Map<String, String> selectMap(String dictType) {
// 字典数据
List<SysDictData> sysDictData = dictDataMapper.selectList(null);
Map<String, List<SysDictData>> dictDataMap = sysDictData.stream().collect(Collectors.groupingBy(SysDictData::getDictType));
Map<String, String> map = new HashMap<>();
List<SysDictData> dataList = dictDataMap.get(dictType);
if(CollectionUtils.isNotEmpty(dataList)) {
toMap(dataList, map, dictDataMap, "");
}
return map;
}
private void toMap(List<SysDictData> dataList, Map<String, String> map, Map<String, List<SysDictData>> dictDataMap, String keyPrefix) {
dataList.forEach(t -> {
String key = keyPrefix + t.getDictValue();
map.put(key, t.getDictLabel());
// 该 字典也可作为 一个父级
List<SysDictData> sysDictData = dictDataMap.get(t.getDictValue());
if(CollectionUtils.isNotEmpty(sysDictData)) {
toMap(sysDictData, map, dictDataMap, key + ":");
}
});
}
}

4
shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfJbxxController.java

@ -69,7 +69,7 @@ public class BsSgcDfJbxxController extends BaseController
*/
@PostMapping("/list")
@ApiOperation("堤防基本信息列表")
public IPage list(@RequestBody SearchParam<BsSgcDfJbxx> sp)
public IPage<BsSgcDfJbxx> list(@RequestBody SearchParam<BsSgcDfJbxx> sp)
{
BsSgcDfJbxx projectInfo = sp.getData();
String adcd = null;
@ -176,7 +176,7 @@ public class BsSgcDfJbxxController extends BaseController
QueryWrapper<BsSgcDfJbxx> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("EMBANKMENT_CODE", embankmentCode);
queryWrapper.eq("DIKE_CODE", embankmentCode);
BsSgcDfJbxx one = bsSgcDfJbxxService.getOne(queryWrapper);
if (one != null) {

2
shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzGcglController.java

@ -54,7 +54,7 @@ public class BsSgcSzGcglController extends BaseController
*/
@PostMapping("/list")
@ApiOperation("水闸工程管理信息列表")
public IPage list(@RequestBody SearchParam<BsSgcSzGcgl> sp)
public IPage<BsSgcSzGcgl> list(@RequestBody SearchParam<BsSgcSzGcgl> sp)
{
return bsSgcSzGcglService.selectPage(sp);
}

26
shuili-system/src/main/java/com/kms/yxgh/base/enums/DfAnimalRecordStatus.java

@ -0,0 +1,26 @@
package com.kms.yxgh.base.enums;
import lombok.Getter;
/**
* @ClassName: RecordStatus
* @Description: TODO
* @Date: 2023/11/15 上午11:56 *
* @author: hxh
* @version: 1.0
*/
@Getter
public enum DfAnimalRecordStatus {
SAVED("已保存", 0L),
CONFIRMED("已确认", 1L);
private final Long value;
private final String name;
DfAnimalRecordStatus(String name, Long value) {
this.name = name;
this.value = value;
}
}

81
shuili-system/src/main/java/com/kms/yxgh/df/controller/DfAnimalPlanController.java

@ -0,0 +1,81 @@
package com.kms.yxgh.df.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kms.yxgh.base.Response;
import com.kms.yxgh.df.domain.DfAnimalPlan;
import com.kms.yxgh.df.dto.DfAnimalPlanDto;
import com.kms.yxgh.df.service.DfAnimalPlanService;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* 堤害动物防治计划Controller
*
* @author sy
* @date 2023-11-09
*/
@RestController
@AllArgsConstructor
@RequestMapping("/run/df/animal/plan")
@Api(tags = "堤害动物防治计划")
public class DfAnimalPlanController {
private final DfAnimalPlanService dfPlanService;
/**
* 查询堤害动物防治计划列表
*/
@PostMapping("/list")
@ApiOperation("堤害动物防治计划列表")
public IPage<DfAnimalPlan> list(@RequestBody SearchParam<DfAnimalPlan> sp) {
return dfPlanService.selectPage(sp);
}
/**
* 获取堤害动物防治计划详细信息
*/
@ApiOperation(" 堤害动物防治计划详情")
@GetMapping(value = "/{id}")
public Response<DfAnimalPlanDto> getInfo(@PathVariable("id") String id) {
return Response.ok(dfPlanService.getDetailById(id));
}
/**
* 新增堤害动物防治计划
*/
@Log(title = "堤害动物防治计划新增", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("堤害动物防治计划新增")
public Response<DfAnimalPlanDto> add(@RequestBody DfAnimalPlanDto dfPlan) {
return Response.ok(dfPlanService.add(dfPlan));
}
/**
* 修改堤害动物防治计划
*/
@ApiOperation("堤害动物防治计划修改")
@Log(title = "堤害动物防治计划修改", businessType = BusinessType.UPDATE)
@PutMapping
public Response<DfAnimalPlanDto> edit(@RequestBody DfAnimalPlanDto dfPlan) {
return Response.ok(dfPlanService.update(dfPlan));
}
/**
* 删除堤害动物防治计划
*/
@ApiOperation("堤害动物防治计划删除")
@Log(title = "堤害动物防治计划删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public Response<Boolean> remove(@PathVariable String id) {
return Response.ok(dfPlanService.deleteById(id));
}
}

80
shuili-system/src/main/java/com/kms/yxgh/df/controller/DfAnimalRecordController.java

@ -0,0 +1,80 @@
package com.kms.yxgh.df.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kms.yxgh.base.Response;
import com.kms.yxgh.df.domain.DfAnimalRecord;
import com.kms.yxgh.df.dto.DfAnimalRecordDto;
import com.kms.yxgh.df.service.DfAnimalRecordService;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* 堤害动物防治记录Controller
*
* @author sy
* @date 2023-11-09
*/
@RestController
@AllArgsConstructor
@RequestMapping("/run/df/animal/record")
@Api(tags = "堤害动物防治记录")
public class DfAnimalRecordController {
private final DfAnimalRecordService dfRecordService;
/**
* 查询堤害动物防治记录列表
*/
@PostMapping("/list")
@ApiOperation("堤害动物防治记录列表")
public IPage<DfAnimalRecord> list(@RequestBody SearchParam<DfAnimalRecord> sp) {
return dfRecordService.selectPage(sp);
}
/**
* 获取堤害动物防治记录详细信息
*/
@ApiOperation(" 堤害动物防治记录详情")
@GetMapping(value = "/{id}")
public Response<DfAnimalRecordDto> getInfo(@PathVariable("id") String id) {
return Response.ok(dfRecordService.getDetailById(id));
}
/**
* 新增堤害动物防治记录
*/
@Log(title = "堤害动物防治记录新增", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("堤害动物防治记录新增")
public Response<DfAnimalRecordDto> add(@RequestBody DfAnimalRecordDto dto) {
return Response.ok(dfRecordService.add(dto));
}
/**
* 修改堤害动物防治记录
*/
@ApiOperation("堤害动物防治记录修改")
@Log(title = "堤害动物防治记录修改", businessType = BusinessType.UPDATE)
@PutMapping
public Response<DfAnimalRecordDto> edit(@RequestBody DfAnimalRecordDto dfRecord) {
return Response.ok(dfRecordService.update(dfRecord));
}
/**
* 删除堤害动物防治记录
*/
@ApiOperation("堤害动物防治记录删除")
@Log(title = "堤害动物防治记录删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public Response<Boolean> remove(@PathVariable String id) {
return Response.ok(dfRecordService.deleteById(id));
}
}

102
shuili-system/src/main/java/com/kms/yxgh/df/controller/DfYhPlanController.java

@ -1,28 +1,18 @@
package com.kms.yxgh.df.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kms.common.utils.BaseEntityUtils;
import com.kms.yxgh.base.Response;
import com.kms.yxgh.df.domain.DfYhPlan;
import com.kms.yxgh.df.dto.DfYhPlanDetailDto;
import com.kms.yxgh.df.service.DfYhPlanService;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.controller.BaseController;
import com.shuili.common.core.domain.AjaxResult;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
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.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
@ -36,54 +26,54 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "堤防维修养护计划")
public class DfYhPlanController extends BaseController {
@Autowired
private DfYhPlanService dfYhPlanService;
@Autowired
private DfYhPlanService dfYhPlanService;
/**
* 查询堤防维修养护计划列表
*/
@PostMapping("/list")
@ApiOperation("堤防维修养护计划列表")
public IPage list(@RequestBody SearchParam<DfYhPlan> sp) {
return dfYhPlanService.selectPage(sp);
}
/**
* 查询堤防维修养护计划列表
*/
@PostMapping("/list")
@ApiOperation("堤防维修养护计划列表")
public IPage list(@RequestBody SearchParam<DfYhPlan> sp) {
return dfYhPlanService.selectPage(sp);
}
/**
* 获取堤防维修养护计划详细信息
*/
@ApiOperation(" 堤防维修养护计划详情")
@GetMapping(value = "/{id}")
public Response<?> getInfo(@PathVariable("id") Long id) {
return Response.ok(dfYhPlanService.getById(id));
}
/**
* 获取堤防维修养护计划详细信息
*/
@ApiOperation(" 堤防维修养护计划详情")
@GetMapping(value = "/{id}")
public Response<?> getInfo(@PathVariable("id") Long id) {
return Response.ok(dfYhPlanService.getById(id));
}
/**
* 新增堤防维修养护计划
*/
@Log(title = "堤防维修养护计划新增", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("堤防维修养护计划新增")
public Response<DfYhPlanDetailDto> add(@RequestBody DfYhPlanDetailDto dfYhPlan) {
return Response.ok(dfYhPlanService.add(dfYhPlan));
}
/**
* 新增堤防维修养护计划
*/
@Log(title = "堤防维修养护计划新增", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("堤防维修养护计划新增")
public Response<DfYhPlanDetailDto> add(@RequestBody DfYhPlanDetailDto dfYhPlan) {
return Response.ok(dfYhPlanService.add(dfYhPlan));
}
/**
* 修改堤防维修养护计划
*/
@ApiOperation("堤防维修养护计划修改")
@Log(title = "堤防维修养护计划修改", businessType = BusinessType.UPDATE)
@PutMapping
public Response<DfYhPlanDetailDto> edit(@RequestBody DfYhPlanDetailDto dfYhPlan) {
return Response.ok(dfYhPlanService.update(dfYhPlan));
}
/**
* 修改堤防维修养护计划
*/
@ApiOperation("堤防维修养护计划修改")
@Log(title = "堤防维修养护计划修改", businessType = BusinessType.UPDATE)
@PutMapping
public Response<DfYhPlanDetailDto> edit(@RequestBody DfYhPlanDetailDto dfYhPlan) {
return Response.ok(dfYhPlanService.update(dfYhPlan));
}
/**
* 删除堤防维修养护计划
*/
@ApiOperation("堤防维修养护计划删除")
@Log(title = "堤防维修养护计划删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public Response<Boolean> remove(@PathVariable String id) {
return Response.ok(dfYhPlanService.deleteById(id));
}
/**
* 删除堤防维修养护计划
*/
@ApiOperation("堤防维修养护计划删除")
@Log(title = "堤防维修养护计划删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public Response<Boolean> remove(@PathVariable String id) {
return Response.ok(dfYhPlanService.deleteById(id));
}
}

57
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalDrug.java

@ -0,0 +1,57 @@
package com.kms.yxgh.df.domain;
import com.kms.yxgh.base.SyBaseEntity;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.shuili.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 害堤动物防治计划执行记录用药对象 bs_sgc_df_hdjlyy
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_df_hdjlyy")
@Data
@ApiModel("害堤动物防治计划执行记录用药")
public class DfAnimalDrug extends SyBaseEntity
{
private static final long serialVersionUID = 1L;
/** 记录代码 */
@Excel(name = "记录代码")
@ApiModelProperty("记录代码")
private String recordId;
/** 药物名称 */
@Excel(name = "药物名称")
@ApiModelProperty("药物名称")
private String drugName;
/** 浓度 */
@Excel(name = "浓度")
@ApiModelProperty("浓度")
private String concentration;
/** 剂量 */
@Excel(name = "剂量")
@ApiModelProperty("剂量")
private String dose;
/** 创建人 */
@Excel(name = "创建人")
@ApiModelProperty("创建人")
private String createUid;
/** 最近修改人 */
@Excel(name = "最近修改人")
@ApiModelProperty("最近修改人")
private String updateUid;
}

52
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalOperator.java

@ -0,0 +1,52 @@
package com.kms.yxgh.df.domain;
import com.kms.yxgh.base.SyBaseEntity;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.shuili.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 害堤动物防治计划执行人对象 bs_sgc_df_hdjhzx
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_df_hdjhzx")
@Data
@ApiModel("害堤动物防治计划执行人")
public class DfAnimalOperator extends SyBaseEntity
{
private static final long serialVersionUID = 1L;
/** 害堤动物防治计划ID */
@Excel(name = "害堤动物防治计划ID")
@ApiModelProperty("害堤动物防治计划ID")
private String planId;
/** 执行人ID */
@Excel(name = "执行人ID")
@ApiModelProperty("执行人ID")
private String operatorUid;
/** 执行人名称 */
@Excel(name = "执行人名称")
@ApiModelProperty("执行人名称")
private String operatorName;
/** 创建人 */
@Excel(name = "创建人")
@ApiModelProperty("创建人")
private String createUid;
/** 最近修改人 */
@Excel(name = "最近修改人")
@ApiModelProperty("最近修改人")
private String updateUid;
}

100
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalPlan.java

@ -0,0 +1,100 @@
package com.kms.yxgh.df.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.base.SyBaseEntity;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.shuili.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 害堤动物防治计划对象 bs_sgc_df_hdjh
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_df_hdjh")
@Data
@ApiModel("害堤动物防治计划")
public class DfAnimalPlan extends SyBaseEntity
{
private static final long serialVersionUID = 1L;
/** 堤防代码 */
@Excel(name = "堤防代码")
@ApiModelProperty("堤防代码")
private String dikeCode;
/** 害堤动物防治计划名称 */
@Excel(name = "害堤动物防治计划名称")
@ApiModelProperty("害堤动物防治计划名称")
private String name;
/** 防治类型 */
@Excel(name = "防治类型")
@ApiModelProperty("防治类型")
private Long type;
/** 堤防级别 */
@Excel(name = "堤防级别")
@ApiModelProperty("堤防级别")
private String dikeLevel;
/** 堤防类型 */
@Excel(name = "堤防类型")
@ApiModelProperty("堤防类型")
private String dikeType;
/** 防治说明 */
@Excel(name = "防治说明")
@ApiModelProperty("防治说明")
private String instruction;
/** 工作月份 */
@Excel(name = "工作月份")
@ApiModelProperty("工作月份")
private Long month;
/** 检查次数 */
@Excel(name = "检查次数")
@ApiModelProperty("检查次数")
private Long frequency;
/** 周期 */
@Excel(name = "周期")
@ApiModelProperty("周期")
private Long cycleType;
/** 是否提醒 */
@Excel(name = "是否提醒")
@ApiModelProperty("是否提醒")
private Long isReminder;
/** 提醒时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("提醒时间")
private Date reminderTime;
/** 附加配置 */
@Excel(name = "附加配置")
@ApiModelProperty("附加配置")
private String otherConfig;
/** 创建人 */
@Excel(name = "创建人")
@ApiModelProperty("创建人")
private String createUid;
/** 最近修改人 */
@Excel(name = "最近修改人")
@ApiModelProperty("最近修改人")
private String updateUid;
}

57
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalPlanDetail.java

@ -0,0 +1,57 @@
package com.kms.yxgh.df.domain;
import com.kms.yxgh.base.SyBaseEntity;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.shuili.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 害堤动物防治计划详情对象 bs_sgc_df_hdjhxq
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_df_hdjhxq")
@Data
@ApiModel("害堤动物防治计划详情")
public class DfAnimalPlanDetail extends SyBaseEntity
{
private static final long serialVersionUID = 1L;
/** 害堤动物防治计划ID */
@Excel(name = "害堤动物防治计划ID")
@ApiModelProperty("害堤动物防治计划ID")
private String planId;
/** 工作内容 */
@Excel(name = "工作内容")
@ApiModelProperty("工作内容")
private String jobContent;
/** 施工日期 */
@Excel(name = "施工日期")
@ApiModelProperty("施工日期")
private String constructionDate;
/** 计划工日 */
@Excel(name = "计划工日")
@ApiModelProperty("计划工日")
private Long planDays;
/** 创建人 */
@Excel(name = "创建人")
@ApiModelProperty("创建人")
private String createUid;
/** 最近修改人 */
@Excel(name = "最近修改人")
@ApiModelProperty("最近修改人")
private String updateUid;
}

76
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfAnimalRecord.java

@ -0,0 +1,76 @@
package com.kms.yxgh.df.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kms.yxgh.base.SyBaseEntity;
import com.shuili.common.annotation.Excel;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 害堤动物防治计划执行记录对象 bs_sgc_df_hdjl
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_df_hdjl")
@Data
@ApiModel("害堤动物防治计划执行记录")
public class DfAnimalRecord extends SyBaseEntity {
private static final long serialVersionUID = 1L;
/**
* 计划代码
*/
@Excel(name = "计划代码")
@ApiModelProperty("计划代码")
private String planId;
@ApiModelProperty("计划名称")
private String planName;
/**
* 施工地点
*/
@Excel(name = "施工地点")
@ApiModelProperty("施工地点")
private Long location;
/**
* 检查施工情况
*/
@Excel(name = "检查施工情况")
@ApiModelProperty("检查施工情况")
private String constructionStatus;
/**
* 有害生物
*/
@Excel(name = "有害生物")
@ApiModelProperty("有害生物")
private Long pest;
/**
* 状态
*/
@Excel(name = "状态")
@ApiModelProperty("状态")
private Long status;
/**
* 创建人
*/
@Excel(name = "创建人")
@ApiModelProperty("创建人")
private String createUid;
/**
* 最近修改人
*/
@Excel(name = "最近修改人")
@ApiModelProperty("最近修改人")
private String updateUid;
}

100
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfPlan.java

@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.base.SyBaseEntity;
import com.shuili.common.annotation.Excel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.Data;
import java.util.Date;
/**
* 堤防巡视检查计划对象 bs_sgc_df_xsjh
@ -21,56 +23,64 @@ import lombok.Data;
@ApiModel("堤防巡视检查计划")
public class DfPlan extends SyBaseEntity {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
/**
* 巡查ID
*/
@Excel(name = "巡查ID")
@ApiModelProperty("巡查ID")
private String xcId;
/**
* 名称
*/
@Excel(name = "名称")
@ApiModelProperty("名称")
private String name;
/**
* 巡查ID
*/
@Excel(name = "巡查ID")
@ApiModelProperty("巡查ID")
private String xcId;
/**
* 巡查类型
*/
@Excel(name = "巡查类型")
@ApiModelProperty("巡查类型")
private Long type;
/**
* 名称
*/
@Excel(name = "名称")
@ApiModelProperty("名称")
private String name;
/**
* 检查次数
*/
@Excel(name = "检查次数")
@ApiModelProperty("检查次数")
private Long frequency;
/**
* 巡查类型
*/
@Excel(name = "巡查类型")
@ApiModelProperty("巡查类型")
private Long type;
/**
* 周期
*/
@Excel(name = "周期")
@ApiModelProperty("周期")
private Long cycleType;
/**
* 检查次数
*/
@Excel(name = "检查次数")
@ApiModelProperty("检查次数")
private Long frequency;
/**
* 是否提醒
*/
@ApiModelProperty("是否提醒")
private Boolean isReminder;
/**
* 周期
*/
@Excel(name = "周期")
@ApiModelProperty("周期")
private Long cycleType;
/**
* 提醒时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("提醒时间")
private Date reminderTime;
/**
* 提醒时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("提醒时间")
private Date reminderTime;
/**
* 附加配置
*/
@Excel(name = "附加配置")
@ApiModelProperty("附加配置")
private String otherConfig;
/**
* 附加配置
*/
@Excel(name = "附加配置")
@ApiModelProperty("附加配置")
private String otherConfig;
private String files;
}

46
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfRecordImage.java

@ -0,0 +1,46 @@
package com.kms.yxgh.df.domain;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.shuili.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 害堤动物防治计划执行记录图片对象 bs_sgc_df_hdjltp
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_df_hdjltp")
@Data
@ApiModel("害堤动物防治计划执行记录图片")
public class DfRecordImage extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 记录代码 */
@Excel(name = "记录代码")
@ApiModelProperty("记录代码")
private String recordId;
/** 图片地址 */
@Excel(name = "图片地址")
@ApiModelProperty("图片地址")
private String url;
/** 创建人 */
@Excel(name = "创建人")
@ApiModelProperty("创建人")
private String createUid;
/** 最近修改人 */
@Excel(name = "最近修改人")
@ApiModelProperty("最近修改人")
private String updateUid;
}

151
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfAnimalPlanDto.java

@ -0,0 +1,151 @@
package com.kms.yxgh.df.dto;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author sy
* @date 2024-01-04
*/
@Data
@ApiModel("害堤动物防治计划")
public class DfAnimalPlanDto {
@ApiModelProperty("id")
private String id;
/**
* 堤防代码
*/
@ApiModelProperty("堤防代码")
private String dikeCode;
/**
* 害堤动物防治计划名称
*/
@ApiModelProperty("害堤动物防治计划名称")
private String name;
/**
* 防治类型
*/
@ApiModelProperty("防治类型")
private Long type;
/**
* 堤防级别
*/
@ApiModelProperty("堤防级别")
private String dikeLevel;
/**
* 堤防类型
*/
@ApiModelProperty("堤防类型")
private String dikeType;
/**
* 防治说明
*/
@ApiModelProperty("防治说明")
private String instruction;
/**
* 工作月份
*/
@ApiModelProperty("工作月份")
private Long month;
/**
* 检查次数
*/
@ApiModelProperty("检查次数")
private Long frequency;
/**
* 周期
*/
@ApiModelProperty("周期")
private Long cycleType;
/**
* 是否提醒
*/
@ApiModelProperty("是否提醒")
private Long isReminder;
/**
* 提醒时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("提醒时间")
private Date reminderTime;
/**
* 附加配置
*/
@ApiModelProperty("附加配置")
private JSONObject otherConfig;
/**
* 创建人
*/
@ApiModelProperty("创建人")
private String createUid;
/**
* 最近修改人
*/
@ApiModelProperty("最近修改人")
private String updateUid;
@ApiModelProperty("执行人")
private List<OperatorDto> operators;
@ApiModelProperty("计划详情")
private List<DetailDto> details;
@Data
public static class OperatorDto {
@ApiModelProperty("主键")
private String id;
@ApiModelProperty("用户id")
private String uid;
@ApiModelProperty("用户名称")
private String name;
}
@Data
public static class DetailDto {
/**
* 工作内容
*/
@ApiModelProperty("工作内容")
private String jobContent;
/**
* 施工日期
*/
@ApiModelProperty("施工日期")
private String constructionDate;
/**
* 计划工日
*/
@ApiModelProperty("计划工日")
private Long planDays;
}
}

81
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfAnimalRecordDto.java

@ -0,0 +1,81 @@
package com.kms.yxgh.df.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author sy
* @date 2024-01-04
*/
@Data
@ApiModel("害堤动物防治计划执行记录")
public class DfAnimalRecordDto {
@ApiModelProperty(name = "id")
private String id;
/**
* 计划代码
*/
@ApiModelProperty("计划代码")
private String planId;
@ApiModelProperty("计划名称")
private String planName;
/**
* 施工地点
*/
@ApiModelProperty("施工地点")
private Long location;
/**
* 检查施工情况
*/
@ApiModelProperty("检查施工情况")
private String constructionStatus;
/**
* 有害生物
*/
@ApiModelProperty("有害生物")
private Long pest;
/**
* 状态
*/
@ApiModelProperty("状态")
private Long status;
@ApiModelProperty("用药")
private List<Drug> drugs;
@ApiModelProperty("图片")
private List<String> images;
@Data
public static class Drug {
/**
* 药物名称
*/
@ApiModelProperty("药物名称")
private String drugName;
/**
* 浓度
*/
@ApiModelProperty("浓度")
private String concentration;
/**
* 剂量
*/
@ApiModelProperty("剂量")
private String dose;
}
}

65
shuili-system/src/main/java/com/kms/yxgh/df/dto/DfPlanDetailDto.java

@ -4,9 +4,10 @@ import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
import lombok.Data;
/**
@ -19,46 +20,52 @@ import lombok.Data;
@ApiModel("堤防巡视检查计划详情")
public class DfPlanDetailDto {
@ApiModelProperty("主键")
private String id;
@ApiModelProperty("主键")
private String id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("巡查ID")
private String xcId;
@ApiModelProperty("巡查ID")
private String xcId;
@ApiModelProperty("巡查类型")
private Long type;
@ApiModelProperty("巡查类型")
private Long type;
@ApiModelProperty("检查次数")
private Long frequency;
@ApiModelProperty("检查次数")
private Long frequency;
@ApiModelProperty("周期")
private Long cycleType;
@ApiModelProperty("周期")
private Long cycleType;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("提醒时间")
private Date reminderTime;
@ApiModelProperty("是否提醒")
private Boolean isReminder;
@ApiModelProperty("附加配置")
private JSONObject otherConfig;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("提醒时间")
private Date reminderTime;
@ApiModelProperty("执行人")
private List<OperatorDto> operators;
@ApiModelProperty("附加配置")
private JSONObject otherConfig;
@ApiModelProperty("执行人")
private List<OperatorDto> operators;
@Data
public static class OperatorDto {
@ApiModelProperty("检查依据文档")
private List<String> files;
@ApiModelProperty("主键")
private String id;
@ApiModelProperty("用户id")
private String uid;
@ApiModelProperty("用户名称")
private String name;
@Data
public static class OperatorDto {
@ApiModelProperty("主键")
private String id;
@ApiModelProperty("用户id")
private String uid;
@ApiModelProperty("用户名称")
private String name;
}
}
}

16
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalDrugMapper.java

@ -0,0 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.kms.yxgh.df.domain.DfAnimalDrug;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 害堤动物防治计划执行记录用药Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface DfAnimalDrugMapper extends BaseMapper<DfAnimalDrug> {
}

16
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalOperatorMapper.java

@ -0,0 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.kms.yxgh.df.domain.DfAnimalOperator;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 害堤动物防治计划执行人Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface DfAnimalOperatorMapper extends BaseMapper<DfAnimalOperator> {
}

16
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalPlanDetailMapper.java

@ -0,0 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.kms.yxgh.df.domain.DfAnimalPlanDetail;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 害堤动物防治计划详情Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface DfAnimalPlanDetailMapper extends BaseMapper<DfAnimalPlanDetail> {
}

16
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalPlanMapper.java

@ -0,0 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.kms.yxgh.df.domain.DfAnimalPlan;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 害堤动物防治计划Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface DfAnimalPlanMapper extends BaseMapper<DfAnimalPlan> {
}

16
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfAnimalRecordMapper.java

@ -0,0 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.kms.yxgh.df.domain.DfAnimalRecord;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 害堤动物防治计划执行记录Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface DfAnimalRecordMapper extends BaseMapper<DfAnimalRecord> {
}

16
shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfRecordImageMapper.java

@ -0,0 +1,16 @@
package com.kms.yxgh.df.mapper;
import com.kms.yxgh.df.domain.DfRecordImage;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 害堤动物防治计划执行记录图片Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface DfRecordImageMapper extends BaseMapper<DfRecordImage> {
}

172
shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalPlanService.java

@ -0,0 +1,172 @@
package com.kms.yxgh.df.service;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yxgh.base.DfException;
import com.kms.yxgh.df.domain.DfAnimalOperator;
import com.kms.yxgh.df.domain.DfAnimalPlan;
import com.kms.yxgh.df.domain.DfAnimalPlanDetail;
import com.kms.yxgh.df.dto.DfAnimalPlanDto;
import com.kms.yxgh.df.mapper.DfAnimalOperatorMapper;
import com.kms.yxgh.df.mapper.DfAnimalPlanDetailMapper;
import com.kms.yxgh.df.mapper.DfAnimalPlanMapper;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.StringUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.function.Consumer;
/**
* 堤害动物防治计划Service接口
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class DfAnimalPlanService extends BaseService<DfAnimalPlanMapper, DfAnimalPlan> {
private final DfAnimalOperatorMapper dfAnimalOperatorMapper;
private final DfAnimalPlanDetailMapper dfAnimalPlanDetailMapper;
public DfAnimalPlanDto getDetailById(String id) {
DfAnimalPlan dfPlan = this.getById(id);
DfAnimalPlanDto dto = BeanCopyUtils.copy(dfPlan, DfAnimalPlanDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(dfPlan.getOtherConfig()));
setOperator(id, dto);
setDetail(id, dto);
}
return dto;
}
private void setDetail(String id, DfAnimalPlanDto dto) {
Wrapper<DfAnimalPlanDetail> wp = Wrappers.<DfAnimalPlanDetail>lambdaQuery()
.eq(DfAnimalPlanDetail::getPlanId, id);
dto.setDetails(StreamUtils.toList(dfAnimalPlanDetailMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, DfAnimalPlanDto.DetailDto.class)));
}
private void setOperator(String id, DfAnimalPlanDto dto) {
Wrapper<DfAnimalOperator> wp = Wrappers.<DfAnimalOperator>lambdaQuery()
.select(DfAnimalOperator::getId, DfAnimalOperator::getOperatorUid,
DfAnimalOperator::getOperatorName)
.eq(DfAnimalOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(dfAnimalOperatorMapper.selectList(wp), (o) -> {
DfAnimalPlanDto.OperatorDto itemDto = new DfAnimalPlanDto.OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
}
@Transactional(rollbackFor = Exception.class)
public DfAnimalPlanDto add(DfAnimalPlanDto dto) {
DfAnimalPlan dfPlan = BeanCopyUtils.copy(dto, DfAnimalPlan.class);
if (dfPlan != null) {
dfPlan.setId(null);
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(dfPlan);
String id = dfPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
if (CollectionUtil.isNotEmpty(dto.getDetails())) {
dto.getDetails().forEach(insertDetail(id));
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
}
return null;
}
private Consumer<DfAnimalPlanDto.DetailDto> insertDetail(String id) {
return (o) -> {
DfAnimalPlanDetail detail = BeanCopyUtils.copy(o, DfAnimalPlanDetail.class);
if (detail != null) {
detail.setPlanId(id);
dfAnimalPlanDetailMapper.insert(detail);
}
};
}
private Consumer<DfAnimalPlanDto.OperatorDto> insertOperator(String id) {
return (o) -> {
DfAnimalOperator item = new DfAnimalOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
dfAnimalOperatorMapper.insert(item);
};
}
@Transactional(rollbackFor = Exception.class)
public DfAnimalPlanDto update(DfAnimalPlanDto dto) {
if (exist(dto.getId())) {
DfAnimalPlan dfPlan = BeanCopyUtils.copy(dto, DfAnimalPlan.class);
if (dfPlan != null) {
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().updateById(dfPlan);
String id = dfPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
if (CollectionUtil.isNotEmpty(dto.getDetails())) {
dto.getDetails().forEach(insertDetail(id));
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
}
}
throw new DfException("源数据不存在,请确认id值是否正确");
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
private void deleteItems(String id) {
Wrapper<DfAnimalOperator> wp = Wrappers.<DfAnimalOperator>lambdaQuery()
.eq(DfAnimalOperator::getPlanId, id);
dfAnimalOperatorMapper.delete(wp);
Wrapper<DfAnimalPlanDetail> wp1 = Wrappers.<DfAnimalPlanDetail>lambdaQuery()
.eq(DfAnimalPlanDetail::getPlanId, id);
dfAnimalPlanDetailMapper.delete(wp1);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<DfAnimalPlan> wp = Wrappers.<DfAnimalPlan>lambdaQuery()
.eq(DfAnimalPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), DfAnimalPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<DfAnimalPlan> wp = Wrappers.<DfAnimalPlan>lambdaQuery()
.eq(DfAnimalPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
}

173
shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalRecordService.java

@ -0,0 +1,173 @@
package com.kms.yxgh.df.service;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yxgh.base.DfException;
import com.kms.yxgh.base.enums.DfAnimalRecordStatus;
import com.kms.yxgh.df.domain.DfAnimalDrug;
import com.kms.yxgh.df.domain.DfAnimalRecord;
import com.kms.yxgh.df.domain.DfRecordImage;
import com.kms.yxgh.df.dto.DfAnimalRecordDto;
import com.kms.yxgh.df.mapper.DfAnimalDrugMapper;
import com.kms.yxgh.df.mapper.DfAnimalRecordMapper;
import com.kms.yxgh.df.mapper.DfRecordImageMapper;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.service.BaseService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.function.Consumer;
/**
* 堤害动物防治记录Service接口
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class DfAnimalRecordService extends BaseService<DfAnimalRecordMapper, DfAnimalRecord> {
private final DfRecordImageMapper dfRecordImageMapper;
private final DfAnimalDrugMapper dfAnimalDrugMapper;
public DfAnimalRecordDto getDetailById(String id) {
DfAnimalRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
DfAnimalRecordDto dto = BeanCopyUtils.copy(record, DfAnimalRecordDto.class);
if (dto != null) {
setImages(id, dto);
setDrugs(id, dto);
}
return dto;
}
return null;
}
private void setDrugs(String id, DfAnimalRecordDto dto) {
Wrapper<DfAnimalDrug> wp = Wrappers.<DfAnimalDrug>lambdaQuery()
.eq(DfAnimalDrug::getRecordId, id);
dto.setDrugs(StreamUtils.toList(dfAnimalDrugMapper.selectList(wp),
drug -> BeanCopyUtils.copy(drug, DfAnimalRecordDto.Drug.class)));
}
private void setImages(String id, DfAnimalRecordDto dto) {
Wrapper<DfRecordImage> wp1 = Wrappers.<DfRecordImage>lambdaQuery()
.eq(DfRecordImage::getRecordId, id);
dto.setImages(StreamUtils.toList(dfRecordImageMapper.selectList(wp1), DfRecordImage::getUrl));
}
@Transactional(rollbackFor = Exception.class)
public DfAnimalRecordDto add(DfAnimalRecordDto dto) {
DfAnimalRecord dfAnimalRecord = BeanCopyUtils.copy(dto, DfAnimalRecord.class);
if (dfAnimalRecord != null) {
dfAnimalRecord.setId(null);
if (!existRecord(dto.getPlanId())) {
getBaseMapper().insert(dfAnimalRecord);
dto.setId(dfAnimalRecord.getId());
if (CollectionUtil.isNotEmpty(dto.getImages())) {
dto.getImages().forEach(insertImages(dto.getId()));
}
if (CollectionUtil.isNotEmpty(dto.getDrugs())) {
dto.getDrugs().forEach(insertDrugs(dto.getId()));
}
return dto;
} else {
throw new DfException("该计划已经存在维护记录");
}
}
return null;
}
private Consumer<DfAnimalRecordDto.Drug> insertDrugs(String id) {
return (o) -> {
DfAnimalDrug dfAnimalDrug = BeanCopyUtils.copy(o, DfAnimalDrug.class);
if (dfAnimalDrug != null) {
dfAnimalDrug.setRecordId(id);
dfAnimalDrugMapper.insert(dfAnimalDrug);
}
};
}
private Consumer<String> insertImages(String id) {
return (o) -> {
DfRecordImage image = new DfRecordImage();
image.setRecordId(id);
image.setUpdateUid(o);
dfRecordImageMapper.insert(image);
};
}
@Transactional(rollbackFor = Exception.class)
public DfAnimalRecordDto update(DfAnimalRecordDto dfRecord) {
if (exist(dfRecord.getId())) {
if (checkStatus(dfRecord.getId())) {
DfAnimalRecord dfAnimalRecord = BeanCopyUtils.copy(dfRecord, DfAnimalRecord.class);
if (dfAnimalRecord != null) {
getBaseMapper().updateById(dfAnimalRecord);
String id = dfRecord.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dfRecord.getImages())) {
dfRecord.getImages().forEach(insertImages(dfRecord.getId()));
}
if (CollectionUtil.isNotEmpty(dfRecord.getDrugs())) {
dfRecord.getDrugs().forEach(insertDrugs(dfRecord.getId()));
}
return dfRecord;
}
} else {
throw new DfException("已确认的记录不能修改");
}
}
throw new DfException("源数据不存在,请确认id值是否正确");
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
private void deleteItems(String id) {
Wrapper<DfAnimalDrug> wp = Wrappers.<DfAnimalDrug>lambdaQuery()
.eq(DfAnimalDrug::getRecordId, id);
dfAnimalDrugMapper.delete(wp);
Wrapper<DfRecordImage> wp1 = Wrappers.<DfRecordImage>lambdaQuery()
.eq(DfRecordImage::getRecordId, id);
dfRecordImageMapper.delete(wp1);
}
private boolean checkStatus(String id) {
Wrapper<DfAnimalRecord> wp = Wrappers.<DfAnimalRecord>lambdaQuery()
.eq(DfAnimalRecord::getId, id)
.eq(DfAnimalRecord::getStatus, DfAnimalRecordStatus.CONFIRMED.getValue());
return !(this.getBaseMapper().selectCount(wp) > 0);
}
private boolean exist(String id) {
Wrapper<DfAnimalRecord> wp = Wrappers.<DfAnimalRecord>lambdaQuery()
.eq(DfAnimalRecord::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
private boolean existRecord(String planId) {
Wrapper<DfAnimalRecord> wp = Wrappers.<DfAnimalRecord>lambdaQuery()
.eq(DfAnimalRecord::getPlanId, planId);
Integer count = this.getBaseMapper().selectCount(wp);
return count > 0;
}
}

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java

@ -72,6 +72,7 @@ public class DfCheckingService extends BaseService<DfCheckingMapper, DfChecking>
public DfCheckingDetailDto add(DfCheckingDetailDto dto) {
DfChecking checking = BeanCopyUtils.copy(dto, DfChecking.class);
if (checking != null) {
checking.setId(null);
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();

247
shuili-system/src/main/java/com/kms/yxgh/df/service/DfPlanService.java

@ -18,12 +18,13 @@ import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.StringUtils;
import java.util.List;
import java.util.function.Consumer;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.function.Consumer;
/**
* 堤防巡视检查计划Service接口
*
@ -34,134 +35,138 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class DfPlanService extends BaseService<DfPlanMapper, DfPlan> {
private final DfPlanOperatorMapper dfPlanOperatorMapper;
private final DfPointMapper dfPointMapper;
public DfPlanDetailDto getDetailById(String id) {
DfPlan dfPlan = this.getById(id);
DfPlanDetailDto dto = BeanCopyUtils.copy(dfPlan, DfPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(dfPlan.getOtherConfig()));
Wrapper<DfPlanOperator> wp = Wrappers.<DfPlanOperator>lambdaQuery()
.select(DfPlanOperator::getId, DfPlanOperator::getOperatorUid,
DfPlanOperator::getOperatorName)
.eq(DfPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(dfPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
private final DfPlanOperatorMapper dfPlanOperatorMapper;
private final DfPointMapper dfPointMapper;
public DfPlanDetailDto getDetailById(String id) {
DfPlan dfPlan = this.getById(id);
DfPlanDetailDto dto = BeanCopyUtils.copy(dfPlan, DfPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(dfPlan.getOtherConfig()));
dto.setFiles(JSON.parseArray(dfPlan.getFiles(), String.class));
Wrapper<DfPlanOperator> wp = Wrappers.<DfPlanOperator>lambdaQuery()
.select(DfPlanOperator::getId, DfPlanOperator::getOperatorUid,
DfPlanOperator::getOperatorName)
.eq(DfPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(dfPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
}
return dto;
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public DfPlanDetailDto add(DfPlanDetailDto dto) {
DfPlan dfPlan = BeanCopyUtils.copy(dto, DfPlan.class);
if (dfPlan != null) {
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(dfPlan);
String id = dfPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
@Transactional(rollbackFor = Exception.class)
public DfPlanDetailDto add(DfPlanDetailDto dto) {
DfPlan dfPlan = BeanCopyUtils.copy(dto, DfPlan.class);
if (dfPlan != null) {
dfPlan.setId(null);
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
dfPlan.setFiles(JSON.toJSONString(dto.getFiles()));
getBaseMapper().insert(dfPlan);
String id = dfPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
return null;
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
DfPlanOperator item = new DfPlanOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
dfPlanOperatorMapper.insert(item);
};
}
return null;
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
DfPlanOperator item = new DfPlanOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
dfPlanOperatorMapper.insert(item);
};
}
@Transactional(rollbackFor = Exception.class)
public DfPlanDetailDto update(DfPlanDetailDto dto) {
if (exist(dto.getId())) {
DfPlan dfPlan = BeanCopyUtils.copy(dto, DfPlan.class);
if (dfPlan != null) {
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().updateById(dfPlan);
String id = dfPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
@Transactional(rollbackFor = Exception.class)
public DfPlanDetailDto update(DfPlanDetailDto dto) {
if (exist(dto.getId())) {
DfPlan dfPlan = BeanCopyUtils.copy(dto, DfPlan.class);
if (dfPlan != null) {
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
dfPlan.setFiles(JSON.toJSONString(dto.getFiles()));
getBaseMapper().updateById(dfPlan);
String id = dfPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
}
}
}
}
throw new DfException("源数据不存在,请确认id值是否正确");
throw new DfException("源数据不存在,请确认id值是否正确");
}
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
return rt;
}
@Transactional(rollbackFor = Exception.class)
public Boolean addPoints(String id, List<DfPointDto> points) {
Wrapper<DfPoint> wp = Wrappers.<DfPoint>lambdaQuery()
.eq(DfPoint::getPlanId, id);
dfPointMapper.delete(wp);
if (CollectionUtil.isNotEmpty(points)) {
points.forEach(po -> {
DfPoint point = BeanCopyUtils.copy(po, DfPoint.class);
if (point != null) {
point.setPlanId(id);
dfPointMapper.insert(point);
@Transactional(rollbackFor = Exception.class)
public Boolean addPoints(String id, List<DfPointDto> points) {
Wrapper<DfPoint> wp = Wrappers.<DfPoint>lambdaQuery()
.eq(DfPoint::getPlanId, id);
dfPointMapper.delete(wp);
if (CollectionUtil.isNotEmpty(points)) {
points.forEach(po -> {
DfPoint point = BeanCopyUtils.copy(po, DfPoint.class);
if (point != null) {
point.setPlanId(id);
dfPointMapper.insert(point);
}
});
}
});
return true;
}
public List<DfPointDto> getPoints(String id) {
Wrapper<DfPoint> wp = Wrappers.<DfPoint>lambdaQuery()
.eq(DfPoint::getPlanId, id);
return StreamUtils.toList(dfPointMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, DfPointDto.class));
}
private void deleteItems(String id) {
Wrapper<DfPlanOperator> wp = Wrappers.<DfPlanOperator>lambdaQuery()
.eq(DfPlanOperator::getPlanId, id);
dfPlanOperatorMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<DfPlan> wp = Wrappers.<DfPlan>lambdaQuery()
.eq(DfPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), DfPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<DfPlan> wp = Wrappers.<DfPlan>lambdaQuery()
.eq(DfPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
return true;
}
public List<DfPointDto> getPoints(String id) {
Wrapper<DfPoint> wp = Wrappers.<DfPoint>lambdaQuery()
.eq(DfPoint::getPlanId, id);
return StreamUtils.toList(dfPointMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, DfPointDto.class));
}
private void deleteItems(String id) {
Wrapper<DfPlanOperator> wp = Wrappers.<DfPlanOperator>lambdaQuery()
.eq(DfPlanOperator::getPlanId, id);
dfPlanOperatorMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<DfPlan> wp = Wrappers.<DfPlan>lambdaQuery()
.eq(DfPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), DfPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<DfPlan> wp = Wrappers.<DfPlan>lambdaQuery()
.eq(DfPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
}

248
shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java

@ -1,7 +1,5 @@
package com.kms.yxgh.df.service;
import static com.kms.yxgh.df.service.DfCheckingService.PART_SEPARATOR;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -13,12 +11,8 @@ import com.kms.yxgh.base.enums.CheckingStatus;
import com.kms.yxgh.base.enums.RecordStatus;
import com.kms.yxgh.df.domain.DfRecord;
import com.kms.yxgh.df.domain.DfRecordItem;
import com.kms.yxgh.df.dto.DfCheckingDetailDto;
import com.kms.yxgh.df.dto.DfPlanDetailDto;
import com.kms.yxgh.df.dto.DfRecordDetailDto;
import com.kms.yxgh.df.dto.*;
import com.kms.yxgh.df.dto.DfRecordDetailDto.DfRecordItemDto;
import com.kms.yxgh.df.dto.DfRecordSearchDto;
import com.kms.yxgh.df.dto.StartPlan;
import com.kms.yxgh.df.mapper.DfRecordItemMapper;
import com.kms.yxgh.df.mapper.DfRecordMapper;
import com.kms.yxgh.util.BeanCopyUtils;
@ -28,17 +22,15 @@ import com.shuili.common.core.domain.entity.SysUser;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.DateUtils;
import com.shuili.common.utils.StringUtils;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static com.kms.yxgh.df.service.DfCheckingService.PART_SEPARATOR;
/**
* 堤防巡视检查记录Service接口
*
@ -49,130 +41,134 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class DfRecordService extends BaseService<DfRecordMapper, DfRecord> {
private final DfRecordItemMapper dfRecordItemMapper;
private final DfCheckingService dfCheckingService;
private final DfPlanService dfPlanService;
private final SysUserService userService;
private final DfRecordItemMapper dfRecordItemMapper;
private final DfCheckingService dfCheckingService;
private final DfPlanService dfPlanService;
private final SysUserService userService;
public IPage<DfRecordSearchDto> search(SearchParam<DfRecord> sp) {
IPage<DfRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(DfRecord::getId)
.collect(Collectors.toList());
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.in(DfRecordItem::getRecordId, ids)
.eq(DfRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<DfRecordItem>> items = Optional.ofNullable(dfRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(DfRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
public IPage<DfRecordSearchDto> search(SearchParam<DfRecord> sp) {
IPage<DfRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(DfRecord::getId)
.collect(Collectors.toList());
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.in(DfRecordItem::getRecordId, ids)
.eq(DfRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<DfRecordItem>> items = Optional.ofNullable(dfRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(DfRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
List<DfRecordSearchDto> records = page.getRecords().stream().map(r -> {
DfRecordSearchDto dto = BeanCopyUtils.copy(r, DfRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList());
return parts.get(parts.size() - 1);
}).collect(Collectors.toList()));
dto.setOperatorName(Optional.ofNullable(userService.getWithRedis(r.getCreateUid())).map(
SysUser::getNickName).orElse(""));
List<DfRecordSearchDto> records = page.getRecords().stream().map(r -> {
DfRecordSearchDto dto = BeanCopyUtils.copy(r, DfRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList());
return parts.get(parts.size() - 1);
}).collect(Collectors.toList()));
dto.setOperatorName(Optional.ofNullable(userService.getWithRedis(r.getCreateUid())).map(
SysUser::getNickName).orElse(""));
}
return dto;
}).collect(Collectors.toList());
Page<DfRecordSearchDto> recordSearchDtoPage = new Page<>(page.getCurrent(), page.getSize(),
page.getTotal());
recordSearchDtoPage.setRecords(records);
return recordSearchDtoPage;
} else {
return new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
}
return dto;
}).collect(Collectors.toList());
Page<DfRecordSearchDto> recordSearchDtoPage = new Page<>(page.getCurrent(), page.getSize(),
page.getTotal());
recordSearchDtoPage.setRecords(records);
return recordSearchDtoPage;
} else {
return new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
}
}
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto start(StartPlan startPlan) {
DfPlanDetailDto planDetailDto = dfPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
DfCheckingDetailDto checkingDetailDto = dfCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
DfRecord record = new DfRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();
if (CollectionUtil.isNotEmpty(checkingDetailDto.getItems())) {
checkingDetailDto.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
dfRecordItemMapper.insert(item);
});
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto start(StartPlan startPlan) {
DfPlanDetailDto planDetailDto = dfPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
planDetailDto.setId(null);
DfCheckingDetailDto checkingDetailDto = dfCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
DfRecord record = new DfRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();
if (CollectionUtil.isNotEmpty(checkingDetailDto.getItems())) {
checkingDetailDto.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
dfRecordItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new DfException("查询巡查检查项数据异常");
}
}
return this.getDetailById(id);
} else {
throw new DfException("查询巡查检查项数据异常");
}
throw new DfException("查询巡查计划");
}
throw new DfException("查询巡查计划");
}
public DfRecordDetailDto getDetailById(String id) {
DfRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
DfRecordDetailDto dto = BeanCopyUtils.copy(record, DfRecordDetailDto.class);
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
List<DfRecordItem> items = dfRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
DfRecordItemDto itemDto = BeanCopyUtils.copy(r, DfRecordItemDto.class);
if (itemDto != null) {
itemDto.setParts(Arrays.stream(StringUtils.split(r.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
}
return itemDto;
}));
}
return dto;
public DfRecordDetailDto getDetailById(String id) {
DfRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
DfRecordDetailDto dto = BeanCopyUtils.copy(record, DfRecordDetailDto.class);
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
List<DfRecordItem> items = dfRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
DfRecordItemDto itemDto = BeanCopyUtils.copy(r, DfRecordItemDto.class);
if (itemDto != null) {
itemDto.setParts(Arrays.stream(StringUtils.split(r.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
}
return itemDto;
}));
}
return dto;
}
return null;
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto update(DfRecordDetailDto dfRecord) {
if (CollectionUtil.isNotEmpty(dfRecord.getItems())) {
dfRecord.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(dfRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
dfRecordItemMapper.updateById(item);
});
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto update(DfRecordDetailDto dfRecord) {
if (CollectionUtil.isNotEmpty(dfRecord.getItems())) {
dfRecord.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setId(o.getId());
item.setRecordId(dfRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
dfRecordItemMapper.updateById(item);
});
}
this.baseMapper.updateById(BeanCopyUtils.copy(dfRecord, DfRecord.class));
return dfRecord;
}
return dfRecord;
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
return rt;
}
private void deleteItems(String id) {
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
dfRecordItemMapper.delete(wp);
}
private void deleteItems(String id) {
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
dfRecordItemMapper.delete(wp);
}
}

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java

@ -32,6 +32,7 @@ public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> {
public DfYhPlanDetailDto add(DfYhPlanDetailDto dto) {
DfYhPlan dfPlan = BeanCopyUtils.copy(dto, DfYhPlan.class);
if (dfPlan != null) {
dfPlan.setId(null);
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
getBaseMapper().insert(dfPlan);
dto.setId(dfPlan.getId());

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java

@ -58,6 +58,7 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
public DfYhRecordDetailDto add(DfYhRecordDetailDto dto) {
DfYhRecord dfYhRecord = BeanCopyUtils.copy(dto, DfYhRecord.class);
if (dfYhRecord != null) {
dfYhRecord.setId(null);
if (!existRecord(dto.getPlanId())) {
getBaseMapper().insert(dfYhRecord);
dto.setId(dfYhRecord.getId());

6
shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzPlan.java

@ -58,6 +58,12 @@ public class SzPlan extends SyBaseEntity {
@ApiModelProperty("周期")
private Long cycleType;
/**
* 是否提醒
*/
@ApiModelProperty("是否提醒")
private Boolean isReminder;
/**
* 提醒时间
*/

3
shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzPlanDetailDto.java

@ -37,6 +37,9 @@ public class SzPlanDetailDto {
@ApiModelProperty("周期")
private Long cycleType;
@ApiModelProperty("是否提醒")
private Boolean isReminder;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("提醒时间")
private Date reminderTime;

1
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingService.java

@ -72,6 +72,7 @@ public class SzCheckingService extends BaseService<SzCheckingMapper, SzChecking>
public SzCheckingDetailDto add(SzCheckingDetailDto dto) {
SzChecking checking = BeanCopyUtils.copy(dto, SzChecking.class);
if (checking != null) {
checking.setId(null);
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();

244
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzPlanService.java

@ -18,12 +18,13 @@ import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.StringUtils;
import java.util.List;
import java.util.function.Consumer;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.function.Consumer;
/**
* 水闸巡视检查计划Service接口
*
@ -34,134 +35,135 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class SzPlanService extends BaseService<SzPlanMapper, SzPlan> {
private final SzPlanOperatorMapper SzPlanOperatorMapper;
private final SzPointMapper SzPointMapper;
public SzPlanDetailDto getDetailById(String id) {
SzPlan SzPlan = this.getById(id);
SzPlanDetailDto dto = BeanCopyUtils.copy(SzPlan, SzPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(SzPlan.getOtherConfig()));
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.select(SzPlanOperator::getId, SzPlanOperator::getOperatorUid,
SzPlanOperator::getOperatorName)
.eq(SzPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(SzPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
private final SzPlanOperatorMapper SzPlanOperatorMapper;
private final SzPointMapper SzPointMapper;
public SzPlanDetailDto getDetailById(String id) {
SzPlan SzPlan = this.getById(id);
SzPlanDetailDto dto = BeanCopyUtils.copy(SzPlan, SzPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(SzPlan.getOtherConfig()));
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.select(SzPlanOperator::getId, SzPlanOperator::getOperatorUid,
SzPlanOperator::getOperatorName)
.eq(SzPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(SzPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
}
return dto;
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto add(SzPlanDetailDto dto) {
SzPlan SzPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (SzPlan != null) {
if (checkNameDistinct(SzPlan.getId(), SzPlan.getName())) {
SzPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(SzPlan);
String id = SzPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto add(SzPlanDetailDto dto) {
SzPlan szPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (szPlan != null) {
szPlan.setId(null);
if (checkNameDistinct(szPlan.getId(), szPlan.getName())) {
szPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(szPlan);
String id = szPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
return null;
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
SzPlanOperator item = new SzPlanOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
SzPlanOperatorMapper.insert(item);
};
}
return null;
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
SzPlanOperator item = new SzPlanOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
SzPlanOperatorMapper.insert(item);
};
}
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto update(SzPlanDetailDto dto) {
if (exist(dto.getId())) {
SzPlan SzPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (SzPlan != null) {
if (checkNameDistinct(SzPlan.getId(), SzPlan.getName())) {
SzPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().updateById(SzPlan);
String id = SzPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto update(SzPlanDetailDto dto) {
if (exist(dto.getId())) {
SzPlan SzPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (SzPlan != null) {
if (checkNameDistinct(SzPlan.getId(), SzPlan.getName())) {
SzPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().updateById(SzPlan);
String id = SzPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
}
}
}
}
throw new SzException("源数据不存在,请确认id值是否正确");
throw new SzException("源数据不存在,请确认id值是否正确");
}
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
return rt;
}
@Transactional(rollbackFor = Exception.class)
public Boolean addPoints(String id, List<SzPointDto> points) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
SzPointMapper.delete(wp);
if (CollectionUtil.isNotEmpty(points)) {
points.forEach(po -> {
SzPoint point = BeanCopyUtils.copy(po, SzPoint.class);
if (point != null) {
point.setPlanId(id);
SzPointMapper.insert(point);
@Transactional(rollbackFor = Exception.class)
public Boolean addPoints(String id, List<SzPointDto> points) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
SzPointMapper.delete(wp);
if (CollectionUtil.isNotEmpty(points)) {
points.forEach(po -> {
SzPoint point = BeanCopyUtils.copy(po, SzPoint.class);
if (point != null) {
point.setPlanId(id);
SzPointMapper.insert(point);
}
});
}
});
return true;
}
public List<SzPointDto> getPoints(String id) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
return StreamUtils.toList(SzPointMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, SzPointDto.class));
}
private void deleteItems(String id) {
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.eq(SzPlanOperator::getPlanId, id);
SzPlanOperatorMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
return true;
}
public List<SzPointDto> getPoints(String id) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
return StreamUtils.toList(SzPointMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, SzPointDto.class));
}
private void deleteItems(String id) {
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.eq(SzPlanOperator::getPlanId, id);
SzPlanOperatorMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
}

248
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzRecordService.java

@ -1,7 +1,5 @@
package com.kms.yxgh.sz.service;
import static com.kms.yxgh.sz.service.SzCheckingService.PART_SEPARATOR;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -13,12 +11,8 @@ import com.kms.yxgh.base.enums.CheckingStatus;
import com.kms.yxgh.base.enums.RecordStatus;
import com.kms.yxgh.sz.domain.SzRecord;
import com.kms.yxgh.sz.domain.SzRecordItem;
import com.kms.yxgh.sz.dto.StartPlan;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto;
import com.kms.yxgh.sz.dto.SzPlanDetailDto;
import com.kms.yxgh.sz.dto.SzRecordDetailDto;
import com.kms.yxgh.sz.dto.*;
import com.kms.yxgh.sz.dto.SzRecordDetailDto.SzRecordItemDto;
import com.kms.yxgh.sz.dto.SzRecordSearchDto;
import com.kms.yxgh.sz.mapper.SzRecordItemMapper;
import com.kms.yxgh.sz.mapper.SzRecordMapper;
import com.kms.yxgh.util.BeanCopyUtils;
@ -28,17 +22,15 @@ import com.shuili.common.core.domain.entity.SysUser;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.DateUtils;
import com.shuili.common.utils.StringUtils;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static com.kms.yxgh.sz.service.SzCheckingService.PART_SEPARATOR;
/**
* 水闸巡视检查记录Service接口
*
@ -49,131 +41,133 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class SzRecordService extends BaseService<SzRecordMapper, SzRecord> {
private final SzRecordItemMapper szRecordItemMapper;
private final SzCheckingService szCheckingService;
private final SzPlanService szPlanService;
private final SysUserService userService;
private final SzRecordItemMapper szRecordItemMapper;
private final SzCheckingService szCheckingService;
private final SzPlanService szPlanService;
private final SysUserService userService;
public IPage<SzRecordSearchDto> search(SearchParam<SzRecord> sp) {
IPage<SzRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(SzRecord::getId)
.collect(Collectors.toList());
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.in(SzRecordItem::getRecordId, ids)
.eq(SzRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<SzRecordItem>> items = Optional.ofNullable(szRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(SzRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
public IPage<SzRecordSearchDto> search(SearchParam<SzRecord> sp) {
IPage<SzRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(SzRecord::getId)
.collect(Collectors.toList());
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.in(SzRecordItem::getRecordId, ids)
.eq(SzRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<SzRecordItem>> items = Optional.ofNullable(szRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(SzRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
List<SzRecordSearchDto> records = page.getRecords().stream().map(r -> {
SzRecordSearchDto dto = BeanCopyUtils.copy(r, SzRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(
SzCheckingService.PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList());
return parts.get(parts.size() - 1);
}).collect(Collectors.toList()));
dto.setOperatorName(Optional.ofNullable(userService.getWithRedis(r.getCreateUid())).map(
SysUser::getNickName).orElse(""));
List<SzRecordSearchDto> records = page.getRecords().stream().map(r -> {
SzRecordSearchDto dto = BeanCopyUtils.copy(r, SzRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(
SzCheckingService.PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList());
return parts.get(parts.size() - 1);
}).collect(Collectors.toList()));
dto.setOperatorName(Optional.ofNullable(userService.getWithRedis(r.getCreateUid())).map(
SysUser::getNickName).orElse(""));
}
return dto;
}).collect(Collectors.toList());
Page<SzRecordSearchDto> recordSearchDtoPage = new Page<>(page.getCurrent(), page.getSize(),
page.getTotal());
recordSearchDtoPage.setRecords(records);
return recordSearchDtoPage;
} else {
return new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
}
return dto;
}).collect(Collectors.toList());
Page<SzRecordSearchDto> recordSearchDtoPage = new Page<>(page.getCurrent(), page.getSize(),
page.getTotal());
recordSearchDtoPage.setRecords(records);
return recordSearchDtoPage;
} else {
return new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
}
}
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailDto start(StartPlan startPlan) {
SzPlanDetailDto planDetailDto = szPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
SzCheckingDetailDto checkingDetailDto = szCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
SzRecord record = new SzRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();
if (CollectionUtil.isNotEmpty(checkingDetailDto.getItems())) {
checkingDetailDto.getItems().forEach(o -> {
SzRecordItem item = new SzRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
szRecordItemMapper.insert(item);
});
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailDto start(StartPlan startPlan) {
SzPlanDetailDto planDetailDto = szPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
SzCheckingDetailDto checkingDetailDto = szCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
SzRecord record = new SzRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();
if (CollectionUtil.isNotEmpty(checkingDetailDto.getItems())) {
checkingDetailDto.getItems().forEach(o -> {
SzRecordItem item = new SzRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
szRecordItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new SzException("查询巡查检查项数据异常");
}
}
return this.getDetailById(id);
} else {
throw new SzException("查询巡查检查项数据异常");
}
throw new SzException("查询巡查计划");
}
throw new SzException("查询巡查计划");
}
public SzRecordDetailDto getDetailById(String id) {
SzRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
SzRecordDetailDto dto = BeanCopyUtils.copy(record, SzRecordDetailDto.class);
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
List<SzRecordItem> items = szRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
SzRecordItemDto itemDto = BeanCopyUtils.copy(r, SzRecordItemDto.class);
if (itemDto != null) {
itemDto.setParts(Arrays.stream(StringUtils.split(r.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
}
return itemDto;
}));
}
return dto;
public SzRecordDetailDto getDetailById(String id) {
SzRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
SzRecordDetailDto dto = BeanCopyUtils.copy(record, SzRecordDetailDto.class);
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
List<SzRecordItem> items = szRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
SzRecordItemDto itemDto = BeanCopyUtils.copy(r, SzRecordItemDto.class);
if (itemDto != null) {
itemDto.setParts(Arrays.stream(StringUtils.split(r.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
}
return itemDto;
}));
}
return dto;
}
return null;
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailDto update(SzRecordDetailDto SzRecord) {
if (CollectionUtil.isNotEmpty(SzRecord.getItems())) {
SzRecord.getItems().forEach(o -> {
SzRecordItem item = new SzRecordItem();
item.setRecordId(SzRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
szRecordItemMapper.updateById(item);
});
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailDto update(SzRecordDetailDto szRecord) {
if (CollectionUtil.isNotEmpty(szRecord.getItems())) {
szRecord.getItems().forEach(o -> {
SzRecordItem item = new SzRecordItem();
item.setId(o.getId());
item.setRecordId(szRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
szRecordItemMapper.updateById(item);
});
}
this.baseMapper.updateById(BeanCopyUtils.copy(szRecord, SzRecord.class));
return szRecord;
}
return SzRecord;
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
return rt;
}
private void deleteItems(String id) {
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
szRecordItemMapper.delete(wp);
}
private void deleteItems(String id) {
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
szRecordItemMapper.delete(wp);
}
}

1
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java

@ -32,6 +32,7 @@ public class SzYhPlanService extends BaseService<SzYhPlanMapper, SzYhPlan> {
public SzYhPlanDetailDto add(SzYhPlanDetailDto dto) {
SzYhPlan szPlan = BeanCopyUtils.copy(dto, SzYhPlan.class);
if (szPlan != null) {
szPlan.setId(null);
if (checkNameDistinct(szPlan.getId(), szPlan.getName())) {
getBaseMapper().insert(szPlan);
dto.setId(szPlan.getId());

1
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java

@ -36,6 +36,7 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord>
public SzYhRecordDetailDto getDetailById(String id) {
SzYhRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
record.setId(null);
SzYhRecordDetailDto dto = BeanCopyUtils.copy(record, SzYhRecordDetailDto.class);
Wrapper<SzYhOperator> wp = Wrappers.<SzYhOperator>lambdaQuery()
.eq(SzYhOperator::getRecordId, id);

2
shuili-system/src/main/resources/mapper/system/SysMenuMapper.xml

@ -128,7 +128,7 @@
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="orderNum != null and orderNum != ''">order_num = #{orderNum},</if>
<if test="path != null and path != ''">path = #{path},</if>
<if test="component != null and component != ''">component = #{component},</if>
<if test="component != null ">component = #{component},</if>
<if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if>
<if test="menuType != null and menuType != ''">menu_type = #{menuType},</if>
<if test="visible != null">visible = #{visible},</if>

3
sql/sy/v1.0.0.sql → sql/sy/v1.0.0/v1.0.0.sql

@ -1,4 +1,4 @@
--------------------- 堤防 ----------------------------------------------------------------------------
SET NAMES utf8mb4;
CREATE TABLE `bs_sgc_df_xs` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查编号',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查名称',
@ -158,7 +158,6 @@ CREATE TABLE `bs_sgc_df_yhjlzx` (
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防维修养护执行人表';
--------------------- 水闸 ----------------------------------------------------------------------------
CREATE TABLE `bs_sgc_sz_xs` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查编号',

410
sql/sy/v1.1.0/全量脚本/v1.1.0-all.sql

@ -0,0 +1,410 @@
SET NAMES utf8mb4;
CREATE TABLE `bs_sgc_df_xs` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查编号',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查名称',
`TYPE` int DEFAULT NULL COMMENT '巡查类型',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查表';
CREATE TABLE `bs_sgc_df_xsx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡查内容编号',
`XC_ID` int NOT NULL COMMENT '巡查ID',
`PARTS` varchar(100) COLLATE utf8mb4_general_ci COMMENT '检查部位',
`CONTENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '检查内容',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查项表';
CREATE TABLE `bs_sgc_df_xsjh` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查计划编号',
`XC_ID` int NOT NULL COMMENT '巡查ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查计划名称',
`TYPE` int DEFAULT NULL COMMENT '巡查类型',
`FREQUENCY` int COLLATE utf8mb4_general_ci COMMENT '检查次数',
`CYCLE_TYPE` int COLLATE utf8mb4_general_ci COMMENT '周期',
`IS_REMINDER` int COLLATE utf8mb4_general_ci COMMENT '是否提醒',
`REMINDER_TIME` datetime DEFAULT NULL COMMENT '提醒时间',
`OTHER_CONFIG` text COLLATE utf8mb4_general_ci COMMENT '附加配置',
`FILES` text COLLATE utf8mb4_general_ci COMMENT '巡查依据附件文档',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查计划表';
CREATE TABLE `bs_sgc_df_xsjhzx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查计划执行者编号',
`PLAN_ID` int NOT NULL COMMENT '巡查计划ID',
`OPERATOR_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人ID',
`OPERATOR_NAME` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人名称',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查计划执行人表';
CREATE TABLE `bs_sgc_df_xsjhdw` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查计划点位编号',
`PLAN_ID` int NOT NULL COMMENT '巡查计划ID',
`LONGITUDE` decimal(11,8) DEFAULT NULL COMMENT '经度',
`LATITUDE` decimal(10,8) DEFAULT NULL COMMENT '纬度',
`ALTITUDE` decimal(10,2) DEFAULT NULL COMMENT '海拔',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查计划点位表';
CREATE TABLE `bs_sgc_df_xsjhjl` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查检查记录编号',
`PLAN_ID` int NOT NULL COMMENT '巡查计划ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查记录名称',
`STATUS` int NOT NULL COMMENT '状态',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查记录表';
CREATE TABLE `bs_sgc_df_xsjhjlz` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查检查记录子项编号',
`RECORD_ID` int NOT NULL COMMENT '巡查记录ID',
`PARTS` varchar(100) COLLATE utf8mb4_general_ci COMMENT '检查部位',
`CONTENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '检查内容',
`STATUS` int NOT NULL COMMENT '状态',
`PROBLEM` varchar(500) COLLATE utf8mb4_general_ci COMMENT '存在问题',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查检查记录子项表';
CREATE TABLE `bs_sgc_df_xsjhjgj` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查检查记录轨迹编号',
`RECORD_ID` int NOT NULL COMMENT '巡查记录ID',
`LONGITUDE` decimal(11,8) DEFAULT NULL COMMENT '经度',
`LATITUDE` decimal(10,8) DEFAULT NULL COMMENT '纬度',
`ALTITUDE` decimal(10,2) DEFAULT NULL COMMENT '海拔',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防巡视检查检查记录轨迹表';
CREATE TABLE `bs_sgc_df_yhjh` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防维修养护计划编号',
`DIKE_CODE` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤防代码',
`NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '名称',
`PLAN_TIME` datetime DEFAULT NULL COMMENT '计划时间',
`NATIONAL_SUPPLEMENT` float DEFAULT NULL COMMENT '国补资金',
`SELF_SUPPLEMENT` float DEFAULT NULL COMMENT '自筹资金',
`LOCATION` varchar(500) COLLATE utf8mb4_general_ci COMMENT '具体地点',
`CONTENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '维修养护内容',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防维修养护计划表';
CREATE TABLE `bs_sgc_df_yhjl` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防维修养护记录编号',
`PLAN_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '计划代码',
`NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '名称',
`BEFORE` varchar(100) COLLATE utf8mb4_general_ci COMMENT '维护前',
`MIDDLE` varchar(100) COLLATE utf8mb4_general_ci COMMENT '维护过程',
`AFTER` varchar(100) COLLATE utf8mb4_general_ci COMMENT '维护结束',
`MAINTENANCE_FUNDS` float DEFAULT NULL COMMENT '养护费用',
`IMPLEMENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '落实情况',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`STATUS` int NOT NULL COMMENT '状态',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防维修养护记录表';
CREATE TABLE `bs_sgc_df_yhjlzx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防维修养护执行者编号',
`RECORD_ID` int NOT NULL COMMENT '养护记录ID',
`OPERATOR_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人ID',
`OPERATOR_NAME` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人名称',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='堤防维修养护执行人表';
CREATE TABLE `bs_sgc_df_hdjh` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划编号',
`DIKE_CODE` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤防代码',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '害堤动物防治计划名称',
`TYPE` int DEFAULT NULL COMMENT '防治类型',
`DIKE_LEVEL` varchar(10) COLLATE utf8mb4_general_ci COMMENT '堤防级别',
`DIKE_TYPE` varchar(10) COLLATE utf8mb4_general_ci COMMENT '堤防类型',
`INSTRUCTION` varchar(500) COLLATE utf8mb4_general_ci COMMENT '防治说明',
`MONTH` int COLLATE utf8mb4_general_ci COMMENT '工作月份',
`FREQUENCY` int COLLATE utf8mb4_general_ci COMMENT '检查次数',
`CYCLE_TYPE` int COLLATE utf8mb4_general_ci COMMENT '周期',
`IS_REMINDER` int COLLATE utf8mb4_general_ci COMMENT '是否提醒',
`REMINDER_TIME` datetime DEFAULT NULL COMMENT '提醒时间',
`OTHER_CONFIG` text COLLATE utf8mb4_general_ci COMMENT '附加配置',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划';
CREATE TABLE `bs_sgc_df_hdjhxq` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划详情编号',
`PLAN_ID` int NOT NULL COMMENT '害堤动物防治计划ID',
`JOB_CONTENT` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工作内容',
`CONSTRUCTION_DATE` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '施工日期',
`PLAN_DAYS` int COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划工日',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划详情表';
CREATE TABLE `bs_sgc_df_hdjhzx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行者编号',
`PLAN_ID` int NOT NULL COMMENT '害堤动物防治计划ID',
`OPERATOR_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人ID',
`OPERATOR_NAME` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人名称',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行人表';
CREATE TABLE `bs_sgc_df_hdjl` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行记录编号',
`PLAN_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '计划代码',
`PLAN_NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '计划名称',
`LOCATION` int COLLATE utf8mb4_general_ci COMMENT '施工地点',
`CONSTRUCTION_STATUS` varchar(100) COLLATE utf8mb4_general_ci COMMENT '检查施工情况',
`PEST` int COLLATE utf8mb4_general_ci COMMENT '有害生物',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`STATUS` int NOT NULL COMMENT '状态',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行记录表';
CREATE TABLE `bs_sgc_df_hdjltp` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行记录图片编号',
`RECORD_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '记录代码',
`URL` varchar(500) COLLATE utf8mb4_general_ci COMMENT '图片地址',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行记录图片表';
CREATE TABLE `bs_sgc_df_hdjlyy` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行记录用药编号',
`RECORD_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '记录代码',
`DRUG_NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '药物名称',
`CONCENTRATION` varchar(100) COLLATE utf8mb4_general_ci COMMENT '浓度',
`DOSE` varchar(100) COLLATE utf8mb4_general_ci COMMENT '剂量',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行记录用药表';
CREATE TABLE `bs_sgc_sz_xs` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查编号',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查名称',
`TYPE` int DEFAULT NULL COMMENT '巡查类型',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查表';
CREATE TABLE `bs_sgc_sz_xsx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡查内容编号',
`XC_ID` int NOT NULL COMMENT '巡查ID',
`PARTS` varchar(100) COLLATE utf8mb4_general_ci COMMENT '检查部位',
`CONTENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '检查内容',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查项表';
CREATE TABLE `bs_sgc_sz_xsjh` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查计划编号',
`XC_ID` int NOT NULL COMMENT '巡查ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查计划名称',
`TYPE` int DEFAULT NULL COMMENT '巡查类型',
`FREQUENCY` int COLLATE utf8mb4_general_ci COMMENT '检查次数',
`CYCLE_TYPE` int COLLATE utf8mb4_general_ci COMMENT '周期',
`IS_REMINDER` int COLLATE utf8mb4_general_ci COMMENT '是否提醒',
`REMINDER_TIME` datetime DEFAULT NULL COMMENT '提醒时间',
`OTHER_CONFIG` text COLLATE utf8mb4_general_ci COMMENT '附加配置',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查计划表';
CREATE TABLE `bs_sgc_sz_xsjhzx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查计划执行者编号',
`PLAN_ID` int NOT NULL COMMENT '巡查计划ID',
`OPERATOR_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人',
`OPERATOR_NAME` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人名称',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查计划执行人表';
CREATE TABLE `bs_sgc_sz_xsjhdw` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查计划点位编号',
`PLAN_ID` int NOT NULL COMMENT '巡查计划ID',
`LONGITUDE` decimal(11,8) DEFAULT NULL COMMENT '经度',
`LATITUDE` decimal(10,8) DEFAULT NULL COMMENT '纬度',
`ALTITUDE` decimal(10,2) DEFAULT NULL COMMENT '海拔',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查计划点位表';
CREATE TABLE `bs_sgc_sz_xsjhjl` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查检查记录编号',
`PLAN_ID` int NOT NULL COMMENT '巡查计划ID',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查记录名称',
`STATUS` int NOT NULL COMMENT '状态',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查记录表';
CREATE TABLE `bs_sgc_sz_xsjhjlz` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查检查记录子项编号',
`RECORD_ID` int NOT NULL COMMENT '巡查记录ID',
`PARTS` varchar(100) COLLATE utf8mb4_general_ci COMMENT '检查部位',
`CONTENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '检查内容',
`STATUS` int NOT NULL COMMENT '状态',
`PROBLEM` varchar(500) COLLATE utf8mb4_general_ci COMMENT '存在问题',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查检查记录子项表';
CREATE TABLE `bs_sgc_sz_xsjhjgj` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查检查记录轨迹编号',
`RECORD_ID` int NOT NULL COMMENT '巡查记录ID',
`LONGITUDE` decimal(11,8) DEFAULT NULL COMMENT '经度',
`LATITUDE` decimal(10,8) DEFAULT NULL COMMENT '纬度',
`ALTITUDE` decimal(10,2) DEFAULT NULL COMMENT '海拔',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸巡视检查检查记录轨迹表';
CREATE TABLE `bs_sgc_sz_yhjh` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸维修养护计划编号',
`WAGA_CODE` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '水闸代码',
`NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '名称',
`PLAN_TIME` datetime DEFAULT NULL COMMENT '计划时间',
`NATIONAL_SUPPLEMENT` float DEFAULT NULL COMMENT '国补资金',
`SELF_SUPPLEMENT` float DEFAULT NULL COMMENT '自筹资金',
`LOCATION` varchar(500) COLLATE utf8mb4_general_ci COMMENT '具体地点',
`CONTENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '维修养护内容',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸维修养护计划表';
CREATE TABLE `bs_sgc_sz_yhjl` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸维修养护记录编号',
`PLAN_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '计划代码',
`NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '名称',
`BEFORE` varchar(100) COLLATE utf8mb4_general_ci COMMENT '维护前',
`MIDDLE` varchar(100) COLLATE utf8mb4_general_ci COMMENT '维护过程',
`AFTER` varchar(100) COLLATE utf8mb4_general_ci COMMENT '维护结束',
`MAINTENANCE_FUNDS` float DEFAULT NULL COMMENT '养护费用',
`IMPLEMENT` varchar(500) COLLATE utf8mb4_general_ci COMMENT '落实情况',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`STATUS` int NOT NULL COMMENT '状态',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸维修养护记录表';
CREATE TABLE `bs_sgc_sz_yhjlzx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸维修养护执行者编号',
`RECORD_ID` int NOT NULL COMMENT '养护记录ID',
`OPERATOR_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人ID',
`OPERATOR_NAME` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人名称',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸维修养护执行人表';

92
sql/sy/v1.1.0/增量脚本/v1.1.0-update.sql

@ -0,0 +1,92 @@
SET NAMES utf8mb4;
ALTER TABLE `bs_sgc_df_xsjh` ADD `IS_REMINDER` INT DEFAULT 0 COLLATE utf8mb4_general_ci COMMENT '是否提醒';
ALTER TABLE `bs_sgc_sz_xsjh` ADD `IS_REMINDER` INT DEFAULT 0 COLLATE utf8mb4_general_ci COMMENT '是否提醒';
ALTER TABLE `bs_sgc_df_xsjh` ADD `FILES` text COLLATE utf8mb4_general_ci COMMENT '巡查依据附件文档';
CREATE TABLE `bs_sgc_df_hdjh` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划编号',
`DIKE_CODE` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤防代码',
`NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '害堤动物防治计划名称',
`TYPE` int DEFAULT NULL COMMENT '防治类型',
`DIKE_LEVEL` varchar(10) COLLATE utf8mb4_general_ci COMMENT '堤防级别',
`DIKE_TYPE` varchar(10) COLLATE utf8mb4_general_ci COMMENT '堤防类型',
`INSTRUCTION` varchar(500) COLLATE utf8mb4_general_ci COMMENT '防治说明',
`MONTH` int COLLATE utf8mb4_general_ci COMMENT '工作月份',
`FREQUENCY` int COLLATE utf8mb4_general_ci COMMENT '检查次数',
`CYCLE_TYPE` int COLLATE utf8mb4_general_ci COMMENT '周期',
`IS_REMINDER` int COLLATE utf8mb4_general_ci COMMENT '是否提醒',
`REMINDER_TIME` datetime DEFAULT NULL COMMENT '提醒时间',
`OTHER_CONFIG` text COLLATE utf8mb4_general_ci COMMENT '附加配置',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划';
CREATE TABLE `bs_sgc_df_hdjhxq` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划详情编号',
`PLAN_ID` int NOT NULL COMMENT '害堤动物防治计划ID',
`JOB_CONTENT` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工作内容',
`CONSTRUCTION_DATE` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '施工日期',
`PLAN_DAYS` int COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划工日',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划详情表';
CREATE TABLE `bs_sgc_df_hdjhzx` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行者编号',
`PLAN_ID` int NOT NULL COMMENT '害堤动物防治计划ID',
`OPERATOR_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人ID',
`OPERATOR_NAME` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行人名称',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行人表';
CREATE TABLE `bs_sgc_df_hdjl` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行记录编号',
`PLAN_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '计划代码',
`LOCATION` int COLLATE utf8mb4_general_ci COMMENT '施工地点',
`CONSTRUCTION_STATUS` varchar(100) COLLATE utf8mb4_general_ci COMMENT '检查施工情况',
`PEST` int COLLATE utf8mb4_general_ci COMMENT '有害生物',
`REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注',
`STATUS` int NOT NULL COMMENT '状态',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行记录表';
CREATE TABLE `bs_sgc_df_hdjltp` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行记录图片编号',
`RECORD_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '记录代码',
`URL` varchar(500) COLLATE utf8mb4_general_ci COMMENT '图片地址',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行记录图片表';
CREATE TABLE `bs_sgc_df_hdjlyy` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '害堤动物防治计划执行记录用药编号',
`RECORD_ID` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '记录代码',
`DRUG_NAME` varchar(100) COLLATE utf8mb4_general_ci COMMENT '药物名称',
`CONCENTRATION` varchar(100) COLLATE utf8mb4_general_ci COMMENT '浓度',
`DOSE` varchar(100) COLLATE utf8mb4_general_ci COMMENT '剂量',
`CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='害堤动物防治计划执行记录用药表';
Loading…
Cancel
Save