南昌市物联网技防平台-后台
1.考勤打卡接口修改,根据坐标判断是否在多边形区域内
2.考勤打卡接口修改,根据打卡时间判断打卡的状态
10 files modified
449 ■■■■■ changed files
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/controller/AttendanceController.java 370 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/entity/Attendance.java 3 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/mapper/AttendanceMapper.java 6 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/mapper/AttendanceMapper.xml 11 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/service/IAttendanceService.java 7 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/service/impl/AttendanceServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/mapper/EnclosureMapper.java 9 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/mapper/EnclosureMapper.xml 9 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/service/IEnclosureService.java 9 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/service/impl/EnclosureServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/controller/AttendanceController.java
@@ -35,7 +35,12 @@
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.jfpt.attendance.excel.AttendanceExcel;
import org.springblade.jfpt.attendance.util.PointMapUtil;
import org.springblade.jfpt.attendance.wrapper.AttendanceWrapper;
import org.springblade.jfpt.enclosure.entity.Enclosure;
import org.springblade.jfpt.enclosure.service.IEnclosureService;
import org.springblade.system.entity.DictBiz;
import org.springblade.system.feign.IDictBizClient;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.vo.UserVO;
import org.springframework.web.bind.annotation.*;
@@ -46,8 +51,12 @@
import org.springblade.core.boot.ctrl.BladeController;
import springfox.documentation.annotations.ApiIgnore;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.logging.SimpleFormatter;
/**
 * 控制器
@@ -62,6 +71,10 @@
public class AttendanceController extends BladeController {
    private final IAttendanceService attendanceService;
    private final IEnclosureService iEnclosureService;
    private final IDictBizClient iDictBizService;
    /**
     * 详情
@@ -114,7 +127,362 @@
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入attendance")
    public R AppSave(@Valid Attendance attendance) {
        return R.status(attendanceService.save(attendance));
        System.out.println("attendance = " + attendance);
        Enclosure enclosure = new Enclosure();
        enclosure.setAnumber(attendance.getNumber());
        //查询当前处警人员的电子围栏信息
        Boolean onArea = iEnclosureService.isOnArea(attendance.getJd(),attendance.getWd(),enclosure);
        //判断是否在所在区域打卡,返回数据
        if (onArea){
            //查询当前考勤人员的部门信息
            //获取打卡时间标准
            R<List<DictBiz>> attendanceType = iDictBizService.getList("attendanceStandard");
            List<DictBiz> dictBizList = attendanceType.getData();
            //定义打卡时间标准,上午,下午
            StringBuilder forenoon = new StringBuilder();
            StringBuilder afternoon = new StringBuilder();
            String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
            for (DictBiz dictBiz:dictBizList) {
                if (dictBiz.getDictValue().contains("上午")){
                    forenoon=forenoon.append(dictBiz.getDictKey());
                }
                if (dictBiz.getDictValue().contains("下午")){
                    afternoon=afternoon.append(dictBiz.getDictKey());
                }
            }
            //上午打卡时间标准
            String forenoonWorkTime = format+" "+forenoon.toString().split("-")[0]+":00";
            String forenoonOfDutyTime = format+" "+forenoon.toString().split("-")[1]+":00";
            //下午打卡时间标准
            String afternoonWorkTime = format+" "+afternoon.toString().split("-")[0]+":00";
            String afternoonOfDutyTime = format+" "+afternoon.toString().split("-")[1]+":00";
            //查询当前人员当天打卡信息
            List<Attendance> attendanceList = attendanceService.selAttendanceListNow(attendance.getNumber());
            //判断打卡时间
            try {
                long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(attendance.getClocktime()).getTime();
                //当天第一次打卡
                if(attendanceList.size()==0){
                    //当天还没有打卡,即为当天第一个打卡
                    //判断打卡时间是上午还是下午
                    if (time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)>0){
                        //下午
                        //正常上班
                        if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()<=0){
                            //正常上班
                            attendance.setClocktype("0");
                            attendance.setAttendancetype("0");
                        }
                        //迟到
                        if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()>0
                        && time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()<0
                        ){
                            //迟到上班
                            attendance.setClocktype("0");
                            attendance.setAttendancetype("1");
                        }
                        //正常下班
                        if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()>0
                            &&
                            time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)<=0
                        ){
                            //正常下班
                            attendance.setClocktype("1");
                            attendance.setAttendancetype("0");
                        }
                        //加班
                        if (time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)>0){
                            //下午下班
                            attendance.setClocktype("1");
                            attendance.setAttendancetype("0");
                        }
                        return R.status(attendanceService.save(attendance));
                    }else {
                        //上午
                        //正常上班
                        if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonWorkTime).getTime()<=0){
                            //正常上午上班
                            attendance.setClocktype("0");
                            attendance.setAttendancetype("0");
                        }
                        //迟到
                        if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonWorkTime).getTime()>0
                            &&
                            time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()<=0
                        ){
                            //迟到上班
                            attendance.setClocktype("0");
                            attendance.setAttendancetype("1");
                        }
                        //正常下班
                        if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()>0
                            &&
                            time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)<=0
                        ){
                            //正常下班
                            attendance.setClocktype("1");
                            attendance.setAttendancetype("0");
                        }
                        return R.status(attendanceService.save(attendance));
                    }
                    //打卡时间和上午上班时间
                }
                //已经打过一次卡,当天第二次打卡
                if(attendanceList.size()==1){
                    //判断第一次打卡的时间范围,上午还是下午
                    long time1 = 0;
                    try {
                        time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(attendanceList.get(0).getClocktime()).getTime();
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    //上午下班时间的半个小时后
                    if (time1-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)>0) {
                        //下午
                        //更新上班信息
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime() <= 0) {
                            //更新上班时间
                            //正常上班
                            attendance.setAttendancetype("0");
                            attendance.setId(attendanceList.get(0).getId());
                            //更新考勤消息
                            return R.status(attendanceService.updateById(attendance));
                        }
                        //早退
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime() > 0
                            && time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime() < 0
                        ) {
                            //早退
                            attendance.setAttendancetype("2");
                            attendance.setClocktype("1");
                            //新增考勤消息
                            return R.status(attendanceService.save(attendance));
                        }
                        //正常下班
                        if (time - (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000) <= 0
                            && time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime() >= 0
                        ) {
                            //新增下班
                            attendance.setAttendancetype("0");
                            attendance.setClocktype("1");
                            //新增考勤消息
                            return R.status(attendanceService.save(attendance));
                        }
                        //其他时间修改
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000>0){
                            //加班
//                            attendance.setAttendancetype("加班");
                            attendance.setId(attendanceList.get(0).getId());
                            //更新考勤消息
                            return R.status(attendanceService.updateById(attendance));
                        }
                    }else {
                        //上午
                        //更新
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonWorkTime).getTime() <= 0) {
                            //更新上班时间
                            //正常上班
                            attendance.setAttendancetype("0");
                            attendance.setId(attendanceList.get(0).getId());
                            //更新考勤消息
                            return R.status(attendanceService.updateById(attendance));
                        }
                        //上午早退
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonWorkTime).getTime() > 0
                            && time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime() < 0
                        ) {
                            //早退
                            attendance.setAttendancetype("2");
                            attendance.setClocktype("1");
                            //新增考勤消息
                            return R.status(attendanceService.save(attendance));
                        }
                        //下午早退
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime() > 0
                            && time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime() < 0
                        ) {
                            //早退
                            attendance.setAttendancetype("2");
                            attendance.setClocktype("1");
                            //新增考勤消息
                            return R.status(attendanceService.save(attendance));
                        }
                        //上午正常下班
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()>=0
                            && time - (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)<=0
                        ){
                            //下班
                            attendance.setAttendancetype("0");
                            attendance.setClocktype("1");
                            //新增考勤信息
                            return R.status(attendanceService.save(attendance));
                        }
                        //下午正常下班
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()>=0
                            && time - (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)<=0
                        ){
                            //下班
                            attendance.setAttendancetype("0");
                            attendance.setClocktype("1");
                            //新增考勤信息
                            return R.status(attendanceService.save(attendance));
                        }
                        //正常上班
                        if (time - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()<=0
                        && time - (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)>0
                        ){
                            //上班
                            attendance.setAttendancetype("0");
                            attendance.setClocktype("0");
                            //新增考勤信息
                            return R.status(attendanceService.save(attendance));
                        }
                    }
                }
                //第三次打卡
                if (attendanceList.size()==2){
                    //第三次记录打卡如果时间范围在上午的在早退时间及下班后的半小时范围内,则更新上一次打卡记录
                    if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonWorkTime).getTime()>0
                        && time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)<0
                        ){
                        Attendance attendance1 = attendanceList.get(1);
                        attendance1.setClocktime(attendance.getClocktime());
                        //更新打卡信息
                        return R.status(attendanceService.updateById(attendance1));
                    }
                    //第三次打卡记录时间返回在上午下班半小时后到下午上班
                    if(time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()<=0
                        && time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)>=0){
                        //新增正常打卡信息
                        attendance.setClocktype("0");
                        attendance.setAttendancetype("0");
                        return R.status(attendanceService.save(attendance));
                    }
                    //第三次打卡记录时间返回在下午上班到下午下班之前
                    if(time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()>0
                        && time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()<0){
                        //判断第二次是否已经打卡上班
                        if (attendanceList.get(1).getClocktype().equals("0")){
                            //修改打卡信息
                            attendance.setClocktype("1");
                            attendance.setAttendancetype("2");
                            return R.status(attendanceService.save(attendance));
                        }else {
                            //新增上班迟到打卡信息
                            attendance.setClocktype("0");
                            attendance.setAttendancetype("1");
                            return R.status(attendanceService.save(attendance));
                        }
                    }
                    //下午正常下班时间节点
                    if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()>0
                        && time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)<=0){
                        //新增下班正常打卡信息
                        attendance.setClocktype("1");
                        attendance.setAttendancetype("0");
                        return R.status(attendanceService.save(attendance));
                    }
                    //其他时间修改
                    if (time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)>0){
                        //修改打卡信息
                        attendance.setClocktype("1");
                        attendance.setAttendancetype("2");
                        return R.status(attendanceService.save(attendance));
                    }
                }
                //第四次打卡
                if (attendanceList.size()==3){
                    //第四次打卡记录时间返回在上午下班半小时后到下午上班
                    if(time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()<=0
                        && time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(forenoonOfDutyTime).getTime()+30*60*1000)>=0){
                        Attendance attendance2 = attendanceList.get(2);
                        attendance2.setClocktime(attendance.getClocktime());
                        //更新正常打卡信息
                        return R.status(attendanceService.updateById(attendance2));
                    }
                    //第四次打卡记录时间返回在下午上班到下午下班之前
                    if(time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()>0
                        && time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()<0){
                        //判断第二次是否是早退或者迟到
                        //迟到
                        if (attendanceList.get(2).getAttendancetype().equals("1")){
                            //新增下班早退打卡信息
                            attendance.setClocktype("1");
                            attendance.setAttendancetype("2");
                            return R.status(attendanceService.save(attendance));
                        }else {
                            //早退
                            //更新上班早退打卡信息,只更新打卡时间,不更新考勤状态
                            Attendance attendance2 = attendanceList.get(2);
                            attendance2.setClocktime(attendance.getClocktime());
                            return R.status(attendanceService.updateById(attendance2));
                        }
                    }
                    //下午正常下班时间节点
                    if (time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()>0
                        && time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)<=0){
                        //如果上一次为早退,则只更新信息
                        if (attendanceList.get(2).getAttendancetype().equals("2")) {
                            //修改打卡信息
                            Attendance attendance2 = attendanceList.get(2);
                            attendance2.setClocktime(attendance.getClocktime());
                            return R.status(attendanceService.updateById(attendance2));
                        }else {
                            //新增正常下班打卡信息
                            attendance.setClocktype("1");
                            attendance.setAttendancetype("0");
                            return R.status(attendanceService.save(attendance));
                        }
                    }
                    //其他时间
                    if (time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)>0){
                        //修改打卡信息
                        Attendance attendance2 = attendanceList.get(2);
                        attendance2.setClocktime(attendance.getClocktime());
                        return R.status(attendanceService.updateById(attendance2));
                    }
                }
                //第五次打卡
                if (attendanceList.size()==4){
                    //只有在下午下班后可以有新增加班考勤数据,其他情况则是更新第四次的记录
                    //第五次打卡记录时间返回在下午上班到下午下班后的30分钟之前
//                    if(time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonWorkTime).getTime()>0
//                        && time-new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()<0){
//                            //早退
//                            //更新上班早退打卡信息,只更新打卡时间,不更新考勤状态
//                            Attendance attendance3 = attendanceList.get(3);
//                            attendance3.setClocktime(attendance.getClocktime());
//                            return R.status(attendanceService.updateById(attendance3));
//                    }
                    Attendance attendance3 = attendanceList.get(3);
                    attendance3.setClocktime(attendance.getClocktime());
                    return R.status(attendanceService.updateById(attendance3));
                    //下午正常下班30分钟后时间节点
//                    if (time-(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(afternoonOfDutyTime).getTime()+30*60*1000)>0){
//                        //如果上一次为早退,则只更新信息
//                        //新增正常下班打卡信息
//                        attendance.setClocktype("1");
//                        attendance.setAttendancetype("0");
//                        return R.status(attendanceService.save(attendance));
//                    }
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return R.status(false);
    }
    /**
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/entity/Attendance.java
@@ -19,6 +19,8 @@
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
@@ -93,6 +95,5 @@
    @TableLogic
    private Integer isDeleted;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/mapper/AttendanceMapper.java
@@ -53,4 +53,10 @@
     */
    List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes);
    /**
     * 查询当前考勤人员当天的考勤信息
     * @param number 考勤人员编号
     * @return
     */
    List<Attendance> selAttendanceListNow(String number);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/mapper/AttendanceMapper.xml
