完善市场法规库清单添加接口

This commit is contained in:
梁琦涛
2024-07-07 14:53:08 +08:00
parent 88692b8e3a
commit 1f82015903
@@ -23,6 +23,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -56,6 +58,8 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
@Resource @Resource
private ILawsCommonService lawsCommonService; private ILawsCommonService lawsCommonService;
private static final String NOT_DATA = "数据不存在";
@Override @Override
public Result<?> getPage(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request, public Result<?> getPage(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request,
@@ -68,7 +72,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){ if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){
LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId); LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId);
if(Objects.isNull(lawsMarketStandardOld)){ if(Objects.isNull(lawsMarketStandardOld)){
return Result.error("数据不存在"); return Result.error(NOT_DATA);
} }
LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo()); queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo());
@@ -96,7 +100,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(!StringUtils.isBlank(manifestVersion)){ if(!StringUtils.isBlank(manifestVersion)){
LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId); LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId);
if(Objects.isNull(lawsMarketStandardOld)){ if(Objects.isNull(lawsMarketStandardOld)){
return Result.error("数据不存在"); return Result.error(NOT_DATA);
} }
LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo()); queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo());
@@ -131,13 +135,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
return Result.error("excel文件表头错误,请重新下载"); return Result.error("excel文件表头错误,请重新下载");
} }
try { try {
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel( List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = getLawsMarketStandardDetailExcels(file, params);
file.getInputStream(), LawsMarketStandardDetailExcel.class, params);
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)
&& listLawsMarketStandardDetailExcel.size() >= 2){
listLawsMarketStandardDetailExcel = listLawsMarketStandardDetailExcel.
subList(2,listLawsMarketStandardDetailExcel.size());
}
if(CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)){ if(CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)){
return Result.error("导入数据为空"); return Result.error("导入数据为空");
} }
@@ -157,16 +155,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
} }
StringBuilder m = new StringBuilder(); StringBuilder m = new StringBuilder();
// 获取当前清单的标准 // 获取当前清单的标准
LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); List<String> listStandardIds = getStandardIds(manifestId);
queryLawsMarketStandardDetail.select(LawsMarketStandardDetail::getStandardId);
queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,manifestId);
queryLawsMarketStandardDetail.isNotNull(LawsMarketStandardDetail::getStandardId);
List<LawsMarketStandardDetail> listStandardId = list(queryLawsMarketStandardDetail);
List<String> listStandardIds = new ArrayList<>();
if(!CollectionUtils.isEmpty(listStandardId)){
listStandardIds = listStandardId.stream().map(LawsMarketStandardDetail::getStandardId)
.collect(Collectors.toList());
}
// 验证标准编号是否重复 // 验证标准编号是否重复
List<String> listStandardIdRepeat = new ArrayList<>(); List<String> listStandardIdRepeat = new ArrayList<>();
for (int i = 0; i < listLawsMarketStandardDetail.size(); i++) { for (int i = 0; i < listLawsMarketStandardDetail.size(); i++) {
@@ -184,22 +173,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
s.append(dict); s.append(dict);
} }
// 验证标准编号 // 验证标准编号
if(!StringUtils.isBlank(p.getStandardNumber())){ checkStandard(listIds, listStandardIds, listStandardIdRepeat, p, s);
List<LawsMarketStandardDetail> listStandardNumberData = listIds.stream().filter(o->
Objects.equals(o.getStandardNumber(),p.getStandardNumber())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(listStandardNumberData)){
s.append("标准编号不存在;");
}else{
String id = listStandardNumberData.get(0).getStandardId();
p.setStandardId(id);
if(!CollectionUtils.isEmpty(listStandardIds) && listStandardIds.contains(id)){
s.append("标准编号已存在;");
}else if(!CollectionUtils.isEmpty(listStandardIdRepeat) && listStandardIdRepeat.contains(id)){
s.append("标准编号重复;");
}
listStandardIdRepeat.add(listStandardNumberData.get(0).getId());
}
}
if(!StringUtils.isBlank(s.toString())){ if(!StringUtils.isBlank(s.toString())){
m.append("").append(i + 4).append("行,").append(s.toString()); m.append("").append(i + 4).append("行,").append(s.toString());
} }
@@ -224,6 +198,52 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
} }
} }
@Nullable
private List<LawsMarketStandardDetailExcel> getLawsMarketStandardDetailExcels(MultipartFile file, ImportParams params) throws Exception {
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel(
file.getInputStream(), LawsMarketStandardDetailExcel.class, params);
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)
&& listLawsMarketStandardDetailExcel.size() >= 2){
listLawsMarketStandardDetailExcel = listLawsMarketStandardDetailExcel.
subList(2,listLawsMarketStandardDetailExcel.size());
}
return listLawsMarketStandardDetailExcel;
}
private void checkStandard(List<LawsMarketStandardDetail> listIds, List<String> listStandardIds, List<String> listStandardIdRepeat, LawsMarketStandardDetail p, StringBuilder s) {
if(!StringUtils.isBlank(p.getStandardNumber())){
List<LawsMarketStandardDetail> listStandardNumberData = listIds.stream().filter(o->
Objects.equals(o.getStandardNumber(),p.getStandardNumber())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(listStandardNumberData)){
s.append("标准编号不存在;");
}else{
String id = listStandardNumberData.get(0).getStandardId();
p.setStandardId(id);
if(!CollectionUtils.isEmpty(listStandardIds) && listStandardIds.contains(id)){
s.append("标准编号已存在;");
}else if(!CollectionUtils.isEmpty(listStandardIdRepeat) && listStandardIdRepeat.contains(id)){
s.append("标准编号重复;");
}
listStandardIdRepeat.add(listStandardNumberData.get(0).getId());
}
}
}
@NotNull
private List<String> getStandardIds(String manifestId) {
LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>();
queryLawsMarketStandardDetail.select(LawsMarketStandardDetail::getStandardId);
queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,manifestId);
queryLawsMarketStandardDetail.isNotNull(LawsMarketStandardDetail::getStandardId);
List<LawsMarketStandardDetail> listStandardId = list(queryLawsMarketStandardDetail);
List<String> listStandardIds = new ArrayList<>();
if(!CollectionUtils.isEmpty(listStandardId)){
listStandardIds = listStandardId.stream().map(LawsMarketStandardDetail::getStandardId)
.collect(Collectors.toList());
}
return listStandardIds;
}
@Override @Override
public void downloadTemplate(HttpServletResponse response) { public void downloadTemplate(HttpServletResponse response) {
// 模板存放地址 // 模板存放地址
@@ -267,7 +287,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
queryOld.groupBy(LawsMarketStandardDetail::getStandardId); queryOld.groupBy(LawsMarketStandardDetail::getStandardId);
List<LawsMarketStandardDetail> listOld = list(queryOld); List<LawsMarketStandardDetail> listOld = list(queryOld);
if(CollectionUtils.isEmpty(listOld)){ if(CollectionUtils.isEmpty(listOld)){
return Result.error("数据不存在"); return Result.error(NOT_DATA);
} }
LambdaQueryWrapper<LawsMarketStandardDetail> queryNew = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LawsMarketStandardDetail> queryNew = new LambdaQueryWrapper<>();
queryNew.eq(LawsMarketStandardDetail::getManifestId,newId); queryNew.eq(LawsMarketStandardDetail::getManifestId,newId);
@@ -277,7 +297,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
listOld = listOld.stream().filter(o->!listStandardId.contains(o.getStandardId())).collect(Collectors.toList()); listOld = listOld.stream().filter(o->!listStandardId.contains(o.getStandardId())).collect(Collectors.toList());
} }
if(CollectionUtils.isEmpty(listOld)){ if(CollectionUtils.isEmpty(listOld)){
return Result.error("数据不存在"); return Result.error(NOT_DATA);
} }
setData(newId, listOld); setData(newId, listOld);
saveBatch(listOld); saveBatch(listOld);
@@ -318,7 +338,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
checkData(id); checkData(id);
LawsMarketStandardDetail lawsMarketStandardDetail = getById(id); LawsMarketStandardDetail lawsMarketStandardDetail = getById(id);
if(Objects.isNull(lawsMarketStandardDetail)){ if(Objects.isNull(lawsMarketStandardDetail)){
throw new JeroBootException("数据不存在"); throw new JeroBootException(NOT_DATA);
} }
removeById(id); removeById(id);
// 更细状态 // 更细状态
@@ -332,7 +352,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
checkData(ids); checkData(ids);
LawsMarketStandardDetail lawsMarketStandardDetail = getById(ids.split(",")[0]); LawsMarketStandardDetail lawsMarketStandardDetail = getById(ids.split(",")[0]);
if(Objects.isNull(lawsMarketStandardDetail)){ if(Objects.isNull(lawsMarketStandardDetail)){
throw new JeroBootException("数据不存在"); throw new JeroBootException(NOT_DATA);
} }
// 更细状态 // 更细状态
marketStandardService.updateStatus(lawsMarketStandardDetail.getManifestId()); marketStandardService.updateStatus(lawsMarketStandardDetail.getManifestId());