Commit 38599d76 by 刘泽志

30

parent 50f004f6
package com.tbyf.his.web.controller.dataImport; package com.tbyf.his.web.controller.dataImport;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tbyf.his.common.annotation.IgnoreWebSecurity; import com.tbyf.his.common.annotation.IgnoreWebSecurity;
import com.tbyf.his.common.core.domain.AjaxResult; import com.tbyf.his.common.core.domain.AjaxResult;
import com.tbyf.his.common.core.page.TableDataInfo;
import com.tbyf.his.common.core.text.StrFormatter;
import com.tbyf.his.common.utils.StringUtils; import com.tbyf.his.common.utils.StringUtils;
import com.tbyf.his.common.utils.bean.BeanUtils; import com.tbyf.his.common.utils.bean.BeanUtils;
import com.tbyf.his.framework.datasource.DataSourceUtil;
import com.tbyf.his.framework.datasource.DynamicDataSourceContextHolder;
import com.tbyf.his.system.domain.SysDatasource;
import com.tbyf.his.system.service.ISysDatasourceService;
import com.tbyf.his.web.dataImport.domain.param.*; import com.tbyf.his.web.dataImport.domain.param.*;
import com.tbyf.his.web.dataImport.entity.DataDict; import com.tbyf.his.web.dataImport.entity.DataDict;
import com.tbyf.his.web.dataImport.entity.DataField;
import com.tbyf.his.web.dataImport.entity.DataImportTemplate; import com.tbyf.his.web.dataImport.entity.DataImportTemplate;
import com.tbyf.his.web.dataImport.service.DataDictService; import com.tbyf.his.web.dataImport.service.DataDictService;
import com.tbyf.his.web.dataImport.service.DataFieldService;
import com.tbyf.his.web.dataImport.service.DataImportTemplateService; import com.tbyf.his.web.dataImport.service.DataImportTemplateService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -40,6 +54,15 @@ public class DataImportController { ...@@ -40,6 +54,15 @@ public class DataImportController {
@Autowired @Autowired
private DataDictService dictService; private DataDictService dictService;
@Autowired
private ISysDatasourceService sysDatasourceService;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private DataFieldService dataFieldService;
@IgnoreWebSecurity @IgnoreWebSecurity
@GetMapping("/template") @GetMapping("/template")
@ApiOperation("模板查询") @ApiOperation("模板查询")
...@@ -77,6 +100,7 @@ public class DataImportController { ...@@ -77,6 +100,7 @@ public class DataImportController {
public AjaxResult deleteTemplate(@RequestParam String templateId) { public AjaxResult deleteTemplate(@RequestParam String templateId) {
dataImportService.removeById(templateId); dataImportService.removeById(templateId);
//TODO 需要删除字段以及其字段关联的规则与其它数据 //TODO 需要删除字段以及其字段关联的规则与其它数据
dataFieldService.remove(Wrappers.lambdaQuery(DataField.class).eq(DataField::getTemplateId, templateId));
return AjaxResult.success(); return AjaxResult.success();
} }
...@@ -132,4 +156,101 @@ public class DataImportController { ...@@ -132,4 +156,101 @@ public class DataImportController {
return AjaxResult.success(); return AjaxResult.success();
} }
@IgnoreWebSecurity
@GetMapping("/datasource")
@ApiOperation("查询所有数据源")
public AjaxResult queryDatasource() {
final List<SysDatasource> list = sysDatasourceService.selectSysDatasourceList(new SysDatasource());
return AjaxResult.success(list);
}
@IgnoreWebSecurity
@GetMapping("/datasource/table")
@ApiOperation("获取指定数据源中的表")
public AjaxResult getDbTable(@RequestParam String dataSourceId) {
try {
DataSourceUtil.switchDs(dataSourceId);
final DruidDataSource dataSource = (DruidDataSource) DynamicDataSourceContextHolder.dataSourcesMap.get(dataSourceId);
String sql = "select TABLE_NAME AS VALUE,COMMENTS AS LABEL from user_tab_comments WHERE TABLE_TYPE = 'TABLE'";
if (dataSource.getDriverClassName().toLowerCase().contains("mysql")) {
sql = "select TABLE_NAME AS VALUE ,table_comment AS LABEL from information_schema.tables where table_type='BASE TABLE'";
}
final List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return AjaxResult.success(maps.stream().filter(
distinctByKey(b -> b.get("VALUE"))
).distinct().collect(Collectors.toList()));
} finally {
DataSourceUtil.switchDefaultDs();
}
}
@IgnoreWebSecurity
@GetMapping("/datasource/field")
@ApiOperation("获取指定数据表中的字段")
public AjaxResult getDbField(@RequestParam String dataSourceId, @RequestParam String tableName) {
try {
DataSourceUtil.switchDs(dataSourceId);
final DruidDataSource dataSource = (DruidDataSource) DynamicDataSourceContextHolder.dataSourcesMap.get(dataSourceId);
String sql = StrFormatter.format("SELECT UTC.COLUMN_NAME AS VALUE,UTC.DATA_TYPE AS TYPE,( SELECT UCC.COMMENTS FROM user_col_comments UCC WHERE UCC.COLUMN_NAME = UTC.COLUMN_NAME AND UCC.TABLE_NAME = UTC.TABLE_NAME ) AS LABEL FROM user_tab_columns UTC WHERE UTC.TABLE_NAME = '{}'", tableName);
if (dataSource.getDriverClassName().toLowerCase().contains("mysql")) {
sql = StrFormatter.format("SELECT column_name AS VALUE, DATA_TYPE AS TYPE, column_comment AS LABEL FROM information_schema.COLUMNS WHERE table_name = '{}'", tableName);
}
final List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return AjaxResult.success(maps);
} finally {
DataSourceUtil.switchDefaultDs();
}
}
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
@IgnoreWebSecurity
@GetMapping("/field")
@ApiOperation("字段查询")
public TableDataInfo queryField(@Validated QueryFieldParam param) {
final Page<DataField> page = Page.of(param.getPageNum(), param.getPageSize());
final LambdaQueryWrapper<DataField> queryWrapper = Wrappers.lambdaQuery(DataField.class);
queryWrapper.eq(StringUtils.isNotBlank(param.getTemplateId()), DataField::getTemplateId, param.getTemplateId())
.like(StringUtils.isNotBlank(param.getCode()), DataField::getCode, param.getCode())
.like(StringUtils.isNotBlank(param.getTitle()), DataField::getTitle, param.getTitle())
.like(StringUtils.isNotBlank(param.getCoordinate()), DataField::getCoordinate, param.getCoordinate())
.like(StringUtils.isNotBlank(param.getField()), DataField::getField, param.getField());
final Page<DataField> templatePage = dataFieldService.page(page, queryWrapper);
return param.convert(templatePage);
}
@IgnoreWebSecurity
@PostMapping("/field")
@ApiOperation("字段新增")
public AjaxResult addField(@RequestBody @Validated AddFieldParam param) {
DataField field = new DataField();
BeanUtils.copyProperties(param, field);
dataFieldService.save(field);
return AjaxResult.success();
}
@IgnoreWebSecurity
@PutMapping("/field")
@ApiOperation("修改字段")
public AjaxResult updateField(@RequestBody @Validated UpdateFieldParam param) {
DataField field = new DataField();
BeanUtils.copyProperties(param, field);
dataFieldService.updateById(field);
return AjaxResult.success();
}
@IgnoreWebSecurity
@DeleteMapping("/field")
@ApiOperation("删除字段")
public AjaxResult deleteField(@RequestParam String fieldId) {
dataFieldService.removeById(fieldId);
//TODO 需要删除其字段关联的规则与其它数据
return AjaxResult.success();
}
} }
package com.tbyf.his.web.controller.system; package com.tbyf.his.web.controller.system;
import com.tbyf.his.common.annotation.Log; import com.tbyf.his.common.annotation.IgnoreWebSecurity;
import com.tbyf.his.common.core.controller.BaseController; import com.tbyf.his.common.core.controller.BaseController;
import com.tbyf.his.common.core.domain.AjaxResult; import com.tbyf.his.common.core.domain.AjaxResult;
import com.tbyf.his.common.core.domain.model.MyKeyValue; import com.tbyf.his.common.core.domain.model.MyKeyValue;
import com.tbyf.his.common.core.page.TableDataInfo; import com.tbyf.his.common.core.page.TableDataInfo;
import com.tbyf.his.common.enums.BusinessType;
import com.tbyf.his.common.utils.poi.ExcelUtil; import com.tbyf.his.common.utils.poi.ExcelUtil;
import com.tbyf.his.system.domain.SysDataTableVo; import com.tbyf.his.system.domain.SysDataTableVo;
import com.tbyf.his.system.domain.SysDatasource; import com.tbyf.his.system.domain.SysDatasource;
import com.tbyf.his.system.service.ISysDatasourceService; import com.tbyf.his.system.service.ISysDatasourceService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*;
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 javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 数据源配置Controller * 数据源配置Controller
...@@ -41,7 +31,7 @@ public class SysDatasourceController extends BaseController { ...@@ -41,7 +31,7 @@ public class SysDatasourceController extends BaseController {
/** /**
* 查询数据源配置列表 * 查询数据源配置列表
*/ */
@PreAuthorize("@ss.hasPermi('system:datasource:list')") @IgnoreWebSecurity
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(SysDatasource sysDatasource) { public TableDataInfo list(SysDatasource sysDatasource) {
startPage(); startPage();
...@@ -49,6 +39,8 @@ public class SysDatasourceController extends BaseController { ...@@ -49,6 +39,8 @@ public class SysDatasourceController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@IgnoreWebSecurity
/** /**
* 查询具有适配器标识的数据源树列表 * 查询具有适配器标识的数据源树列表
*/ */
...@@ -61,8 +53,7 @@ public class SysDatasourceController extends BaseController { ...@@ -61,8 +53,7 @@ public class SysDatasourceController extends BaseController {
/** /**
* 导出数据源配置列表 * 导出数据源配置列表
*/ */
@PreAuthorize("@ss.hasPermi('system:datasource:export')") @IgnoreWebSecurity
@Log(title = "数据源配置", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, SysDatasource sysDatasource) { public void export(HttpServletResponse response, SysDatasource sysDatasource) {
List<SysDatasource> list = sysDatasourceService.selectSysDatasourceList(sysDatasource); List<SysDatasource> list = sysDatasourceService.selectSysDatasourceList(sysDatasource);
...@@ -73,7 +64,7 @@ public class SysDatasourceController extends BaseController { ...@@ -73,7 +64,7 @@ public class SysDatasourceController extends BaseController {
/** /**
* 获取数据源配置详细信息 * 获取数据源配置详细信息
*/ */
@PreAuthorize("@ss.hasPermi('system:datasource:query')") @IgnoreWebSecurity
@GetMapping(value = "/{datasourceId}") @GetMapping(value = "/{datasourceId}")
public AjaxResult getInfo(@PathVariable("datasourceId") Long datasourceId) { public AjaxResult getInfo(@PathVariable("datasourceId") Long datasourceId) {
return AjaxResult.success(sysDatasourceService.selectSysDatasourceByDatasourceId(datasourceId)); return AjaxResult.success(sysDatasourceService.selectSysDatasourceByDatasourceId(datasourceId));
...@@ -82,8 +73,7 @@ public class SysDatasourceController extends BaseController { ...@@ -82,8 +73,7 @@ public class SysDatasourceController extends BaseController {
/** /**
* 新增数据源配置 * 新增数据源配置
*/ */
@PreAuthorize("@ss.hasPermi('system:datasource:add')") @IgnoreWebSecurity
@Log(title = "数据源配置", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody SysDatasource sysDatasource) { public AjaxResult add(@RequestBody SysDatasource sysDatasource) {
return toAjax(sysDatasourceService.insertSysDatasource(sysDatasource)); return toAjax(sysDatasourceService.insertSysDatasource(sysDatasource));
...@@ -92,8 +82,7 @@ public class SysDatasourceController extends BaseController { ...@@ -92,8 +82,7 @@ public class SysDatasourceController extends BaseController {
/** /**
* 修改数据源配置 * 修改数据源配置
*/ */
@PreAuthorize("@ss.hasPermi('system:datasource:edit')") @IgnoreWebSecurity
@Log(title = "数据源配置", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody SysDatasource sysDatasource) { public AjaxResult edit(@RequestBody SysDatasource sysDatasource) {
return toAjax(sysDatasourceService.updateSysDatasource(sysDatasource)); return toAjax(sysDatasourceService.updateSysDatasource(sysDatasource));
...@@ -102,14 +91,14 @@ public class SysDatasourceController extends BaseController { ...@@ -102,14 +91,14 @@ public class SysDatasourceController extends BaseController {
/** /**
* 删除数据源配置 * 删除数据源配置
*/ */
@PreAuthorize("@ss.hasPermi('system:datasource:remove')") @IgnoreWebSecurity
@Log(title = "数据源配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{datasourceIds}") @DeleteMapping("/{datasourceIds}")
public AjaxResult remove(@PathVariable Long[] datasourceIds) { public AjaxResult remove(@PathVariable Long[] datasourceIds) {
return toAjax(sysDatasourceService.deleteSysDatasourceByDatasourceIds(datasourceIds)); return toAjax(sysDatasourceService.deleteSysDatasourceByDatasourceIds(datasourceIds));
} }
@GetMapping(value = "/getTablesBySourceId/{id}") @GetMapping(value = "/getTablesBySourceId/{id}")
@IgnoreWebSecurity
public AjaxResult getTablesBySourceId(@PathVariable("id") Long id) { public AjaxResult getTablesBySourceId(@PathVariable("id") Long id) {
return AjaxResult.success(sysDatasourceService.getTablesBySourceId(id)); return AjaxResult.success(sysDatasourceService.getTablesBySourceId(id));
} }
...@@ -118,6 +107,7 @@ public class SysDatasourceController extends BaseController { ...@@ -118,6 +107,7 @@ public class SysDatasourceController extends BaseController {
* 测试连通性 * 测试连通性
*/ */
@GetMapping(value = "/getTestConnectBySource") @GetMapping(value = "/getTestConnectBySource")
@IgnoreWebSecurity
public AjaxResult testConnect(SysDatasource sysDatasource) { public AjaxResult testConnect(SysDatasource sysDatasource) {
sysDatasourceService.testConnectBySourceId(sysDatasource); sysDatasourceService.testConnectBySourceId(sysDatasource);
return AjaxResult.success(); return AjaxResult.success();
...@@ -130,12 +120,14 @@ public class SysDatasourceController extends BaseController { ...@@ -130,12 +120,14 @@ public class SysDatasourceController extends BaseController {
* @return * @return
*/ */
@GetMapping(value = "/getTablesBySourceIdAndTableName") @GetMapping(value = "/getTablesBySourceIdAndTableName")
@IgnoreWebSecurity
public AjaxResult getTablesBySourceIdAndTableName(SysDataTableVo sysDataTableVo) { public AjaxResult getTablesBySourceIdAndTableName(SysDataTableVo sysDataTableVo) {
return AjaxResult.success(sysDatasourceService.getTablesBySourceIdAndTableName(sysDataTableVo)); return AjaxResult.success(sysDatasourceService.getTablesBySourceIdAndTableName(sysDataTableVo));
} }
@ApiOperation("getColumnsByTableName") @ApiOperation("getColumnsByTableName")
@GetMapping(value = "/getColumnsByTableName/{id}/{tableName}") @GetMapping(value = "/getColumnsByTableName/{id}/{tableName}")
@IgnoreWebSecurity
public AjaxResult getColumnsByTableName(@PathVariable("id") Long id, @PathVariable("tableName") String tableName) { public AjaxResult getColumnsByTableName(@PathVariable("id") Long id, @PathVariable("tableName") String tableName) {
return AjaxResult.success(sysDatasourceService.getColumnsByTableName(id, tableName)); return AjaxResult.success(sysDatasourceService.getColumnsByTableName(id, tableName));
} }
......
package com.tbyf.his.web.controller.system; package com.tbyf.his.web.controller.system;
import java.util.ArrayList; import com.tbyf.his.common.annotation.IgnoreWebSecurity;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.tbyf.his.common.core.controller.BaseController; import com.tbyf.his.common.core.controller.BaseController;
import com.tbyf.his.common.core.domain.AjaxResult; import com.tbyf.his.common.core.domain.AjaxResult;
import com.tbyf.his.common.core.domain.entity.SysDictData; import com.tbyf.his.common.core.domain.entity.SysDictData;
import com.tbyf.his.common.core.page.TableDataInfo; import com.tbyf.his.common.core.page.TableDataInfo;
import com.tbyf.his.common.enums.BusinessType;
import com.tbyf.his.common.utils.StringUtils; import com.tbyf.his.common.utils.StringUtils;
import com.tbyf.his.common.utils.poi.ExcelUtil; import com.tbyf.his.common.utils.poi.ExcelUtil;
import com.tbyf.his.framework.system.service.ISysDictDataService; import com.tbyf.his.framework.system.service.ISysDictDataService;
import com.tbyf.his.framework.system.service.ISysDictTypeService; import com.tbyf.his.framework.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.PostMapping; import java.util.ArrayList;
import org.springframework.web.bind.annotation.PutMapping; import java.util.List;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.tbyf.his.common.annotation.Log;
/** /**
* 数据字典信息 * 数据字典信息
...@@ -40,7 +31,7 @@ public class SysDictDataController extends BaseController { ...@@ -40,7 +31,7 @@ public class SysDictDataController extends BaseController {
@Autowired @Autowired
private ISysDictTypeService dictTypeService; private ISysDictTypeService dictTypeService;
@PreAuthorize("@ss.hasPermi('system:dict:list')") @IgnoreWebSecurity
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(SysDictData dictData) { public TableDataInfo list(SysDictData dictData) {
startPage(); startPage();
...@@ -48,8 +39,7 @@ public class SysDictDataController extends BaseController { ...@@ -48,8 +39,7 @@ public class SysDictDataController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@Log(title = "字典数据", businessType = BusinessType.EXPORT) @IgnoreWebSecurity
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, SysDictData dictData) { public void export(HttpServletResponse response, SysDictData dictData) {
List<SysDictData> list = dictDataService.selectDictDataList(dictData); List<SysDictData> list = dictDataService.selectDictDataList(dictData);
...@@ -60,7 +50,7 @@ public class SysDictDataController extends BaseController { ...@@ -60,7 +50,7 @@ public class SysDictDataController extends BaseController {
/** /**
* 查询字典数据详细 * 查询字典数据详细
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:query')") @IgnoreWebSecurity
@GetMapping(value = "/{dictCode}") @GetMapping(value = "/{dictCode}")
public AjaxResult getInfo(@PathVariable Long dictCode) { public AjaxResult getInfo(@PathVariable Long dictCode) {
return AjaxResult.success(dictDataService.selectDictDataById(dictCode)); return AjaxResult.success(dictDataService.selectDictDataById(dictCode));
...@@ -70,6 +60,7 @@ public class SysDictDataController extends BaseController { ...@@ -70,6 +60,7 @@ public class SysDictDataController extends BaseController {
* 根据字典类型查询字典数据信息 * 根据字典类型查询字典数据信息
*/ */
@GetMapping(value = "/type/{dictType}") @GetMapping(value = "/type/{dictType}")
@IgnoreWebSecurity
public AjaxResult dictType(@PathVariable String dictType) { public AjaxResult dictType(@PathVariable String dictType) {
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType); List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
if (StringUtils.isNull(data)) { if (StringUtils.isNull(data)) {
...@@ -81,8 +72,7 @@ public class SysDictDataController extends BaseController { ...@@ -81,8 +72,7 @@ public class SysDictDataController extends BaseController {
/** /**
* 新增字典类型 * 新增字典类型
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:add')") @IgnoreWebSecurity
@Log(title = "字典数据", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@Validated @RequestBody SysDictData dict) { public AjaxResult add(@Validated @RequestBody SysDictData dict) {
dict.setCreateBy(getUsername()); dict.setCreateBy(getUsername());
...@@ -92,8 +82,7 @@ public class SysDictDataController extends BaseController { ...@@ -92,8 +82,7 @@ public class SysDictDataController extends BaseController {
/** /**
* 修改保存字典类型 * 修改保存字典类型
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:edit')") @IgnoreWebSecurity
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictData dict) { public AjaxResult edit(@Validated @RequestBody SysDictData dict) {
dict.setUpdateBy(getUsername()); dict.setUpdateBy(getUsername());
...@@ -103,8 +92,7 @@ public class SysDictDataController extends BaseController { ...@@ -103,8 +92,7 @@ public class SysDictDataController extends BaseController {
/** /**
* 删除字典类型 * 删除字典类型
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:remove')") @IgnoreWebSecurity
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{dictCodes}") @DeleteMapping("/{dictCodes}")
public AjaxResult remove(@PathVariable Long[] dictCodes) { public AjaxResult remove(@PathVariable Long[] dictCodes) {
dictDataService.deleteDictDataByIds(dictCodes); dictDataService.deleteDictDataByIds(dictCodes);
......
package com.tbyf.his.web.controller.system; package com.tbyf.his.web.controller.system;
import java.util.List; import com.tbyf.his.common.annotation.IgnoreWebSecurity;
import javax.servlet.http.HttpServletResponse;
import com.tbyf.his.common.constant.UserConstants; import com.tbyf.his.common.constant.UserConstants;
import com.tbyf.his.common.core.controller.BaseController; import com.tbyf.his.common.core.controller.BaseController;
import com.tbyf.his.common.core.domain.AjaxResult; import com.tbyf.his.common.core.domain.AjaxResult;
import com.tbyf.his.common.core.domain.entity.SysDictType; import com.tbyf.his.common.core.domain.entity.SysDictType;
import com.tbyf.his.common.core.page.TableDataInfo; import com.tbyf.his.common.core.page.TableDataInfo;
import com.tbyf.his.common.enums.BusinessType;
import com.tbyf.his.common.utils.poi.ExcelUtil; import com.tbyf.his.common.utils.poi.ExcelUtil;
import com.tbyf.his.framework.system.service.ISysDictTypeService; import com.tbyf.his.framework.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.PostMapping; import java.util.List;
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 com.tbyf.his.common.annotation.Log;
/** /**
* 数据字典信息 * 数据字典信息
...@@ -35,7 +26,7 @@ public class SysDictTypeController extends BaseController { ...@@ -35,7 +26,7 @@ public class SysDictTypeController extends BaseController {
@Autowired @Autowired
private ISysDictTypeService dictTypeService; private ISysDictTypeService dictTypeService;
@PreAuthorize("@ss.hasPermi('system:dict:list')") @IgnoreWebSecurity
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(SysDictType dictType) { public TableDataInfo list(SysDictType dictType) {
startPage(); startPage();
...@@ -43,8 +34,7 @@ public class SysDictTypeController extends BaseController { ...@@ -43,8 +34,7 @@ public class SysDictTypeController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@Log(title = "字典类型", businessType = BusinessType.EXPORT) @IgnoreWebSecurity
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, SysDictType dictType) { public void export(HttpServletResponse response, SysDictType dictType) {
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType); List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
...@@ -55,7 +45,7 @@ public class SysDictTypeController extends BaseController { ...@@ -55,7 +45,7 @@ public class SysDictTypeController extends BaseController {
/** /**
* 查询字典类型详细 * 查询字典类型详细
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:query')") @IgnoreWebSecurity
@GetMapping(value = "/{dictId}") @GetMapping(value = "/{dictId}")
public AjaxResult getInfo(@PathVariable Long dictId) { public AjaxResult getInfo(@PathVariable Long dictId) {
return AjaxResult.success(dictTypeService.selectDictTypeById(dictId)); return AjaxResult.success(dictTypeService.selectDictTypeById(dictId));
...@@ -64,8 +54,7 @@ public class SysDictTypeController extends BaseController { ...@@ -64,8 +54,7 @@ public class SysDictTypeController extends BaseController {
/** /**
* 新增字典类型 * 新增字典类型
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:add')") @IgnoreWebSecurity
@Log(title = "字典类型", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@Validated @RequestBody SysDictType dict) { public AjaxResult add(@Validated @RequestBody SysDictType dict) {
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) {
...@@ -78,8 +67,7 @@ public class SysDictTypeController extends BaseController { ...@@ -78,8 +67,7 @@ public class SysDictTypeController extends BaseController {
/** /**
* 修改字典类型 * 修改字典类型
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:edit')") @IgnoreWebSecurity
@Log(title = "字典类型", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictType dict) { public AjaxResult edit(@Validated @RequestBody SysDictType dict) {
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) {
...@@ -92,8 +80,7 @@ public class SysDictTypeController extends BaseController { ...@@ -92,8 +80,7 @@ public class SysDictTypeController extends BaseController {
/** /**
* 删除字典类型 * 删除字典类型
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:remove')") @IgnoreWebSecurity
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{dictIds}") @DeleteMapping("/{dictIds}")
public AjaxResult remove(@PathVariable Long[] dictIds) { public AjaxResult remove(@PathVariable Long[] dictIds) {
dictTypeService.deleteDictTypeByIds(dictIds); dictTypeService.deleteDictTypeByIds(dictIds);
...@@ -103,18 +90,19 @@ public class SysDictTypeController extends BaseController { ...@@ -103,18 +90,19 @@ public class SysDictTypeController extends BaseController {
/** /**
* 刷新字典缓存 * 刷新字典缓存
*/ */
@PreAuthorize("@ss.hasPermi('system:dict:remove')") @IgnoreWebSecurity
@Log(title = "字典类型", businessType = BusinessType.CLEAN)
@DeleteMapping("/refreshCache") @DeleteMapping("/refreshCache")
public AjaxResult refreshCache() { public AjaxResult refreshCache() {
dictTypeService.resetDictCache(); dictTypeService.resetDictCache();
return AjaxResult.success(); return AjaxResult.success();
} }
/** /**
* 获取字典选择框列表 * 获取字典选择框列表
*/ */
@GetMapping("/optionselect") @GetMapping("/optionselect")
@IgnoreWebSecurity
public AjaxResult optionselect() { public AjaxResult optionselect() {
List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll(); List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
return AjaxResult.success(dictTypes); return AjaxResult.success(dictTypes);
......
package com.tbyf.his.web.dataImport.domain.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "新增字段", description = "新增字段")
public class AddFieldParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "模板ID")
@NotBlank(message = "模板ID不能为空")
private String templateId;
@ApiModelProperty(value = "代码")
private String code;
@ApiModelProperty(value = "指标名称")
@NotBlank(message = "指标名称不能为空")
private String title;
@ApiModelProperty(value = "计量单位")
private String unit;
@ApiModelProperty(value = "数据起始坐标")
@NotBlank(message = "数据起始坐标不能为空")
private String coordinate;
@ApiModelProperty(value = "排序字段")
private Integer sort = 0;
@ApiModelProperty(value = "数据库字段名")
private String field;
}
package com.tbyf.his.web.dataImport.domain.param;
import com.tbyf.his.web.dataImport.domain.ParamMp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author lzz
* @date 2023/1/10 17:01
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@ApiModel(value = "字段查询参数", description = "字段查询参数")
public class QueryFieldParam extends ParamMp {
@ApiModelProperty(value = "模板ID")
private String templateId;
@ApiModelProperty(value = "代码")
private String code;
@ApiModelProperty(value = "指标名称")
private String title;
@ApiModelProperty(value = "数据坐标")
private String coordinate;
@ApiModelProperty(value = "数据库字段名")
private String field;
}
package com.tbyf.his.web.dataImport.domain.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "修改字段", description = "修改字段")
public class UpdateFieldParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "字段ID")
@NotBlank(message = "字段ID不能为空")
private String id;
@ApiModelProperty(value = "代码")
private String code;
@ApiModelProperty(value = "指标名称")
private String title;
@ApiModelProperty(value = "计量单位")
private String unit;
@ApiModelProperty(value = "数据起始坐标")
private String coordinate;
@ApiModelProperty(value = "排序字段")
private Integer sort = 0;
@ApiModelProperty(value = "数据库字段名")
private String field;
}
...@@ -24,7 +24,7 @@ public class DataDict implements Serializable { ...@@ -24,7 +24,7 @@ public class DataDict implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "模板ID") @ApiModelProperty(value = "字典ID")
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "id", type = IdType.ASSIGN_ID)
private String id; private String id;
@ApiModelProperty(value = "字典类型") @ApiModelProperty(value = "字典类型")
......
package com.tbyf.his.web.dataImport.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@Accessors(chain = true)
@TableName(value = "data_field", autoResultMap = true)
@ApiModel(value = "数据字段表", description = "数据字段表")
public class DataField implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "字段ID")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@ApiModelProperty(value = "模板ID")
@TableField("template_id")
private String templateId;
@ApiModelProperty(value = "代码")
@TableField("code")
private String code;
@ApiModelProperty(value = "指标名称")
@TableField("title")
private String title;
@ApiModelProperty(value = "计量单位")
@TableField("unit")
private String unit;
@ApiModelProperty(value = "数据起始坐标,例如 C,4")
@TableField("coordinate")
private String coordinate;
@ApiModelProperty(value = "排序字段")
@TableField("sort")
private Integer sort;
@ApiModelProperty(value = "数据库字段名")
@TableField("field")
private String field;
}
package com.tbyf.his.web.dataImport.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tbyf.his.web.dataImport.entity.DataField;
/**
* @author lzz
* @date 2023/2/7 11:22
*/
public interface DataFieldMapper extends BaseMapper<DataField> {
}
package com.tbyf.his.web.dataImport.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tbyf.his.web.dataImport.entity.DataField;
/**
* @author lzz
* @date 2023/2/7 11:23
*/
public interface DataFieldService extends IService<DataField> {
}
package com.tbyf.his.web.dataImport.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tbyf.his.common.annotation.DataSource;
import com.tbyf.his.common.enums.DataSourceType;
import com.tbyf.his.web.dataImport.entity.DataField;
import com.tbyf.his.web.dataImport.mapper.DataFieldMapper;
import com.tbyf.his.web.dataImport.service.DataFieldService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author lzz
* @date 2023/2/7 11:24
*/
@Slf4j
@Service
@DataSource(DataSourceType.MASTER)
public class DataFieldServiceImpl extends ServiceImpl<DataFieldMapper, DataField> implements DataFieldService {
}
...@@ -25,4 +25,17 @@ create table data_import_template ...@@ -25,4 +25,17 @@ create table data_import_template
remarks text null comment '备注' remarks text null comment '备注'
) comment '数据导入模板表'; ) comment '数据导入模板表';
create table data_field
(
id varchar(32) not null
primary key,
template_id varchar(32) null comment '模板ID',
code varchar(256) null comment '代码',
title varchar(256) null comment '指标名称',
unit varchar(32) null comment '计量单位',
coordinate varchar(32) null comment '数据起始坐标,例如 C,4',
sort int default 0 comment '排序字段',
field varchar(32) null comment '数据库字段名'
) comment '数据字段表';
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment