Browse Source

优化补卡逻辑

tomatozq 3 years ago
parent
commit
4e81bc11d1

+ 35 - 41
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcinstActUserServiceImpl.java

@@ -325,25 +325,7 @@ public class ProcinstActUserServiceImpl implements ProcinstActUserService {
 
                                     //补卡
                                     if ("4".equals(procinst.getType()) || "5".equals(procinst.getType())) {
-
-                                        if (supplementWork != null) {
-                                            supplementWork.setStatus(status);
-                                            supplementWork.setUpdateTime(new Date());
-                                            supplementWorkService.update(supplementWork);
-                                            List<SupplementWorkPerson> supplementWorkPersonList = supplementWorkPersonService.findBySupplementWorkId(supplementWork.getId());
-                                            if (supplementWorkPersonList.size() > 0) {
-                                                for (SupplementWorkPerson supplementWorkPerson : supplementWorkPersonList) {
-                                                    WorkScheduleAttendance workScheduleAttendance = workScheduleAttendanceService.get(supplementWorkPerson.getScheduleAttendanceId());
-                                                    if (workScheduleAttendance != null) {
-                                                        workScheduleAttendance.setResult("1");
-                                                        workScheduleAttendance.setRemark("补卡");
-                                                        workScheduleAttendance.setUpdateTime(new Date());
-                                                        workScheduleAttendanceService.update(workScheduleAttendance);
-
-                                                    }
-                                                }
-                                            }
-                                        }
+                                        supplement(status, supplementWork);
                                     }
 
                                     //批量加班
@@ -778,28 +760,7 @@ public class ProcinstActUserServiceImpl implements ProcinstActUserService {
                                 }
                                 //补卡
                                 if ("4".equals(procinst.getType()) || "5".equals(procinst.getType())) {
-
-                                    if (supplementWork != null) {
-                                        supplementWork.setStatus(status);
-                                        supplementWork.setUpdateTime(new Date());
-                                        supplementWorkService.update(supplementWork);
-                                        List<SupplementWorkPerson> supplementWorkPersonList = supplementWorkPersonService.findBySupplementWorkId(supplementWork.getId());
-                                        if (supplementWorkPersonList.size() > 0) {
-                                            for (SupplementWorkPerson supplementWorkPerson : supplementWorkPersonList) {
-                                                WorkScheduleAttendance workScheduleAttendance = workScheduleAttendanceService.get(supplementWorkPerson.getScheduleAttendanceId());
-
-                                                WorkScheduleAttendance workScheduleAttendance1 = workScheduleAttendanceService.findByScheduleAttendanceId(workScheduleAttendance.getPersonScheduleId(),workScheduleAttendance.getWorkShiftId(),workScheduleAttendance.getClassify());
-                                                if (workScheduleAttendance1 != null) {
-                                                    workScheduleAttendance1.setResult("1");
-                                                    workScheduleAttendance1.setRemark("补卡");
-                                                    workScheduleAttendance1.setUpdateTime(new Date());
-                                                    workScheduleAttendanceService.update(workScheduleAttendance1);
-                                                    supplementWorkPerson.setScheduleAttendanceId(workScheduleAttendance1.getId());
-                                                }
-
-                                            }
-                                        }
-                                    }
+                                    supplement(status, supplementWork);
                                 }
                                 //批量加班
                                 if ("6".equals(procinst.getType()) || "7".equals(procinst.getType())) {
@@ -1272,6 +1233,39 @@ public class ProcinstActUserServiceImpl implements ProcinstActUserService {
 
     }
 
+    private void supplement(String status, SupplementWork supplementWork) {
+        if (supplementWork != null) {
+            supplementWork.setStatus(status);
+            supplementWork.setUpdateTime(new Date());
+            supplementWorkService.update(supplementWork);
+            List<SupplementWorkPerson> supplementWorkPersonList = supplementWorkPersonService.findBySupplementWorkId(supplementWork.getId());
+
+            if (supplementWorkPersonList.size() > 0) {
+                for (SupplementWorkPerson supplementWorkPerson : supplementWorkPersonList) {
+                    WorkScheduleAttendance workScheduleAttendance = workScheduleAttendanceService.get(supplementWorkPerson.getScheduleAttendanceId());
+
+                    if(workScheduleAttendance.getDelFlag()==null || workScheduleAttendance.getDelFlag()){
+                        workScheduleAttendance = workScheduleAttendanceService.findByScheduleAttendanceId(workScheduleAttendance.getPersonScheduleId(),workScheduleAttendance.getWorkShiftId(),workScheduleAttendance.getClassify());
+
+                        if (workScheduleAttendance != null) {
+                            supplementWorkPerson.setScheduleAttendanceId(workScheduleAttendance.getId());
+                            supplementWorkPersonService.update(supplementWorkPerson);
+                        }
+                    }
+
+                    if (workScheduleAttendance != null) {
+                        workScheduleAttendance.setResult("1");
+                        workScheduleAttendance.setRemark("补卡");
+                        workScheduleAttendance.setSupplementWorkPersonId(supplementWorkPerson.getId());
+                        workScheduleAttendance.setUpdateTime(new Date());
+
+                        workScheduleAttendanceService.update(workScheduleAttendance);
+                    }
+                }
+            }
+        }
+    }
+
 
     @Override
     public List<ProcinstActUser> findByProcinstActivityIdActionType(String procinstActivityId, String action, String type) {

+ 1 - 5
web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/ExamineApiController.java

@@ -665,20 +665,16 @@ public class ExamineApiController {
             @ApiImplicitParam(name = "content", value = "审核意见",required = true,paramType = "form")
     })
     public MessageResult<Map> examineSubmit(String procinstActUserIds,String status,String content,String token, @RequestAttribute String subject) {
-
-
         MessageResult<Map> messageResult = new MessageResult<>();
-        try{
 
+        try{
             PersonInfo person = personInfoService.get(Long.parseLong(subject));
             PersonPopedom personPopedom = personPopedomService.get(person.getPopedom());
 
             procinstActUserService.examineSubmit(procinstActUserIds,personPopedom,status,content);
 
-
             messageResult.setCode(200);
             messageResult.setResult(true);
-
         }catch (Exception ex){
             log.error(ex.getMessage(),ex);
             messageResult.setCode(400);