소스 검색

同步数据新增不同步数据未0小时的数据

anderx 2 달 전
부모
커밋
09cb20439c
1개의 변경된 파일32개의 추가작업 그리고 25개의 파일을 삭제
  1. 32 25
      ruoyi-system/src/main/java/com/ruoyi/project/service/impl/ProjectTaskServiceImpl.java

+ 32 - 25
ruoyi-system/src/main/java/com/ruoyi/project/service/impl/ProjectTaskServiceImpl.java

@@ -623,34 +623,41 @@ public class ProjectTaskServiceImpl   implements ProjectTaskService {
             List<PushRdDataListBo> rdList = in.getRdList();
             rdList.stream().forEach(e -> {
                 ProjectStaffRecord p = new ProjectStaffRecord();
-                if (e.getProjectNumber() != null&&e.getDuration()>0){
-                    ProjectTask projectTask =getCompanyProject(projectMap,e.getProjectNumber(), sysDept.getDeptId());
-                    if (projectTask!=null){
-                        p.setPid(projectTask.getId());
+                if (e.getProjectNumber() != null){
+                    //如果传入时间未0,则需要删除当天打卡数据
+                    if (e.getDuration()>0){
+                        ProjectTask projectTask =getCompanyProject(projectMap,e.getProjectNumber(), sysDept.getDeptId());
+                        if (projectTask!=null){
+                            p.setPid(projectTask.getId());
+                        }else {
+                            throw  new ServiceException("项目不存在");
+                        }
+                        SysUser sysUser=getCompanyUser(userMap,e.getAdminKyId());
+                        if (sysUser!=null){
+                            p.setAid(sysUser.getUserId());
+                            p.setName(sysUser.getNickName());
+                        }
+                        p.setRecordTime(DateUtils.parseDate(e.getRecordTime()));
+                        p.setDuration(e.getDuration());
+                        p.setInitDuration(e.getDuration());
+                        //如果是已有数据覆盖,没有数据新增
+                        ProjectStaffRecord projectStaffRecord = projectStaffRecordMapper.selectByPidAndAidAndTime(p.getPid(), p.getAid(), p.getRecordTime());
+                        p.setProjectStatus(0);
+                        p.setProcessStatus(2);
+                        p.setCheckStatus(0);
+                        if (projectStaffRecord!=null){
+                            p.setId(projectStaffRecord.getId());
+                            projectStaffRecordMapper.updateByPrimaryKeySelective(p);
+                        }else{
+                            projectStaffRecordMapper.insertSelective(p);
+                        }
                     }else {
-                        throw  new ServiceException("项目不存在");
-                    }
-                    SysUser sysUser=getCompanyUser(userMap,e.getAdminKyId());
-                    if (sysUser!=null){
-                        p.setAid(sysUser.getUserId());
-                        p.setName(sysUser.getNickName());
-                    }
-                    p.setRecordTime(DateUtils.parseDate(e.getRecordTime()));
-                    p.setDuration(e.getDuration());
-                    p.setInitDuration(e.getDuration());
-                    //如果是已有数据覆盖,没有数据新增
-                    ProjectStaffRecord projectStaffRecord = projectStaffRecordMapper.selectByPidAndAidAndTime(p.getPid(), p.getAid(), p.getRecordTime());
-                    p.setProjectStatus(0);
-                    p.setProcessStatus(2);
-                    p.setCheckStatus(0);
-                    if (projectStaffRecord!=null){
-                        p.setId(projectStaffRecord.getId());
-                        projectStaffRecordMapper.updateByPrimaryKeySelective(p);
-                    }else{
-                        projectStaffRecordMapper.insertSelective(p);
+                        ProjectStaffRecord projectStaffRecord = projectStaffRecordMapper.selectByPidAndAidAndTime(p.getPid(), p.getAid(), p.getRecordTime());
+                        if (projectStaffRecord!=null){
+                            projectStaffRecordMapper.deleteByPrimaryKey(projectStaffRecord.getId());
+                        }
                     }
 
-
                 }
             });
             //更新项目总时长