|
|
@@ -60,6 +60,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
|
|
60
|
60
|
@Autowired private ILedgerRewardPenaltyService rewardPenaltyService;
|
|
61
|
61
|
@Autowired private ILedgerLeaveSpecialService leaveSpecialService;
|
|
62
|
62
|
@Autowired private ILedgerBannerLetterService bannerLetterService;
|
|
|
63
|
+ @Autowired private ILedgerQualificationLevelService qualificationLevelService;
|
|
63
|
64
|
@Autowired private ILedgerDailyTrainingService dailyTrainingService;
|
|
64
|
65
|
@Autowired private ILedgerLeaderDutyService leaderDutyService;
|
|
65
|
66
|
@Autowired private ILedgerHealthSoldierService healthSoldierService;
|
|
|
@@ -93,6 +94,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
|
|
93
|
94
|
// SHEET_ROUTE.put("部门奖惩记录表", "rewardPenalty");
|
|
94
|
95
|
SHEET_ROUTE.put("请、休假记录表(特殊)", "leaveSpecial");
|
|
95
|
96
|
// SHEET_ROUTE.put("锦旗及感谢信", "bannerLetter");
|
|
|
97
|
+ SHEET_ROUTE.put("职业资格等级获取时间", "qualificationLevel");
|
|
96
|
98
|
// SHEET_ROUTE.put("日常培训记录", "dailyTraining");
|
|
97
|
99
|
// SHEET_ROUTE.put("组长履职情况记录表", "leaderDuty");
|
|
98
|
100
|
// SHEET_ROUTE.put("健康锐兵(2026_3)", "healthSoldier");
|
|
|
@@ -161,6 +163,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
|
|
161
|
163
|
// case "rewardPenalty": return doRewardPenalty(sheet, batchNo, username);
|
|
162
|
164
|
case "leaveSpecial": return doLeaveSpecial(sheet, batchNo, username);
|
|
163
|
165
|
// case "bannerLetter": return doBannerLetter(sheet, batchNo, username);
|
|
|
166
|
+ case "qualificationLevel": return doQualificationLevel(sheet, batchNo, username);
|
|
164
|
167
|
// case "dailyTraining": return doDailyTraining(sheet, batchNo, username);
|
|
165
|
168
|
// case "leaderDuty": return doLeaderDuty(sheet, batchNo, username);
|
|
166
|
169
|
// case "healthSoldier": return doHealthSoldier(sheet, batchNo, username);
|
|
|
@@ -1322,7 +1325,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
|
|
1322
|
1325
|
if (v instanceof Double) return DateUtil.getJavaDate((Double) v);
|
|
1323
|
1326
|
// try parse string
|
|
1324
|
1327
|
String s = v.toString().trim();
|
|
1325
|
|
- for (String fmt : new String[]{"yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd", "yyyy/MM/dd", "HH:mm:ss", "HH:mm"}) {
|
|
|
1328
|
+ for (String fmt : new String[]{"yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd", "yyyy/MM/dd","yyyy.MM.dd", "HH:mm:ss", "HH:mm"}) {
|
|
1326
|
1329
|
try {
|
|
1327
|
1330
|
return new SimpleDateFormat(fmt).parse(s.substring(0, Math.min(s.length(), fmt.length())));
|
|
1328
|
1331
|
} catch (Exception ignore) {}
|
|
|
@@ -1401,6 +1404,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
|
|
1401
|
1404
|
result.put("部门奖惩记录", clearOne(rewardPenaltyService, beginTime, endTime));
|
|
1402
|
1405
|
result.put("请休假记录(特殊)", clearOne(leaveSpecialService, beginTime, endTime));
|
|
1403
|
1406
|
result.put("锦旗及感谢信", clearOne(bannerLetterService, beginTime, endTime));
|
|
|
1407
|
+ result.put("职业资格等级获取时间", clearOne(qualificationLevelService, beginTime, endTime));
|
|
1404
|
1408
|
result.put("日常培训记录", clearOne(dailyTrainingService, beginTime, endTime));
|
|
1405
|
1409
|
result.put("组长履职情况记录", clearOne(leaderDutyService, beginTime, endTime));
|
|
1406
|
1410
|
result.put("健康锐兵", clearOne(healthSoldierService, beginTime, endTime));
|
|
|
@@ -1732,4 +1736,44 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
|
|
1732
|
1736
|
private <T> T copyObject(T source, Class<T> targetClass) {
|
|
1733
|
1737
|
return BeanUtil.toBean(source, targetClass);
|
|
1734
|
1738
|
}
|
|
|
1739
|
+
|
|
|
1740
|
+ /** 职业资格等级获取时间 → ledger_qualification_level
|
|
|
1741
|
+ * 导入顺序:姓名(0) 一级发证时间(1) 二级发证时间(2) 三级发证时间(3)
|
|
|
1742
|
+ * 四级发证时间(4) 五级发证时间(5)
|
|
|
1743
|
+ */
|
|
|
1744
|
+ private int doQualificationLevel(Sheet sheet, String batchNo, String username) {
|
|
|
1745
|
+ List<LedgerQualificationLevel> list = new ArrayList<>();
|
|
|
1746
|
+ for (Object[] c : dataRows(sheet, 2)) {
|
|
|
1747
|
+ LedgerQualificationLevel o = new LedgerQualificationLevel();
|
|
|
1748
|
+
|
|
|
1749
|
+ String personName = str(c, 0); // 姓名
|
|
|
1750
|
+ o.setPersonName(personName);
|
|
|
1751
|
+ o.setLevelOneTime(date(c, 1)); // 一级发证时间
|
|
|
1752
|
+ o.setLevelTwoTime(date(c, 2)); // 二级发证时间
|
|
|
1753
|
+ o.setLevelThreeTime(date(c, 3)); // 三级发证时间
|
|
|
1754
|
+ o.setLevelFourTime(date(c, 4)); // 四级发证时间
|
|
|
1755
|
+ o.setLevelFiveTime(date(c, 5)); // 五级发证时间
|
|
|
1756
|
+
|
|
|
1757
|
+ // 根据姓名查找组织ID和名称
|
|
|
1758
|
+ if (personName != null && !personName.trim().isEmpty()) {
|
|
|
1759
|
+ Map<String, Object> orgInfo = resolveOrgInfoByNameWithCache(personName);
|
|
|
1760
|
+ if (!orgInfo.isEmpty()) {
|
|
|
1761
|
+ o.setUserId((Long) orgInfo.get("userId"));
|
|
|
1762
|
+ o.setDeptId((Long) orgInfo.get("deptId"));
|
|
|
1763
|
+ o.setDeptName((String) orgInfo.get("deptName"));
|
|
|
1764
|
+ o.setTeamId((Long) orgInfo.get("teamId"));
|
|
|
1765
|
+ o.setTeamName((String) orgInfo.get("teamName"));
|
|
|
1766
|
+ o.setGroupId((Long) orgInfo.get("groupId"));
|
|
|
1767
|
+ o.setGroupName((String) orgInfo.get("groupName"));
|
|
|
1768
|
+ }
|
|
|
1769
|
+ }
|
|
|
1770
|
+
|
|
|
1771
|
+ o.setImportBatch(batchNo);
|
|
|
1772
|
+ o.setSourceType("1");
|
|
|
1773
|
+ o.setCreateBy(username);
|
|
|
1774
|
+ list.add(o);
|
|
|
1775
|
+ }
|
|
|
1776
|
+ qualificationLevelService.batchInsert(list);
|
|
|
1777
|
+ return list.size();
|
|
|
1778
|
+ }
|
|
1735
|
1779
|
}
|