|
@@ -2807,7 +2807,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
if(timeType.getSyncSap()==1){
|
|
|
- cancelReportPushSap(reportIds,user);
|
|
|
+ List<Integer> reportIdList = ListUtil.convertIntegerIdsArrayToList(reportIds);
|
|
|
+ List<ReportPushLog> reportPushLogs = reportPushLogService.list(new LambdaQueryWrapper<ReportPushLog>().in(ReportPushLog::getReportId, reportIdList));
|
|
|
+ String uuids = reportPushLogs.stream().map(ReportPushLog::getUuid).collect(Collectors.toList()).stream().collect(Collectors.joining(","));
|
|
|
+ cancelReportPushSap(uuids,user);
|
|
|
}
|
|
|
return httpRespMsg;
|
|
|
}
|
|
@@ -7685,73 +7688,73 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
@Override
|
|
|
public HttpRespMsg cannelAllReport() {
|
|
|
List<ReportPushLog> list = reportPushLogService.list();
|
|
|
- List<Integer> collect = list.stream().map(ReportPushLog::getReportId).distinct().collect(Collectors.toList());
|
|
|
- String s = collect.stream().map(m -> String.valueOf(m)).collect(Collectors.joining(","));
|
|
|
+ List<String> collect = list.stream().map(ReportPushLog::getUuid).distinct().collect(Collectors.toList());
|
|
|
+ String s = collect.stream().map(m -> m).collect(Collectors.joining(","));
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
cancelReportPushSap(s,user);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- public void cancelReportPushSap(String reportIds, User user){
|
|
|
- if(!StringUtils.isEmpty(reportIds)){
|
|
|
+ public void cancelReportPushSap(String uuids, User user){
|
|
|
+ if(!StringUtils.isEmpty(uuids)){
|
|
|
LocalDateTime localDateTime=LocalDateTime.now();
|
|
|
List<SapSyncLog> sapSyncLogs=new ArrayList<>();
|
|
|
- List<Integer> reportIdList = ListUtil.convertIntegerIdsArrayToList(reportIds);
|
|
|
- List<ReportPushLog> reportPushLogList = reportPushLogService.list(new LambdaQueryWrapper<ReportPushLog>().in(ReportPushLog::getReportId, reportIdList));
|
|
|
- for (Integer reportId : reportIdList) {
|
|
|
- Optional<ReportPushLog> first = reportPushLogList.stream().filter(r -> r.getReportId().equals(reportId)).findFirst();
|
|
|
- if(first.isPresent()){
|
|
|
- XmlRequestData xmlRequestData=new XmlRequestData();
|
|
|
- ZDeleteEmployeeTime zDeleteEmployeeTime=new ZDeleteEmployeeTime();
|
|
|
- zDeleteEmployeeTime.setEmployeeTimeUUID(first.get().getUuid()==null?"":first.get().getUuid());
|
|
|
- xmlRequestData.setZDeleteEmployeeTime(zDeleteEmployeeTime);
|
|
|
- String xml = CommonUtils.convertToXml(xmlRequestData);
|
|
|
- System.out.println(xml);
|
|
|
- xml=xml.substring(xml.indexOf("<XMLDATA>")+9,xml.lastIndexOf("</XMLDATA>"));
|
|
|
- StringBuffer sb = new StringBuffer();
|
|
|
- sb.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:glob=\"http://sap.com/xi/SAPGlobal20/Global\">\n" +
|
|
|
- " <soapenv:Header/>\n" +
|
|
|
- " <soapenv:Body>\n" +
|
|
|
- " <glob:ZDeleteEmployeeTimeCreateRequest_sync>\n");
|
|
|
- sb.append(xml);
|
|
|
- sb.append(" </glob:ZDeleteEmployeeTimeCreateRequest_sync>\n" +
|
|
|
- " </soapenv:Body>\n" +
|
|
|
- "</soapenv:Envelope>");
|
|
|
- System.out.println(sb.toString());
|
|
|
- String result = "";
|
|
|
- try {
|
|
|
- if(isDev){
|
|
|
- result = WebServiceUtils.requestByXml("https://my602728.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my602728.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
|
|
|
- }else{
|
|
|
- result = WebServiceUtils.requestByXml("https://my601432.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my601432.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
|
|
|
- }
|
|
|
+ List<String> uuidList = ListUtil.convertLongIdsArrayToList(uuids);
|
|
|
+ for (String uuid : uuidList) {
|
|
|
+ int count = reportPushLogService.count(new LambdaQueryWrapper<ReportPushLog>().eq(ReportPushLog::getUuid, uuid));
|
|
|
+ if(count>0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ XmlRequestData xmlRequestData=new XmlRequestData();
|
|
|
+ ZDeleteEmployeeTime zDeleteEmployeeTime=new ZDeleteEmployeeTime();
|
|
|
+ zDeleteEmployeeTime.setEmployeeTimeUUID(uuid);
|
|
|
+ xmlRequestData.setZDeleteEmployeeTime(zDeleteEmployeeTime);
|
|
|
+ String xml = CommonUtils.convertToXml(xmlRequestData);
|
|
|
+ System.out.println(xml);
|
|
|
+ xml=xml.substring(xml.indexOf("<XMLDATA>")+9,xml.lastIndexOf("</XMLDATA>"));
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ sb.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:glob=\"http://sap.com/xi/SAPGlobal20/Global\">\n" +
|
|
|
+ " <soapenv:Header/>\n" +
|
|
|
+ " <soapenv:Body>\n" +
|
|
|
+ " <glob:ZDeleteEmployeeTimeCreateRequest_sync>\n");
|
|
|
+ sb.append(xml);
|
|
|
+ sb.append(" </glob:ZDeleteEmployeeTimeCreateRequest_sync>\n" +
|
|
|
+ " </soapenv:Body>\n" +
|
|
|
+ "</soapenv:Envelope>");
|
|
|
+ System.out.println(sb.toString());
|
|
|
+ String result = "";
|
|
|
+ try {
|
|
|
+ result = WebServiceUtils.requestByXml("https://my601432.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my601432.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
|
|
|
+// if(isDev){
|
|
|
+// result = WebServiceUtils.requestByXml("https://my602728.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my602728.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
|
|
|
+// }else{
|
|
|
// result = WebServiceUtils.requestByXml("https://my601432.sapbyd.cn/sap/bc/srt/scs/sap/yyatr5vf6y_deleteemployeetime?sap-vhost=my601432.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- if(!StringUtils.isEmpty(result)) {
|
|
|
- result = result.substring(result.indexOf("<soap-env:Body>")+15, result.lastIndexOf("</soap-env:Body>"));
|
|
|
- result = result.substring(result.indexOf(">")+1, result.lastIndexOf("</n0:ZDeleteEmployeeTimeCreateConfirmation_sync>"));
|
|
|
- result="<XMLDATA>"+result+"</XMLDATA>";
|
|
|
- }
|
|
|
- System.out.println(result);
|
|
|
- XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
|
|
|
- SapSyncLog sapSyncLog=new SapSyncLog();
|
|
|
- sapSyncLog.setCompanyId(user.getCompanyId());
|
|
|
- sapSyncLog.setRemark("日报数据取消推送");
|
|
|
- sapSyncLog.setSyncType("手动推送");
|
|
|
- sapSyncLog.setOperator(user.getJobNumber());
|
|
|
- sapSyncLog.setSyncTime(localDateTime);
|
|
|
- if(StringUtils.isEmpty(xmlResponseData.getZDeleteEmployeeTime())){
|
|
|
- log.error("推送取消考勤失败===》UUID:"+xmlRequestData.getZDeleteEmployeeTime().getEmployeeTimeUUID());
|
|
|
- sapSyncLog.setResult("推送取消考勤失败");
|
|
|
- }else {
|
|
|
- //删除推送记录
|
|
|
- sapSyncLog.setResult("推送取消考勤成功");
|
|
|
- reportPushLogService.remove(new LambdaQueryWrapper<ReportPushLog>().eq(ReportPushLog::getReportId,reportId));
|
|
|
- }
|
|
|
- sapSyncLogs.add(sapSyncLog);
|
|
|
+// }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
+ if(!StringUtils.isEmpty(result)) {
|
|
|
+ result = result.substring(result.indexOf("<soap-env:Body>")+15, result.lastIndexOf("</soap-env:Body>"));
|
|
|
+ result = result.substring(result.indexOf(">")+1, result.lastIndexOf("</n0:ZDeleteEmployeeTimeCreateConfirmation_sync>"));
|
|
|
+ result="<XMLDATA>"+result+"</XMLDATA>";
|
|
|
+ }
|
|
|
+ System.out.println(result);
|
|
|
+ XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
|
|
|
+ SapSyncLog sapSyncLog=new SapSyncLog();
|
|
|
+ sapSyncLog.setCompanyId(user.getCompanyId());
|
|
|
+ sapSyncLog.setRemark("日报数据取消推送");
|
|
|
+ sapSyncLog.setSyncType("手动推送");
|
|
|
+ sapSyncLog.setOperator(user.getJobNumber());
|
|
|
+ sapSyncLog.setSyncTime(localDateTime);
|
|
|
+ if(StringUtils.isEmpty(xmlResponseData.getZDeleteEmployeeTime())){
|
|
|
+ log.error("推送取消考勤失败===》UUID:"+xmlRequestData.getZDeleteEmployeeTime().getEmployeeTimeUUID());
|
|
|
+ sapSyncLog.setResult("推送取消考勤失败");
|
|
|
+ }else {
|
|
|
+ //删除推送记录
|
|
|
+ sapSyncLog.setResult("推送取消考勤成功");
|
|
|
+ reportPushLogService.remove(new LambdaQueryWrapper<ReportPushLog>().eq(ReportPushLog::getUuid,uuid));
|
|
|
+ }
|
|
|
+ sapSyncLogs.add(sapSyncLog);
|
|
|
}
|
|
|
if(sapSyncLogs.size()>0){
|
|
|
sapSyncLogService.saveBatch(sapSyncLogs);
|
|
@@ -8394,4 +8397,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
result.add(start);
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg getHasPushForSap(String startDate, String endDate, String employeeID) {
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
+ XmlResponseData hasPushForSap = SyncSapUtils.getHasPushForSap(startDate, endDate, employeeID, isDev);
|
|
|
+ User user = userMapper.selectById(request.getHeader("token"));
|
|
|
+ Integer companyId = user.getCompanyId();
|
|
|
+ //是否要撤销相关数据
|
|
|
+ List<ActualEmployeeTime> actualEmployeeTimes = hasPushForSap.getActualEmployeeTimes();
|
|
|
+ List<String> allUuids = actualEmployeeTimes.stream().map(ActualEmployeeTime::getUUID).distinct().collect(Collectors.toList());
|
|
|
+ List<String> needUuidList=new ArrayList<>();
|
|
|
+ String uuids = allUuids.stream().map(n -> n).collect(Collectors.joining(","));
|
|
|
+ cancelReportPushSap(uuids,user);
|
|
|
+ msg.setData(actualEmployeeTimes);
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
}
|