Commit 38599d76 by 刘泽志

30

parent 50f004f6
package com.tbyf.his.web.controller.dataImport;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.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.entity.DataDict;
import com.tbyf.his.web.dataImport.entity.DataField;
import com.tbyf.his.web.dataImport.entity.DataImportTemplate;
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
......@@ -40,6 +54,15 @@ public class DataImportController {
@Autowired
private DataDictService dictService;
@Autowired
private ISysDatasourceService sysDatasourceService;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private DataFieldService dataFieldService;
@IgnoreWebSecurity
@GetMapping("/template")
@ApiOperation("模板查询")
......@@ -77,6 +100,7 @@ public class DataImportController {
public AjaxResult deleteTemplate(@RequestParam String templateId) {
dataImportService.removeById(templateId);
//TODO 需要删除字段以及其字段关联的规则与其它数据
dataFieldService.remove(Wrappers.lambdaQuery(DataField.class).eq(DataField::getTemplateId, templateId));
return AjaxResult.success();
}
......@@ -132,4 +156,101 @@ public class DataImportController {
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;
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.domain.AjaxResult;
import com.tbyf.his.common.core.domain.model.MyKeyValue;
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.system.domain.SysDataTableVo;
import com.tbyf.his.system.domain.SysDatasource;
import com.tbyf.his.system.service.ISysDatasourceService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
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 javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 数据源配置Controller
......@@ -41,7 +31,7 @@ public class SysDatasourceController extends BaseController {
/**
* 查询数据源配置列表
*/
@PreAuthorize("@ss.hasPermi('system:datasource:list')")
@IgnoreWebSecurity
@GetMapping("/list")
public TableDataInfo list(SysDatasource sysDatasource) {
startPage();
......@@ -49,6 +39,8 @@ public class SysDatasourceController extends BaseController {
return getDataTable(list);
}
@IgnoreWebSecurity
/**
* 查询具有适配器标识的数据源树列表
*/
......@@ -61,8 +53,7 @@ public class SysDatasourceController extends BaseController {
/**
* 导出数据源配置列表
*/
@PreAuthorize("@ss.hasPermi('system:datasource:export')")
@Log(title = "数据源配置", businessType = BusinessType.EXPORT)
@IgnoreWebSecurity
@PostMapping("/export")
public void export(HttpServletResponse response, SysDatasource sysDatasource) {
List<SysDatasource> list = sysDatasourceService.selectSysDatasourceList(sysDatasource);
......@@ -73,7 +64,7 @@ public class SysDatasourceController extends BaseController {
/**
* 获取数据源配置详细信息
*/
@PreAuthorize("@ss.hasPermi('system:datasource:query')")
@IgnoreWebSecurity
@GetMapping(value = "/{datasourceId}")
public AjaxResult getInfo(@PathVariable("datasourceId") Long datasourceId) {
return AjaxResult.success(sysDatasourceService.selectSysDatasourceByDatasourceId(datasourceId));
......@@ -82,8 +73,7 @@ public class SysDatasourceController extends BaseController {
/**
* 新增数据源配置
*/
@PreAuthorize("@ss.hasPermi('system:datasource:add')")
@Log(title = "数据源配置", businessType = BusinessType.INSERT)
@IgnoreWebSecurity
@PostMapping
public AjaxResult add(@RequestBody SysDatasource sysDatasource) {
return toAjax(sysDatasourceService.insertSysDatasource(sysDatasource));
......@@ -92,8 +82,7 @@ public class SysDatasourceController extends BaseController {
/**
* 修改数据源配置
*/
@PreAuthorize("@ss.hasPermi('system:datasource:edit')")
@Log(title = "数据源配置", businessType = BusinessType.UPDATE)
@IgnoreWebSecurity
@PutMapping
public AjaxResult edit(@RequestBody SysDatasource sysDatasource) {
return toAjax(sysDatasourceService.updateSysDatasource(sysDatasource));
......@@ -102,14 +91,14 @@ public class SysDatasourceController extends BaseController {
/**
* 删除数据源配置
*/
@PreAuthorize("@ss.hasPermi('system:datasource:remove')")
@Log(title = "数据源配置", businessType = BusinessType.DELETE)
@IgnoreWebSecurity
@DeleteMapping("/{datasourceIds}")
public AjaxResult remove(@PathVariable Long[] datasourceIds) {
return toAjax(sysDatasourceService.deleteSysDatasourceByDatasourceIds(datasourceIds));
}
@GetMapping(value = "/getTablesBySourceId/{id}")
@IgnoreWebSecurity
public AjaxResult getTablesBySourceId(@PathVariable("id") Long id) {
return AjaxResult.success(sysDatasourceService.getTablesBySourceId(id));
}
......@@ -118,6 +107,7 @@ public class SysDatasourceController extends BaseController {
* 测试连通性
*/
@GetMapping(value = "/getTestConnectBySource")
@IgnoreWebSecurity
public AjaxResult testConnect(SysDatasource sysDatasource) {
sysDatasourceService.testConnectBySourceId(sysDatasource);
return AjaxResult.success();
......@@ -130,12 +120,14 @@ public class SysDatasourceController extends BaseController {
* @return
*/
@GetMapping(value = "/getTablesBySourceIdAndTableName")
@IgnoreWebSecurity
public AjaxResult getTablesBySourceIdAndTableName(SysDataTableVo sysDataTableVo) {
return AjaxResult.success(sysDatasourceService.getTablesBySourceIdAndTableName(sysDataTableVo));
}
@ApiOperation("getColumnsByTableName")
@GetMapping(value = "/getColumnsByTableName/{id}/{tableName}")
@IgnoreWebSecurity
public AjaxResult getColumnsByTableName(@PathVariable("id") Long id, @PathVariable("tableName") String tableName) {
return AjaxResult.success(sysDatasourceService.getColumnsByTableName(id, tableName));
}
......
package com.tbyf.his.web.controller.system;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.tbyf.his.common.annotation.IgnoreWebSecurity;
import com.tbyf.his.common.core.controller.BaseController;
import com.tbyf.his.common.core.domain.AjaxResult;
import com.tbyf.his.common.core.domain.entity.SysDictData;
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.poi.ExcelUtil;
import com.tbyf.his.framework.system.service.ISysDictDataService;
import com.tbyf.his.framework.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
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 com.tbyf.his.common.annotation.Log;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* 数据字典信息
......@@ -40,7 +31,7 @@ public class SysDictDataController extends BaseController {
@Autowired
private ISysDictTypeService dictTypeService;
@PreAuthorize("@ss.hasPermi('system:dict:list')")
@IgnoreWebSecurity
@GetMapping("/list")
public TableDataInfo list(SysDictData dictData) {
startPage();
......@@ -48,8 +39,7 @@ public class SysDictDataController extends BaseController {
return getDataTable(list);
}
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@IgnoreWebSecurity
@PostMapping("/export")
public void export(HttpServletResponse response, SysDictData dictData) {
List<SysDictData> list = dictDataService.selectDictDataList(dictData);
......@@ -60,7 +50,7 @@ public class SysDictDataController extends BaseController {
/**
* 查询字典数据详细
*/
@PreAuthorize("@ss.hasPermi('system:dict:query')")
@IgnoreWebSecurity
@GetMapping(value = "/{dictCode}")
public AjaxResult getInfo(@PathVariable Long dictCode) {
return AjaxResult.success(dictDataService.selectDictDataById(dictCode));
......@@ -70,6 +60,7 @@ public class SysDictDataController extends BaseController {
* 根据字典类型查询字典数据信息
*/
@GetMapping(value = "/type/{dictType}")
@IgnoreWebSecurity
public AjaxResult dictType(@PathVariable String dictType) {
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
if (StringUtils.isNull(data)) {
......@@ -81,8 +72,7 @@ public class SysDictDataController extends BaseController {
/**
* 新增字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:add')")
@Log(title = "字典数据", businessType = BusinessType.INSERT)
@IgnoreWebSecurity
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictData dict) {
dict.setCreateBy(getUsername());
......@@ -92,8 +82,7 @@ public class SysDictDataController extends BaseController {
/**
* 修改保存字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:edit')")
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
@IgnoreWebSecurity
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictData dict) {
dict.setUpdateBy(getUsername());
......@@ -103,8 +92,7 @@ public class SysDictDataController extends BaseController {
/**
* 删除字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@IgnoreWebSecurity
@DeleteMapping("/{dictCodes}")
public AjaxResult remove(@PathVariable Long[] dictCodes) {
dictDataService.deleteDictDataByIds(dictCodes);
......
package com.tbyf.his.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.tbyf.his.common.annotation.IgnoreWebSecurity;
import com.tbyf.his.common.constant.UserConstants;
import com.tbyf.his.common.core.controller.BaseController;
import com.tbyf.his.common.core.domain.AjaxResult;
import com.tbyf.his.common.core.domain.entity.SysDictType;
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.framework.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
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 com.tbyf.his.common.annotation.Log;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 数据字典信息
......@@ -35,7 +26,7 @@ public class SysDictTypeController extends BaseController {
@Autowired
private ISysDictTypeService dictTypeService;
@PreAuthorize("@ss.hasPermi('system:dict:list')")
@IgnoreWebSecurity
@GetMapping("/list")
public TableDataInfo list(SysDictType dictType) {
startPage();
......@@ -43,8 +34,7 @@ public class SysDictTypeController extends BaseController {
return getDataTable(list);
}
@Log(title = "字典类型", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@IgnoreWebSecurity
@PostMapping("/export")
public void export(HttpServletResponse response, SysDictType dictType) {
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
......@@ -55,7 +45,7 @@ public class SysDictTypeController extends BaseController {
/**
* 查询字典类型详细
*/
@PreAuthorize("@ss.hasPermi('system:dict:query')")
@IgnoreWebSecurity
@GetMapping(value = "/{dictId}")
public AjaxResult getInfo(@PathVariable Long dictId) {
return AjaxResult.success(dictTypeService.selectDictTypeById(dictId));
......@@ -64,8 +54,7 @@ public class SysDictTypeController extends BaseController {
/**
* 新增字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:add')")
@Log(title = "字典类型", businessType = BusinessType.INSERT)
@IgnoreWebSecurity
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictType dict) {
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) {
......@@ -78,8 +67,7 @@ public class SysDictTypeController extends BaseController {
/**
* 修改字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:edit')")
@Log(title = "字典类型", businessType = BusinessType.UPDATE)
@IgnoreWebSecurity
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictType dict) {
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) {
......@@ -92,8 +80,7 @@ public class SysDictTypeController extends BaseController {
/**
* 删除字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@IgnoreWebSecurity
@DeleteMapping("/{dictIds}")
public AjaxResult remove(@PathVariable Long[] dictIds) {
dictTypeService.deleteDictTypeByIds(dictIds);
......@@ -103,18 +90,19 @@ public class SysDictTypeController extends BaseController {
/**
* 刷新字典缓存
*/
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
@Log(title = "字典类型", businessType = BusinessType.CLEAN)
@IgnoreWebSecurity
@DeleteMapping("/refreshCache")
public AjaxResult refreshCache() {
dictTypeService.resetDictCache();
return AjaxResult.success();
}
/**
* 获取字典选择框列表
*/
@GetMapping("/optionselect")
@IgnoreWebSecurity
public AjaxResult optionselect() {
List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
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 {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "模板ID")
@ApiModelProperty(value = "字典ID")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@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
remarks text null 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