|
@@ -29,6 +29,7 @@ import org.springframework.http.client.ClientHttpResponse;
|
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.client.DefaultResponseErrorHandler;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
@@ -157,6 +158,16 @@ public class TimingTask {
|
|
|
private UserService userService;
|
|
|
@Resource
|
|
|
private ParticipationService participationService;
|
|
|
+ @Resource
|
|
|
+ private ProjectCategoryMapper projectCategoryMapper;
|
|
|
+ @Resource
|
|
|
+ private TaskService taskService;
|
|
|
+ @Resource
|
|
|
+ private StagesMapper stagesMapper;
|
|
|
+ @Resource
|
|
|
+ private TaskGroupService taskGroupService;
|
|
|
+ @Resource
|
|
|
+ private TaskGroupMapper taskGroupMapper;
|
|
|
|
|
|
|
|
|
private static final List<Integer> VALID_TOKEN_CHARS = new ArrayList<>();
|
|
@@ -1554,80 +1565,27 @@ public class TimingTask {
|
|
|
//每天凌晨 2:00 推送前1天审核通过的日报 工时管家---->SAP
|
|
|
@Scheduled(cron = "0 0 2 ? * *")
|
|
|
public void pushReportToSap(){
|
|
|
+ if(isDev){
|
|
|
+ return;
|
|
|
+ }
|
|
|
DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
List<TimeType> timeTypeList = timeTypeMapper.selectList(new QueryWrapper<TimeType>().eq("sync_sap",1));
|
|
|
LocalDate date=LocalDate.now();
|
|
|
for (TimeType timeType : timeTypeList) {
|
|
|
Integer companyId = timeType.getCompanyId();
|
|
|
//提前推送项目工时(工时管家相关项目任务分组阶段下任务作为SAP服务 预算工时数据推送到SAP)
|
|
|
- pushProjectPlanToSap(companyId, date.minusDays(1).format(df),date.format(df));
|
|
|
- List<Map<String, Object>> mapList = reportMapper.getPushProjectReportToSap(companyId, date.minusDays(1).format(df), date.format(df), null);
|
|
|
+ List<Map<String, Object>> pushProjectPlanHour = reportMapper.getProjectPlanData(companyId,null,null);
|
|
|
+ SyncSapUtils.pushProjectPlanToSap(pushProjectPlanHour);
|
|
|
+ List<Map<String, Object>> mapList = reportMapper.getPushProjectReportToSap(companyId,df.format(date.minusDays(1)),df.format(date.minusDays(1)), null);
|
|
|
List<ReportPushLog> addList=new ArrayList<>();
|
|
|
- //配置xml请求参数
|
|
|
- XmlRequestData xmlRequestData=new XmlRequestData();
|
|
|
- EmployeeTime employeeTime=new EmployeeTime();
|
|
|
- WorkDescriptionText workDescriptionText=new WorkDescriptionText();
|
|
|
- workDescriptionText.setLanguageCode("ZH");
|
|
|
- SapPeriod datePeriod=new SapPeriod();
|
|
|
- SapPeriod timePeriod=new SapPeriod();
|
|
|
for (Map<String, Object> map : mapList) {
|
|
|
ReportPushLog one = reportPushLogService.getOne(new LambdaQueryWrapper<ReportPushLog>().eq(ReportPushLog::getCompanyId, companyId).eq(ReportPushLog::getReportId, map.get("ReportId")).eq(ReportPushLog::getTargetSystem,"SAP"));
|
|
|
if(one!=null){
|
|
|
continue;
|
|
|
}
|
|
|
- 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.setItemTypeCode("CN0001");
|
|
|
- employeeTime.setDuration(map.get("Duration")==null?"0":String.valueOf(map.get("Duration")));
|
|
|
- employeeTime.setProjectElementID(String.valueOf(map.get("ProjectElementID")));
|
|
|
- employeeTime.setServiceProductInternalID(String.valueOf(map.get("ServiceProductInternalID")));
|
|
|
- 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());
|
|
|
+ XmlResponseData xmlResponseData = SyncSapUtils.pushReportToSap(map);
|
|
|
+ if(StringUtils.isEmpty(xmlResponseData.getEmployeeTime())){
|
|
|
+ log.error("推送失败===》工号:"+map.get("EmployeeID"));
|
|
|
continue;
|
|
|
}else {
|
|
|
//推送成功 日报数据打上标记
|
|
@@ -1644,77 +1602,160 @@ public class TimingTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void pushProjectPlanToSap(Integer companyId,String startDate, String endDate) {
|
|
|
- List<Map<String, Object>> mapList = reportMapper.getProjectPlanData(companyId,startDate,endDate);
|
|
|
- //根据项目分组 按照项目推送
|
|
|
- //获取当前数据中的所有项目编号
|
|
|
- List<String> projectIds = mapList.stream().map(m -> String.valueOf(m.get("ProjectID"))).distinct().collect(Collectors.toList());
|
|
|
- Map<Object, List<Map<String, Object>>> mapListGroupPro = mapList.stream().collect(Collectors.groupingBy(m -> m.get("ProjectID")));
|
|
|
- //循环推送
|
|
|
- for (String projectId : projectIds) {
|
|
|
- //配置xml请求参数
|
|
|
- XmlRequestData xmlRequestData=new XmlRequestData();
|
|
|
- xmlRequestData.setBasicMessageHeader("");
|
|
|
- ZManageProjectTaskWork zManageProjectTaskWork=new ZManageProjectTaskWork();
|
|
|
- zManageProjectTaskWork.setProjectID(projectId);
|
|
|
- List<Map<String, Object>> resultList = mapListGroupPro.get(projectId);
|
|
|
- //获取当前数据下的任务分组的分组数据
|
|
|
- List<String> taskGroupIds = resultList.stream().map(m -> String.valueOf(m.get("ProjectTaskID"))).distinct().collect(Collectors.toList());
|
|
|
- Map<Object, List<Map<String, Object>>> resultGroupByTaskGroup = resultList.stream().collect(Collectors.groupingBy(m -> m.get("ProjectTaskID")));
|
|
|
- List<RequestTask> tasks=new ArrayList<>();
|
|
|
- for (String taskGroupId : taskGroupIds) {
|
|
|
- RequestTask requestTask=new RequestTask();
|
|
|
- requestTask.setProjectTaskID(taskGroupId);
|
|
|
- List<Map<String, Object>> list = resultGroupByTaskGroup.get(taskGroupId);
|
|
|
- List<Service> services=new ArrayList<>();
|
|
|
- for (Map<String, Object> map : list) {
|
|
|
- Service service=new Service();
|
|
|
- service.setServiceID(String.valueOf(map.get("ServiceID")));
|
|
|
- service.setEmployeeID(String.valueOf(map.get("EmployeeID")));
|
|
|
- service.setPlanWork(String.valueOf(map.get("PlanWork")));
|
|
|
- service.setStartDate(String.valueOf(map.get("StartDate")));
|
|
|
- service.setEndDate(String.valueOf(map.get("EndDate")));
|
|
|
- service.setOverDeliveryAllowedIndicator("true");
|
|
|
- services.add(service);
|
|
|
+ //每天凌晨 3:00 获取创建的项目服务和项目数据 SAP---->工时管家
|
|
|
+ @Scheduled(cron = "0 0 2 ? * *")
|
|
|
+ public void syncProjectFromSap(){
|
|
|
+ if(isDev){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ List<TimeType> timeTypeList = timeTypeMapper.selectList(new QueryWrapper<TimeType>().eq("sync_sap",1));
|
|
|
+ LocalDate date=LocalDate.now();
|
|
|
+ for (TimeType timeType : timeTypeList) {
|
|
|
+ Integer companyId = timeType.getCompanyId();
|
|
|
+ //获取SAP项目服务数据 ----> 工时管家任务分组下阶段作为项目服务数据
|
|
|
+ XmlResponseData projectServiceData= SyncSapUtils.syncServiceData(df.format(date.minusDays(1)), null, 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));
|
|
|
+// XmlResponseData xmlResponseData = SyncSapUtils.syncProjectFromSap(df.format(date.minusDays(1)), df.format(date.minusDays(1)));
|
|
|
+ XmlResponseData xmlResponseData = SyncSapUtils.syncProjectFromSap(df.format(date.minusDays(1)), df.format(date.minusDays(1)));
|
|
|
+ List<ProjectQueryResponse> projectQueryResponses = xmlResponseData.getProjectQueryResponses();
|
|
|
+ List<Map<String,Object>> idsMapList=new ArrayList<>();
|
|
|
+ if(projectQueryResponses!=null&&projectQueryResponses.size()>0){
|
|
|
+ List<Task> taskList=new ArrayList<>();
|
|
|
+ for (ProjectQueryResponse item : projectQueryResponses) {
|
|
|
+ Project project=new Project();
|
|
|
+ //处理项目分类
|
|
|
+ String categoryName;
|
|
|
+ switch (item.getTypeCode()){
|
|
|
+ case "10":categoryName="成本收集项目";
|
|
|
+ break;
|
|
|
+ case "20":categoryName="直接成本项目";
|
|
|
+ break;
|
|
|
+ case "21":categoryName="市场营销项目";
|
|
|
+ break;
|
|
|
+ case "22":categoryName="战略采购项目";
|
|
|
+ break;
|
|
|
+ case "23":categoryName="研发项目";
|
|
|
+ break;
|
|
|
+ case "25":categoryName="设备销售项目";
|
|
|
+ break;
|
|
|
+ case "Z01":categoryName="报价项目";
|
|
|
+ break;
|
|
|
+ case "Z02":categoryName="售后报价项目";
|
|
|
+ break;
|
|
|
+ case "Z03":categoryName="产品设备报价项目";
|
|
|
+ break;
|
|
|
+ case "Z04":categoryName="半成品项目(无销售)";
|
|
|
+ break;
|
|
|
+ case "Z05":categoryName="产成品项目(含销售)";
|
|
|
+ break;
|
|
|
+ case "Z06":categoryName="机器生产项目";
|
|
|
+ break;
|
|
|
+ case "Z07":categoryName="电气柜生产项目";
|
|
|
+ break;
|
|
|
+ case "Z08":categoryName="工程项目";
|
|
|
+ break;
|
|
|
+ case "Z09":categoryName="售后工程项目";
|
|
|
+ break;
|
|
|
+ default:categoryName="未知";
|
|
|
+ }
|
|
|
+ String finalCategoryName = categoryName;
|
|
|
+ Optional<ProjectCategory> first = allProjectCategoryList.stream().filter(at -> at.getName().equals(finalCategoryName)).findFirst();
|
|
|
+ if(!first.isPresent()&&!finalCategoryName.equals("未知")){
|
|
|
+ ProjectCategory projectCategory=new ProjectCategory();
|
|
|
+ projectCategory.setName(categoryName);
|
|
|
+ projectCategory.setCompanyId(companyId);
|
|
|
+ projectCategoryMapper.insert(projectCategory);
|
|
|
+ allProjectCategoryList.add(projectCategory);
|
|
|
+ project.setCategory(projectCategory.getId());
|
|
|
+ project.setCategoryName(projectCategory.getName());
|
|
|
+ }else {
|
|
|
+ project.setCategory(first.get().getId());
|
|
|
+ project.setCategoryName(first.get().getName());
|
|
|
+ }
|
|
|
+ project.setProjectName(item.getProjectSummaryTask().getProjectName().getName());
|
|
|
+ project.setProjectCode(item.getProjectSummaryTask().getProjectElementID());
|
|
|
+ project.setCompanyId(companyId);
|
|
|
+ //处理项目数据 --->工时管家生成对应项目数据
|
|
|
+ Optional<Project> any = projectList.stream().filter(pt -> pt.getProjectCode().equals(project.getProjectCode())).findAny();
|
|
|
+ if(any.isPresent()){
|
|
|
+ project.setId(any.get().getId());
|
|
|
+ }
|
|
|
+ projectService.saveOrUpdate(project);
|
|
|
+ //处理项目下任务 ----> 工时管家生成任务分组
|
|
|
+ List<ProjectTask> projectTasks = item.getProjectTasks();
|
|
|
+ if(projectTasks!=null&&projectTasks.size()>0){
|
|
|
+ projectTasks.forEach(ps->{
|
|
|
+ TaskGroup taskGroup=new TaskGroup();
|
|
|
+ taskGroup.setProjectId(project.getId());
|
|
|
+ taskGroup.setTaskGroupCode(ps.getProjectElementID());
|
|
|
+ taskGroup.setName(ps.getTaskGroupName()==null?"":ps.getTaskGroupName().getName());
|
|
|
+ TaskGroup one = taskGroupMapper.selectOne(new QueryWrapper<TaskGroup>().eq("project_id", project.getId()).eq("task_group_code", ps.getProjectElementID()));
|
|
|
+ if(one!=null){
|
|
|
+ taskGroup.setId(one.getId());
|
|
|
+ }
|
|
|
+ taskGroupService.saveOrUpdate(taskGroup);
|
|
|
+ Map<String,Object> map=new HashMap<>();
|
|
|
+ map.put("groupId",taskGroup.getId());
|
|
|
+ map.put("projectId",project.getId());
|
|
|
+ idsMapList.add(map);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LocalDate localDate=LocalDate.now();
|
|
|
+ if(idsMapList.size()>0){
|
|
|
+ List<Integer> projectIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("projectId")))).collect(Collectors.toList());
|
|
|
+ List<Integer> groupIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("groupId")))).collect(Collectors.toList());
|
|
|
+ List<Task> allTasks = taskMapper.selectList(new LambdaQueryWrapper<Task>().in(Task::getProjectId, projectIds).in(Task::getGroupId, groupIds));
|
|
|
+ List<Stages> allStages = stagesMapper.selectList(new LambdaQueryWrapper<Stages>().in(Stages::getProjectId, projectIds).in(Stages::getGroupId, groupIds));
|
|
|
+ for (Map<String, Object> map : idsMapList) {
|
|
|
+ //处理项目下服务数据 ------->工时管家相关项目下任务分组下创建任务数据
|
|
|
+ if(projectServiceData!=null){
|
|
|
+ List<ServiceProduct> serviceProducts = projectServiceData.getServiceProducts();
|
|
|
+ if(serviceProducts!=null&&serviceProducts.size()>0){
|
|
|
+ List<Task> hasTasks =allTasks.stream().filter(al->al.getProjectId().equals(map.get("projectId"))&&al.getGroupId().equals(map.get("groupId"))).collect(Collectors.toList());
|
|
|
+ for (ServiceProduct serviceProduct : serviceProducts) {
|
|
|
+ Task task=new Task();
|
|
|
+ task.setName(serviceProduct.getDescription().getDescription()+"-"+serviceProduct.getInternalID());
|
|
|
+ task.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId"))));
|
|
|
+ task.setProjectId(Integer.valueOf(String.valueOf(map.get("projectId"))));
|
|
|
+ task.setCreateDate(localDate);
|
|
|
+ task.setCompanyId(companyId);
|
|
|
+ Optional<Stages> first = allStages.stream().filter(a -> a.getGroupId().equals(task.getGroupId()) && a.getProjectId().equals(task.getProjectId())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ task.setStagesId(first.get().getId());
|
|
|
+ }else {
|
|
|
+ //创建默认列表
|
|
|
+ Stages stage = new Stages();
|
|
|
+ stage.setGroupId(task.getGroupId());
|
|
|
+ stage.setSequence(1);
|
|
|
+ stage.setProjectId(task.getProjectId());
|
|
|
+ stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
|
|
|
+ stagesMapper.insert(stage);
|
|
|
+ allStages.add(stage);
|
|
|
+ task.setStagesId(stage.getId());
|
|
|
+ }
|
|
|
+ task.setServiceId(serviceProduct.getInternalID());
|
|
|
+ Optional<Task> optional = hasTasks.stream().filter(s -> s.getServiceId().equals(task.getServiceId())&&s.getProjectId().equals(task.getProjectId())&&s.getGroupId().equals(task.getGroupId())).findFirst();
|
|
|
+ if(!optional.isPresent()){
|
|
|
+ taskList.add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(taskList.size()>0){
|
|
|
+ taskService.saveBatch(taskList);
|
|
|
}
|
|
|
- requestTask.setServices(services);
|
|
|
- tasks.add(requestTask);
|
|
|
- }
|
|
|
- zManageProjectTaskWork.setTasks(tasks);
|
|
|
- xmlRequestData.setZManageProjectTaskWork(zManageProjectTaskWork);
|
|
|
- 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:ZManageProjectTaskWorkCreateRequest_sync>\n");
|
|
|
- sb.append(xml);
|
|
|
- sb.append(" </glob:ZManageProjectTaskWorkCreateRequest_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/yyatr5vf6y_manageprojecttaskwo?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:ZManageProjectTaskWorkCreateConfirmation_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("推送失败===》项目编号:"+zManageProjectTaskWork.getProjectID());
|
|
|
- continue;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
public static void main(String[] args) {
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
Map<String,Object> map2=new HashMap<>();
|
|
@@ -1761,8 +1802,14 @@ public class TimingTask {
|
|
|
service.setServiceID(String.valueOf(map.get("ServiceID")));
|
|
|
service.setEmployeeID(String.valueOf(map.get("EmployeeID")));
|
|
|
service.setPlanWork(String.valueOf(map.get("PlanWork")));
|
|
|
- service.setStartDate(String.valueOf(map.get("StartDate")));
|
|
|
- service.setEndDate(String.valueOf(map.get("EndDate")));
|
|
|
+ StartDate startDate=new StartDate();
|
|
|
+ startDate.setTimeZoneCode("UTC+8");
|
|
|
+ startDate.setStartDate(String.valueOf(map.get("StartDate")));
|
|
|
+ service.setStartDate(startDate);
|
|
|
+ EndDate endDate=new EndDate();
|
|
|
+ endDate.setTimeZoneCode("UTC+8");
|
|
|
+ endDate.setEndDate(String.valueOf(map.get("EndDate")));
|
|
|
+ service.setEndDate(endDate);
|
|
|
service.setOverDeliveryAllowedIndicator("true");
|
|
|
services.add(service);
|
|
|
}
|