package com.ruoyi.quality.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO;
import com.ruoyi.common.enums.RawMaterialCheckResult;
import com.ruoyi.common.enums.RawMaterialCheckType;
import com.ruoyi.common.enums.RawMaterialInspectState;
import com.ruoyi.production.mapper.ProductProcessRouteMapper;
import com.ruoyi.quality.dto.RawMaterialDto;
import com.ruoyi.quality.mapper.RawMaterialQualityInspectItemMapper;
import com.ruoyi.quality.pojo.RawMaterial;
import com.ruoyi.quality.mapper.RawMaterialMapper;
import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
import com.ruoyi.quality.service.RawMaterialQualityInspectItemService;
import com.ruoyi.quality.service.RawMaterialService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-03-13 02:44:09
*/
@AllArgsConstructor
@Service
public class RawMaterialServiceImpl extends ServiceImpl implements RawMaterialService {
private RawMaterialMapper rawMaterialMapper;
private RawMaterialQualityInspectItemService rawMaterialQualityInspectItemService;
@Override
public IPage listPage(Page page, RawMaterialDto rawMaterialDto) {
IPage rawMaterials = rawMaterialMapper.listPage(page, rawMaterialDto);
for (RawMaterialDto rawMaterial : rawMaterials.getRecords()) {
rawMaterial.setCheckTypeText(RawMaterialCheckType.fromValue(rawMaterial.getCheckType()).getValue());
rawMaterial.setCheckResultText(RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()).getValue());
rawMaterial.setInspectStateText(RawMaterialInspectState.fromValue(rawMaterial.getInspectState()).getValue());
}
return rawMaterials;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(RawMaterialDto rawMaterialDto) {
// 新增检测项关联关系
if (rawMaterialDto.getQualityInspectItemIds() != null && !rawMaterialDto.getQualityInspectItemIds().isEmpty()) {
List rawMaterialQualityInspectItems = rawMaterialDto.getQualityInspectItemIds().stream()
.map(id -> {
RawMaterialQualityInspectItem item = new RawMaterialQualityInspectItem();
item.setRawMaterialId(rawMaterialDto.getId());
item.setQualityInspectItemId(id);
return item;
})
.collect(Collectors.toList());
rawMaterialQualityInspectItemService.saveBatch(rawMaterialQualityInspectItems);
}
// 新增原料
return rawMaterialMapper.insert(rawMaterialDto) > 0;
}
}