package com.moon.server.controller.data.upload;
|
|
import com.moon.server.annotation.SysLog;
|
import com.moon.server.controller.all.BaseController;
|
import com.moon.server.entity.all.ResponseMsg;
|
import com.moon.server.entity.all.StaticData;
|
import com.moon.server.entity.ctrl.FmeReqEntity;
|
import com.moon.server.entity.ctrl.RegisterEntity;
|
import com.moon.server.helper.HttpHelper;
|
import com.moon.server.helper.PathHelper;
|
import com.moon.server.helper.StringHelper;
|
import com.moon.server.service.data.FmeService;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.File;
|
import java.lang.reflect.Method;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 检查控制器
|
* @author WWW
|
*/
|
public class CheckController extends BaseController {
|
@Autowired
|
protected PathHelper pathHelper;
|
|
@Autowired
|
protected FmeService fmeService;
|
|
@SysLog()
|
@ApiOperation(value = "查询任务状态")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "任务ID", dataType = "String", paramType = "query", example = "29db09ee-2aae-4c62-bec0-0b5c5d8084e4")
|
})
|
@GetMapping(value = "/selectTaskStatus")
|
public Object selectTaskStatus(String id, HttpServletRequest req) {
|
try {
|
if (StringHelper.isEmpty(id)) {
|
return fail("id不能为空");
|
}
|
|
return fmeService.getTaskStatus(id, req);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "下载质检结果")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "任务ID", dataType = "String", paramType = "query", example = "29db09ee-2aae-4c62-bec0-0b5c5d8084e4")
|
})
|
@GetMapping(value = "/downloadResult")
|
public void downloadResult(String id, HttpServletRequest req, HttpServletResponse res) {
|
try {
|
if (!StringHelper.isEmpty(id)) {
|
String url = fmeService.getDownloadUrl(id, req);
|
|
HttpHelper httpHelper = new HttpHelper();
|
// res.sendRedirect(url)
|
httpHelper.service(req, res, null, url);
|
}
|
} catch (Exception ex) {
|
log.error(ex.getMessage(), ex);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "提交数据质检")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "entity", value = "FME请求实体类", dataType = "FmeReqEntity", paramType = "body")
|
})
|
@ResponseBody
|
@PostMapping(value = "/uploadChecks")
|
public ResponseMsg<Object> uploadChecks(@RequestBody FmeReqEntity entity, HttpServletRequest req) {
|
try {
|
if (StringHelper.isEmpty(entity.names)) {
|
return fail("任务名称不能为空");
|
}
|
if (StringHelper.isEmpty(entity.zipPath)) {
|
return fail("请选择待质检的zip文件");
|
}
|
|
entity.zipPath = getFullPath(entity.zipPath);
|
if (!isZipFile(entity.zipPath)) {
|
return fail("待质检的zip文件不存在");
|
}
|
if (entity.names.contains(StaticData.CHECK_MAIN)) {
|
entity.wbsPath = getFullPath(entity.wbsPath);
|
if (!isXlsFile(entity.wbsPath)) {
|
return fail("待质检的WBS文件不存在");
|
}
|
}
|
|
List<String> list = new ArrayList<>();
|
for (String name : entity.names.split(StaticData.COMMA)) {
|
String guid = invoke(name, entity, req);
|
list.add(guid);
|
}
|
|
return success(list);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
/**
|
* 获取文件路径
|
*/
|
private String getFullPath(String filePath) {
|
return null == filePath ? null : pathHelper.getConfig().getTempPath() + File.separator + filePath;
|
}
|
|
/**
|
* 是/否为Zip文件
|
*/
|
private boolean isZipFile(String filePath) {
|
if (null == filePath || !filePath.toLowerCase().endsWith(StaticData.ZIP)) {
|
return false;
|
}
|
|
File zipFile = new File(filePath);
|
|
return zipFile.exists() && !zipFile.isDirectory();
|
}
|
|
/**
|
* 是/否为Excel文件
|
*/
|
private boolean isXlsFile(String filePath) {
|
if (null == filePath) {
|
return false;
|
}
|
if (!(filePath.toLowerCase().endsWith(StaticData.XLS) || filePath.toLowerCase().endsWith(StaticData.XLSX))) {
|
return false;
|
}
|
|
File zipFile = new File(filePath);
|
|
return zipFile.exists() && !zipFile.isDirectory();
|
}
|
|
/**
|
* 方法调用
|
*/
|
private String invoke(String name, FmeReqEntity entity, HttpServletRequest req) throws Exception {
|
Method method;
|
try {
|
method = FmeService.class.getDeclaredMethod(name, FmeReqEntity.class, HttpServletRequest.class);
|
} catch (Exception ex) {
|
throw new Exception(name + ",该检查方法不存在");
|
}
|
|
Object obj = method.invoke(fmeService, entity, req);
|
|
return null == obj ? null : obj.toString();
|
}
|
|
/*@SysLog()
|
@ApiOperation(value = "查询OSGB检查")
|
@GetMapping(value = "/selectCheckOsgb")
|
public ResponseMsg<Object> selectCheckOsgb(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\OSGB检查.zip";
|
fme.imgResolution = 0.2;
|
|
String rs = fmeService.checkOsgb(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询表格数据检查")
|
@GetMapping(value = "/selectCheckXls")
|
public ResponseMsg<Object> selectCheckXls(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\表格数据检查.zip";
|
|
String rs = fmeService.checkXls(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询点云检查")
|
@GetMapping(value = "/selectCheckLaz")
|
public ResponseMsg<Object> selectCheckLaz(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\点云检查.zip";
|
fme.lazDensity = 1;
|
|
String rs = fmeService.checkLaz(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询高程检查")
|
@GetMapping(value = "/selectCheckDem")
|
public ResponseMsg<Object> selectCheckDem(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\高程检查.zip";
|
fme.demTolerance = 5;
|
fme.demChangeRate = 200;
|
|
String rs = fmeService.checkDem(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询属性检查")
|
@GetMapping(value = "/selectCheckAttrs")
|
public ResponseMsg<Object> selectCheckAttrs(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\属性检查.zip";
|
|
String rs = fmeService.checkAttrs(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询拓扑检查")
|
@GetMapping(value = "/selectCheckTopology")
|
public ResponseMsg<Object> selectCheckTopology(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\拓扑检查.zip";
|
fme.polyTolerance = 0.001;
|
fme.lineTolerance = 0.001;
|
fme.pointTolerance = 0.001;
|
fme.gcdOffset = 20;
|
fme.kzdOffset = 100;
|
fme.rangeOffset = 200;
|
fme.xgMax = 0.005;
|
|
String rs = fmeService.checkTopology(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询图面整饰检查")
|
@GetMapping(value = "/selectCheckDecorate")
|
public ResponseMsg<Object> selectCheckDecorate(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\图面整饰检查.zip";
|
fme.xlsList = "D:\\Project\\Data\\LF\\temp\\20230107010101\\文件清单.xlsx";
|
|
String rs = fmeService.checkDecorate(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询原点检查")
|
@GetMapping(value = "/selectCheckOrigin")
|
public ResponseMsg<Object> selectCheckOrigin(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\原点检查.zip";
|
|
String rs = fmeService.checkOrigin(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询栅格检查")
|
@GetMapping(value = "/selectCheckDom")
|
public ResponseMsg<Object> selectCheckDom(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\栅格检查.zip";
|
fme.coordinateSystem = "CGCS2000/GK3d-93E_FME";
|
fme.imgResolution = 0.2;
|
|
String rs = fmeService.checkDom(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询数学基础检查")
|
@GetMapping(value = "/selectCheckMath")
|
public ResponseMsg<Object> selectCheckMath(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\数学基础检查.zip";
|
|
String rs = fmeService.checkMath(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询元数据检查")
|
@GetMapping(value = "/selectCheckMeta")
|
public ResponseMsg<Object> selectCheckMeta(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\元数据检查.zip";
|
|
String rs = fmeService.checkMeta(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "查询总质检")
|
@GetMapping(value = "/selectCheckMain")
|
public ResponseMsg<Object> selectCheckMain(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02).7z";
|
fme.wbsPath = "D:\\Project\\Data\\LF\\temp\\20230107010101\\项目WBS导出.xlsx";
|
fme.isDiZai = "NO";
|
fme.diZaiType = "NO";
|
|
String rs = fmeService.checkMain(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "逻辑一致性检查")
|
@GetMapping(value = "/checkLogical")
|
public ResponseMsg<Object> checkLogical(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.zipPath = "D:\\LF\\temp\\20230411\\数字化成果.zip";
|
|
String rs = fmeService.checkLogical(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "单项成果完整性检查")
|
@GetMapping(value = "/checkSingleIntegrity")
|
public ResponseMsg<Object> checkSingleIntegrity(HttpServletRequest req) {
|
try {
|
FmeReqEntity fme = new FmeReqEntity();
|
fme.xmmc = "西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)";
|
fme.sjzy = "测量专业";
|
fme.sjfl = "数字化成果";
|
fme.zipPath = "D:\\LF\\temp\\20230411\\数字化成果.zip";
|
|
String rs = fmeService.checkSingleIntegrity(fme, req);
|
if (StringHelper.isEmpty(rs)) {
|
return fail("检查失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}*/
|
|
@SysLog()
|
@ApiOperation(value = "服务注册")
|
@GetMapping(value = "/selectServerRegister")
|
public ResponseMsg<Object> selectServerRegister(HttpServletRequest req) {
|
try {
|
RegisterEntity rs = fmeService.serverRegister("西气东输四线天然气管道工程(吐鲁番-中卫)(00116DT02)", "http://127.0.0.1/LFData/2d/tiles/01/{z}/{x}/{y}.png", "DOM", req);
|
if (null == rs || StringHelper.isEmpty(rs.getSerialnum())) {
|
return fail("失败");
|
}
|
|
return success(rs);
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "服务申请")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "服务ID", dataType = "String", paramType = "query", example = "195f77eb-19dd-4e34-afc1-fcff8f758f7b"),
|
@ApiImplicitParam(name = "pubid", value = "发布ID", dataType = "Integer", paramType = "query", example = "1"),
|
})
|
@GetMapping(value = "/selectServerApply")
|
public ResponseMsg<Object> selectServerApply(String id, Integer pubid, HttpServletRequest req) {
|
try {
|
fmeService.serverApply(id, pubid, req);
|
|
return success("OK");
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
|
@SysLog()
|
@ApiOperation(value = "删除资源")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "服务ID", dataType = "String", paramType = "query", example = "6f4b6783-4b98-4d46-a0d9-43cdb5f339dc")
|
})
|
@GetMapping(value = "/selectDeleteRes")
|
public ResponseMsg<Object> selectDeleteRes(String id, HttpServletRequest req) {
|
try {
|
fmeService.deleteRes(id, req);
|
|
return success("OK");
|
} catch (Exception ex) {
|
return fail(ex, null);
|
}
|
}
|
}
|