@@ -55,5 +55,16 @@
        </if>
    </select>
    <!--查询当前考勤人员当天的考勤信息-->
    <select id="selAttendanceListNow" resultType="org.springblade.jfpt.attendance.entity.Attendance">
        select * from sys_attendance
            where
        number = #{number}
            and
        to_days(now())=to_days(clockTime)
            and
        is_deleted=0
    </select>
</mapper>
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/service/IAttendanceService.java
@@ -48,4 +48,11 @@
     * @return
     */
    List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes);
    /**
     * 查询当前考勤人员当天的考勤信息
     * @param number 考勤人员编号
     * @return
     */
    List<Attendance> selAttendanceListNow(String number);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/attendance/service/impl/AttendanceServiceImpl.java
@@ -57,4 +57,13 @@
        return userList;
    }
    /**
     * 查询当前考勤人员当天的考勤信息
     * @param number 考勤人员编号
     * @return
     */
    @Override
    public List<Attendance> selAttendanceListNow(String number) {
        return baseMapper.selAttendanceListNow(number);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/mapper/EnclosureMapper.java
@@ -56,4 +56,13 @@
     * @param anumber 处警人员编号
     */
    void deleteByAnumber(String anumber);
    /**
     * 判断打卡点是否在电子围栏内
     * @param jd 经度
     * @param wd 纬度
     * @param enclosure 电子围栏信息
     * @return
     */
    int isOnArea(@Param("jd") String jd, @Param("wd") String wd, @Param("enclosure") Enclosure enclosure);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/mapper/EnclosureMapper.xml
@@ -41,4 +41,13 @@
        delete from sys_enclosure where anumber = #{anumber}
    </delete>
    <!--判断打卡点是否在电子围栏内-->
    <select id="isOnArea" resultType="java.lang.Integer">
        select ifnull(count(*),0) count from sys_enclosure
            where
        MBRWithin(ST_GeomFromText('POINT(${jd} ${wd})'),coordinate)
            and
        anumber=#{enclosure.anumber}
    </select>
</mapper>
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/service/IEnclosureService.java
@@ -55,4 +55,13 @@
     * @param anumber 处警人员编号
     */
    void deleteByAnumber(String anumber);
    /**
     * 判断打卡点是否在电子围栏内
     * @param jd 经度
     * @param wd 纬度
     * @param enclosure 电子围栏信息
     * @return
     */
    Boolean isOnArea(String jd, String wd, Enclosure enclosure);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/enclosure/service/impl/EnclosureServiceImpl.java
@@ -75,4 +75,20 @@
    public void deleteByAnumber(String anumber) {
        baseMapper.deleteByAnumber(anumber);
    }
    /**
     * 判断打卡点是否在电子围栏内
     * @param jd 经度
     * @param wd 纬度
     * @param enclosure 电子围栏信息
     * @return
     */
    @Override
    public Boolean isOnArea(String jd, String wd, Enclosure enclosure) {
        int onArea = baseMapper.isOnArea(jd, wd, enclosure);
        if (onArea>0){
            return true;
        }
        return false;
    }
}