|
@@ -12,6 +12,8 @@ import com.management.platform.mapper.*;
|
|
|
import com.management.platform.service.*;
|
|
|
import com.management.platform.task.SFTPAsyncUploader;
|
|
|
import com.management.platform.util.*;
|
|
|
+import com.management.platform.webservice.po.*;
|
|
|
+import com.management.platform.webservice.po.Period;
|
|
|
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
|
|
|
import me.chanjar.weixin.mp.api.WxMpService;
|
|
|
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
|
|
@@ -213,6 +215,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
private ReportAuditLogService reportAuditLogService;
|
|
|
@Resource
|
|
|
private TimeTypeService timeTypeService;
|
|
|
+ @Resource
|
|
|
+ private HttpServletRequest request;
|
|
|
|
|
|
@Value(value = "${upload.path}")
|
|
|
private String path;
|
|
@@ -7042,4 +7046,74 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg pushProjectReportToSap(String startDate, String endDate,String userId) {
|
|
|
+ HttpRespMsg httpRespMsg =new HttpRespMsg();
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<Map<String,Object>> resultList=reportMapper.getPushProjectReportToSap(companyId,startDate,endDate,userId);
|
|
|
+ //配置xml请求参数
|
|
|
+ //配置xml请求参数
|
|
|
+ XmlRequestData xmlRequestData=new XmlRequestData();
|
|
|
+ EmployeeTime employeeTime=new EmployeeTime();
|
|
|
+ WorkDescriptionText workDescriptionText=new WorkDescriptionText();
|
|
|
+ workDescriptionText.setLanguageCode("ZH");
|
|
|
+ Period datePeriod=new Period();
|
|
|
+ Period timePeriod=new Period();
|
|
|
+ for (Map<String, Object> map : resultList) {
|
|
|
+ employeeTime.setEmployeeID(String.valueOf(map.get("EmployeeID")));
|
|
|
+ employeeTime.setActionCode("01");
|
|
|
+ if(map.get("StartDate")!=null){
|
|
|
+ datePeriod.setStartDate(String.valueOf(map.get("StartDate")));
|
|
|
+ }
|
|
|
+ if(map.get("EndDate")!=null){
|
|
|
+ datePeriod.setEndDate(String.valueOf(map.get("EndDate")));
|
|
|
+ }
|
|
|
+ if(map.get("StartTime")!=null){
|
|
|
+ timePeriod.setStartTime(String.valueOf(map.get("StartTime")));
|
|
|
+ }
|
|
|
+ if(map.get("EndTime")!=null){
|
|
|
+ timePeriod.setEndTime(String.valueOf(map.get("EndTime")));
|
|
|
+ }
|
|
|
+ employeeTime.setDatePeriod(datePeriod);
|
|
|
+ employeeTime.setTimePeriod(timePeriod);
|
|
|
+ employeeTime.setDuration(map.get("Duration")==null?"0":String.valueOf(map.get("Duration")));
|
|
|
+ employeeTime.setProjectElementID(String.valueOf(map.get("ProjectElementID")));
|
|
|
+ if(map.get("WorkDescriptionText")!=null){
|
|
|
+ workDescriptionText.setWorkDescriptionText(String.valueOf(map.get("WorkDescriptionText")));
|
|
|
+ employeeTime.setWorkDescriptionText(workDescriptionText);
|
|
|
+ }
|
|
|
+ xmlRequestData.setEmployeeTime(employeeTime);
|
|
|
+ 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:EmployeeTimeAsBundleMaintainRequest_sync>\n");
|
|
|
+ sb.append(xml);
|
|
|
+ sb.append(" </glob:EmployeeTimeAsBundleMaintainRequest_sync>\n" +
|
|
|
+ " </soapenv:Body>\n" +
|
|
|
+ "</soapenv:Envelope>");
|
|
|
+ System.out.println(sb.toString());
|
|
|
+ String result = "";
|
|
|
+ try {
|
|
|
+ result = WebServiceUtils.requestByXml("https://my602728.sapbyd.cn/sap/bc/srt/scs/sap/queryprojectin?sap-vhost=my602728.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:EmployeeTimeAsBundleMaintainConfirmation_sync>"));
|
|
|
+ result="<XMLDATA>"+result+"</XMLDATA>";
|
|
|
+ }
|
|
|
+ System.out.println(result);
|
|
|
+ XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
|
|
|
+ if(StringUtils.isEmpty(xmlResponseData.getEmployeeTime().getUUID())){
|
|
|
+ log.error("推送失败===》工号:"+employeeTime.getEmployeeID());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
}
|