Browse Source

历史考勤bug修复

dzx 8 months ago
parent
commit
b215ad9662

+ 4 - 0
src/main/java/com/xjrsoft/module/attendance/controller/TeacherStatisticsController.java

@@ -12,6 +12,7 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.attendance.dto.TeacherDetailsDto;
+import com.xjrsoft.module.attendance.entity.AttendanceUserRelation;
 import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
 import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;
 import com.xjrsoft.module.attendance.vo.TeacherStatisticsPageVo;
@@ -76,6 +77,8 @@ public class TeacherStatisticsController {
         MPJLambdaWrapper<User> queryUser = new MPJLambdaWrapper<>();
         queryUser.disableSubLogicDel().distinct()
                 .eq(ObjectUtil.isNotNull(dto.getDeptId()), UserDeptRelation::getDeptId, dto.getDeptId())
+                .eq(StrUtil.isNotEmpty(dto.getAttendanceMode()), AttendanceUserRelation::getAttendanceMode, dto.getAttendanceMode())
+                .like(StrUtil.isNotEmpty(dto.getCarNumber()), AttendanceUserRelation::getCarNumber, dto.getCarNumber())
                 .like(StrUtil.isNotEmpty(dto.getName()), User::getName, dto.getName())
                 .selectAs(User::getName, TeacherStatisticsPageVo::getTeacherName)
                 .selectAs(User::getId, TeacherStatisticsPageVo::getUserId)
@@ -83,6 +86,7 @@ public class TeacherStatisticsController {
                 .selectAs(Department::getName, TeacherStatisticsPageVo::getDeptName)
                 .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
                 .innerJoin(UserDeptRelation.class, UserDeptRelation::getUserId, User::getId)
+                .leftJoin(AttendanceUserRelation.class, AttendanceUserRelation::getUserId, User::getId)
                 .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId);
         IPage<TeacherStatisticsPageVo> voIPage = xjrUserService.selectJoinListPage(ConventPage.getPage(dto), TeacherStatisticsPageVo.class, queryUser);
 

+ 6 - 0
src/main/java/com/xjrsoft/module/attendance/dto/TeacherDetailsDto.java

@@ -23,4 +23,10 @@ public class TeacherDetailsDto extends PageInput {
 
     @ApiModelProperty("部门id")
     private Long deptId;
+
+    @ApiModelProperty("考勤方式")
+    private String attendanceMode;
+
+    @ApiModelProperty("车牌号")
+    private String carNumber;
 }

+ 7 - 4
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -406,12 +406,10 @@ public class DataUtil {
                 " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND t4.delete_mark = 0";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql, String[].class);
         JsonArray paramArray = new JsonArray();
+        ApiUtil apiUtil = new ApiUtil();
         Map<Integer, String> clientMap = new HashMap<>();
         for(int i = 0; i < list.size(); i ++){
             Map<String, Object> objectMap = list.get(i);
-            if(tableData != null && tableData.containsKey(objectMap.get("id").toString())){
-                continue;
-            }
             JsonObject paramJson = new JsonObject();
             paramJson.addProperty("clientId", i);
             paramJson.addProperty("personId", objectMap.get("id").toString());
@@ -435,6 +433,11 @@ public class DataUtil {
                     break;
             }
             paramJson.addProperty("gender", gender);
+            if(tableData != null && tableData.containsKey(objectMap.get("id").toString())){
+                String apiPath = "/api/resource/v1/person/single/update";
+                apiUtil.doPost(apiPath, paramJson.toString(), null);
+                continue;
+            }
             paramArray.add(paramJson);
 
             clientMap.put(i, objectMap.get("id").toString());
@@ -443,7 +446,7 @@ public class DataUtil {
         String apiPath = "/api/resource/v1/person/batch/add";
         Map<String, String> idMap = new HashMap<>();
         JsonParser jsonParser = new JsonParser();
-        ApiUtil apiUtil = new ApiUtil();
+
         Map<String, String> header = new HashMap<>();
         header.put("tagId", "insert_teacher");
 

+ 3 - 3
src/main/resources/mapper/outin/StudentOutInRecordMapper.xml

@@ -15,7 +15,7 @@
         SELECT t1.class_id AS id,COUNT(t1.user_id) FROM student_out_in_record t1
         INNER JOIN base_student_school_roll t2 ON t1.user_id = t2.user_id
         WHERE t1.delete_mark = 0 AND t1.status = 0 AND t2.delete_mark = 0
-        AND t2.stduy_status = 'FB3001'
+        AND t2.stduy_status = 'FB3002'
         AND t1.record_time BETWEEN #{startTime} AND #{endTime}
         GROUP BY t1.class_id
     </select>
@@ -24,7 +24,7 @@
         SELECT t1.* FROM student_out_in_record t1
         INNER JOIN base_student_school_roll t2 ON t1.user_id = t2.user_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
-        AND t2.stduy_status = 'FB3002'
+        AND t2.stduy_status = 'FB3001'
         AND t1.record_time BETWEEN #{startTime} AND #{endTime}
         and DATE_FORMAT(t1.record_time, '%Y-%m-%d') not in (
             SELECT holiday_date.date FROM holiday_date WHERE STATUS IN (0, 2) AND delete_status = 0
@@ -35,7 +35,7 @@
         SELECT t1.* FROM student_out_in_record t1
         INNER JOIN base_student_school_roll t2 ON t1.user_id = t2.user_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
-        AND t2.stduy_status = 'FB3001'
+        AND t2.stduy_status = 'FB3002'
         AND t1.record_time BETWEEN #{startTime} AND #{endTime}
         and DATE_FORMAT(t1.record_time, '%Y-%m-%d') not in (
             SELECT holiday_date.date FROM holiday_date WHERE STATUS IN (0, 2) AND delete_status = 0