From ffb62aac389a6ac596fe8d0d44d4e242beeea0f2 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 10 Mar 2022 11:46:31 +0800
Subject: [PATCH] 考勤查询接口修改,电子围栏自定义新增、修改,查询一个点是否在电子围栏内接口新增
---
src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml | 6 +-
src/main/java/org/springblade/modules/electronrail/vo/ElectronRailVO.java | 10 +++
src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.xml | 36 ++++++++++++
src/main/java/org/springblade/modules/electronrail/service/impl/ElectronRailServiceImpl.java | 34 +++++++++++
src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.java | 21 +++++++
src/main/java/org/springblade/modules/electronrail/controller/ElectronRailController.java | 32 +++++++++-
src/main/java/org/springblade/modules/electronrail/service/ElectronRailService.java | 20 ++++++
src/main/java/org/springblade/modules/attendance/entity/Attendance.java | 7 ++
src/main/resources/application.yml | 1
9 files changed, 159 insertions(+), 8 deletions(-)
diff --git a/src/main/java/org/springblade/modules/attendance/entity/Attendance.java b/src/main/java/org/springblade/modules/attendance/entity/Attendance.java
index 8f24065..dd97ca9 100644
--- a/src/main/java/org/springblade/modules/attendance/entity/Attendance.java
+++ b/src/main/java/org/springblade/modules/attendance/entity/Attendance.java
@@ -68,7 +68,7 @@
private Integer clockType;
/**
- * 考勤类型 1:正常 2:迟到 3:早退 4:外勤
+ * 考勤类型 1:正常 2:迟到 3:早退
*/
private Integer attendanceType;
@@ -83,4 +83,9 @@
*/
private String address;
+ /**
+ * 是否为外勤打卡
+ */
+ private Integer legwork;
+
}
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 7b08a66..8f26f9d 100644
--- a/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml
+++ b/src/main/java/org/springblade/modules/attendance/mapper/AttendanceMapper.xml
@@ -39,6 +39,9 @@
<if test="attendance.clockType!=null">
and sa.clock_type = #{attendance.clockType}
</if>
+ <if test="attendance.legwork!=null">
+ and sa.legwork = #{attendance.legwork}
+ </if>
<if test="attendance.beginTime!=null and attendance.beginTime!=''">
and date_format(sa.clock_time,'%Y-%m-%d')>=#{attendance.beginTime}
</if>
@@ -57,7 +60,6 @@
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
@@ -94,8 +96,6 @@
number = #{number}
and
to_days(now())=to_days(clock_time)
- and
- is_deleted=0
</select>
<!--查询当前时间之前最新的一条数据-->
diff --git a/src/main/java/org/springblade/modules/electronrail/controller/ElectronRailController.java b/src/main/java/org/springblade/modules/electronrail/controller/ElectronRailController.java
index b9ad3e0..1325d6b 100644
--- a/src/main/java/org/springblade/modules/electronrail/controller/ElectronRailController.java
+++ b/src/main/java/org/springblade/modules/electronrail/controller/ElectronRailController.java
@@ -63,8 +63,15 @@
//设置时间
electronRail.setCreateTime(new Date());
electronRail.setUpdateTime(new Date());
- //返回
- return R.data(electronRailService.save(electronRail));
+ if (null!=electronRail.getCoordinate() && !electronRail.getCoordinate().equals("")) {
+ //替换逗号为空格
+ String sNull = electronRail.getCoordinate().replaceAll(",", " ");
+ //替换分号为逗号
+ String replaceAll = sNull.replaceAll(";", ",");
+ electronRail.setCoordinate("'POLYGON((" + replaceAll + "))'");
+ }
+ //自定义新增
+ return R.data(electronRailService.saveElectRailInfo(electronRail));
}
@@ -75,8 +82,15 @@
public R update(@RequestBody ElectronRail electronRail) {
//设置更新时间
electronRail.setUpdateTime(new Date());
- //修改并返回
- return R.data(electronRailService.updateById(electronRail));
+ if (null!=electronRail.getCoordinate() && !electronRail.getCoordinate().equals("")) {
+ //替换逗号为空格
+ String sNull = electronRail.getCoordinate().replaceAll(",", " ");
+ //替换分号为逗号
+ String replaceAll = sNull.replaceAll(";", ",");
+ electronRail.setCoordinate("'POLYGON((" + replaceAll + "))'");
+ }
+ //自定义修改并返回
+ return R.data(electronRailService.updateElectronRailInfo(electronRail));
}
/**
@@ -96,5 +110,15 @@
return R.status(electronRailService.removeByIds(Func.toLongList(ids)));
}
+ /**
+ * 判断一个点是否在区域内
+ * @param electronRail
+ * @return
+ */
+ @GetMapping("/isOnArea")
+ public R isOnArea(ElectronRailVO electronRail){
+ return R.data(electronRailService.isOnArea(electronRail));
+ }
+
}
diff --git a/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.java b/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.java
index 3a0bf8d..2ff4a70 100644
--- a/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.java
+++ b/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.java
@@ -25,4 +25,25 @@
* @return
*/
List<ElectronRailVO> selectElectronRailPage(IPage<ElectronRailVO> page, @Param("electronRail") ElectronRailVO electronRail);
+
+ /**
+ * 自定义新增电子围栏信息
+ * @param electronRail
+ * @return
+ */
+ boolean saveElectRailInfo(@Param("electronRail") ElectronRail electronRail);
+
+ /**
+ * 自定义修改电子围栏信息
+ * @param electronRail
+ * @return
+ */
+ boolean updateElectronRailInfo(@Param("electronRail") ElectronRail electronRail);
+
+ /**
+ * 判断一个点是否在区域内
+ * @param electronRail
+ * @return
+ */
+ int isOnArea(@Param("electronRail") ElectronRailVO electronRail);
}
diff --git a/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.xml b/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.xml
index 292d64f..05de8ea 100644
--- a/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.xml
+++ b/src/main/java/org/springblade/modules/electronrail/mapper/ElectronRailMapper.xml
@@ -17,4 +17,40 @@
</if>
</select>
+ <!--自定义新增电子围栏数据-->
+ <insert id="saveElectRailInfo">
+ insert into sys_electron_rail
+ (name,type,company_id,
+ <if test="electronRail.coordinate!=null and electronRail.coordinate!=''">
+ coordinate,
+ </if>
+ create_time,update_time)
+ values
+ (#{electronRail.name},#{electronRail.type},#{electronRail.companyId},
+ <if test="electronRail.coordinate!=null and electronRail.coordinate!=''">
+ ST_GeomFromText(${electronRail.coordinate}),
+ </if>
+ #{electronRail.createTime},#{electronRail.updateTime})
+ </insert>
+
+ <!--自定义修改电子围栏数据-->
+ <update id="updateElectronRailInfo">
+ update sys_electron_rail set name = #{electronRail.name},
+ type = #{electronRail.type},
+ company_id = #{electronRail.companyId},
+ <if test="electronRail.coordinate!=null and electronRail.coordinate!=''">
+ coordinate = ST_GeomFromText(${electronRail.coordinate}),
+ </if>
+ update_time = #{electronRail.updateTime}
+ where id = #{electronRail.id}
+ </update>
+
+ <!--判断一个点是否在区域内-->
+ <select id="isOnArea" resultType="java.lang.Integer">
+ select ifnull(count(*),0) count from sys_electron_rail
+ where
+ MBRWithin(ST_GeomFromText('POINT(${electronRail.jd} ${electronRail.wd})'),coordinate)
+ and id = #{electronRail.id}
+ </select>
+
</mapper>
diff --git a/src/main/java/org/springblade/modules/electronrail/service/ElectronRailService.java b/src/main/java/org/springblade/modules/electronrail/service/ElectronRailService.java
index 1936480..171d05c 100644
--- a/src/main/java/org/springblade/modules/electronrail/service/ElectronRailService.java
+++ b/src/main/java/org/springblade/modules/electronrail/service/ElectronRailService.java
@@ -24,4 +24,24 @@
*/
IPage<ElectronRailVO> selectElectronRailPage(IPage<ElectronRailVO> page,ElectronRailVO electronRailVO);
+ /**
+ * 自定义新增电子围栏信息
+ * @param electronRail
+ * @return
+ */
+ boolean saveElectRailInfo(ElectronRail electronRail);
+
+ /**
+ * 自定义修改电子围栏信息
+ * @param electronRail
+ * @return
+ */
+ boolean updateElectronRailInfo(ElectronRail electronRail);
+
+ /**
+ * 判断一个点是否在区域内
+ * @param electronRail
+ * @return
+ */
+ boolean isOnArea(ElectronRailVO electronRail);
}
diff --git a/src/main/java/org/springblade/modules/electronrail/service/impl/ElectronRailServiceImpl.java b/src/main/java/org/springblade/modules/electronrail/service/impl/ElectronRailServiceImpl.java
index a2687bf..a08b274 100644
--- a/src/main/java/org/springblade/modules/electronrail/service/impl/ElectronRailServiceImpl.java
+++ b/src/main/java/org/springblade/modules/electronrail/service/impl/ElectronRailServiceImpl.java
@@ -62,4 +62,38 @@
}
return page.setRecords(railVOS);
}
+
+ /**
+ * 自定义新增电子围栏信息
+ * @param electronRail
+ * @return
+ */
+ @Override
+ public boolean saveElectRailInfo(ElectronRail electronRail) {
+ return baseMapper.saveElectRailInfo(electronRail);
+ }
+
+ /**
+ * 自定义修改电子围栏信息
+ * @param electronRail
+ * @return
+ */
+ @Override
+ public boolean updateElectronRailInfo(ElectronRail electronRail) {
+ return baseMapper.updateElectronRailInfo(electronRail);
+ }
+
+ /**
+ * 判断一个点是否在区域内
+ * @param electronRail
+ * @return
+ */
+ @Override
+ public boolean isOnArea(ElectronRailVO electronRail) {
+ int i = baseMapper.isOnArea(electronRail);
+ if (i>0){
+ return true;
+ }
+ return false;
+ }
}
diff --git a/src/main/java/org/springblade/modules/electronrail/vo/ElectronRailVO.java b/src/main/java/org/springblade/modules/electronrail/vo/ElectronRailVO.java
index 61d38d5..985d3c4 100644
--- a/src/main/java/org/springblade/modules/electronrail/vo/ElectronRailVO.java
+++ b/src/main/java/org/springblade/modules/electronrail/vo/ElectronRailVO.java
@@ -17,4 +17,14 @@
* 单位名称
*/
private String companyName;
+
+ /**
+ * 经度
+ */
+ private String jd;
+
+ /**
+ * 纬度
+ */
+ private String wd;
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bd7906f..77df676 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -224,6 +224,7 @@
- /examSubjectChoices/getSubjectResultInfoBySimulate
- /blade-user/getNotUpdatePwdInfo
- /attendance/AppSave
+ - /electronRail/**
#授权认证配置
auth:
--
Gitblit v1.9.3