zh 3 éve
szülő
commit
80b8bff7a8

+ 5 - 0
boman-web-core/src/main/java/com/boman/web/core/controller/AttendanceController.java

@@ -102,4 +102,9 @@ public class AttendanceController {
     public AjaxResult findDate(@PathVariable("date") String date, @PathVariable("userId") Long userId) {
         return service.findDate(date, userId);
     }
+
+    @PostMapping("/updateAttendance")
+    public AjaxResult updateAttendance(FormDataDto dto) {
+        return service.updateAttendance(dto);
+    }
 }

+ 27 - 0
boman-web-core/src/main/java/com/boman/web/core/mapper/AttendanceMapper.java

@@ -0,0 +1,27 @@
+package com.boman.web.core.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.SelectProvider;
+
+import java.util.List;
+import java.util.Map;
+
+public interface AttendanceMapper {
+
+    /**
+     * 功能描述: 自定义查询,需要查询的字段和value都在condition中
+     * {@link StandardlyMapper.SqlProvider#selectByCondition(Map)}
+     *
+     * @param tableName     tableName
+     * @param condition     condition
+     * @param packCondition 封装好的查询条件
+     * @param showData      需要查询的列
+     * @param orderBy       orderBy
+     * @param limit         分页
+     * @param offset        分页, 可以为null
+     * @return java.util.List<com.alibaba.fastjson.JSONObject>
+     */
+    @SelectProvider(type = StandardlyMapper.SqlProvider.class, method = "selectByCondition")
+    List<JSONObject> selectByCondition(@Param("tableName") String tableName);
+}

+ 9 - 0
boman-web-core/src/main/java/com/boman/web/core/service/attendance/AttendanceService.java

@@ -75,4 +75,13 @@ public interface AttendanceService {
      * @return
      */
     AjaxResult findDate(String date,Long userId);
+
+    /**
+     * 流程结束后修改状态
+     *
+     * @param date
+     * @param userId
+     * @return
+     */
+    AjaxResult updateAttendance(FormDataDto dto);
 }

+ 37 - 4
boman-web-core/src/main/java/com/boman/web/core/service/attendance/AttendanceServiceImpl.java

@@ -9,10 +9,7 @@ import com.boman.common.redis.RedisKey;
 import com.boman.domain.GenTable;
 import com.boman.domain.GenTableColumn;
 import com.boman.domain.constant.FormDataConstant;
-import com.boman.domain.dto.AjaxResult;
-import com.boman.domain.dto.ClockOnDto;
-import com.boman.domain.dto.FormDataDto;
-import com.boman.domain.dto.UpdateDto;
+import com.boman.domain.dto.*;
 import com.boman.web.core.mapper.StandardlyMapper;
 import com.boman.web.core.service.TableServiceCmdService;
 import com.boman.web.core.service.attendance.rules.AttendanceRulesService;
@@ -428,6 +425,42 @@ public class AttendanceServiceImpl implements AttendanceService {
         return AjaxResult.success(jsonObjectList);
     }
 
+    @Override
+    public AjaxResult updateAttendance(FormDataDto dto) {
+        JSONObject condition = ifNullSetEmpty(dto.getFixedData().getJSONObject(CONDITION));
+        String tableName = "attendance_table";
+        GenTable genTable = cmdService.getTableFromRedisByTableName(RedisKey.TABLE_INFO, tableName);
+        List<GenTableColumn> columns = genTable.getColumns();
+        JSONObject packCondition = ifNullSetEmpty(selectService.packColCondition(columns, condition));
+        JSONObject result = new JSONObject();
+        List<JSONObject> rows = selectService.selectByCondition(tableName, condition, packCondition, null, dto);
+
+        List<Map<String, Object>> detailedRecordList = new ArrayList<>();
+        if (isEmpty(rows)) {
+            result.put(FormDataConstant.PAGE_ROWS, rows);
+            return AjaxResult.success(result);
+        }
+
+        for (JSONObject jsonObject : rows) {
+            Map<String, Object> map = new HashMap<>(5);
+            Object attendanceTableWork = jsonObject.get("attendance_table_work");
+            Object attendanceTableOffWork = jsonObject.get("attendance_table_offwork");
+            map.put("attendanceTableWork", "未打卡");
+            map.put("attendanceTableOffWork", "未打卡");
+            if (isNotEmpty(attendanceTableWork)) {
+                map.put("attendanceTableWork", attendanceTableWork + "已打卡");
+            }
+            if (isNotEmpty(attendanceTableOffWork)) {
+                map.put("attendanceTableWork", attendanceTableOffWork + "已打卡");
+            }
+
+            map.put("dateTime", jsonObject.get("attendance_table_week") + " " + jsonObject.get("attendance_table_todaytime"));
+            detailedRecordList.add(map);
+        }
+
+        return null;
+    }
+
 
     /**
      * 获取某年某月每一天日期