Forráskód Böngészése

1.加班取消完善。
2.模板选人完善。

tomatozq 4 éve
szülő
commit
d292b7308b

+ 1 - 0
common/src/main/java/com/jpsoft/shinestar/modules/business/dao/WorkScheduleAttendanceDAO.java

@@ -49,4 +49,5 @@ public interface WorkScheduleAttendanceDAO {
 	List<Integer> findHqCloseTimeByPersonIdAndSEDate(Long personId, Date startDate,Date endDate);
 
     WorkScheduleAttendance findOneBySupplementWorkPersonId(String supplementWorkPersonId);
+    WorkScheduleAttendance findOneByWorkOverPersonId(String workOverPersonId);
 }

+ 2 - 0
common/src/main/java/com/jpsoft/shinestar/modules/business/service/WorkScheduleAttendanceService.java

@@ -73,4 +73,6 @@ public interface WorkScheduleAttendanceService {
 	int findHqOvertimeByPersonIdAndSEDate(Long personId, Date startDate,Date endDate);
 
     WorkScheduleAttendance findOneBySupplementWorkPersonId(String supplementWorkPersonId);
+
+    WorkScheduleAttendance findOneByWorkOverPersonId(String workOverPersonId);
 }

+ 12 - 7
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/WorkScheduleAttendanceServiceImpl.java

@@ -497,9 +497,9 @@ public class WorkScheduleAttendanceServiceImpl implements WorkScheduleAttendance
 
             if (attendanceList.size() > 0) {
                 //可能存在考勤机离线后没有实时传输回打卡记录,这时需要判断数据库中已有该时间段打卡时间<当前打卡时间 & 打卡状态是1 的数量
-//                long count = attendanceList.stream().filter(item -> item.getRecordTime().compareTo(recordTime) > 0 && "1".equals(item.getResult())).count();
+                long count = attendanceList.stream().filter(item -> item.getRecordTime().compareTo(recordTime) > 0 && "1".equals(item.getResult())).count();
 
-//                if (count == 0) {
+                if (count == 0) {
                     //将之前打卡记录删除
                     for (WorkScheduleAttendance workScheduleAttendance : attendanceList) {
                         workScheduleAttendance.setDelFlag(true);
@@ -507,11 +507,11 @@ public class WorkScheduleAttendanceServiceImpl implements WorkScheduleAttendance
 
                         workScheduleAttendanceDAO.update(workScheduleAttendance);
                     }
-//                }
-//                else {
-//                    //数据库中已有该时间段打卡时间>当前打卡时间,则忽略当前考勤记录
-//                    return result;
-//                }
+                }
+                else {
+                    //数据库中已有该时间段打卡时间>当前打卡时间,则忽略当前考勤记录
+                    return result;
+                }
             }
 
             saveWorkAttendance(personId, temperature, recordTime, date.toString("yyyy-MM-dd"), workPersonScheduling.getId(),
@@ -1177,4 +1177,9 @@ public class WorkScheduleAttendanceServiceImpl implements WorkScheduleAttendance
     public WorkScheduleAttendance findOneBySupplementWorkPersonId(String supplementWorkPersonId) {
         return workScheduleAttendanceDAO.findOneBySupplementWorkPersonId(supplementWorkPersonId);
     }
+
+    @Override
+    public WorkScheduleAttendance findOneByWorkOverPersonId(String workOverPersonId) {
+        return workScheduleAttendanceDAO.findOneByWorkOverPersonId(workOverPersonId);
+    }
 }

+ 1 - 1
common/src/main/resources/mapper/base/PersonInfo.xml

@@ -537,7 +537,7 @@
         )
     </select>
     <select id="findByCompanyCode" resultMap="com.jpsoft.shinestar.modules.base.dao.PersonInfoDAO.PersonInfoMap">
-        select a.*
+        select a.*,b.name_ as company_name
         from base_person_info a
         left join base_company_info b on a.company_id = b.id_
         where a.del_flag = 0

+ 9 - 0
common/src/main/resources/mapper/business/WorkScheduleAttendance.xml

@@ -626,4 +626,13 @@
         order by create_time desc
         limit 1
     </select>
