package com.xiaopeng.maintenance.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.model.maintenance.XpTaskRule; import com.xiaopeng.api.model.maintenance.XpTaskRuleRole; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.utils.bean.BeanUtils; import com.xiaopeng.maintenance.dto.TaskRuleDetailDto; import com.xiaopeng.maintenance.vo.TaskRuleDetailVO; import com.xiaopeng.maintenance.mapper.XpTaskRuleMapper; import com.xiaopeng.maintenance.mapper.XpTaskRuleRoleMapper; import com.xiaopeng.maintenance.service.IXpTaskRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** *

* 任务规则设置 服务实现类 *

* * @author mitao * @since 2026-02-03 */ @Service public class XpTaskRuleServiceImpl extends ServiceImpl implements IXpTaskRuleService { @Autowired private XpTaskRuleRoleMapper taskRuleRoleMapper; @Override public R taskRuleDetail() { XpTaskRule taskRule = this.getOne(null); if (taskRule == null){ TaskRuleDetailVO taskRuleDetailVO = new TaskRuleDetailVO(); return R.ok(taskRuleDetailVO); } TaskRuleDetailVO taskRuleDetailVO = new TaskRuleDetailVO(); BeanUtils.copyProperties(taskRule, taskRuleDetailVO); List xpTaskRuleRoles = taskRuleRoleMapper.selectList(null); taskRuleDetailVO.setTaskRuleRoleList(xpTaskRuleRoles); return R.ok(taskRuleDetailVO); } @Override public void saveOrUpdateTaskRule(TaskRuleDetailDto dto) { if (dto.getId()!=null){ XpTaskRule xpTaskRule = new XpTaskRule(); BeanUtils.copyProperties(dto, xpTaskRule); this.updateById(xpTaskRule); taskRuleRoleMapper.delete(new LambdaQueryWrapper() .isNotNull(XpTaskRuleRole::getId)); for (XpTaskRuleRole xpTaskRuleRole : dto.getTaskRuleRoleList()) { taskRuleRoleMapper.insert(xpTaskRuleRole); } }else{ XpTaskRule xpTaskRule = new XpTaskRule(); BeanUtils.copyProperties(dto, xpTaskRule); this.save(xpTaskRule); for (XpTaskRuleRole xpTaskRuleRole : dto.getTaskRuleRoleList()) { taskRuleRoleMapper.insert(xpTaskRuleRole); } } } }