From 1cd80b0193db031638fcda535573e2d8bc40e499 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 02 Mar 2022 17:46:24 +0800
Subject: [PATCH] 考勤打卡查询修改,导出修改

---
 src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml                       |   72 +++++++++++++++++------
 src/main/java/org/springblade/modules/attendance/service/impl/AttendanceServiceImpl.java           |   18 +++---
 src/main/java/org/springblade/modules/attendance/excel/AttendanceExcel.java                        |   28 +-------
 src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java |    1 
 src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java              |   35 +++--------
 src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.java                      |    9 +-
 src/main/java/org/springblade/modules/attendance/service/IAttendanceService.java                   |    8 +-
 7 files changed, 86 insertions(+), 85 deletions(-)

diff --git a/src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java b/src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java
index 24ccdf4..20e0cad 100644
--- a/src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java
+++ b/src/main/java/org/springblade/modules/attendance/controller/AttendanceController.java
@@ -79,9 +79,9 @@
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入attendance")
-	public R<IPage<AttendanceVO>> page(AttendanceVO attendance, Query query, Long department) {
-		IPage<Attendance> pages = attendanceService.selectAttendancePage(Condition.getPage(query), department, attendance);
-		return R.data(AttendanceWrapper.build().pageVO(pages));
+	public R<IPage<AttendanceVO>> page(AttendanceVO attendance, Query query) {
+		IPage<AttendanceVO> pages = attendanceService.selectAttendancePage(Condition.getPage(query), attendance);
+		return R.data(pages);
 	}
 
 //	/**
@@ -303,31 +303,14 @@
 	}
 
 	/**
-	 * 导出用户
+	 * 导出考勤数据
+	 * @param response
+	 * @param attendance
 	 */
 	@GetMapping("/export-Attendance")
-	public void exportAttendane(String name, String beginTime, String endTime, String attendancetype, HttpServletResponse response) {
-		String beginTimes = null;
-		String endTimes = null;
-		String attendancetypes = null;
-		if (beginTime.equals("undefined        ") && endTime.equals("undefined")) {
-			beginTimes=null;
-			endTimes=null;
-			attendancetypes=attendancetype;
-		}
-		else if (attendancetype.equals("undefined")){
-			attendancetypes=null;
-		}
-		else {
-			beginTimes=beginTime;
-			endTimes=endTime;
-			attendancetypes=attendancetype;
-		}
-
-		List<AttendanceExcel> list = attendanceService.exportAttendane(name, beginTimes, endTimes, attendancetypes);
+	public void exportAttendane(AttendanceVO attendance, HttpServletResponse response) {
+		List<AttendanceExcel> list = attendanceService.exportAttendane(attendance);
 		ExcelUtil.export(response, "考勤数据" + DateUtil.time(), "考勤数据表", list, AttendanceExcel.class);
-
-
-}
+	}
 
 }
diff --git a/src/main/java/org/springblade/modules/attendance/excel/AttendanceExcel.java b/src/main/java/org/springblade/modules/attendance/excel/AttendanceExcel.java
index e972f71..d186da9 100644
--- a/src/main/java/org/springblade/modules/attendance/excel/AttendanceExcel.java
+++ b/src/main/java/org/springblade/modules/attendance/excel/AttendanceExcel.java
@@ -37,23 +37,13 @@
 public class AttendanceExcel implements Serializable {
 	private static final long serialVersionUID = 1L;
 
-	@ColumnWidth(10)
-	@ExcelProperty("姓名")
-	private String name;
-
-	@ColumnWidth(20)
-	@ExcelProperty("编号")
-	private String number;
+	@ColumnWidth(25)
+	@ExcelProperty("企业名称")
+	private String deptName;
 
 	@ColumnWidth(15)
-	@ExcelProperty("部门")
-	private String department;
-
-	/**
-	 * 天气,忽略不显示
-	 */
-	@ExcelIgnore
-	private String weather;
+	@ExcelProperty("姓名")
+	private String realName;
 
 	@ColumnWidth(20)
 	@ExcelProperty("打卡时间")
@@ -66,13 +56,5 @@
 	@ColumnWidth(15)
 	@ExcelProperty("考勤类型")
 	private String attendanceType;
-
-	@ColumnWidth(15)
-	@ExcelProperty("星期")
-	private String week;
-
-	@ColumnWidth(40)
-	@ExcelProperty("地址")
-	private String address;
 
 }
