package org.jeecg.modules.tms.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.modules.tms.convert.PreparationOrderConvert; import org.jeecg.modules.tms.entity.PreparationOrder; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import org.jeecg.modules.tms.entity.dto.PreparationOrderAndDetailDto; import org.jeecg.modules.tms.mapper.PreparationOrderDetailMapper; import org.jeecg.modules.tms.mapper.PreparationOrderMapper; import org.jeecg.modules.tms.service.IPreparationOrderDetailService; import org.jeecg.modules.tms.service.IPreparationOrderService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.List; import java.util.Collection; /** * @Description: 刀具准备单 * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ @Service public class PreparationOrderServiceImpl extends ServiceImpl implements IPreparationOrderService { @Autowired private PreparationOrderMapper preparationOrderMapper; @Autowired private PreparationOrderDetailMapper preparationOrderDetailMapper; @Autowired private IPreparationOrderDetailService preparationOrderDetailService; @Override @Transactional(rollbackFor = Exception.class) public void delMain(String id) { preparationOrderDetailMapper.deleteByMainId(id); preparationOrderMapper.deleteById(id); } @Override @Transactional(rollbackFor = Exception.class) public void delBatchMain(Collection idList) { for(Serializable id:idList) { preparationOrderDetailMapper.deleteByMainId(id.toString()); preparationOrderMapper.deleteById(id); } } @Override @Transactional(rollbackFor = Exception.class) public void editTotal(PreparationOrderAndDetailDto preparationOrderAndDetailDto) { //先删除所有明细 preparationOrderDetailMapper.delete(new LambdaQueryWrapper() .eq(PreparationOrderDetail::getPreparationOrderId, preparationOrderAndDetailDto.getId())); PreparationOrder preparationOrder = PreparationOrderConvert.INSTANCE.convert(preparationOrderAndDetailDto); updateById(preparationOrder); List detailUpdateList = CollectionUtil.newArrayList(); preparationOrderAndDetailDto.getPreparationOrderDetailList().forEach(item->{ item.setPreparationOrderId(preparationOrder.getId()); detailUpdateList.add(item); }); preparationOrderDetailService.saveBatch(detailUpdateList); } }