|
|
|
@ -3,7 +3,6 @@ package com.dsic.gj_erp.service.jhgk.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
|
|
import cn.hutool.core.io.IoUtil;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
@ -48,6 +47,7 @@ public class DmXbjhServiceImpl extends ServiceImpl<DmXbjhMapper, DmXbjh> impleme
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, List<DmXbjh>> getList(JSONObject json) {
|
|
|
|
|
|
|
|
|
|
QueryWrapper<DmXbjh> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
if (StringUtils.isNotEmpty(json.getString("dcCh"))) {
|
|
|
|
|
queryWrapper.eq("dc_ch", json.getString("dcCh"));
|
|
|
|
@ -55,6 +55,7 @@ public class DmXbjhServiceImpl extends ServiceImpl<DmXbjhMapper, DmXbjh> impleme
|
|
|
|
|
if (StringUtils.isNotEmpty(json.getString("Zt"))) {
|
|
|
|
|
queryWrapper.eq("zt", json.getString("Zt"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(json.getString("nf"))) {
|
|
|
|
|
String nf = json.getString("nf");
|
|
|
|
|
String startTime = nf.split("~")[0];
|
|
|
|
@ -77,6 +78,64 @@ public class DmXbjhServiceImpl extends ServiceImpl<DmXbjhMapper, DmXbjh> impleme
|
|
|
|
|
return collect;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Map<String, List<DmXbjh>> getByVersion(String startTime,String _version){
|
|
|
|
|
List<HashMap<String, Object>> version = this.getVersion(startTime);
|
|
|
|
|
if (ObjectUtil.isNotEmpty(version)&&!version.get(version.size()-1).get("version").equals(_version)) {
|
|
|
|
|
List<DmXbjh> dmXbjhs = new ArrayList<>();
|
|
|
|
|
for (HashMap<String, Object> map : version) {
|
|
|
|
|
if (map.get("version").equals(_version)) {
|
|
|
|
|
String fileName = (String) map.get("fileName");
|
|
|
|
|
File file = FileUtil.file(xbjhPath, fileName);
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
JSONObject jsonObject = this.readFile(file);
|
|
|
|
|
for (String key : jsonObject.keySet()) {
|
|
|
|
|
JSONArray jsonArray = jsonObject.getJSONArray(key);
|
|
|
|
|
for (Object object : jsonArray) {
|
|
|
|
|
DmXbjh dmXbjh = modelMapper.map(object, DmXbjh.class);
|
|
|
|
|
dmXbjh.setDcCh(key);
|
|
|
|
|
dmXbjhs.add(dmXbjh);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Map<String, List<DmXbjh>> map = dmXbjhs.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(DmXbjh::getDcCh));
|
|
|
|
|
|
|
|
|
|
//对map的value进行排序,并返回降序以后的map集合
|
|
|
|
|
LinkedHashMap<String, List<DmXbjh>> collect = map.entrySet().stream().sorted((entry1, entry2) -> {
|
|
|
|
|
Double zl1 = entry1.getValue().stream().filter(l -> ObjectUtil.isNotEmpty(l.getZl())).mapToDouble(DmXbjh::getZl).sum();
|
|
|
|
|
Double zl2 = entry2.getValue().stream().filter(l -> ObjectUtil.isNotEmpty(l.getZl())).mapToDouble(DmXbjh::getZl).sum();
|
|
|
|
|
//降序排序
|
|
|
|
|
return zl2.compareTo(zl1);
|
|
|
|
|
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
|
|
|
|
|
return collect;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<HashMap<String, Object>> getVersion(String nf){
|
|
|
|
|
if (nf==null){
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
File[] files = FileUtil.ls(xbjhPath);
|
|
|
|
|
List<HashMap<String, Object>> versions = new ArrayList<>();
|
|
|
|
|
for (File file : files) {
|
|
|
|
|
String name = FileUtil.getPrefix(file.getName());
|
|
|
|
|
String[] s = name.split("_");
|
|
|
|
|
if (nf.equals(s[0])){
|
|
|
|
|
HashMap<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("fileName", file.getName());
|
|
|
|
|
map.put("version", s[1]);
|
|
|
|
|
versions.add(map);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return versions;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public JSONObject readFile(File file){
|
|
|
|
|
return ExcelUtil.readDmXbjh(file);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|