| | |
| | | personTrainingDetailed.setPlanId(planId); |
| | | personTrainingDetailed.setState(3); |
| | | |
| | | personTrainingDetailed.setTrainingDate(i.getTrainingDate()); |
| | | personTrainingDetailed.setTrainingDate(normalizeTrainingDate(i.getTrainingDate())); |
| | | |
| | | |
| | | personTrainingDetailedList.add(personTrainingDetailed); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 培训时间统一成 yyyy-MM-dd。 |
| | | * Excel 里被自动识别成日期的单元格读出来是 2026/3/15,手工录入的是 2026-03-15, |
| | | * 这里统一转换,避免导出时格式不一致。 |
| | | */ |
| | | private String normalizeTrainingDate(String value) { |
| | | if (value == null || value.isBlank()) { |
| | | return value; |
| | | } |
| | | String text = value.trim().split("\\s+")[0] |
| | | .replace('年', '-').replace('月', '-').replace("日", "") |
| | | .replace('/', '-').replace('.', '-'); |
| | | String[] parts = text.split("-"); |
| | | if (parts.length == 3) { |
| | | try { |
| | | int year = Integer.parseInt(parts[0].trim()); |
| | | int month = Integer.parseInt(parts[1].trim()); |
| | | int day = Integer.parseInt(parts[2].trim()); |
| | | return String.format("%04d-%02d-%02d", year, month, day); |
| | | } catch (NumberFormatException ignored) { |
| | | // 不是可识别的日期格式,原样保存 |
| | | } |
| | | } |
| | | return value.trim(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteAnnualPlanDetailTable(String ids) { |
| | | String[] split = ids.split(","); |