package cn.iocoder.yudao.module.mes.service.md.workstation; import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker.MesMdWorkstationWorkerSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationWorkerDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationWorkerMapper; import cn.iocoder.yudao.module.system.api.dept.PostApi; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.Collections; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; /** * MES 人力资源 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorkerService { @Resource private MesMdWorkstationWorkerMapper workstationWorkerMapper; @Resource private PostApi postApi; @Override public Long createWorkstationWorker(MesMdWorkstationWorkerSaveReqVO createReqVO) { // 校验数据 validateWorkstationWorkerSaveData(null, createReqVO); // 插入 MesMdWorkstationWorkerDO worker = BeanUtils.toBean(createReqVO, MesMdWorkstationWorkerDO.class); workstationWorkerMapper.insert(worker); return worker.getId(); } @Override public void updateWorkstationWorker(MesMdWorkstationWorkerSaveReqVO updateReqVO) { // 校验存在 validateWorkstationWorkerExists(updateReqVO.getId()); // 校验数据 validateWorkstationWorkerSaveData(updateReqVO.getId(), updateReqVO); // 更新 MesMdWorkstationWorkerDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationWorkerDO.class); workstationWorkerMapper.updateById(updateObj); } private void validateWorkstationWorkerSaveData(Long id, MesMdWorkstationWorkerSaveReqVO reqVO) { // 校验岗位是否存在 postApi.validPostList(Collections.singleton(reqVO.getPostId())); // 校验同一工作站下岗位不重复(排除自身) MesMdWorkstationWorkerDO existing = workstationWorkerMapper.selectByWorkstationIdAndPostId( reqVO.getWorkstationId(), reqVO.getPostId()); if (existing != null && ObjUtil.notEqual(existing.getId(), id)) { throw exception(MD_WORKSTATION_WORKER_POST_EXISTS); } } @Override public void deleteWorkstationWorker(Long id) { // 校验存在 validateWorkstationWorkerExists(id); // 删除 workstationWorkerMapper.deleteById(id); } private void validateWorkstationWorkerExists(Long id) { if (workstationWorkerMapper.selectById(id) == null) { throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS); } } @Override public List getWorkstationWorkerListByWorkstationId(Long workstationId) { return workstationWorkerMapper.selectListByWorkstationId(workstationId); } @Override public void deleteWorkstationWorkerByWorkstationId(Long workstationId) { workstationWorkerMapper.deleteByWorkstationId(workstationId); } }