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 {
}
create table data_dict
(
id varchar(32) not null
id varchar(32) not null
primary key,
type varchar(32) null comment '字典类型',
type varchar(32) null comment '字典类型',
label varchar(256) null comment '标签',
value varchar(64) null comment '数据值',
remarks text null comment '备注'
value varchar(64) null comment '数据值',
remarks text null comment '备注'
) comment '数据字典';
create table data_import_template
(
id varchar(32) not null
id varchar(32) not null
primary key,
name varchar(256) null comment '模板名称',
org_name varchar(64) null comment '机构类型',
import_status varchar(32) null comment '导入状态 1-已导入 0-未导入',
year varchar(32) null comment '数据年份',
import_time timestamp null comment '上次导入时间',
datasource_id varchar(32) null comment '数据源ID',
table_name varchar(32) null comment '表名',
create_time timestamp null comment '创建时间',
update_time timestamp null comment '更新时间',
remarks text null comment '备注'
org_name varchar(64) null comment '机构类型',
import_status varchar(32) null comment '导入状态 1-已导入 0-未导入',
year varchar(32) null comment '数据年份',
import_time timestamp null comment '上次导入时间',
datasource_id varchar(32) null comment '数据源ID',
table_name varchar(32) null comment '表名',
create_time timestamp null comment '创建时间',
update_time timestamp null comment '更新时间',
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