|
@@ -217,6 +217,7 @@ public class ResultsServiceImpl implements ResultsService {
|
|
}
|
|
}
|
|
QueryWrapper<Qxcgsbrwfp> fpwrapper = new QueryWrapper<>();
|
|
QueryWrapper<Qxcgsbrwfp> fpwrapper = new QueryWrapper<>();
|
|
fpwrapper.eq("md5", md5);
|
|
fpwrapper.eq("md5", md5);
|
|
|
|
+ fpwrapper.orderByAsc("chunk");
|
|
List<Qxcgsbrwfp> fplist = qxcgsbrwfpMapper.selectList(fpwrapper);
|
|
List<Qxcgsbrwfp> fplist = qxcgsbrwfpMapper.selectList(fpwrapper);
|
|
if (fplist.size() == 0) {
|
|
if (fplist.size() == 0) {
|
|
return RequestResult.error("合包前请先调用【分片上传成果包接口(/api/open/results/Upload)】上传成果");
|
|
return RequestResult.error("合包前请先调用【分片上传成果包接口(/api/open/results/Upload)】上传成果");
|
|
@@ -235,7 +236,7 @@ public class ResultsServiceImpl implements ResultsService {
|
|
loginfo("完成合包:" + folder);
|
|
loginfo("完成合包:" + folder);
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
- qxsbcg.setRwzt(rwzt.getHbsb());
|
|
|
|
|
|
+// qxsbcg.setRwzt(rwzt.getHbsb());
|
|
qxcgsbrwMapper.update(qxsbcg, sbrwwrapper);
|
|
qxcgsbrwMapper.update(qxsbcg, sbrwwrapper);
|
|
// deleteQxsbrw(md5);
|
|
// deleteQxsbrw(md5);
|
|
return RequestResult.error("合包失败,没找到合包后的文件,请联系管理员");
|
|
return RequestResult.error("合包失败,没找到合包后的文件,请联系管理员");
|
|
@@ -244,6 +245,7 @@ public class ResultsServiceImpl implements ResultsService {
|
|
String fileMd5 = getMD5(targetfile);
|
|
String fileMd5 = getMD5(targetfile);
|
|
if (!fileMd5.equals(md5)) {
|
|
if (!fileMd5.equals(md5)) {
|
|
deleteQxsbrw(md5);
|
|
deleteQxsbrw(md5);
|
|
|
|
+ deleteCurDirectory(targetfile.getParent());
|
|
return RequestResult.error("警告:文件的MD5不一致");
|
|
return RequestResult.error("警告:文件的MD5不一致");
|
|
}
|
|
}
|
|
//TODO wanger 进行数据解压
|
|
//TODO wanger 进行数据解压
|
|
@@ -259,12 +261,14 @@ public class ResultsServiceImpl implements ResultsService {
|
|
File unzipfile = new File(unzippath);
|
|
File unzipfile = new File(unzippath);
|
|
if (!unzipfile.exists()) {
|
|
if (!unzipfile.exists()) {
|
|
deleteQxsbrw(md5);
|
|
deleteQxsbrw(md5);
|
|
|
|
+ deleteCurDirectory(targetfile.getParent());
|
|
return RequestResult.error("压缩包名称与解压后的文件名称不一致,请检查!");
|
|
return RequestResult.error("压缩包名称与解压后的文件名称不一致,请检查!");
|
|
}
|
|
}
|
|
//解析txt
|
|
//解析txt
|
|
String txtFilePath = FileSearch(unzippath, "基本信息.txt");
|
|
String txtFilePath = FileSearch(unzippath, "基本信息.txt");
|
|
if (StringUtils.isEmpty(txtFilePath)) {
|
|
if (StringUtils.isEmpty(txtFilePath)) {
|
|
deleteQxsbrw(md5);
|
|
deleteQxsbrw(md5);
|
|
|
|
+ deleteCurDirectory(targetfile.getParent());
|
|
return RequestResult.error("成果包中必须包含“xxx基本信息.txt”文件,同时注意成果包中应包含“xxx规划成果”的根目录");
|
|
return RequestResult.error("成果包中必须包含“xxx基本信息.txt”文件,同时注意成果包中应包含“xxx规划成果”的根目录");
|
|
}
|
|
}
|
|
Map<String, String> txtMap = readTxt(txtFilePath);
|
|
Map<String, String> txtMap = readTxt(txtFilePath);
|
|
@@ -298,6 +302,7 @@ public class ResultsServiceImpl implements ResultsService {
|
|
List<TCgglSjbzmlwjDto> sjbzlist = tCgglSjbzmlwjMapper.selectList(sjbzwrapper);
|
|
List<TCgglSjbzmlwjDto> sjbzlist = tCgglSjbzmlwjMapper.selectList(sjbzwrapper);
|
|
if (sjbzlist.size() == 0) {
|
|
if (sjbzlist.size() == 0) {
|
|
deleteQxsbrw(md5);
|
|
deleteQxsbrw(md5);
|
|
|
|
+ deleteCurDirectory(targetfile.getParent());
|
|
return RequestResult.error(String.format("未授权的数据类型:%s,请联系管理人员!", sjbz_bsm));
|
|
return RequestResult.error(String.format("未授权的数据类型:%s,请联系管理人员!", sjbz_bsm));
|
|
}
|
|
}
|
|
//记录缺失的文件列表 字符串类型
|
|
//记录缺失的文件列表 字符串类型
|
|
@@ -305,6 +310,7 @@ public class ResultsServiceImpl implements ResultsService {
|
|
missfiles = checkMustFiles(unzipfile.getParent(), sjbzlist, "", missfiles, xzqdm, xzqmc);
|
|
missfiles = checkMustFiles(unzipfile.getParent(), sjbzlist, "", missfiles, xzqdm, xzqmc);
|
|
if (missfiles.size() > 0) {
|
|
if (missfiles.size() > 0) {
|
|
deleteQxsbrw(md5);
|
|
deleteQxsbrw(md5);
|
|
|
|
+ deleteCurDirectory(targetfile.getParent());
|
|
return RequestResult.error(String.format("成果数据缺少以下目录或文件:%s", String.join("\n", missfiles)), missfiles);
|
|
return RequestResult.error(String.format("成果数据缺少以下目录或文件:%s", String.join("\n", missfiles)), missfiles);
|
|
}
|
|
}
|
|
qxsbcg.setRwzt(rwzt.getWc());
|
|
qxsbcg.setRwzt(rwzt.getWc());
|
|
@@ -365,6 +371,15 @@ public class ResultsServiceImpl implements ResultsService {
|
|
return RequestResult.success("操作成功", 1);
|
|
return RequestResult.success("操作成功", 1);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void deleteCurDirectory(String parent) {
|
|
|
|
+ try {
|
|
|
|
+ FileUtils.deleteDirectory(new File(parent));
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ System.out.println(String.format("文件夹删除失败:%s", parent));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 根据MD5删除数据库表和数据文件夹
|
|
* 根据MD5删除数据库表和数据文件夹
|
|
*
|
|
*
|
|
@@ -375,14 +390,16 @@ public class ResultsServiceImpl implements ResultsService {
|
|
sbrwwrapper.eq("bsm", md5);
|
|
sbrwwrapper.eq("bsm", md5);
|
|
Qxcgsbrw qxsbcg = qxcgsbrwMapper.selectOne(sbrwwrapper);
|
|
Qxcgsbrw qxsbcg = qxcgsbrwMapper.selectOne(sbrwwrapper);
|
|
String wjwz = qxsbcg.getCgwj();
|
|
String wjwz = qxsbcg.getCgwj();
|
|
- File file = new File(wjwz);
|
|
|
|
- if (file != null) {
|
|
|
|
- String dir = file.getParent();
|
|
|
|
- try {
|
|
|
|
- FileUtils.deleteDirectory(new File(dir));
|
|
|
|
- } catch (IOException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- System.out.println(String.format("%s:文件夹删除失败:%s", md5, dir));
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(wjwz)) {
|
|
|
|
+ File file = new File(wjwz);
|
|
|
|
+ if (file != null) {
|
|
|
|
+ String dir = file.getParent();
|
|
|
|
+ try {
|
|
|
|
+ FileUtils.deleteDirectory(new File(dir));
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ System.out.println(String.format("%s:文件夹删除失败:%s", md5, dir));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
qxcgsbrwMapper.delete(sbrwwrapper);
|
|
qxcgsbrwMapper.delete(sbrwwrapper);
|