xiangpei
2024-03-13 10df3eebf12aa53fe2f66af2dc75fcd0ef12251c
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
@@ -1,8 +1,13 @@
package com.ycl.platform.service.impl;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.platform.base.BaseSelect;
import com.ycl.platform.domain.entity.CheckTemplate;
import com.ycl.platform.domain.entity.CheckTemplateRule;
import com.ycl.platform.domain.entity.YwUnit;
import com.ycl.platform.domain.vo.RuleItemVO;
import com.ycl.platform.mapper.CheckTemplateMapper;
import com.ycl.platform.mapper.CheckTemplateRuleMapper;
import com.ycl.platform.service.CheckTemplateService;
import com.ycl.system.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -38,6 +43,7 @@
public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateMapper, CheckTemplate> implements CheckTemplateService {
    private final CheckTemplateMapper checkTemplateMapper;
    private final CheckTemplateRuleMapper checkTemplateRuleMapper;
    /**
     * 添加
@@ -45,12 +51,18 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result add(CheckTemplateForm form) {
        CheckTemplate entity = CheckTemplateForm.getEntityByForm(form, null);
        if(baseMapper.insert(entity) > 0) {
            return Result.ok("添加成功");
        }
        return Result.error("添加失败");
        baseMapper.insert(entity);
        form.getRuleFormList().stream().forEach(rule -> {
            CheckTemplateRule checkTemplateRule = new CheckTemplateRule();
            checkTemplateRule.setCheckTemplateId(entity.getId());
            checkTemplateRule.setCheckRuleId(rule.getRuleId());
            checkTemplateRule.setWeight(rule.getWeight());
            checkTemplateRuleMapper.insert(checkTemplateRule);
        });
        return Result.ok("添加成功");
    }
    /**
@@ -59,17 +71,28 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result update(CheckTemplateForm form) {
        CheckTemplate entity = baseMapper.selectById(form.getId());
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        if (baseMapper.updateById(entity) > 0) {
            return Result.ok("修改成功");
        }
        return Result.error("修改失败");
        baseMapper.updateById(entity);
        // 先删除原先的对应关系
        new LambdaUpdateChainWrapper<>(checkTemplateRuleMapper)
                .eq(CheckTemplateRule::getCheckTemplateId, form.getId())
                .remove();
        // 再重新添加
        form.getRuleFormList().stream().forEach(rule -> {
            CheckTemplateRule checkTemplateRule = new CheckTemplateRule();
            checkTemplateRule.setCheckTemplateId(entity.getId());
            checkTemplateRule.setCheckRuleId(rule.getRuleId());
            checkTemplateRule.setWeight(rule.getWeight());
            checkTemplateRuleMapper.insert(checkTemplateRule);
        });
        return Result.ok("修改成功");
    }
    /**
@@ -78,11 +101,13 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result remove(List<String> ids) {
        if(baseMapper.deleteBatchIds(ids) > 0) {
            return Result.ok("删除成功");
        }
        return Result.error("删除失败");
        baseMapper.deleteBatchIds(ids);
        new LambdaUpdateChainWrapper<>(checkTemplateRuleMapper)
                .in(CheckTemplateRule::getCheckTemplateId, ids)
                .remove();
        return Result.ok("删除成功");
    }
    /**
@@ -91,11 +116,13 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result removeById(String id) {
        if(baseMapper.deleteById(id) > 0) {
            return Result.ok("删除成功");
        }
        return Result.error("删除失败");
        baseMapper.deleteById(id);
        new LambdaUpdateChainWrapper<>(checkTemplateRuleMapper)
                .eq(CheckTemplateRule::getCheckTemplateId, id)
                .remove();
        return Result.ok("删除成功");
    }
    /**
@@ -134,6 +161,19 @@
        CheckTemplate entity = baseMapper.selectById(id);
        Assert.notNull(entity, "记录不存在");
        CheckTemplateVO vo = CheckTemplateVO.getVoByEntity(entity, null);
        // 查考核规则
        List<CheckTemplateRule> ruleList = new LambdaQueryChainWrapper<>(checkTemplateRuleMapper)
                .eq(CheckTemplateRule::getCheckTemplateId, entity.getId())
                .list();
        List<RuleItemVO> ruleVOS = ruleList.stream().map(rule -> {
            RuleItemVO ruleItemVO = new RuleItemVO();
            ruleItemVO.setRuleId(rule.getCheckRuleId());
            ruleItemVO.setWeight(rule.getWeight());
            return ruleItemVO;
        }).collect(Collectors.toList());
        vo.setRuleFormList(ruleVOS);
        return Result.ok().data(vo);
    }
@@ -144,9 +184,14 @@
    @Override
    public Result all() {
        List<CheckTemplate> entities = baseMapper.selectList(null);
        List<CheckTemplateVO> vos = entities.stream()
        List<BaseSelect> vos = entities.stream()
                .map(
                        entity -> CheckTemplateVO.getVoByEntity(entity, null)
                        entity -> {
                            BaseSelect baseSelect = new BaseSelect();
                            baseSelect.setId(entity.getId());
                            baseSelect.setValue(entity.getTemplateName());
                            return baseSelect;
                        }
                )
                .collect(Collectors.toList());
        return Result.ok().data(vos);