Sfoglia il codice sorgente

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Lijy 1 anno fa
parent
commit
4973179837

+ 9 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Task.java

@@ -21,7 +21,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2023-02-27
+ * @since 2023-11-23
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -61,13 +61,13 @@ public class Task extends Model<Task> {
     private String creatorColor;
 
     /**
-     * 执行人id
+     * 执行人id,多个
      */
     @TableField("executor_id")
     private String executorId;
 
     /**
-     * 执行人姓名
+     * 执行人姓名,多个
      */
     @TableField("executor_name")
     private String executorName;
@@ -214,6 +214,12 @@ public class Task extends Model<Task> {
     @TableField("meeting_id")
     private String meetingId;
 
+    /**
+     * SAP服务编号
+     */
+    @TableField("service_id")
+    private String serviceId;
+
     @TableField(exist = false)
     private List<TaskExecutor> executorList;
 

+ 61 - 27
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -17,6 +17,7 @@ import com.management.platform.service.*;
 import com.management.platform.util.*;
 import com.management.platform.webservice.po.*;
 import com.sun.star.bridge.oleautomation.Decimal;
+import javafx.stage.Stage;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpPost;
@@ -228,6 +229,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     private HttpServletResponse response;
     @Resource
     private ReportExtraDegreeService reportExtraDegreeService;
+    @Resource
+    private TaskService taskService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -11300,8 +11303,8 @@ 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);
+        //获取SAP项目服务数据 ----> 工时管家任务分组下阶段作为项目服务数据
+        XmlResponseData projectServiceData= syncServiceData("2020-01-01", 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));
@@ -11346,8 +11349,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         System.out.println(result);
         XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
         List<ProjectQueryResponse> projectQueryResponses = xmlResponseData.getProjectQueryResponses();
+        List<Map<String,Object>> idsMapList=new ArrayList<>();
         if(projectQueryResponses!=null&&projectQueryResponses.size()>0){
-            List<TaskGroup> taskGroupList=new ArrayList<>();
+            List<Task> taskList=new ArrayList<>();
             for (ProjectQueryResponse item : projectQueryResponses) {
                 Project project=new Project();
                 //处理项目分类
@@ -11392,6 +11396,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     projectCategory.setName(categoryName);
                     projectCategory.setCompanyId(companyId);
                     projectCategoryMapper.insert(projectCategory);
+                    allProjectCategoryList.add(projectCategory);
                     project.setCategory(projectCategory.getId());
                     project.setCategoryName(projectCategory.getName());
                 }else {
@@ -11416,17 +11421,63 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         taskGroup.setTaskGroupCode(ps.getProjectElementID());
                         taskGroup.setName(ps.getTaskGroupName().getName());
                         TaskGroup one = taskGroupMapper.selectOne(new QueryWrapper<TaskGroup>().eq("project_id", project.getId()).eq("task_group_code", ps.getProjectElementID()));
-                        if(one==null){
-                            taskGroupList.add(taskGroup);
+                        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);
                     });
                 }
             }
-            if(taskGroupList.size()>0){
-                if(!taskGroupService.saveBatch(taskGroupList)){
-                   msg.setError("任务分组同步验证失败");
+            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);
+                                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.getName().equals(serviceProduct.getDescription().getDescription() + "-" + serviceProduct.getInternalID())).findFirst();
+                                if(!optional.isPresent()){
+                                    taskList.add(task);
+                                }
+                            }
+                        }
+                    }
                 }
             }
+            if(taskList.size()>0){
+                taskService.saveBatch(taskList);
+            }
         }
         msg.setData(xmlResponseData);
         return msg;
@@ -11571,8 +11622,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     //同步SAP项目服务数据到工时管家
-    private void syncServiceData(String startDate, String endDate, Integer companyId) {
-        List<ReportExtraDegree> extraDegrees = reportExtraDegreeService.list(new QueryWrapper<ReportExtraDegree>().eq("company_id", companyId));
+    private XmlResponseData syncServiceData(String startDate, String endDate, Integer companyId) {
         //配置请求xml
         XmlRequestData xmlRequestData=new XmlRequestData();
         ProcessingConditions processingConditions=new ProcessingConditions();
@@ -11606,22 +11656,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         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);
+        return xmlResponseData;
     }
 }

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

@@ -7066,6 +7066,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         workDescriptionText.setLanguageCode("ZH");
         SapPeriod datePeriod=new SapPeriod();
         SapPeriod timePeriod=new SapPeriod();
+        List<ReportPushLog> addList=new ArrayList<>();
         for (Map<String, Object> map : resultList) {
             ReportPushLog one = reportPushLogService.getOne(new LambdaQueryWrapper<ReportPushLog>().eq(ReportPushLog::getCompanyId, companyId).eq(ReportPushLog::getReportId, map.get("ReportId")).eq(ReportPushLog::getTargetSystem,"SAP"));
             if(one!=null){
@@ -7133,6 +7134,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 reportPushLog.setTargetSystem("SAP");
             }
         }
+        if(addList.size()>0){
+            reportPushLogService.saveBatch(addList);
+        }
         return httpRespMsg;
     }
 }

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

@@ -3,12 +3,13 @@ package com.management.platform.webservice.po;
 import lombok.Data;
 
 import javax.xml.bind.annotation.XmlElement;
+import java.util.List;
 
 @Data
 public class ZManageProjectTaskWork {
 
     private String projectID;
-    private RequestTask task;
+    private List<RequestTask> tasks;
     private String UUID;
 
     @XmlElement(name = "ProjectID")
@@ -17,8 +18,8 @@ public class ZManageProjectTaskWork {
     }
 
     @XmlElement(name = "Task")
-    public RequestTask getTask() {
-        return task;
+    public List<RequestTask> getTasks() {
+        return tasks;
     }
 
     @XmlElement(name = "UUID")

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -30,6 +30,7 @@
         <result column="finish_date" property="finishDate" />
         <result column="start_date" property="startDate" />
         <result column="meeting_id" property="meetingId" />
+        <result column="service_id" property="serviceId" />
     </resultMap>
 
     <resultMap id="timeResultMap" type="com.management.platform.entity.TimeTask" >
@@ -95,7 +96,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, task_desc, creater_id, creater_name, creator_color, executor_id, executor_name, executor_color, task_level, task_status, create_date, end_date, project_id, stages_id, company_id, indate, parent_tid, group_id, seq, plan_hours, task_type, parent_tname, finish_date, start_date, meeting_id
+        id, name, task_desc, creater_id, creater_name, creator_color, executor_id, executor_name, executor_color, task_level, task_status, create_date, end_date, project_id, stages_id, company_id, indate, parent_tid, group_id, seq, plan_hours, task_type, parent_tname, finish_date, start_date, meeting_id, service_id
     </sql>
     <select id="simpleList" resultMap="BaseResultMap">
         select id, name, creater_id, creater_name, creator_color, executor_id, executor_name, executor_color, task_level, task_status, create_date, end_date, project_id, stages_id, company_id, indate, parent_tid, group_id, seq, plan_hours, task_type, parent_tname, finish_date, start_date