| | |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.system.mapper.SysTaskMapper; |
| | | |
| | | /** |
| | | * 任务编号生成器 |
| | |
| | | @Component |
| | | public class TaskCodeGenerator { |
| | | |
| | | @Autowired |
| | | private SysTaskMapper sysTaskMapper; |
| | | |
| | | /** |
| | | * 生成任务编号 |
| | | * 格式:TASK + YYYYMMDD + 4位序号 |
| | |
| | | */ |
| | | public String generateTaskCode() { |
| | | String dateStr = DateUtils.dateTimeNow("yyyyMMdd"); |
| | | return "TASK" + dateStr + "0001"; |
| | | return generateTaskCode(dateStr); |
| | | } |
| | | |
| | | /** |
| | |
| | | public String generateTaskCode(Date date) { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); |
| | | String dateStr = sdf.format(date); |
| | | return "TASK" + dateStr + "0001"; |
| | | return generateTaskCode(dateStr); |
| | | } |
| | | |
| | | /** |
| | | * 根据日期字符串生成任务编号 |
| | | * |
| | | * @param dateStr 日期字符串(格式:yyyyMMdd) |
| | | * @return 任务编号 |
| | | */ |
| | | private String generateTaskCode(String dateStr) { |
| | | String datePrefix = "TASK" + dateStr; |
| | | |
| | | // 查询当日最大编号 |
| | | String maxTaskCode = sysTaskMapper.selectMaxTaskCodeByDatePrefix(datePrefix); |
| | | |
| | | int sequence = 1; |
| | | if (maxTaskCode != null && maxTaskCode.startsWith(datePrefix)) { |
| | | // 提取序号部分 |
| | | String sequenceStr = maxTaskCode.substring(datePrefix.length()); |
| | | try { |
| | | sequence = Integer.parseInt(sequenceStr) + 1; |
| | | } catch (NumberFormatException e) { |
| | | sequence = 1; |
| | | } |
| | | } |
| | | |
| | | // 格式化为4位序号 |
| | | return datePrefix + String.format("%04d", sequence); |
| | | } |
| | | } |