package cn.iocoder.yudao.module.mes.service.pd.basedata; 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.basedata.vo.MesPdServicePackagePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pd.basedata.vo.MesPdServicePackageRespVO; import cn.iocoder.yudao.module.mes.controller.admin.pd.basedata.vo.MesPdServicePackageSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.basedata.MesPdServicePackageDO; import cn.iocoder.yudao.module.mes.dal.mysql.pd.basedata.MesPdServicePackageMapper; import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum; import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; 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_SERVICE_PACKAGE_NOT_EXISTS; /** * MES 服务套餐基础信息 Service 实现类 * * @author 超级管理员 */ @Service @Validated public class MesPdServicePackageServiceImpl implements MesPdServicePackageService { @Resource private MesPdServicePackageMapper servicePackageMapper; @Resource @Lazy private MesMdAutoCodeRecordService autoCodeRecordService; @Override @Transactional(rollbackFor = Exception.class) public Long createServicePackage(MesPdServicePackageSaveReqVO createReqVO) { MesPdServicePackageDO entity = BeanUtils.toBean(createReqVO, MesPdServicePackageDO.class); entity.setCode(autoCodeRecordService.generateAutoCode(MesMdAutoCodeRuleCodeEnum.PD_PACKAGE_CODE.getCode())); servicePackageMapper.insert(entity); return entity.getId(); } @Override @Transactional(rollbackFor = Exception.class) public void updateServicePackage(MesPdServicePackageSaveReqVO updateReqVO) { MesPdServicePackageDO packageDO = validateServicePackageExists(updateReqVO.getId()); MesPdServicePackageDO entity = BeanUtils.toBean(updateReqVO, MesPdServicePackageDO.class); entity.setCode(packageDO.getCode()); servicePackageMapper.updateById(entity); } @Override public void deleteServicePackage(Long id) { validateServicePackageExists(id); servicePackageMapper.deleteById(id); } @Override public MesPdServicePackageRespVO getServicePackage(Long id) { MesPdServicePackageDO entity = servicePackageMapper.selectById(id); return entity == null ? null : BeanUtils.toBean(entity, MesPdServicePackageRespVO.class); } @Override public PageResult getServicePackagePage(MesPdServicePackagePageReqVO pageReqVO) { return BeanUtils.toBean(servicePackageMapper.selectPage(pageReqVO), MesPdServicePackageRespVO.class); } @Override public List getServicePackageList() { return servicePackageMapper.selectList(); } @Override public MesPdServicePackageDO validateServicePackageExists(Long id) { MesPdServicePackageDO entity = servicePackageMapper.selectById(id); if (entity == null) { throw exception(PD_SERVICE_PACKAGE_NOT_EXISTS); } return entity; } }