Browse Source

新增获取公司部门数据

anderx 4 months ago
parent
commit
8484a49b1a

+ 8 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ProjectTaskController.java

@@ -572,4 +572,12 @@ public class ProjectTaskController extends BaseController {
     public AjaxResult pushCompanyData(@RequestBody pushCompanyDataBo in){
         return AjaxResult.success(projectTaskService.pushCompanyData(in));
     }
+
+    /**
+     * 导入公司部门,项目,人员信息
+     */
+    @GetMapping("/pushRdData")
+    public AjaxResult pushRdData(@RequestBody pushRdDataBo in){
+        return AjaxResult.success(projectTaskService.pushRdData(in));
+    }
 }

+ 25 - 0
ruoyi-system/src/main/java/com/ruoyi/project/bo/pushRdDataBo.java

@@ -0,0 +1,25 @@
+package com.ruoyi.project.bo;
+
+import java.util.List;
+
+public class pushRdDataBo {
+
+    private List<pushRdDataListBo> rdList;
+    private String usci;
+
+    public String getUsci() {
+        return usci;
+    }
+
+    public void setUsci(String usci) {
+        this.usci = usci;
+    }
+
+    public List<pushRdDataListBo> getRdList() {
+        return rdList;
+    }
+
+    public void setRdList(List<pushRdDataListBo> rdList) {
+        this.rdList = rdList;
+    }
+}

+ 40 - 0
ruoyi-system/src/main/java/com/ruoyi/project/bo/pushRdDataListBo.java

@@ -0,0 +1,40 @@
+package com.ruoyi.project.bo;
+
+public class pushRdDataListBo {
+    private String projectNumber;
+    private String adminKyId;
+    private String recordTime;
+    private Double duration;
+
+    public Double getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Double duration) {
+        this.duration = duration;
+    }
+
+    public String getProjectNumber() {
+        return projectNumber;
+    }
+
+    public void setProjectNumber(String projectNumber) {
+        this.projectNumber = projectNumber;
+    }
+
+    public String getAdminKyId() {
+        return adminKyId;
+    }
+
+    public void setAdminKyId(String adminKyId) {
+        this.adminKyId = adminKyId;
+    }
+
+    public String getRecordTime() {
+        return recordTime;
+    }
+
+    public void setRecordTime(String recordTime) {
+        this.recordTime = recordTime;
+    }
+}

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/project/service/ProjectTaskService.java

@@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.project.bo.ProjectListInput;
 import com.ruoyi.project.bo.ProjectTaskListOut;
 import com.ruoyi.project.bo.pushCompanyDataBo;
+import com.ruoyi.project.bo.pushRdDataBo;
 import com.ruoyi.project.domain.ProjectTask;
 
 import javax.servlet.http.HttpServletResponse;
@@ -35,4 +36,6 @@ public interface ProjectTaskService {
     Object getCompanyData(String usci);
 
     Object pushCompanyData(pushCompanyDataBo in);
+
+    Object pushRdData(pushRdDataBo in);
 }

+ 49 - 0
ruoyi-system/src/main/java/com/ruoyi/project/service/impl/ProjectTaskServiceImpl.java

@@ -605,6 +605,55 @@ public class ProjectTaskServiceImpl   implements ProjectTaskService {
         return 1;
     }
 
+    @Override
+    public Object pushRdData(pushRdDataBo in) {
+        SysDept sysDept = sysDeptMapper.selectByusci(in.getUsci());
+        Map<String,Object> map=new HashMap();
+        if (!in.getRdList().isEmpty()){
+            List<pushRdDataListBo> rdList = in.getRdList();
+            rdList.stream().forEach(e -> {
+                ProjectStaffRecord p = new ProjectStaffRecord();
+                if (e.getProjectNumber() != null){
+                    ProjectTask projectTask =getCompanyProject(map,e.getProjectNumber(), sysDept.getDeptId());
+                    p.setPid(projectTask.getId());
+                    SysUser sysUser=getCompanyUser(map,e.getAdminKyId());
+                    p.setAid(sysUser.getUserId());
+                    p.setName(sysUser.getNickName());
+                    p.setProjectStatus(0);
+                    p.setProcessStatus(2);
+                    p.setRecordTime(DateUtils.parseDate(e.getRecordTime()));
+                    p.setDuration(e.getDuration());
+                    p.setCheckStatus(0);
+                    p.setInitDuration(e.getDuration());
+                    projectStaffRecordMapper.insertSelective(p);
+                }
+            });
+
+        }
+
+        return null;
+    }
+
+    private SysUser getCompanyUser(Map<String, Object> map, String adminKyId) {
+        if (map.keySet().contains(adminKyId)){
+            return (SysUser) map.get(adminKyId);
+        }else{
+            SysUser sysUser = userMapper.selectByKyId(adminKyId);
+            map.put(sysUser.getKyId(),sysUser);
+            return sysUser;
+        }
+    }
+
+    private ProjectTask getCompanyProject(Map<String, Object> map, String projectNumber, Long deptId) {
+        if (map.keySet().contains(projectNumber)){
+            return (ProjectTask) map.get(projectNumber);
+        }else{
+            ProjectTask projectTask = projectTaskMapper.selectByProjectNumber(projectNumber, deptId);
+            map.put(projectTask.getProjectNumber(),projectTask);
+            return projectTask;
+        }
+    }
+
     private void pushAddUserProject(List<pushDataProject> listUserProject) {
         listUserProject.stream().forEach(e -> {
             ProjectTask projectTask = new ProjectTask();