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<HandymanTableMapper, HandymanTable> 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.<JoinPersonHandyman>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.<JoinPersonHandyman>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.<JoinPersonHandyman>lambdaQuery().eq(JoinPersonHandyman::getHandymanTableId, id));
|
} catch (Exception e) {
|
throw new RuntimeException("删除杂工失败");
|
}
|
return true;
|
}
|
}
|