Selaa lähdekoodia

合并无匹配的数据直接新增

anderx 1 vuosi sitten
vanhempi
commit
c02dd04e74

+ 18 - 13
ruoyi-system/src/main/java/com/ruoyi/project/service/impl/ProjectStaffRecordServiceImpl.java

@@ -650,19 +650,7 @@ public class ProjectStaffRecordServiceImpl implements ProjectStaffRecordService
                     }else {
                         throw new ServiceException(String.format("新增必须知道打卡人"));
                     }
-                    if (StringUtils.isNotBlank(p.getProjectNumber())){
-                        ProjectTask projectTask = projectTaskMapper.selectByProjectNumber(p.getProjectNumber(),companyId);
-
-                        if (StringUtils.isNull(projectTask)){
-                            throw new ServiceException(String.format("项目[%s]不存在",p.getProjectName()));
-                        }
-                        p.setPid(projectTask.getId());
-                        if (!pids.contains(p.getPid())){
-                            pids.add(p.getPid());
-                        }
-                    }else {
-                        throw new ServiceException(String.format("新增必须知道打卡项目编号"));
-                    }
+                    pushProjectId(companyId, pids, p);
                     p.setProcessStatus(2);
                     projectStaffRecordMapper.insertSelective(p);
                     successNum++;
@@ -681,6 +669,7 @@ public class ProjectStaffRecordServiceImpl implements ProjectStaffRecordService
                         projectTaskMapper.updateDuration(projectStaffRecord.getPid());
                         sysUserMapper.updateDuration(projectStaffRecord.getAid());
                     }
+                    pushProjectId(companyId, pids, p);
                     projectStaffRecordMapper.updateByPrimaryKeySelective(p);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、项目: " + p.getProjectName() + " 更新成功");
@@ -721,6 +710,22 @@ public class ProjectStaffRecordServiceImpl implements ProjectStaffRecordService
         return successMsg.toString();
     }
 
+    private void pushProjectId(Long companyId, List<Long> pids, ProjectStaffRecordOut p) {
+        if (StringUtils.isNotBlank(p.getProjectNumber())){
+            ProjectTask projectTask = projectTaskMapper.selectByProjectNumber(p.getProjectNumber(),companyId);
+
+            if (StringUtils.isNull(projectTask)){
+                throw new ServiceException(String.format("项目[%s]不存在",p.getProjectName()));
+            }
+            p.setPid(projectTask.getId());
+            if (!pids.contains(p.getPid())){
+                pids.add(p.getPid());
+            }
+        }else {
+            throw new ServiceException(String.format("新增必须知道打卡项目编号"));
+        }
+    }
+
     @Override
     public AjaxResult myDuration(Long id,String recordTime) {
         String maxDurationProjectFlag = configService.selectConfigByKey("maxDurationProject");