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

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.jeecgframework.poi.excel.ExcelImportUtil;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -56,6 +58,8 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
@Resource
private ILawsCommonService lawsCommonService;
private static final String NOT_DATA = "数据不存在";
@Override
public Result<?> getPage(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request,
@@ -68,7 +72,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){
LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId);
if(Objects.isNull(lawsMarketStandardOld)){
return Result.error("数据不存在");
return Result.error(NOT_DATA);
}
LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo());
@@ -96,7 +100,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(!StringUtils.isBlank(manifestVersion)){
LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId);
if(Objects.isNull(lawsMarketStandardOld)){
return Result.error("数据不存在");
return Result.error(NOT_DATA);
}
LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo());
@@ -131,13 +135,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
return Result.error("excel文件表头错误,请重新下载");
}
try {
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel(
file.getInputStream(), LawsMarketStandardDetailExcel.class, params);
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)
&& listLawsMarketStandardDetailExcel.size() >= 2){
listLawsMarketStandardDetailExcel = listLawsMarketStandardDetailExcel.
subList(2,listLawsMarketStandardDetailExcel.size());
}
List<LawsMarketStandardDetailExcel> listLawsMarketStandardDetailExcel = getLawsMarketStandardDetailExcels(file, params);
if(CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)){
return Result.error("导入数据为空");
}
@@ -157,16 +155,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
}
StringBuilder m = new StringBuilder();
// 获取当前清单的标准
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());
}
List<String> listStandardIds = getStandardIds(manifestId);
// 验证标准编号是否重复
List<String> listStandardIdRepeat = new ArrayList<>();
for (int i = 0; i < listLawsMarketStandardDetail.size(); i++) {
@@ -184,22 +173,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
s.append(dict);
}
// 验证标准编号
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());
}
}
checkStandard(listIds, listStandardIds, listStandardIdRepeat, p, s);
if(!StringUtils.isBlank(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
public void downloadTemplate(HttpServletResponse response) {
// 模板存放地址
@@ -267,7 +287,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
queryOld.groupBy(LawsMarketStandardDetail::getStandardId);
List<LawsMarketStandardDetail> listOld = list(queryOld);
if(CollectionUtils.isEmpty(listOld)){
return Result.error("数据不存在");
return Result.error(NOT_DATA);
}
LambdaQueryWrapper<LawsMarketStandardDetail> queryNew = new LambdaQueryWrapper<>();
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());
}
if(CollectionUtils.isEmpty(listOld)){
return Result.error("数据不存在");
return Result.error(NOT_DATA);
}
setData(newId, listOld);
saveBatch(listOld);
@@ -318,7 +338,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
checkData(id);
LawsMarketStandardDetail lawsMarketStandardDetail = getById(id);
if(Objects.isNull(lawsMarketStandardDetail)){
throw new JeroBootException("数据不存在");
throw new JeroBootException(NOT_DATA);
}
removeById(id);
// 更细状态
@@ -332,7 +352,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
checkData(ids);
LawsMarketStandardDetail lawsMarketStandardDetail = getById(ids.split(",")[0]);
if(Objects.isNull(lawsMarketStandardDetail)){
throw new JeroBootException("数据不存在");
throw new JeroBootException(NOT_DATA);
}
// 更细状态
marketStandardService.updateStatus(lawsMarketStandardDetail.getManifestId());