判断固定值是否存在 如果存在 直接调用已有的更新方法 如果不存在直接插入新数据即可
/**
* 导入功能
* @param list 数据列表 强制措施列表
* @param isUpdateSupport 判断是否更新
* @return
*/
@Override
public String importMeasure(List<LawBaseEnforceMeasure> list, Boolean isUpdateSupport) {
// 判断导入数据是否为空
if (StringUtils.isNull(list) || list.size() == 0) {
throw new ServiceException("导入数据不能为空!");
}
// 定义新增/失败成功初始值
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
// 对列表中的数据进行循环判定
for (LawBaseEnforceMeasure lawBaseEnforceMeasure : list) {
try {
// 验证是否存在这个违法事项
LawBaseEnforceMeasure existingMeasure = lawBaseEnforceMeasureMapper.selectLawBaseEnforceMeasureMappers(lawBaseEnforceMeasure.getMatter());
// 先判断是否为空值
if (StringUtils.isEmpty(lawBaseEnforceMeasure.getEnforceRange())) {
throw new ServiceException("范围不能为空!");
}
if (StringUtils.isEmpty(lawBaseEnforceMeasure.getMatter())) {
throw new ServiceException("违法事项不能为空!");
}
if (StringUtils.isEmpty(lawBaseEnforceMeasure.getTerm())) {
throw new ServiceException("条款不能为空!");
}
if (existingMeasure == null) {
//获取字典的标签值 将标签值设置为字典键值
String dictValue = DictUtils.getDictValue("law_base_enforce_measure", lawBaseEnforceMeasure.getEnforceRange());
lawBaseEnforceMeasure.setEnforceRange(dictValue);
// 不存在,直接插入数据
this.insertLawBaseEnforceMeasure(lawBaseEnforceMeasure);
successNum++;
successMsg.append("导入成功:").append(lawBaseEnforceMeasure.getMatter()).append("\n");
} else {
// 存在,直接更新数据
lawBaseEnforceMeasure.setId(existingMeasure.getId());
//获取字典的标签值 将标签值设置为字典键值
String dictValue = DictUtils.getDictValue("law_base_enforce_measure", lawBaseEnforceMeasure.getEnforceRange());
lawBaseEnforceMeasure.setEnforceRange(dictValue);
this.updateLawBaseEnforceMeasure(lawBaseEnforceMeasure);
successNum++;
successMsg.append("导入成功:").append(lawBaseEnforceMeasure.getMatter()).append("\n");
}
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "违法事项" + lawBaseEnforceMeasure.getMatter() + " 导入失败:已存在该信息";
failureMsg.append(msg + e.getMessage());
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
例子
注意修改代码中的 "your_dict_type"
,将其替换为自己的字典类型。
在这个实现中,使用 DictUtils.getDictValue
方法来获取字典标签对应的字典值,并将其设置到 lawBaseEnforceMeasure
对象的 matter
字段上。这样,在导入的数据中,matter
字段将包含字典值,而不是字典标签。
// 获取字典标签对应的字典值
String dictValue = DictUtils.getDictValue("your_dict_type", lawBaseEnforceMeasure.getMatter());
lawBaseEnforceMeasure.setMatter(dictValue);
这里的sql为新写 判断固定值是否存在的
// 验证是否存在这个违法事项
LawBaseEnforceMeasure existingMeasure = lawBaseEnforceMeasureMapper.selectLawBaseEnforceMeasureMappers(lawBaseEnforceMeasure.getMatter());
mapper
public LawBaseEnforceMeasure selectLawBaseEnforceMeasureMappers(String matter);
sql
<select id="selectLawBaseEnforceMeasureMappers" parameterType="String" resultMap="LawBaseEnforceMeasureResult">
<include refid="selectLawBaseEnforceMeasureVo"/>
where matter = #{matter}
</select>
示例二
导不进去 多导入几下 覆盖
/**
* 导入功能
* @param userList
* @param isUpdateSupport
* @param operName
* @return
*/
@Override
public String importUser(List<LawIllegalActivities> userList, Boolean isUpdateSupport, String operName) {
if (StringUtils.isNull(userList) || userList.size() == 0) {
throw new ServiceException("导入数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (LawIllegalActivities illegalActivity : userList) {
try {
//验证是否存在重复的违法事项
LawIllegalActivities existingMeasure = lawIllegalActivitiesMapper.selectLawIllegalActivities(illegalActivity.getIllegalActivities());
// 在这里进行具体的导入操作,例如插入数据库或更新现有数据
// 根据需要进行相应的业务逻辑处理
if (StringUtils.isEmpty(illegalActivity.getIllegalActivities())) {
throw new ServiceException("违法事项不能为空!");
}
if (StringUtils.isEmpty(illegalActivity.getTerms())) {
throw new ServiceException("违法条款不能为空!");
}
if (StringUtils.isEmpty(illegalActivity.getTermsContent())) {
throw new ServiceException("违法条款内容不能为空!");
}
if (StringUtils.isEmpty(illegalActivity.getAccording())) {
throw new ServiceException("处罚依据不能为空!");
}
if (StringUtils.isEmpty(illegalActivity.getAccordingContent())) {
throw new ServiceException("处罚依据内容不能为空!");
}
if (StringUtils.isEmpty(illegalActivity.getPenalty())){
illegalActivity.setPenaltyContent(" ");
}
if (StringUtils.isEmpty(illegalActivity.getPenaltyContent())){
illegalActivity.setPenaltyContent(" ");
}
if (StringUtils.isEmpty(illegalActivity.getCorrection())){
illegalActivity.setCorrection(" ");
}
if (StringUtils.isEmpty(illegalActivity.getIfSimple())){
illegalActivity.setIfSimple(" ");
}
if (StringUtils.isEmpty(illegalActivity.getVerify())){
illegalActivity.setVerify(" ");
}
if (StringUtils.isEmpty(illegalActivity.getSituation())){
illegalActivity.setSituation(" ");
}
if (StringUtils.isEmpty(illegalActivity.getEvidenceRetrieved())){
illegalActivity.setEvidenceRetrieved(" ");
}
if (StringUtils.isEmpty(illegalActivity.getAdvise())){
illegalActivity.setAdvise(" ");
}
if (existingMeasure == null){
//获取字典的标签值 将标签值设置为字典键值
String dictValue = DictUtils.getDictValue("sys_yes_no", illegalActivity.getIfSimple());
illegalActivity.setIfSimple(dictValue);
//若不存在相同违法事项 直接插入新数据
// 导入成功时,增加成功计数和成功消息
successNum++;
insertLawIllegalActivities(illegalActivity);
successMsg.append("导入成功:").append(illegalActivity.getIllegalActivities()).append("\n");
}else {
//如果存在相同的违法事项 直接更新数据
illegalActivity.setId(existingMeasure.getId());
String dictValue = DictUtils.getDictValue("sys_yes_no", illegalActivity.getIfSimple());
illegalActivity.setIfSimple(dictValue);
this.updateLawIllegalActivities(illegalActivity);
successNum++;
successMsg.append("导入成功:").append(illegalActivity.getIllegalActivities()).append("\n");
}
} catch (Exception e) {
// 导入失败时,增加失败计数和失败消息
failureNum++;
String msg = "<br/>" + failureNum + " 导入失败:";
failureMsg.append(msg).append(e.getMessage());
}
}
if (failureNum > 0)
{
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
} else
{
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
<select id="selectLawIllegalActivities" parameterType="String" resultMap="LawIllegalActivitiesResult">
<include refid="selectLawIllegalActivitiesVo"/>
where illegal_activities = #{illegalActivities}
</select>
public LawIllegalActivities selectLawIllegalActivities(String activities);