diff --git a/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.java b/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.java
index f87de23..e069b4e 100644
--- a/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.java
+++ b/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.java
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.attendance.entity.Attendance;
 import org.springblade.modules.attendance.excel.AttendanceExcel;
 import org.springblade.modules.attendance.vo.AttendanceVO;
@@ -39,16 +40,16 @@
 	 * @param attendance
 	 * @return
 	 */
-	List<Attendance> selectAttendancePage(IPage page, Long department, AttendanceVO attendance);
+	List<AttendanceVO> selectAttendancePage(IPage page, @Param("attendance") AttendanceVO attendance);
 
 
 	/**
-	 * 获取导出用户数据
+	 * 导出考勤数据
 	 *
-	 * @param
+	 * @param attendance
 	 * @return
 	 */
-	List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes);
+	List<AttendanceExcel> exportAttendane(@Param("attendance") AttendanceVO attendance);
 
 	/**
 	 * 查询当前考勤人员当天的考勤信息
diff --git a/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml b/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml
index f3cf109..7b08a66 100644
--- a/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml
+++ b/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml
@@ -19,40 +19,72 @@
         <result column="address" property="address"/>
     </resultMap>
 
-
-    <select id="selectAttendancePage" resultMap="attendanceResultMap">
-        select * from sys_attendance where is_deleted = 0
-        <if test="attendance.name!=null and attendance.name != ''">
-            and name = #{attendance.name}
+    <!--自定义查询考试分页数据-->
+    <select id="selectAttendancePage" resultType="org.springblade.modules.attendance.vo.AttendanceVO">
+        select sa.*,bu.real_name realName from sys_attendance sa
+        left join blade_user bu on bu.id = sa.user_id
+        where 1=1
+        <if test="attendance.realName!=null and attendance.realName!=''">
+            and bu.real_name like concat('%',#{attendance.realName},'%')
         </if>
-        <if test="attendance.department!=null and attendance.department != ''">
-            and department = #{department}
+        <if test="attendance.deptId!=null">
+            and sa.dept_id = #{attendance.deptId}
         </if>
-        <if test="attendance.attendancetype!=null and attendance.attendancetype != ''">
-            and attendancetype = #{attendance.attendancetype}
+        <if test="attendance.userId!=null">
+            and sa.user_id = #{attendance.userId}
+        </if>
+        <if test="attendance.attendanceType!=null">
+            and sa.attendance_type = #{attendance.attendanceType}
+        </if>
+        <if test="attendance.clockType!=null">
+            and sa.clock_type = #{attendance.clockType}
         </if>
         <if test="attendance.beginTime!=null and attendance.beginTime!=''">
-            and clockTime&gt;=#{attendance.beginTime}
+            and date_format(sa.clock_time,'%Y-%m-%d')&gt;=#{attendance.beginTime}
         </if>
         <if test="attendance.endTime!=null and attendance.endTime!=''">
-            and clockTime&lt;=#{attendance.endTime}
+            and date_format(sa.clock_time,'%Y-%m-%d')&lt;=#{attendance.endTime}
         </if>
+        order by sa.id desc
     </select>
 
     <select id="exportAttendane" resultType="org.springblade.modules.attendance.excel.AttendanceExcel">
-        SELECT id, name, number, department, weather, clockTime, clockType, attendanceType,week,address FROM sys_attendance where is_deleted = 0
-        <if test="name!=null and name != ''">
-            and name = #{name}
+        select
+        sa.clock_time clockTime,
+        bu.real_name realName,
+        bd.dept_name deptName,
+        if(sa.clock_type=1,'上班','下班') clockType,
+        case when sa.attendance_type=1 then '正常'
+        when sa.attendance_type=2 then '迟到'
+        when sa.attendance_type=3 then '早退'
+        when sa.attendance_type=4 then '外勤'
+        else '无效打卡' end as attendanceType
+         from sys_attendance sa
+        left join blade_user bu on bu.id = sa.user_id
+        left join blade_dept bd on bd.id = sa.dept_id
+        where 1=1
+        <if test="attendance.realName!=null and attendance.realName!=''">
+            and bu.real_name like concat('%',#{attendance.realName},'%')
         </if>
-        <if test="beginTimes!=null and beginTimes!=''">
-            and clockTime&gt;=#{beginTimes}
+        <if test="attendance.deptId!=null">
+            and sa.dept_id = #{attendance.deptId}
         </if>
-        <if test="endTimes!=null and endTimes!=''">
-            and clockTime&lt;=#{endTimes}
+        <if test="attendance.userId!=null">
+            and sa.user_id = #{attendance.userId}
         </if>
-        <if test="attendancetypes!=null and attendancetypes!=''">
-            and attendancetype=#{attendancetypes}
+        <if test="attendance.clockType!=null">
+            and sa.clock_type = #{attendance.clockType}
         </if>
+        <if test="attendance.attendanceType!=null">
+            and sa.attendance_type = #{attendance.attendanceType}
+        </if>
+        <if test="attendance.beginTime!=null and attendance.beginTime!=''">
+            and sa.clock_time&gt;=#{attendance.beginTime}
+        </if>
+        <if test="attendance.endTime!=null and attendance.endTime!=''">
+            and sa.clock_time&lt;=#{attendance.endTime}
+        </if>
+        order by sa.id desc
     </select>
 
     <!--查询当前考勤人员当天的考勤信息-->
diff --git a/src/main/java/org/springblade/modules/attendance/service/IAttendanceService.java b/src/main/java/org/springblade/modules/attendance/service/IAttendanceService.java
index d03fbc3..816f2b7 100644
--- a/src/main/java/org/springblade/modules/attendance/service/IAttendanceService.java
+++ b/src/main/java/org/springblade/modules/attendance/service/IAttendanceService.java
@@ -39,13 +39,15 @@
 	 * @param attendance
 	 * @return
 	 */
