package com.terra.system.controller.data.upload;
|
|
import com.terra.common.annotation.SysLog;
|
import com.terra.common.entity.all.ResponseMsg;
|
import com.terra.system.entity.ctrl.KeyValueEntity;
|
import com.terra.system.entity.data.DirEntity;
|
import com.terra.system.entity.data.MetaEntity;
|
import com.terra.system.entity.data.MetaFileEntity;
|
import com.terra.system.entity.data.VerEntity;
|
import com.terra.system.entity.sys.UserEntity;
|
import com.terra.common.helper.StringHelper;
|
import com.terra.system.service.all.UploadAttachService;
|
import com.terra.system.service.data.UploadService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameters;
|
import javax.annotation.Resource;
|
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import org.springframework.web.bind.annotation.*;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.List;
|
|
/**
|
* 数据入库
|
* @author WWW
|
*/
|
@Tag(name = "数据管理\\数据上传")
|
@RestController
|
@RequestMapping("/dataUpload")
|
public class UploadController extends QueryController {
|
@Resource
|
UploadService uploadService;
|
|
@Resource
|
UploadAttachService uploadAttachService;
|
|
@SysLog()
|
@Operation(summary = "查询路径")
|
@GetMapping(value = "/selectPath")
|
public ResponseMsg<String> selectPath() {
|
try {
|
String pathName = uploadService.selectPath();
|
|
return success(pathName);
|
} catch (Exception ex) {
|
log.error(ex.getMessage(), ex);
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "上传文件")
|
@Parameters({
|
@Parameter(name = "path", description = "路径", in = ParameterIn.QUERY)
|
})
|
@ResponseBody
|
@PostMapping(value = "/uploadFiles")
|
public ResponseMsg<Object> uploadFiles(String path, HttpServletRequest req, HttpServletResponse res) {
|
try {
|
List<MetaFileEntity> list = uploadService.uploadData(null, path, false, req, res);
|
if (null == list || list.isEmpty()) {
|
return fail("没有找到上传文件", null);
|
}
|
|
uploadService.copePath(list);
|
|
return success(list);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
/**
|
* 接收数组1:@RequestParam(value = "ids")List<Integer> ids
|
* &ids=1209&ids=1180&ids=1387
|
* 接收数据2:Integer[] ids
|
* formData.append("ids", 1209); formData.append("ids", 1180); formData.append("ids", 1387);
|
*/
|
@SysLog()
|
@Operation(summary = "上传Excel附件")
|
@Parameters({
|
@Parameter(name = "path", description = "路径", in = ParameterIn.QUERY),
|
@Parameter(name = "ids", description = "元数据集合", schema = @Schema(type = "array"), in = ParameterIn.QUERY)
|
})
|
@ResponseBody
|
@PostMapping(value = "/uploadXlsAnnex")
|
public ResponseMsg<Object> uploadXlsAnnex(String path, Integer[] ids, HttpServletRequest req, HttpServletResponse res) {
|
try {
|
UserEntity ue = tokenService.getCurrentUser(req);
|
if (ue == null) {
|
return fail("用户未登录", null);
|
}
|
if (null == ids || ids.length == 0) {
|
return fail("找不到元数据的ID集合");
|
}
|
|
List<MetaEntity> ms = metaService.selectXlsAnnex(ids, UploadAttachService.getTabs());
|
if (null == ms || ms.isEmpty()) {
|
return fail("找不到要上传附件的元数据");
|
}
|
|
List<MetaFileEntity> list = uploadService.uploadData(null, path, false, req, res);
|
if (null == list || list.isEmpty()) {
|
return fail("没有找到上传文件", null);
|
}
|
|
List<KeyValueEntity> rs = uploadAttachService.uploadXlsAnnex(ue, ms, list, path);
|
if (null == rs || rs.size() == 0) {
|
return fail("没有要更新的元数据");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "查询文件")
|
@Parameters({
|
@Parameter(name = "path", description = "路径", in = ParameterIn.QUERY)
|
})
|
@GetMapping(value = "/selectFiles")
|
public ResponseMsg<List<MetaFileEntity>> selectFiles(String path) {
|
try {
|
List<MetaFileEntity> list = uploadService.selectFiles(path, false);
|
|
return success(list);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "删除文件")
|
@Parameters({
|
@Parameter(name = "list", description = "实体类集合")
|
})
|
@ResponseBody
|
@PostMapping(value = "/deleteFiles")
|
public ResponseMsg<Object> deleteFiles(@RequestBody List<MetaFileEntity> list, HttpServletRequest req) {
|
try {
|
UserEntity ue = tokenService.getCurrentUser(req);
|
if (ue == null) {
|
return fail("用户未登录", null);
|
}
|
if (null == list || list.isEmpty()) {
|
return fail("没有找到文件", null);
|
}
|
|
int rows = uploadService.deleteFiles(list);
|
|
return success("成功", rows);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "查询映射")
|
@Parameters({
|
@Parameter(name = "path", description = "路径", in = ParameterIn.QUERY, example = "20230722"),
|
@Parameter(name = "dirid", description = "目录ID", in = ParameterIn.QUERY, example = "1"),
|
@Parameter(name = "verid", description = "版本ID", in = ParameterIn.QUERY, example = "0"),
|
@Parameter(name = "epsgCode", description = "坐标编码", in = ParameterIn.QUERY, example = "EPSG:4490")
|
})
|
@GetMapping(value = "/selectMappers")
|
public ResponseMsg<Object> selectMappers(String path, Integer dirid, Integer verid, String epsgCode, HttpServletRequest req) {
|
try {
|
if (StringHelper.isEmpty(path) || StringHelper.isEmpty(epsgCode) || null == dirid || null == verid) {
|
return fail("路径、目录ID、版本ID和坐标编码不能为空");
|
}
|
if (1 > uploadService.selectCount4Coord(epsgCode)) {
|
return fail("坐标编码" + epsgCode + "不存在");
|
}
|
DirEntity dir = dirService.selectDir(dirid);
|
if (null == dir) {
|
return fail("目录ID=" + dirid + "不存在");
|
}
|
VerEntity ver = verService.selectVersion(verid);
|
if (null == ver) {
|
return fail("版本ID=" + verid + "不存在");
|
}
|
|
UserEntity ue = tokenService.getCurrentUser(req);
|
List<MetaFileEntity> list = uploadService.selectMappers(ue, path, dir, ver, epsgCode);
|
|
return success(list);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "插入文件")
|
@Parameters({
|
@Parameter(name = "list", description = "元数据文件集合")
|
})
|
@ResponseBody
|
@PostMapping(value = "/insertFiles")
|
public ResponseMsg<Object> insertFiles(@RequestBody List<MetaFileEntity> list, HttpServletRequest req) {
|
try {
|
UserEntity ue = tokenService.getCurrentUser(req);
|
if (null == ue) {
|
return fail("用户未登录", null);
|
}
|
if (null == list || list.isEmpty()) {
|
return fail("元数据文件集合为空", null);
|
}
|
|
uploadService.insertFiles(ue, list, req);
|
|
return success("成功", list);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "插入KML文件")
|
@Parameters({
|
@Parameter(name = "list", description = "元数据文件集合")
|
})
|
@ResponseBody
|
@PostMapping(value = "/insertKml")
|
public ResponseMsg<Object> insertKml(@RequestBody List<MetaFileEntity> list, HttpServletRequest req){
|
try {
|
UserEntity ue = tokenService.getCurrentUser(req);
|
if (null == ue) {
|
return fail("用户未登录", null);
|
}
|
if (null == list || list.isEmpty()) {
|
return fail("元数据文件集合为空", null);
|
}
|
|
uploadService.insertKml(ue, list);
|
|
return success("成功", list);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@Operation(summary = "删除元数据")
|
@Parameters({
|
@Parameter(name = "ids", description = "ID数组", in = ParameterIn.QUERY, schema = @Schema(type = "array"), example = "1")
|
})
|
@GetMapping(value = "/deleteMetas")
|
public ResponseMsg<Integer> deleteMetas(@RequestParam List<Integer> ids) {
|
try {
|
if (ids == null || ids.isEmpty()) {
|
return fail("id数组不能为空", -1);
|
}
|
|
int count = metaService.deletes(ids);
|
|
return success(count);
|
} catch (Exception ex) {
|
return fail(ex, -1);
|
}
|
}
|
}
|