add ASMS国内法规同步到业务表
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
<select id="getStandardTypeList" resultType="java.lang.String">
|
<select id="getStandardTypeList" resultType="java.lang.String">
|
||||||
SELECT DISTINCT SUBSTRING_INDEX(ID, ' ', 1) AS first_part
|
SELECT DISTINCT SUBSTRING_INDEX(code, ' ', 1) AS standard_class
|
||||||
FROM laws_asms_domestic;
|
FROM laws_asms_domestic;
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+236
-29
@@ -10,6 +10,11 @@ import com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper;
|
|||||||
import com.jero.modules.docking.asms.service.ILawsAsmsDomesticService;
|
import com.jero.modules.docking.asms.service.ILawsAsmsDomesticService;
|
||||||
import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
|
import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
|
||||||
import com.jero.modules.docking.asms.util.AsmsPostUtil;
|
import com.jero.modules.docking.asms.util.AsmsPostUtil;
|
||||||
|
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsReplacedStandardService;
|
||||||
|
import com.jero.modules.laws.standardization.entity.LawsStandardization;
|
||||||
|
import com.jero.modules.laws.standardization.service.ILawsStandardizationService;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.service.ISysDictItemService;
|
import com.jero.modules.system.service.ISysDictItemService;
|
||||||
import com.spire.ms.System.Collections.ArrayList;
|
import com.spire.ms.System.Collections.ArrayList;
|
||||||
@@ -21,10 +26,12 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.text.ParseException;
|
||||||
import java.util.List;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Map;
|
import java.time.LocalDate;
|
||||||
import java.util.Objects;
|
import java.util.*;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -53,6 +60,16 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
private ILawsAsmsDomesticService lawsAsmsDomesticService;
|
private ILawsAsmsDomesticService lawsAsmsDomesticService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private LawsAsmsOpenApiMapper lawsAsmsOpenApiMapper;
|
private LawsAsmsOpenApiMapper lawsAsmsOpenApiMapper;
|
||||||
|
@Autowired
|
||||||
|
private ILawsStandardizationService lawsStandardizationService;
|
||||||
|
@Autowired
|
||||||
|
private ILawsDomesticStandardService lawsDomesticStandardService;
|
||||||
|
@Autowired
|
||||||
|
private ILawsReplacedStandardService lawsReplacedStandardService;
|
||||||
|
|
||||||
|
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
private static SimpleDateFormat oldDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询
|
* 分页查询
|
||||||
@@ -234,42 +251,46 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
} else if ("2".equals(lawsAsmsOpenApi.getApiType())) {
|
} else if ("2".equals(lawsAsmsOpenApi.getApiType())) {
|
||||||
// 如果是分标委
|
// 如果是分标委
|
||||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||||
|
List<LawsStandardization> lawsStandardizationList = new ArrayList();
|
||||||
|
mapList.forEach(eMap -> {
|
||||||
|
LawsStandardization lawsStandardization = new LawsStandardization();
|
||||||
|
lawsStandardization.setType("2");
|
||||||
|
eMap.forEach((k,v) -> {
|
||||||
|
if ("code".equals(k)) {
|
||||||
|
lawsStandardization.setNum(v);
|
||||||
|
} else if ("name".equals(k)) {
|
||||||
|
lawsStandardization.setName(v);
|
||||||
|
} else if ("field".equals(k)) {
|
||||||
|
lawsStandardization.setWorkingArea(v);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
lawsStandardizationList.add(lawsStandardization);
|
||||||
|
});
|
||||||
|
lawsStandardizationService.saveBatch(lawsStandardizationList);
|
||||||
|
// 状态设置为已同步
|
||||||
|
lawsAsmsOpenApi.setStatus("1");
|
||||||
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) {
|
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) {
|
||||||
// 如果是国内法规,并且url为国内法规标准检索列表
|
// 如果是国内法规,并且url为国内法规标准检索列表
|
||||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||||
Integer pageNo;
|
|
||||||
Integer pageSize;
|
|
||||||
if (CollectionUtils.isNotEmpty(mapList)) {
|
if (CollectionUtils.isNotEmpty(mapList)) {
|
||||||
// 不为空则增加查询的分页
|
|
||||||
pageNo = Integer.valueOf(map.get("pageNo")) + 1;
|
|
||||||
List<LawsAsmsDomestic> lawsAsmsDomesticList = new ArrayList();
|
List<LawsAsmsDomestic> lawsAsmsDomesticList = new ArrayList();
|
||||||
mapList.forEach(eMap -> {
|
mapList.forEach(eMap -> {
|
||||||
LawsAsmsDomestic lawsAsmsDomestic = JSONObject.parseObject(JSONObject.toJSONString(eMap), LawsAsmsDomestic.class);
|
LawsAsmsDomestic lawsAsmsDomestic = JSONObject.parseObject(JSONObject.toJSONString(eMap), LawsAsmsDomestic.class);
|
||||||
lawsAsmsDomestic.setId(lawsAsmsDomestic.getCode());
|
|
||||||
lawsAsmsDomestic.setCreateTimeString(eMap.get("createTime"));
|
lawsAsmsDomestic.setCreateTimeString(eMap.get("createTime"));
|
||||||
lawsAsmsDomestic.setUpdateTimeString(eMap.get("updateTime"));
|
lawsAsmsDomestic.setUpdateTimeString(eMap.get("updateTime"));
|
||||||
lawsAsmsDomestic.setFocalPointName(eMap.get("focalPoint"));
|
lawsAsmsDomestic.setFocalPointName(eMap.get("focalPoint"));
|
||||||
lawsAsmsDomestic.setSyncFlag("A");
|
lawsAsmsDomestic.setSyncFlag("A");
|
||||||
lawsAsmsDomesticList.add(lawsAsmsDomestic);
|
lawsAsmsDomesticList.add(lawsAsmsDomestic);
|
||||||
});
|
});
|
||||||
lawsAsmsDomesticService.saveOrUpdateBatch(lawsAsmsDomesticList);
|
lawsAsmsDomesticService.saveBatch(lawsAsmsDomesticList);
|
||||||
} else {
|
|
||||||
// 为空则全部置0
|
|
||||||
pageNo = 1;
|
|
||||||
// 已同步
|
|
||||||
lawsAsmsOpenApi.setStatus("1");
|
|
||||||
}
|
}
|
||||||
map.put("pageNo", pageNo.toString());
|
// 已同步
|
||||||
String jsonString = JSON.toJSONString(map);
|
lawsAsmsOpenApi.setStatus("1");
|
||||||
lawsAsmsOpenApi.setQueryParamJson(jsonString);
|
|
||||||
|
|
||||||
log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), mapList.size());
|
log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), mapList.size());
|
||||||
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/getInfo".equals(lawsAsmsOpenApi.getApiUrl())) {
|
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/getInfo".equals(lawsAsmsOpenApi.getApiUrl())) {
|
||||||
// 如果是国内法规,并且url为国内法规标准基本信息
|
// 如果是国内法规,并且url为国内法规标准基本信息
|
||||||
LambdaQueryWrapper<LawsAsmsDomestic> queryWrapper = new LambdaQueryWrapper<>();
|
List<LawsAsmsDomestic> lawsAsmsDomesticList = lawsAsmsDomesticService.list();
|
||||||
queryWrapper.select(LawsAsmsDomestic::getCode);
|
|
||||||
queryWrapper.eq(LawsAsmsDomestic::getSyncFlag, "A");
|
|
||||||
List<LawsAsmsDomestic> lawsAsmsDomesticList = lawsAsmsDomesticService.list(queryWrapper);
|
|
||||||
if (CollectionUtils.isEmpty(lawsAsmsDomesticList)) {
|
if (CollectionUtils.isEmpty(lawsAsmsDomesticList)) {
|
||||||
lawsAsmsOpenApi.setStatus("1");
|
lawsAsmsOpenApi.setStatus("1");
|
||||||
}
|
}
|
||||||
@@ -277,13 +298,15 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
if (CollectionUtils.isNotEmpty(lawsAsmsDomesticList)) {
|
if (CollectionUtils.isNotEmpty(lawsAsmsDomesticList)) {
|
||||||
Map<String, String> paramMap = new HashMap<>();
|
Map<String, String> paramMap = new HashMap<>();
|
||||||
lawsAsmsDomesticList.forEach(lawsAsmsDomestic -> {
|
lawsAsmsDomesticList.forEach(lawsAsmsDomestic -> {
|
||||||
String code = lawsAsmsDomestic.getCode();
|
paramMap.put("lawCode", lawsAsmsDomestic.getCode());
|
||||||
paramMap.put("lawCode", code);
|
|
||||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), paramMap);
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), paramMap);
|
||||||
LawsAsmsDomestic parseObject = JSONObject.parseObject(JSONObject.toJSONString(mapList.get(0)), LawsAsmsDomestic.class);
|
LawsAsmsDomestic parseObject = JSONObject.parseObject(JSONObject.toJSONString(mapList.get(0)), LawsAsmsDomestic.class);
|
||||||
log.info(parseObject.toString());
|
log.info(parseObject.toString());
|
||||||
parseObject.setSyncFlag("B");
|
parseObject.setSyncFlag("B");
|
||||||
parseObject.setId(code);
|
parseObject.setId(lawsAsmsDomestic.getId());
|
||||||
|
parseObject.setCreateTimeString(mapList.get(0).get("createTime"));
|
||||||
|
parseObject.setUpdateTimeString(mapList.get(0).get("updateTime"));
|
||||||
|
parseObject.setFocalPointName(mapList.get(0).get("focalPoint"));
|
||||||
updateList.add(parseObject);
|
updateList.add(parseObject);
|
||||||
});
|
});
|
||||||
lawsAsmsDomesticService.updateBatchById(updateList);
|
lawsAsmsDomesticService.updateBatchById(updateList);
|
||||||
@@ -314,9 +337,33 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
dictItem.setDelFlag(0);
|
dictItem.setDelFlag(0);
|
||||||
// 排序
|
// 排序
|
||||||
dictItem.setSortOrder(i + 1);
|
dictItem.setSortOrder(i + 1);
|
||||||
|
String standardType = standardTypeList.get(i);
|
||||||
|
dictItem.setItemValue(standardType);
|
||||||
|
String itemText;
|
||||||
|
switch (standardType) {
|
||||||
|
case "GB":
|
||||||
|
itemText = "强制性国家标准GB";
|
||||||
|
break;
|
||||||
|
case "GB/T":
|
||||||
|
itemText = "推荐性国家标准GB/T";
|
||||||
|
break;
|
||||||
|
case "QC/T":
|
||||||
|
itemText = "汽车行业标准QC/T";
|
||||||
|
break;
|
||||||
|
case "QCn":
|
||||||
|
itemText = "汽车行业标准QCn";
|
||||||
|
break;
|
||||||
|
case "HJ/T":
|
||||||
|
itemText = "环境保护行业标准HJ/T";
|
||||||
|
break;
|
||||||
|
case "GB/Z":
|
||||||
|
itemText = "国家职业卫生标准GB/Z";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
itemText = standardType;
|
||||||
|
}
|
||||||
|
|
||||||
dictItem.setItemValue(standardTypeList.get(i));
|
dictItem.setItemText(itemText);
|
||||||
dictItem.setItemText(standardTypeList.get(i));
|
|
||||||
|
|
||||||
dictItemList.add(dictItem);
|
dictItemList.add(dictItem);
|
||||||
}
|
}
|
||||||
@@ -326,18 +373,178 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
lawsAsmsOpenApi.setStatus("1");
|
lawsAsmsOpenApi.setStatus("1");
|
||||||
} else if ("4".equals(lawsAsmsOpenApi.getApiType()) && "B".equals(lawsAsmsOpenApi.getApiUrl())) {
|
} else if ("4".equals(lawsAsmsOpenApi.getApiType()) && "B".equals(lawsAsmsOpenApi.getApiUrl())) {
|
||||||
// 国内法规同步到业务表
|
// 国内法规同步到业务表
|
||||||
List<LawsAsmsDomestic> lawsAsmsDomesticList = lawsAsmsDomesticService.list();
|
LambdaQueryWrapper<LawsAsmsDomestic> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.orderByAsc(LawsAsmsDomestic::getId);
|
||||||
|
List<LawsAsmsDomestic> lawsAsmsDomesticList = lawsAsmsDomesticService.list(queryWrapper);
|
||||||
|
List<SysDictItem> sysDictItemList = sysDictItemService.list();
|
||||||
|
List<LawsStandardization> lawsStandardizationList = lawsStandardizationService.list();
|
||||||
|
List<LawsDomesticStandard> lawsDomesticStandardList = new ArrayList();
|
||||||
lawsAsmsDomesticList.forEach(lawsAsmsDomestic -> {
|
lawsAsmsDomesticList.forEach(lawsAsmsDomestic -> {
|
||||||
|
String[] parts = lawsAsmsDomestic.getCode().split("[-\\s]"); // 使用空格或破折号作为分隔符
|
||||||
|
if (parts.length < 3) {
|
||||||
|
parts = lawsAsmsDomestic.getCode().split("[—\\s]"); // 使用空格或破折号作为分隔符
|
||||||
|
}
|
||||||
|
// 封装实例
|
||||||
|
LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard();
|
||||||
|
// 主键
|
||||||
|
lawsDomesticStandard.setId(lawsAsmsDomestic.getId());
|
||||||
|
// 对接标识
|
||||||
|
lawsDomesticStandard.setIsAsmsImport("1");
|
||||||
|
// 标准编号
|
||||||
|
lawsDomesticStandard.setStandardNumber(lawsAsmsDomestic.getCode());
|
||||||
|
// 标准类别
|
||||||
|
lawsDomesticStandard.setStandardClass(parts[0]);
|
||||||
|
// 标准号
|
||||||
|
lawsDomesticStandard.setStandardNumberTemp(parts[1]);
|
||||||
|
// 年代号
|
||||||
|
lawsDomesticStandard.setYearNumber(parts[2]);
|
||||||
|
// 标准名称
|
||||||
|
lawsDomesticStandard.setStandardName(lawsAsmsDomestic.getName());
|
||||||
|
// 标准英文名称
|
||||||
|
lawsDomesticStandard.setStandardEnglishName(lawsAsmsDomestic.getEnglishName());
|
||||||
|
// 适用认证
|
||||||
|
String itemValues = getItemValues(lawsAsmsDomestic.getApplicableCertificationListString(),
|
||||||
|
"1696008107352854529", sysDictItemList);
|
||||||
|
lawsDomesticStandard.setApplicableCertification(itemValues);
|
||||||
|
// 适用车型
|
||||||
|
itemValues = getItemValues(lawsAsmsDomestic.getApplicableModelsListString(),
|
||||||
|
"1702518672924110850", sysDictItemList);
|
||||||
|
lawsDomesticStandard.setApplicableVehicle(itemValues);
|
||||||
|
// 采标程度
|
||||||
|
itemValues = getItemValues(lawsAsmsDomestic.getDegreeAdoption(),
|
||||||
|
"1696042735686049793", sysDictItemList);
|
||||||
|
lawsDomesticStandard.setDegreeOfBidAcquisition(itemValues);
|
||||||
|
// 实施日期
|
||||||
|
lawsDomesticStandard.setImplementationDate(getSimpleDate(lawsAsmsDomestic.getImplementationDate()));
|
||||||
|
// 采用国际标准号
|
||||||
|
lawsDomesticStandard.setAdoptTheInternationalStandardNumber(lawsAsmsDomestic.getInternationalStandard());
|
||||||
|
// 新车实施日期
|
||||||
|
lawsDomesticStandard.setNewModelImplementationDate(getManyDateString(lawsAsmsDomestic.getNewCarImplementationDate()));
|
||||||
|
// 动力类型
|
||||||
|
itemValues = getItemValues(lawsAsmsDomestic.getPowerTypeListString(),
|
||||||
|
"1702518671166697474", sysDictItemList);
|
||||||
|
lawsDomesticStandard.setDynamicType(itemValues);
|
||||||
|
// 在产车实施日期
|
||||||
|
lawsDomesticStandard.setOnTheProductionDate(getManyDateString(lawsAsmsDomestic.getProductionCarImplementationDate()));
|
||||||
|
// 发布日期
|
||||||
|
lawsDomesticStandard.setReleaseDate(getSimpleDate(lawsAsmsDomestic.getPublishDate()));
|
||||||
|
// 代替标准号
|
||||||
|
if (StringUtils.isNotBlank(lawsAsmsDomestic.getReplaceCode())) {
|
||||||
|
List<String> replaceCodeList = Arrays.asList(lawsAsmsDomestic.getReplaceCode().split(";"));
|
||||||
|
replaceCodeList.forEach(replaceCode -> {
|
||||||
|
lawsReplacedStandardService.addRelation(replaceCode, lawsAsmsDomestic.getCode(), 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 标准性质
|
||||||
|
itemValues = getItemValues(lawsAsmsDomestic.getStandardNature(),
|
||||||
|
"1695010513489833985", sysDictItemList);
|
||||||
|
lawsDomesticStandard.setStandardProperty(itemValues);
|
||||||
|
// 标准状态
|
||||||
|
itemValues = getItemValues(lawsAsmsDomestic.getStandardStatus(),
|
||||||
|
"1695991936599715842", sysDictItemList);
|
||||||
|
lawsDomesticStandard.setStandardState(itemValues);
|
||||||
|
// 分标委
|
||||||
|
String subcommittee = lawsAsmsDomestic.getSubcommittee();
|
||||||
|
if (StringUtils.isNotBlank(subcommittee)) {
|
||||||
|
lawsDomesticStandard.setBiddingCommittee(lawsStandardizationList.stream()
|
||||||
|
.filter(e -> subcommittee.equals(e.getName())).collect(Collectors.toList()).get(0).getId());
|
||||||
|
}
|
||||||
|
// 创建时间
|
||||||
|
lawsDomesticStandard.setCreateTime(getSimpleDate2(lawsAsmsDomestic.getCreateTimeString()));
|
||||||
|
// 更新时间
|
||||||
|
lawsDomesticStandard.setUpdateTime(getSimpleDate2(lawsAsmsDomestic.getUpdateTimeString()));
|
||||||
|
lawsDomesticStandardService.save(lawsDomesticStandard);
|
||||||
|
lawsDomesticStandardList.add(lawsDomesticStandard);
|
||||||
});
|
});
|
||||||
// 状态设置为已同步
|
// 状态设置为已同步
|
||||||
lawsAsmsOpenApi.setStatus("1");
|
lawsAsmsOpenApi.setStatus("1");
|
||||||
|
log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), lawsDomesticStandardList.size());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 同步接口的状态
|
// 同步接口的状态
|
||||||
updateBatchById(lawsAsmsOpenApiList);
|
updateBatchById(lawsAsmsOpenApiList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Date getSimpleDate(String dateStr) {
|
||||||
|
if (StringUtils.isBlank(dateStr)) return null;
|
||||||
|
try {
|
||||||
|
return simpleDateFormat.parse(dateStr);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new JeroBootException("时间格式转换错误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date getSimpleDate2(String dateStr) {
|
||||||
|
if (StringUtils.isBlank(dateStr)) return null;
|
||||||
|
try {
|
||||||
|
return dateFormat.parse(dateStr);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new JeroBootException("时间格式转换错误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/23 15:57
|
||||||
|
* @Description: 获取多日期字符串
|
||||||
|
**/
|
||||||
|
private String getManyDateString(String oldManyDateString) {
|
||||||
|
if (StringUtils.isBlank(oldManyDateString)) return "";
|
||||||
|
List<String> oldValueList = Arrays.asList(oldManyDateString.split("、"));
|
||||||
|
// 使用正则表达式提取日期部分
|
||||||
|
Pattern pattern = Pattern.compile("\\d{4}年\\d{2}月\\d{2}日");
|
||||||
|
|
||||||
|
List<String> valueList = new java.util.ArrayList<>();
|
||||||
|
oldValueList.forEach(value -> {
|
||||||
|
Matcher matcher = pattern.matcher(value);
|
||||||
|
String dateStr;
|
||||||
|
if (matcher.find()) {
|
||||||
|
dateStr = matcher.group(0);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Date parse = oldDateFormat.parse(dateStr);
|
||||||
|
String format = simpleDateFormat.format(parse);
|
||||||
|
valueList.add(format);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new JeroBootException("时间格式转换错误");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (valueList.size() == 1) {
|
||||||
|
// 如果只有一个日期值,则复制成两个,用于查询和排序
|
||||||
|
return valueList.get(0) + "," + valueList.get(0);
|
||||||
|
}
|
||||||
|
List<LocalDate> dateList = valueList.stream()
|
||||||
|
.map(LocalDate::parse) // 解析日期字符串为 LocalDate 对象
|
||||||
|
.sorted() // 按照日期大小进行排序
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 将排序后的 LocalDate 对象转换为字符串
|
||||||
|
List<String> sortedDateStrList = dateList.stream()
|
||||||
|
.map(LocalDate::toString)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return String.join(",", sortedDateStrList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/23 15:09
|
||||||
|
* @Description: 获取字典值
|
||||||
|
**/
|
||||||
|
private String getItemValues(String itemTexts, String dictId, List<SysDictItem> sysDictItemList) {
|
||||||
|
if (StringUtils.isBlank(itemTexts)) return "";
|
||||||
|
List<String> itemTextList = Arrays.asList(itemTexts.split(";"));
|
||||||
|
List<String> itemValues = sysDictItemList.stream()
|
||||||
|
.filter(sysDictItem -> itemTextList.contains(sysDictItem.getItemText()) && dictId.equals(sysDictItem.getDictId()))
|
||||||
|
.map(SysDictItem::getItemValue).collect(Collectors.toList());
|
||||||
|
return StringUtils.join(itemValues, ",");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
* @Date: 2023/10/18 16:20
|
* @Date: 2023/10/18 16:20
|
||||||
|
|||||||
+5
@@ -205,4 +205,9 @@ public class LawsDomesticStandard implements Serializable {
|
|||||||
@Excel(name = "草案", width = 15)
|
@Excel(name = "草案", width = 15)
|
||||||
@ApiModelProperty(value = "草案")
|
@ApiModelProperty(value = "草案")
|
||||||
private java.lang.String draft;
|
private java.lang.String draft;
|
||||||
|
|
||||||
|
/**是否ASMS导入(1是)*/
|
||||||
|
private String isAsmsImport;
|
||||||
|
/**标准号*/
|
||||||
|
private String standardNumberTemp;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user