package com.ruoyi.system.service.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.SysTaskEmergencyMapper; import com.ruoyi.system.domain.SysTaskEmergency; import com.ruoyi.system.service.ISysTaskEmergencyService; import java.util.List; /** * 急救转运任务扩展信息Service业务层处理 * * @author ruoyi * @date 2024-01-16 */ @Service public class SysTaskEmergencyServiceImpl implements ISysTaskEmergencyService { @Autowired private SysTaskEmergencyMapper sysTaskEmergencyMapper; /** * 查询急救转运任务扩展信息 * * @param id 急救转运任务扩展信息主键 * @return 急救转运任务扩展信息 */ @Override public SysTaskEmergency selectSysTaskEmergencyById(Long id) { return sysTaskEmergencyMapper.selectSysTaskEmergencyById(id); } /** * 通过任务ID查询急救转运任务扩展信息 * * @param taskId 任务ID * @return 急救转运任务扩展信息 */ @Override public SysTaskEmergency selectSysTaskEmergencyByTaskId(Long taskId) { return sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId); } /** * 新增急救转运任务扩展信息 * * @param sysTaskEmergency 急救转运任务扩展信息 * @return 结果 */ @Override public int insertSysTaskEmergency(SysTaskEmergency sysTaskEmergency) { return sysTaskEmergencyMapper.insertSysTaskEmergency(sysTaskEmergency); } /** * 修改急救转运任务扩展信息 * * @param sysTaskEmergency 急救转运任务扩展信息 * @return 结果 */ @Override public int updateSysTaskEmergency(SysTaskEmergency sysTaskEmergency) { return sysTaskEmergencyMapper.updateSysTaskEmergency(sysTaskEmergency); } /** * 删除急救转运任务扩展信息 * * @param id 急救转运任务扩展信息主键 * @return 结果 */ @Override public int deleteSysTaskEmergencyById(Long id) { return sysTaskEmergencyMapper.deleteSysTaskEmergencyById(id); } /** * 通过任务ID删除急救转运任务扩展信息 * * @param taskId 任务ID * @return 结果 */ @Override public int deleteSysTaskEmergencyByTaskId(Long taskId) { return sysTaskEmergencyMapper.deleteSysTaskEmergencyByTaskId(taskId); } /** * 查询待同步的急救转运任务列表(同步状态为0或3的任务) * * @param offset 偏移量 * @param limit 每页数量 * @return 急救转运任务列表 */ @Override public List selectPendingSyncTasks(Integer offset, Integer limit) { return sysTaskEmergencyMapper.selectPendingSyncTasks(offset, limit); } /** * 查询待同步调度单的任务列表(已同步服务单但未同步调度单) * * @param offset 偏移量 * @param limit 每页数量 * @return 急救转运任务列表 */ @Override public List selectPendingDispatchSyncTasks(Integer offset, Integer limit) { return sysTaskEmergencyMapper.selectPendingDispatchSyncTasks(offset, limit); } /** * 查询已同步调度单且状态未完成的任务列表(用于状态同步) * * @param offset 偏移量 * @param limit 每页数量 * @return 急救转运任务列表 */ @Override public List selectSyncedTasksForStatusUpdate(Integer offset, Integer limit) { return sysTaskEmergencyMapper.selectSyncedTasksForStatusUpdate(offset, limit); } /** * 标记任务需要重新同步(车辆或人员变更时调用) */ @Override public void markNeedResync(Long taskId) { try { SysTaskEmergency emergency = sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId); if (emergency == null) { return; } emergency.setNeedResync(1); emergency.setUpdateTime(new java.util.Date()); sysTaskEmergencyMapper.updateSysTaskEmergency(emergency); // // // 只有已经同步过调度单的任务才需要标记重新同步 // if (emergency.getDispatchSyncStatus() != null && emergency.getDispatchSyncStatus() == 2 // && emergency.getLegacyDispatchOrdId() != null && emergency.getLegacyDispatchOrdId() > 0) { // // } } catch (Exception e) { // 标记失败不影响主流程,只记录日志 Logger log = LoggerFactory.getLogger(SysTaskEmergencyServiceImpl.class); log.error("标记任务需要重新同步失败,任务ID: {}", taskId, e); } } }