package com.chinaztt.mes.production.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chinaztt.mes.production.dto.HandymanTableDTO; import com.chinaztt.mes.production.entity.HandymanTable; import com.chinaztt.mes.production.entity.JoinPersonHandyman; import com.chinaztt.mes.production.mapper.HandymanTableMapper; import com.chinaztt.mes.production.mapper.JoinPersonHandymanMapper; import com.chinaztt.mes.production.service.HandymanTableService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.stream.Collectors; /** * 杂工登记 * * @author cxf * @date 2020-11-04 15:37:05 */ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class HandymanTableServiceImpl extends ServiceImpl implements HandymanTableService { private JoinPersonHandymanMapper joinPersonHandymanMapper; @Override public boolean saveDto(HandymanTableDTO handymanTableDTO) { try { // 1.保存杂工 baseMapper.insert(handymanTableDTO); // 2.保存关系表 saveJoinPersonHandyman(handymanTableDTO); } catch (Exception e) { throw new RuntimeException("杂工登记失败"); } return true; } @Override public boolean updateDtoById(HandymanTableDTO handymanTableDTO) { try { // 1.更新杂工 baseMapper.updateById(handymanTableDTO); // 2.删除关系表 joinPersonHandymanMapper.delete(Wrappers.lambdaQuery().eq(JoinPersonHandyman::getHandymanTableId, handymanTableDTO.getId())); // 3.保存关系表 saveJoinPersonHandyman(handymanTableDTO); } catch (Exception e) { throw new RuntimeException("修改杂工失败"); } return true; } public void saveJoinPersonHandyman(HandymanTableDTO handymanTableDTO) { if (CollectionUtil.isNotEmpty(handymanTableDTO.getPersonBoardIds())) { handymanTableDTO.getPersonBoardIds().forEach(personBoardId -> { JoinPersonHandyman joinPersonHandyman = new JoinPersonHandyman(); joinPersonHandyman.setHandymanTableId(handymanTableDTO.getId()); joinPersonHandyman.setPersonBoardId(personBoardId); joinPersonHandymanMapper.insert(joinPersonHandyman); }); } } @Override public HandymanTableDTO getDtoById(Long id) { HandymanTableDTO handymanTableDTO = baseMapper.getDtoById(id); handymanTableDTO.setPersonBoardIds(joinPersonHandymanMapper.selectList(Wrappers.lambdaQuery().eq(JoinPersonHandyman::getHandymanTableId, id)) .stream().map(JoinPersonHandyman::getPersonBoardId).collect(Collectors.toList())); return handymanTableDTO; } @Override public boolean deleteById(Long id) { try { // 1.删除杂工 baseMapper.deleteById(id); // 2.删除关系表 joinPersonHandymanMapper.delete(Wrappers.lambdaQuery().eq(JoinPersonHandyman::getHandymanTableId, id)); } catch (Exception e) { throw new RuntimeException("删除杂工失败"); } return true; } }