Min 1 năm trước cách đây
mục cha
commit
fb8d1333b2
21 tập tin đã thay đổi với 407 bổ sung19 xóa
  1. 14 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  2. 4 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 10 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ReportExtraDegree.java
  4. 8 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  5. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  6. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  7. 60 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  8. 74 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/Description.java
  10. 82 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/EmployeeTime.java
  11. 34 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/Period.java
  12. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/Task.java
  13. 18 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/ServiceProduct.java
  14. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/ServiceProductSelectionByElements.java
  15. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/WorkDescriptionText.java
  16. 13 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/XmlRequestData.java
  17. 7 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/XmlResponseData.java
  18. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/ZManageProjectTaskWork.java
  19. 3 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportExtraDegreeMapper.xml
  20. 18 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  21. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml

+ 14 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -71,6 +71,8 @@ public class ProjectController {
     private OperationRecordService operationRecordService;
     @Resource
     private ParticipationService participationService;
+    @Resource
+    private ReportExtraDegreeMapper reportExtraDegreeMapper;
 
 
     @RequestMapping("/testRead")
@@ -567,14 +569,24 @@ public class ProjectController {
     @RequestMapping("/getDegreeList")
     public HttpRespMsg getDegreeList(Integer projectId) {
         Project project = projectService.getById(projectId);
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        TimeType timeType = timeTypeMapper.selectById(companyId);
+        List<ReportExtraDegree> extraDegreeList = reportExtraDegreeMapper.selectList(new QueryWrapper<ReportExtraDegree>().eq("company_id", companyId));
         if (project == null) {
             HttpRespMsg msg = new HttpRespMsg();
             //msg.setError("该项目已不存在");
             msg.setError(MessageUtils.message("project.nonExistent"));
             return msg;
         }
-        String associateDegrees = project.getAssociateDegrees();
-        String names = project.getAssociateDegreeNames();
+        String associateDegrees = "";
+        String names = "";
+        if(timeType.getCustomDegreeWithPro()==0){
+            associateDegrees=extraDegreeList.stream().map(a->String.valueOf(a.getId())).collect(Collectors.joining(","));
+            names=extraDegreeList.stream().map(ReportExtraDegree::getName).collect(Collectors.joining(","));
+        }else {
+            associateDegrees = project.getAssociateDegrees();
+            names = project.getAssociateDegreeNames();
+        }
         HttpRespMsg msg = new HttpRespMsg();
         List<HashMap> list = new ArrayList<>();
         if (!StringUtils.isEmpty(associateDegrees)) {

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -2153,9 +2153,10 @@ public class ReportController {
     }
 
 
-    @RequestMapping("/projectReportPushToSap")
-    public HttpRespMsg projectReportPushToSap(){
-        return new HttpRespMsg();
+    //推送工时到sap
+    @RequestMapping("/pushProjectReportToSap")
+    public HttpRespMsg pushProjectReportToSap(String startDate,String endDate,String userId){
+        return reportService.pushProjectReportToSap(startDate,endDate,userId);
     }
 
 }

+ 10 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ReportExtraDegree.java

@@ -1,22 +1,21 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-07-28
+ * @since 2023-11-16
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -40,6 +39,12 @@ public class ReportExtraDegree extends Model<ReportExtraDegree> {
     @TableField("name")
     private String name;
 
+    /**
+     * 编号
+     */
+    @TableField("code")
+    private String code;
+
     /**
      * 备注
      */

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-11-08
+ * @since 2023-11-16
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -128,6 +128,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("custom_degree_status")
     private Integer customDegreeStatus;
 
+    /**
+     * 工时填报自定义维度是否绑定项目 0-否 1-是
+     */
+    @TableField("custom_degree_with_pro")
+    private Integer customDegreeWithPro;
+
     /**
      * 提醒内容
      */
@@ -303,7 +309,7 @@ public class TimeType extends Model<TimeType> {
     private Integer mainProjectState;
 
     /**
-     * 日报的审核类型, 0-项目审核人审核,1-分组负责人审核,2-先分组负责人审核再项目负责人(PM)审核;3-员工自由选择审批人 4-项目所属BU审核 5-部门负责人审核,6-直属或部门负责人审核->项目日报审核人审核
+     * 日报的审核类型, 0-项目审核人审核,1-分组负责人审核,2-先分组负责人审核再项目负责人(PM)审核;3-员工自由选择审批人 4-项目所属BU审核 5-直属审核人或部门负责人审核,6-直属或部门负责人审核->项目日报审核人审核
      */
     @TableField("report_audit_type")
     private Integer reportAuditType;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -178,4 +178,6 @@ public interface ReportMapper extends BaseMapper<Report> {
     List<Map<String, Object>> getCcReportNameByDate(String date, Integer companyId, String leaderId);
 
     List<Map<String, Object>> getCcReportByDate(@Param("date") String date, @Param("id") String id, @Param("state") Integer state);
+
+    List<Map<String, Object>> getPushProjectReportToSap(Integer companyId, String startDate, String endDate,String userId);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -131,4 +131,6 @@ public interface ReportService extends IService<Report> {
     List getAuditWorkflowList(Integer reportId);
 
     HttpRespMsg getWeeklyFillReportData(String targetDate, HttpServletRequest request);
+
+    HttpRespMsg pushProjectReportToSap(String startDate, String endDate,String userId);
 }

+ 60 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -227,6 +227,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     @Resource
     private HttpServletResponse response;
+    @Resource
+    private ReportExtraDegreeService reportExtraDegreeService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -11065,9 +11067,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg syncProjectWithSap(String startDate,String endDate) {
         HttpRespMsg msg=new HttpRespMsg();
         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<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        //配置请求xml
         XmlRequestData xmlRequestData=new XmlRequestData();
         ProcessingConditions processingConditions=new ProcessingConditions();
         processingConditions.setQueryHitsUnlimitedIndicator("true");
@@ -11094,7 +11099,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 "   </soapenv:Body>\n" +
                 "</soapenv:Envelope>");
         System.out.println(sb.toString());
-        String result = null;
+        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) {
@@ -11193,4 +11198,58 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         msg.setData(xmlResponseData);
         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);
+    }
 }

+ 74 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -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;
+    }
 }

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/Description.java

@@ -0,0 +1,16 @@
+package com.management.platform.webservice.po;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlElement;
+
+@Data
+public class Description {
+
+    private String description;
+
+    @XmlElement(name = "Description")
+    public String getDescription() {
+        return description;
+    }
+}

+ 82 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/EmployeeTime.java

@@ -0,0 +1,82 @@
+package com.management.platform.webservice.po;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+@Data
+public class EmployeeTime {
+
+    private String employeeID;
+    private String itemTypeCode;
+    private Period datePeriod;
+    private Period timePeriod;
+    private String duration;
+    private String projectElementID;
+    private String serviceProductInternalID;
+    private WorkDescriptionText workDescriptionText;
+    private String actionCode;
+    private String changeStateID;
+    private String UUID;
+
+
+    @XmlElement(name = "EmployeeID")
+    public String getEmployeeID() {
+        return employeeID;
+    }
+
+    @XmlElement(name = "ItemTypeCode")
+    public String getItemTypeCode() {
+        return itemTypeCode;
+    }
+
+
+    @XmlElement(name = "DatePeriod")
+    public Period getDatePeriod() {
+        return datePeriod;
+    }
+
+    @XmlElement(name = "TimePeriod")
+    public Period getTimePeriod() {
+        return timePeriod;
+    }
+
+
+    @XmlElement(name = "Duration")
+    public String getDuration() {
+        return duration;
+    }
+
+    @XmlElement(name = "ProjectElementID")
+    public String getProjectElementID() {
+        return projectElementID;
+    }
+
+    @XmlElement(name = "ServiceProductInternalID")
+    public String getServiceProductInternalID() {
+        return serviceProductInternalID;
+    }
+
+    @XmlElement(name = "WorkDescriptionText")
+    public WorkDescriptionText getWorkDescriptionText() {
+        return workDescriptionText;
+    }
+
+    @XmlElement(name = "ChangeStateID")
+    public String getChangeStateID() {
+        return changeStateID;
+    }
+
+    @XmlElement(name = "UUID")
+    public String getUUID() {
+        return UUID;
+    }
+
+
+    @XmlAttribute(name = "actionCode")
+    public String getactionCode() {
+        return actionCode;
+    }
+
+}

+ 34 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/Period.java

@@ -0,0 +1,34 @@
+package com.management.platform.webservice.po;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlElement;
+
+@Data
+public class Period {
+
+    private String startDate;
+    private String endDate;
+    private String startTime;
+    private String endTime;
+
+    @XmlElement(name = "StartDate")
+    public String  getStartDate() {
+        return startDate;
+    }
+
+    @XmlElement(name = "EndDate")
+    public String  getEndDate() {
+        return endDate;
+    }
+
+    @XmlElement(name = "StartTime")
+    public String  getStartTime() {
+        return startTime;
+    }
+
+    @XmlElement(name = "EndTime")
+    public String  getEndTime() {
+        return endTime;
+    }
+}

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/Task.java

@@ -5,7 +5,7 @@ import lombok.Data;
 import javax.xml.bind.annotation.XmlElement;
 
 @Data
-public class Task {
+public class RequestTask {
 
     private String projectTaskID;
     private Service service;

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/ServiceProduct.java

@@ -8,9 +8,27 @@ import javax.xml.bind.annotation.XmlElement;
 public class ServiceProduct {
 
     private String changeStateID;
+    private String internalID;
+    private String productCategoryID;
+    private Description description;
 
     @XmlElement(name = "ChangeStateID")
     public String getChangeStateID() {
         return changeStateID;
     }
+
+    @XmlElement(name = "InternalID")
+    public String getInternalID() {
+        return internalID;
+    }
+
+    @XmlElement(name = "ProductCategoryID")
+    public String getProductCategoryID() {
+        return productCategoryID;
+    }
+
+    @XmlElement(name = "Description")
+    public Description getDescription() {
+        return description;
+    }
 }

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/ServiceProductSelectionByElements.java

@@ -0,0 +1,16 @@
+package com.management.platform.webservice.po;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlElement;
+
+@Data
+public class ServiceProductSelectionByElements {
+
+    private String selectionByLastChangeSinceDateTime;
+
+    @XmlElement(name = "SelectionByLastChangeSinceDateTime")
+    public String getSelectionByLastChangeSinceDateTime() {
+        return selectionByLastChangeSinceDateTime;
+    }
+}

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/WorkDescriptionText.java

@@ -0,0 +1,21 @@
+package com.management.platform.webservice.po;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.*;
+
+@Data
+@XmlRootElement(name = "WorkDescriptionText")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class WorkDescriptionText {
+
+    @XmlAttribute(name = "languageCode")
+    private String languageCode;
+
+    @XmlValue
+    private String WorkDescriptionText;
+
+    public String getlanguageCode() {
+        return languageCode;
+    }
+}

+ 13 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/XmlRequestData.java

@@ -2,6 +2,7 @@ package com.management.platform.webservice.po;
 
 import lombok.Data;
 
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import java.util.List;
@@ -16,6 +17,8 @@ public class XmlRequestData {
 	private ProcessingConditions processingConditions;
 	private List<ProjectSelectionByElement> projectSelectionByElements;
 	private ZManageProjectTaskWork zManageProjectTaskWork;
+	private ServiceProductSelectionByElements serviceProductSelectionByElements;
+	private EmployeeTime employeeTime;
 
 	@XmlElement(name = "ProcessingConditions")
 	public ProcessingConditions getProcessingConditions() {
@@ -32,4 +35,14 @@ public class XmlRequestData {
 		return zManageProjectTaskWork;
 	}
 
+	@XmlElement(name = "ServiceProductSelectionByElements")
+	public ServiceProductSelectionByElements getServiceProductSelectionByElements() {
+		return serviceProductSelectionByElements;
+	}
+
+	@XmlElement(name = "EmployeeTime")
+	public EmployeeTime getEmployeeTime() {
+		return employeeTime;
+	}
+
 }

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/XmlResponseData.java

@@ -23,6 +23,8 @@ public class XmlResponseData{
 
 	private Log log;
 
+	private EmployeeTime employeeTime;
+
 	
 	@XmlElement(name = "ServiceProduct")
 	public List<ServiceProduct> getServiceProducts() {
@@ -49,4 +51,9 @@ public class XmlResponseData{
 		return log;
 	}
 
+	@XmlElement(name = "EmployeeTime")
+	public EmployeeTime getEmployeeTime() {
+		return employeeTime;
+	}
+
 }

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/webservice/po/ZManageProjectTaskWork.java

@@ -8,7 +8,7 @@ import javax.xml.bind.annotation.XmlElement;
 public class ZManageProjectTaskWork {
 
     private String projectID;
-    private Task task;
+    private RequestTask task;
     private String UUID;
 
     @XmlElement(name = "ProjectID")
@@ -17,7 +17,7 @@ public class ZManageProjectTaskWork {
     }
 
     @XmlElement(name = "Task")
-    public Task getTask() {
+    public RequestTask getTask() {
         return task;
     }
 

+ 3 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportExtraDegreeMapper.xml

@@ -7,16 +7,17 @@
         <id column="id" property="id" />
         <result column="company_id" property="companyId" />
         <result column="name" property="name" />
+        <result column="code" property="code" />
         <result column="rmark" property="rmark" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, name, rmark
+        id, company_id, name, code, rmark
     </sql>
 
     <select id="getAll" resultMap="BaseResultMap">
-        select id, name,rmark from report_extra_degree where company_id = #{companyId}
+        select id, name,rmark,code from report_extra_degree where company_id = #{companyId}
         ORDER BY id DESC
     </select>
 </mapper>

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -948,4 +948,22 @@
         WHERE creator_id = #{userId}
           AND create_date BETWEEN #{startDate} AND #{endDate}
     </select>
+
+    <select id="getPushProjectReportToSap" resultType="java.util.Map">
+        select u.job_number as EmployeeID,r.create_date as StartDate,r.create_date as EndDate,r.start_time as StartTime,r.end_time as EndTime,r.working_time as Duration,tg.task_group_code as ProjectElementID,
+        red.code as ServiceProductInternalID,r.content as WorkDescriptionText
+        from report r
+        left join user u on u.id=r.creator_id
+        left join project p on p.id=r.project_id
+        left join task t on t.id=r.task_id
+        left join task_group tg on tg.id=t.group_id
+        left join report_extra_degree red on red.id=r.degree_id
+        where r.company_id=#{companyId}
+        <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''">
+            and r.create_date between #{startDate} and #{endDate}
+        </if>
+        <if test="userId!=null and userId!=''">
+            and r.creator_id=#{userId}
+        </if>
+    </select>
 </mapper>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml