package cn.iocoder.yudao.module.mes.service.pd.document; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.pd.document.vo.MesPdDocumentPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pd.document.vo.MesPdDocumentSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.document.MesPdDocumentDO; import cn.iocoder.yudao.module.mes.dal.mysql.pd.document.MesPdDocumentMapper; import cn.iocoder.yudao.module.mes.service.pd.project.MesPdProjectService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.PD_DOCUMENT_NOT_EXISTS; /** * MES 设计资料 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class MesPdDocumentServiceImpl implements MesPdDocumentService { @Resource private MesPdDocumentMapper documentMapper; @Resource @Lazy private MesPdProjectService projectService; @Override public Long createDocument(MesPdDocumentSaveReqVO createReqVO) { // 校验设计项目存在 projectService.validateProjectExists(createReqVO.getProjectId()); // 插入 MesPdDocumentDO document = BeanUtils.toBean(createReqVO, MesPdDocumentDO.class); documentMapper.insert(document); return document.getId(); } @Override public void updateDocument(MesPdDocumentSaveReqVO updateReqVO) { // 校验存在 validateDocumentExists(updateReqVO.getId()); // 更新 MesPdDocumentDO updateObj = BeanUtils.toBean(updateReqVO, MesPdDocumentDO.class); documentMapper.updateById(updateObj); } @Override public void deleteDocument(Long id) { // 校验存在 validateDocumentExists(id); // 删除 documentMapper.deleteById(id); } @Override public MesPdDocumentDO getDocument(Long id) { return documentMapper.selectById(id); } @Override public PageResult getDocumentPage(MesPdDocumentPageReqVO pageReqVO) { return documentMapper.selectPage(pageReqVO); } @Override public List getDocumentListByProjectId(Long projectId) { return documentMapper.selectListByProjectId(projectId); } @Override public void deleteByProjectId(Long projectId) { documentMapper.deleteByProjectId(projectId); } private MesPdDocumentDO validateDocumentExists(Long id) { MesPdDocumentDO document = documentMapper.selectById(id); if (document == null) { throw exception(PD_DOCUMENT_NOT_EXISTS); } return document; } }