|
@@ -93,32 +93,42 @@ public class XDImplService implements XDService {
|
|
|
List<Map> formComponentValues = (List<Map>) record.get("formComponentValues");
|
|
|
if (tmpCode.equals(XDConf.TMP_CODE_CC)) {
|
|
|
String schedule = (String) formComponentValues.stream().filter(item -> "itinerary".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
- List<Map> rowValue = (List<Map>) ((List<Map>) JSON.parse(schedule)).get(0).get("rowValue");
|
|
|
- startTime = (String) rowValue.stream().filter(item -> "startTime".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
- endTime = (String) rowValue.stream().filter(item -> "endTime".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
+ // ppExt: 出差申请单为明细组件, 存在多条情况 23.07.03
|
|
|
+ List<Map> itineraryList = ((List<Map>) JSON.parse(schedule));
|
|
|
+ for (Map itinerary : itineraryList) {
|
|
|
+ List<Map> rowValue = (List<Map>) itinerary.get("rowValue");
|
|
|
+ startTime = (String) rowValue.stream().filter(item -> "startTime".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
+ endTime = (String) rowValue.stream().filter(item -> "endTime".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
+ _approveRecord(instanceId, type, userPo, userId, startTime, endTime);
|
|
|
+ }
|
|
|
} else {
|
|
|
formComponentValues = (List<Map>) record.get("formComponentValues");
|
|
|
startTime = (String) formComponentValues.stream().filter(item -> "startTime".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
endTime = (String) formComponentValues.stream().filter(item -> "finishTime".equals(item.get("bizAlias"))).findAny().get().get("value");
|
|
|
+ _approveRecord(instanceId, type, userPo, userId, startTime, endTime);
|
|
|
}
|
|
|
- // 不区分半天考勤时段, 全天都可进行打卡
|
|
|
- Date sTime = UtilDateTime.parseDateTime(startTime.split(" ")[0] + " 00:00:00");
|
|
|
- Date eTime = UtilDateTime.parseDateTime(endTime.split(" ")[0] + " 23:59:59");
|
|
|
- XdDdApproveRecordPo approveRecordPo = XdDdApproveRecordPo.builder()
|
|
|
- .userId(userId)
|
|
|
- .userName(userPo.getName())
|
|
|
- .openUserId(userPo.getIdFxxk())
|
|
|
- .instanceId(instanceId)
|
|
|
- .startTime(sTime)
|
|
|
- .endTime(eTime)
|
|
|
- .type(type)
|
|
|
- .build();
|
|
|
- ddApproveRecordDao.save(approveRecordPo);
|
|
|
- log.info("同步出差和人员信息, {}, {}", userPo, approveRecordPo);
|
|
|
- _attendanceSync(sTime, eTime, userPo.getIdFxxk(), userId); // 兼容后补审批记录
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ // ppExt: 出差申请单为明细组件, 存在多条情况 23.07.03
|
|
|
+ void _approveRecord(String instanceId, String type, XdDdFxkRelationPo userPo, String userId, String startTime, String endTime) {
|
|
|
+ // 不区分半天考勤时段, 全天都可进行打卡
|
|
|
+ Date sTime = UtilDateTime.parseDateTime(startTime.split(" ")[0] + " 00:00:00");
|
|
|
+ Date eTime = UtilDateTime.parseDateTime(endTime.split(" ")[0] + " 23:59:59");
|
|
|
+ XdDdApproveRecordPo approveRecordPo = XdDdApproveRecordPo.builder()
|
|
|
+ .userId(userId)
|
|
|
+ .userName(userPo.getName())
|
|
|
+ .openUserId(userPo.getIdFxxk())
|
|
|
+ .instanceId(instanceId)
|
|
|
+ .startTime(sTime)
|
|
|
+ .endTime(eTime)
|
|
|
+ .type(type)
|
|
|
+ .build();
|
|
|
+ ddApproveRecordDao.save(approveRecordPo);
|
|
|
+ log.info("同步出差和人员信息, {}, {}", userPo, approveRecordPo);
|
|
|
+ _attendanceSync(sTime, eTime, userPo.getIdFxxk(), userId); // 兼容后补审批记录
|
|
|
+ }
|
|
|
+
|
|
|
// 同步纷享销客人员信息
|
|
|
private XdDdFxkRelationPo _syncUserInfo(String userId) {
|
|
|
// 更新人员对照记录表, 包括失败备注
|