|
@@ -1604,7 +1604,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
String date,
|
|
String date,
|
|
String startDate,
|
|
String startDate,
|
|
String endDate,
|
|
String endDate,
|
|
- String userId,HttpServletRequest request) {
|
|
|
|
|
|
+ String userId,String auditUserId,HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
try {
|
|
try {
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
@@ -1620,7 +1620,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
if (!StringUtils.isEmpty(userId)) {
|
|
if (!StringUtils.isEmpty(userId)) {
|
|
targetUids = ListUtil.convertLongIdsArrayToList(userId);
|
|
targetUids = ListUtil.convertLongIdsArrayToList(userId);
|
|
}
|
|
}
|
|
- List<Map<String, Object>> auditReportList = reportMapper.getAuditReportList(date, companyId, departmentId, projectId, leaderId, isEngeering, startDate, endDate, targetUids);
|
|
|
|
|
|
+ List<Map<String, Object>> auditReportList = reportMapper.getAuditReportList(date, companyId, departmentId, projectId, leaderId, isEngeering, startDate, endDate, targetUids,auditUserId);
|
|
//针对依斯贝增加服务名称显示
|
|
//针对依斯贝增加服务名称显示
|
|
if (companyId == 3092) {
|
|
if (companyId == 3092) {
|
|
List<SapProjectService> serviceList = sapProjectServiceMapper.selectList(new QueryWrapper<SapProjectService>().eq("company_id", companyId));
|
|
List<SapProjectService> serviceList = sapProjectServiceMapper.selectList(new QueryWrapper<SapProjectService>().eq("company_id", companyId));
|
|
@@ -2807,7 +2807,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
|
|
|
|
if(timeType.getSyncSap()==1){
|
|
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;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
@@ -5490,33 +5493,37 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
if (company.getIsInternational() == 1) {
|
|
if (company.getIsInternational() == 1) {
|
|
operateDate = operateDate.plusSeconds(offsetSeconds);
|
|
operateDate = operateDate.plusSeconds(offsetSeconds);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
String time = dtf.format(operateDate);
|
|
String time = dtf.format(operateDate);
|
|
String msg= "";
|
|
String msg= "";
|
|
- if(needCorpWxTranslate){
|
|
|
|
- Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(audit.getOperatorId())).findFirst();
|
|
|
|
- if(first.isPresent()){
|
|
|
|
- String corpwxUserId = first.get().getCorpwxUserid();
|
|
|
|
- if (auditMsg.contains(corpwxUserId)) {
|
|
|
|
- if(auditMsg.contains("提交了")){
|
|
|
|
- int i = auditMsg.indexOf("提");
|
|
|
|
- String substring = auditMsg.substring(0, i);
|
|
|
|
- msg = time+" " + auditMsg.replace(substring,"\\$userName="+corpwxUserId+"\\$");
|
|
|
|
- }else if(auditMsg.contains("审核通过了")){
|
|
|
|
- int i = auditMsg.indexOf("审");
|
|
|
|
- String substring = auditMsg.substring(0, i);
|
|
|
|
- msg = time+" " + auditMsg.replace(substring,"\\$userName="+corpwxUserId+"\\$");
|
|
|
|
- }else if(auditMsg.contains("驳回了")) {
|
|
|
|
- int i = auditMsg.indexOf("驳");
|
|
|
|
- String substring = auditMsg.substring(0, i);
|
|
|
|
- msg = time+" " + auditMsg.replace(substring,"\\$userName="+corpwxUserId+"\\$");
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- msg = time+" " + auditMsg;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else {
|
|
|
|
- msg = time+" " + auditMsg;
|
|
|
|
- }
|
|
|
|
|
|
+ if (auditMsg != null) {
|
|
|
|
+ if(needCorpWxTranslate){
|
|
|
|
+ Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(audit.getOperatorId())).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ String corpwxUserId = first.get().getCorpwxUserid();
|
|
|
|
+ if (!StringUtils.isEmpty(corpwxUserId) && auditMsg.contains(corpwxUserId)) {
|
|
|
|
+ if(auditMsg.contains("提交了")){
|
|
|
|
+ int i = auditMsg.indexOf("提");
|
|
|
|
+ String substring = auditMsg.substring(0, i);
|
|
|
|
+ msg = time+" " + auditMsg.replace(substring,"\\$userName="+corpwxUserId+"\\$");
|
|
|
|
+ }else if(auditMsg.contains("审核通过了")){
|
|
|
|
+ int i = auditMsg.indexOf("审");
|
|
|
|
+ String substring = auditMsg.substring(0, i);
|
|
|
|
+ msg = time+" " + auditMsg.replace(substring,"\\$userName="+corpwxUserId+"\\$");
|
|
|
|
+ }else if(auditMsg.contains("驳回了")) {
|
|
|
|
+ int i = auditMsg.indexOf("驳");
|
|
|
|
+ String substring = auditMsg.substring(0, i);
|
|
|
|
+ msg = time+" " + auditMsg.replace(substring,"\\$userName="+corpwxUserId+"\\$");
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ msg = time+" " + auditMsg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ msg = time+" " + auditMsg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (!isFirst) {
|
|
if (!isFirst) {
|
|
sb.append("->");
|
|
sb.append("->");
|
|
} else {
|
|
} else {
|
|
@@ -7146,6 +7153,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
String userId = request.getHeader("TOKEN");
|
|
String userId = request.getHeader("TOKEN");
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
|
|
+ Company company = companyMapper.selectById(user.getCompanyId());
|
|
//根据targetDate获取本周的日期
|
|
//根据targetDate获取本周的日期
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
LocalDate date = LocalDate.parse(targetDate, dtf);
|
|
LocalDate date = LocalDate.parse(targetDate, dtf);
|
|
@@ -7161,10 +7169,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().eq("creator_id", userId).between("create_date", startDate, endDate).orderByAsc("create_date"));
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().eq("creator_id", userId).between("create_date", startDate, endDate).orderByAsc("create_date"));
|
|
|
|
|
|
List<Integer> collect = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
List<Integer> collect = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
+ List<User> auditorList = new ArrayList<>();
|
|
//加载这段时间内已填报过的项目
|
|
//加载这段时间内已填报过的项目
|
|
List<Project> projectList = new ArrayList<>();
|
|
List<Project> projectList = new ArrayList<>();
|
|
if (collect.size() > 0) {
|
|
if (collect.size() > 0) {
|
|
projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
|
|
projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
|
|
|
|
+ auditorList = userMapper.selectList(new QueryWrapper<User>().in("id", reportList.stream().map(Report::getProjectAuditorId).collect(Collectors.toList())));
|
|
} else {
|
|
} else {
|
|
//没有项目,默认加载最近填报过的项目
|
|
//没有项目,默认加载最近填报过的项目
|
|
List<Report> oldReport = reportMapper.selectList(new QueryWrapper<Report>().select("distinct project_id").eq("creator_id", userId).orderByDesc("id").last("limit 5"));
|
|
List<Report> oldReport = reportMapper.selectList(new QueryWrapper<Report>().select("distinct project_id").eq("creator_id", userId).orderByDesc("id").last("limit 5"));
|
|
@@ -7172,13 +7182,57 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", oldReport.stream().map(Report::getProjectId).collect(Collectors.toList())));
|
|
projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", oldReport.stream().map(Report::getProjectId).collect(Collectors.toList())));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-//
|
|
|
|
-// List<TaskGroup> allGroupList = taskGroupMapper.selectList(new QueryWrapper<TaskGroup>().in("project_id", projectList.stream().map(Project::getId).collect(Collectors.toList())));
|
|
|
|
-// //获取当前日报项目下的所有任务分组
|
|
|
|
-// for (Report report : reportList) {
|
|
|
|
-// Integer targetPid = report.getProjectId();
|
|
|
|
-// report.setTaskGroups(allGroupList.stream().filter(tg->tg.getProjectId().equals(targetPid)).collect(Collectors.toList()));
|
|
|
|
-// }
|
|
|
|
|
|
+ List<SapProjectService> sapProjectServices = new ArrayList<>();
|
|
|
|
+ if (company.getId() == 3092) {
|
|
|
|
+ sapProjectServices = sapProjectServiceMapper.selectList(new QueryWrapper<SapProjectService>().eq("company_id",company.getId()));
|
|
|
|
+ }
|
|
|
|
+ //专业版要取任务分组
|
|
|
|
+ List<TaskGroup> allGroupList = new ArrayList<>();
|
|
|
|
+ List<Task> taskList = new ArrayList<>();
|
|
|
|
+ if (projectList.size() > 0) {
|
|
|
|
+ if (company.getPackageProject() == 1) {
|
|
|
|
+ allGroupList = taskGroupMapper.selectList(new QueryWrapper<TaskGroup>().in("project_id", projectList.stream().map(Project::getId).collect(Collectors.toList())));
|
|
|
|
+ taskList = taskMapper.selectList(new QueryWrapper<Task>().select("id, name").in("project_id", projectList.stream().map(Project::getId).collect(Collectors.toList())));
|
|
|
|
+ }
|
|
|
|
+ //获取当前日报项目下的所有任务分组
|
|
|
|
+ for (Report report : reportList) {
|
|
|
|
+ Integer targetPid = report.getProjectId();
|
|
|
|
+ if (company.getPackageProject() == 1) {
|
|
|
|
+ report.setTaskGroups(allGroupList.stream().filter(tg->tg.getProjectId().equals(targetPid)).collect(Collectors.toList()));
|
|
|
|
+ if (report.getGroupId() != null) {
|
|
|
|
+ //设置已经填报的任务分组名称
|
|
|
|
+ Optional<TaskGroup> optional = allGroupList.stream().filter(tg->tg.getId().equals(report.getGroupId())).findFirst();
|
|
|
|
+ if (optional.isPresent()) {
|
|
|
|
+ report.setGroupName(optional.get().getName());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //任务名称设置
|
|
|
|
+ if (report.getTaskId() != null) {
|
|
|
|
+ Optional<Task> optional = taskList.stream().filter(t->t.getId().equals(report.getTaskId())).findFirst();
|
|
|
|
+ if (optional.isPresent()) {
|
|
|
|
+ report.setTaskName(optional.get().getName());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //设置项目名称
|
|
|
|
+ Optional<Project> optional = projectList.stream().filter(p->p.getId().equals(report.getProjectId())).findFirst();
|
|
|
|
+ if (optional.isPresent()) {
|
|
|
|
+ report.setProjectName(optional.get().getProjectName());
|
|
|
|
+ }
|
|
|
|
+ //设置ProjectAuditorName
|
|
|
|
+ Optional<User> optionalUser = auditorList.stream().filter(u->u.getId().equals(report.getProjectAuditorId())).findFirst();
|
|
|
|
+ if (optionalUser.isPresent()) {
|
|
|
|
+ report.setProjectAuditorName(optionalUser.get().getName());
|
|
|
|
+ }
|
|
|
|
+ if (company.getId() == 3092) {
|
|
|
|
+ //依斯倍有SapServiceName
|
|
|
|
+ Optional<SapProjectService> optionalSap = sapProjectServices.stream().filter(s->s.getId().equals(report.getSapServiceId())).findFirst();
|
|
|
|
+ if (optionalSap.isPresent()) {
|
|
|
|
+ report.setSapServiceName(optionalSap.get().getServiceName());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
List cardTimeList = new ArrayList();
|
|
List cardTimeList = new ArrayList();
|
|
if (timeType.getShowDdCardtime() == 1) {
|
|
if (timeType.getShowDdCardtime() == 1) {
|
|
@@ -7349,8 +7403,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
//需要填报的最后一天
|
|
//需要填报的最后一天
|
|
LocalDate lastDayOfWeek = sunday;
|
|
LocalDate lastDayOfWeek = sunday;
|
|
int days = sunday.lengthOfMonth() - sunday.getDayOfMonth();
|
|
int days = sunday.lengthOfMonth() - sunday.getDayOfMonth();
|
|
- if (days <= 2) {
|
|
|
|
- //周日距离月底相差天数在2天以内,比如周日是10.29,则10.30和10.31也算在本周内
|
|
|
|
|
|
+ if (days <= 3) {
|
|
|
|
+ //周日距离月底相差天数在3天以内,比如周日是10.28,则10.29,10.30和10.31也算在本周内
|
|
lastDayOfWeek = sunday.plusDays(days);
|
|
lastDayOfWeek = sunday.plusDays(days);
|
|
}
|
|
}
|
|
//如果上周只有2天以内工作日,需要并到这周来
|
|
//如果上周只有2天以内工作日,需要并到这周来
|
|
@@ -7358,7 +7412,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
LocalDate lastSaturday = lastSunday.with(DayOfWeek.SATURDAY);
|
|
LocalDate lastSaturday = lastSunday.with(DayOfWeek.SATURDAY);
|
|
|
|
|
|
if (WorkDayCalculateUtils.isWorkDay(lastSunday) && WorkDayCalculateUtils.isWorkDay(lastSaturday)) {
|
|
if (WorkDayCalculateUtils.isWorkDay(lastSunday) && WorkDayCalculateUtils.isWorkDay(lastSaturday)) {
|
|
- //上周周末两天是工作日,并且只有2天以内工作日,需要并到这周来
|
|
|
|
|
|
+ //合并上周的工作日的情况:上周周末两天是工作日,并且只有2天以内工作日,需要并到这周来
|
|
LocalDate lastMonday = lastSunday.with(DayOfWeek.MONDAY);
|
|
LocalDate lastMonday = lastSunday.with(DayOfWeek.MONDAY);
|
|
boolean hasMoreWorkDays = false;
|
|
boolean hasMoreWorkDays = false;
|
|
while (lastMonday.isBefore(lastSaturday)) {
|
|
while (lastMonday.isBefore(lastSaturday)) {
|
|
@@ -7371,15 +7425,33 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
if (!hasMoreWorkDays) {
|
|
if (!hasMoreWorkDays) {
|
|
firstDayOfWeek = lastSaturday;
|
|
firstDayOfWeek = lastSaturday;
|
|
}
|
|
}
|
|
- }
|
|
|
|
- //如果本周一周二中有工作日,但是是上个月的月末,会被合并到上周去,本周要去掉
|
|
|
|
- if (WorkDayCalculateUtils.isWorkDay(firstDayOfWeek) && firstDayOfWeek.getDayOfMonth() >= 30) {
|
|
|
|
- firstDayOfWeek = firstDayOfWeek.plusDays(1);
|
|
|
|
- if (WorkDayCalculateUtils.isWorkDay(firstDayOfWeek) && firstDayOfWeek.getDayOfMonth() >= 30) {
|
|
|
|
- firstDayOfWeek = firstDayOfWeek.plusDays(1);
|
|
|
|
|
|
+ } else {
|
|
|
|
+ //剔除被合并到上周的情况,如果本周一周二周三中有工作日,但是是上个月的月末,会被合并到上周去,本周要去掉
|
|
|
|
+ boolean hasFirstDayOfMonth = false;
|
|
|
|
+ LocalDate checkDate = firstDayOfWeek;
|
|
|
|
+ int beforeDays = 0;
|
|
|
|
+ while (!checkDate.isAfter(lastDayOfWeek)) {
|
|
|
|
+ if (checkDate.getDayOfMonth() == 1) {
|
|
|
|
+ hasFirstDayOfMonth = true;
|
|
|
|
+ break;
|
|
|
|
+ } else {
|
|
|
|
+ beforeDays++;
|
|
|
|
+ }
|
|
|
|
+ checkDate = checkDate.plusDays(1);
|
|
|
|
+ }
|
|
|
|
+ if (hasFirstDayOfMonth && beforeDays <= 3) {
|
|
|
|
+ firstDayOfWeek = checkDate;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// if (WorkDayCalculateUtils.isWorkDay(firstDayOfWeek) && firstDayOfWeek.getDayOfMonth() >= 30) {
|
|
|
|
+// firstDayOfWeek = firstDayOfWeek.plusDays(1);
|
|
|
|
+// if (WorkDayCalculateUtils.isWorkDay(firstDayOfWeek) && firstDayOfWeek.getDayOfMonth() >= 30) {
|
|
|
|
+// firstDayOfWeek = firstDayOfWeek.plusDays(1);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+
|
|
//再按照当前用户的入职离职日期进行过滤
|
|
//再按照当前用户的入职离职日期进行过滤
|
|
LocalDate entryDate = user.getInductionDate();
|
|
LocalDate entryDate = user.getInductionDate();
|
|
LocalDate leaveDate = user.getInactiveDate();
|
|
LocalDate leaveDate = user.getInactiveDate();
|
|
@@ -7654,73 +7726,73 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
@Override
|
|
@Override
|
|
public HttpRespMsg cannelAllReport() {
|
|
public HttpRespMsg cannelAllReport() {
|
|
List<ReportPushLog> list = reportPushLogService.list();
|
|
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"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
cancelReportPushSap(s,user);
|
|
cancelReportPushSap(s,user);
|
|
return null;
|
|
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();
|
|
LocalDateTime localDateTime=LocalDateTime.now();
|
|
List<SapSyncLog> sapSyncLogs=new ArrayList<>();
|
|
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");
|
|
// 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){
|
|
if(sapSyncLogs.size()>0){
|
|
sapSyncLogService.saveBatch(sapSyncLogs);
|
|
sapSyncLogService.saveBatch(sapSyncLogs);
|
|
@@ -8363,4 +8435,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
result.add(start);
|
|
result.add(start);
|
|
return result;
|
|
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;
|
|
|
|
+ }
|
|
}
|
|
}
|