-	IPage<Attendance> selectAttendancePage(IPage<Attendance> page, Long department, AttendanceVO attendance);
+	IPage<AttendanceVO> selectAttendancePage(IPage<AttendanceVO> page, AttendanceVO attendance);
+
+
 	/**
-	 * 导出用户数据
+	 * 导出考勤数据
 	 *
 	 * @return
 	 */
-	List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes);
+	List<AttendanceExcel> exportAttendane(AttendanceVO attendance);
 
 	/**
 	 * 查询当前考勤人员当天的考勤信息
diff --git a/src/main/java/org/springblade/modules/attendance/service/impl/AttendanceServiceImpl.java b/src/main/java/org/springblade/modules/attendance/service/impl/AttendanceServiceImpl.java
index 00f45ef..12203ae 100644
--- a/src/main/java/org/springblade/modules/attendance/service/impl/AttendanceServiceImpl.java
+++ b/src/main/java/org/springblade/modules/attendance/service/impl/AttendanceServiceImpl.java
@@ -42,18 +42,18 @@
 public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attendance> implements IAttendanceService {
 
 	@Override
-	public IPage<Attendance> selectAttendancePage(IPage<Attendance> page, Long department, AttendanceVO attendance) {
-		return page.setRecords(baseMapper.selectAttendancePage(page,department, attendance));
+	public IPage<AttendanceVO> selectAttendancePage(IPage<AttendanceVO> page, AttendanceVO attendance) {
+		return page.setRecords(baseMapper.selectAttendancePage(page, attendance));
 	}
 
+	/**
+	 * 导出考勤数据
+	 * @param attendance
+	 * @return
+	 */
 	@Override
-	public List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes) {
-		List<AttendanceExcel> userList = baseMapper.exportAttendane(name, beginTimes, endTimes,attendancetypes);
-		userList.forEach(user -> {
-			user.setAttendanceType(DictBizCache.getValue(DictBizEnum.TEST,user.getAttendanceType()));
-//			user.setClockType(DictBizCache.getValue(DictBizEnum.CLOCKTYPE,user.getClockType()));
-			user.setDepartment(StringUtil.join(SysCache.getDeptNames(user.getDepartment())));
-		});
+	public List<AttendanceExcel> exportAttendane(AttendanceVO attendance) {
+		List<AttendanceExcel> userList = baseMapper.exportAttendane(attendance);
 		return userList;
 	}
 
diff --git a/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java b/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
index 0ff42c7..5d4848b 100644
--- a/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
@@ -264,6 +264,7 @@
 			for (ExamResultVO examResultVO : examResultVOS) {
 				SimulateExamAnswerRecord answerRecord = new SimulateExamAnswerRecord();
 				answerRecord.setSimulateExamId(simulateExamScore.getSimulateExamId());
+				answerRecord.setSubjectChoicesId(examResultVO.getSubjectChoicesId());
 				answerRecord.setAnswerOption(examResultVO.getValue());
 				answerRecord.setAnswerScore(examResultVO.getGrade());
 				if (examResultVO.getGrade() > 0) {

--
Gitblit v1.9.3