|
@@ -227,6 +227,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private HttpServletResponse response;
|
|
private HttpServletResponse response;
|
|
|
|
+ @Resource
|
|
|
|
+ private ReportExtraDegreeService reportExtraDegreeService;
|
|
|
|
|
|
@Value(value = "${upload.path}")
|
|
@Value(value = "${upload.path}")
|
|
private String path;
|
|
private String path;
|
|
@@ -11065,9 +11067,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
public HttpRespMsg syncProjectWithSap(String startDate,String endDate) {
|
|
public HttpRespMsg syncProjectWithSap(String startDate,String endDate) {
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
|
+ //同步服务数据
|
|
|
|
+ syncServiceData(startDate,endDate,companyId);
|
|
//已有的项目分类
|
|
//已有的项目分类
|
|
List<ProjectCategory> allProjectCategoryList = projectCategoryMapper.selectList(new QueryWrapper<ProjectCategory>().eq("company_id", companyId));
|
|
List<ProjectCategory> allProjectCategoryList = projectCategoryMapper.selectList(new QueryWrapper<ProjectCategory>().eq("company_id", companyId));
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
|
|
|
|
+ //配置请求xml
|
|
XmlRequestData xmlRequestData=new XmlRequestData();
|
|
XmlRequestData xmlRequestData=new XmlRequestData();
|
|
ProcessingConditions processingConditions=new ProcessingConditions();
|
|
ProcessingConditions processingConditions=new ProcessingConditions();
|
|
processingConditions.setQueryHitsUnlimitedIndicator("true");
|
|
processingConditions.setQueryHitsUnlimitedIndicator("true");
|
|
@@ -11094,7 +11099,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
" </soapenv:Body>\n" +
|
|
" </soapenv:Body>\n" +
|
|
"</soapenv:Envelope>");
|
|
"</soapenv:Envelope>");
|
|
System.out.println(sb.toString());
|
|
System.out.println(sb.toString());
|
|
- String result = null;
|
|
|
|
|
|
+ String result = "";
|
|
try {
|
|
try {
|
|
result = WebServiceUtils.requestByXml("https://my602728.sapbyd.cn/sap/bc/srt/scs/sap/queryprojectin?sap-vhost=my602728.sapbyd.cn", sb.toString(), 0, "_BYDHOST", "Welcome1");
|
|
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) {
|
|
} catch (Exception e) {
|
|
@@ -11193,4 +11198,58 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
msg.setData(xmlResponseData);
|
|
msg.setData(xmlResponseData);
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private void syncServiceData(String startDate, String endDate, Integer companyId) {
|
|
|
|
+ List<ReportExtraDegree> extraDegrees = reportExtraDegreeService.list(new QueryWrapper<ReportExtraDegree>().eq("company_id", companyId));
|
|
|
|
+ //配置请求xml
|
|
|
|
+ XmlRequestData xmlRequestData=new XmlRequestData();
|
|
|
|
+ ProcessingConditions processingConditions=new ProcessingConditions();
|
|
|
|
+ processingConditions.setQueryHitsUnlimitedIndicator("true");
|
|
|
|
+ xmlRequestData.setProcessingConditions(processingConditions);
|
|
|
|
+ ServiceProductSelectionByElements serviceProductSelectionByElements=new ServiceProductSelectionByElements();
|
|
|
|
+ serviceProductSelectionByElements.setSelectionByLastChangeSinceDateTime(startDate+"T00:00:00Z");
|
|
|
|
+ xmlRequestData.setServiceProductSelectionByElements(serviceProductSelectionByElements);
|
|
|
|
+ String xml = CommonUtils.convertToXml(xmlRequestData);
|
|
|
|
+ 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:ServiceProductByElementsQuery_sync>\n");
|
|
|
|
+ sb.append(xml);
|
|
|
|
+ sb.append(" </glob:ServiceProductByElementsQuery_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/queryserviceproductin?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:ServiceProductByElementsResponse_sync>"));
|
|
|
|
+ result="<XMLDATA>"+result+"</XMLDATA>";
|
|
|
|
+ }
|
|
|
|
+ System.out.println(result);
|
|
|
|
+ XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
|
|
|
|
+ List<ServiceProduct> serviceProducts = xmlResponseData.getServiceProducts();
|
|
|
|
+ List<ReportExtraDegree> needAddList=new ArrayList<>();
|
|
|
|
+ for (ServiceProduct serviceProduct : serviceProducts) {
|
|
|
|
+ if(!serviceProduct.getProductCategoryID().equals("901")){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ ReportExtraDegree reportExtraDegree=new ReportExtraDegree();
|
|
|
|
+ reportExtraDegree.setCompanyId(companyId);
|
|
|
|
+ reportExtraDegree.setCode(serviceProduct.getInternalID());
|
|
|
|
+ reportExtraDegree.setRmark(serviceProduct.getDescription().getDescription());
|
|
|
|
+ Optional<ReportExtraDegree> any = extraDegrees.stream().filter(es -> es.getCode().equals(serviceProduct.getInternalID())).findAny();
|
|
|
|
+ if(any.isPresent()){
|
|
|
|
+ reportExtraDegree.setId(any.get().getId());
|
|
|
|
+ }
|
|
|
|
+ needAddList.add(reportExtraDegree);
|
|
|
|
+ }
|
|
|
|
+ reportExtraDegreeService.saveOrUpdateBatch(needAddList);
|
|
|
|
+ }
|
|
}
|
|
}
|