若依导入功能 重复数据使导入覆盖 数据为空否决和字典问题

 判断固定值是否存在  如果存在 直接调用已有的更新方法  如果不存在直接插入新数据即可

  /**
     * 导入功能
     * @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);

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值