+    <select id="findOneByWorkOverPersonId" resultMap="WorkScheduleAttendanceMap">
+        select * from business_work_schedule_attendance
+        where
+        work_over_person_id=#{workOverPersonId}
+        and
+        del_flag=0
+        order by create_time desc
+        limit 1
+    </select>
 </mapper>

+ 10 - 9
web/src/main/java/com/jpsoft/shinestar/modules/base/controller/PersonInfoController.java

@@ -2000,7 +2000,8 @@ public class PersonInfoController {
             User user = userService.get(subject);
 
             if(user!=null){
-                searchParams.put("code","%"+user.getCompanyId()+"%");
+                CompanyInfo companyInfo = companyInfoService.get(user.getCompanyId());
+                searchParams.put("code",companyInfo.getCode()+"%");
             }
 
             List<Sort> sortList = new ArrayList<>();
@@ -2008,18 +2009,18 @@ public class PersonInfoController {
 
             List<PersonInfo> list = personInfoService.findByCompanyCode(searchParams,sortList);
 
+            List<Map> mapList = new ArrayList<>();
+
             for (PersonInfo personInfo:list) {
-                personInfo.setStrId(personInfo.getId().toString());
-                String name = personInfo.getName();
-                String companyId = personInfo.getCompanyId();
-                CompanyInfo companyInfo = companyInfoService.get(companyId);
-                if(companyInfo!=null){
-                    personInfo.setName(name+"—"+companyInfo.getName());
-                }
+                Map<String,Object> personMap = new HashMap<>();
+                personMap.put("strId",personInfo.getId().toString());
+                personMap.put("name",personInfo.getName()+"—"+personInfo.getCompanyName());
+
+                mapList.add(personMap);
             }
 
             msgResult.setResult(true);
-            msgResult.setData(list);
+            msgResult.setData(mapList);
         }
         catch(Exception ex){
             logger.error(ex.getMessage(),ex);

+ 16 - 0
web/src/main/java/com/jpsoft/shinestar/modules/base/controller/WorkOverController.java

@@ -7,6 +7,8 @@ import com.jpsoft.shinestar.modules.base.dto.WorkOverStatistics;
 import com.jpsoft.shinestar.modules.base.entity.*;
 import com.jpsoft.shinestar.modules.base.service.*;
 import com.jpsoft.shinestar.modules.business.dto.UpdatePersonAttendanceDTO;
+import com.jpsoft.shinestar.modules.business.entity.WorkScheduleAttendance;
+import com.jpsoft.shinestar.modules.business.service.WorkScheduleAttendanceService;
 import com.jpsoft.shinestar.modules.common.dto.MessageResult;
 import com.jpsoft.shinestar.modules.common.dto.Sort;
 import com.jpsoft.shinestar.modules.common.utils.OSSUtil;
@@ -73,6 +75,9 @@ public class WorkOverController {
     @Autowired
     RabbitTemplate rabbitTemplate;
 
+    @Autowired
+    private WorkScheduleAttendanceService workScheduleAttendanceService;
+
     @ApiOperation(value="创建空记录")
     @GetMapping("create")
     public MessageResult<WorkOver> create(){
@@ -193,6 +198,17 @@ public class WorkOverController {
                     workOverPerson.setUpdateTime(new Date());
                     workOverPersonService.update(workOverPerson);
 
+                    WorkScheduleAttendance workScheduleAttendance  = workScheduleAttendanceService.findOneByWorkOverPersonId(workOverPerson.getId());
+
+                    if(workScheduleAttendance!=null){
+                        workScheduleAttendance.setRemark("取消加班");
+                        workScheduleAttendance.setDelFlag(true);
+                        workScheduleAttendance.setUpdateTime(new Date());
+                        workScheduleAttendance.setUpdateBy(subject);
+
+                        workScheduleAttendanceService.update(workScheduleAttendance);
+                    }
+
                     PersonPopedom personPopedom = personPopedomService.get(workOverPerson.getPersonPopedomId());
 
                     UpdatePersonAttendanceDTO updatePersonAttendanceDTO = new UpdatePersonAttendanceDTO(