From f805ebc9eda4110736969dbdb211444e7297fb60 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Fri, 19 Apr 2024 08:50:57 +0800
Subject: [PATCH] 校园安全

---
 src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml                            |   46 ---
 src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.xml             |   63 ++++
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java                   |   77 ++++
 src/main/java/org/springblade/modules/nursingCheckIn/service/INursingCheckInService.java         |   43 +++
 src/main/java/org/springblade/modules/patrol/controller/PatrolGroupController.java               |    2 
 src/main/java/org/springblade/modules/nursingCheckIn/entity/NursingCheckInEntity.java            |   90 ++++++
 src/main/java/org/springblade/modules/nursingCheckIn/wrapper/NursingCheckInWrapper.java          |   50 +++
 src/main/java/org/springblade/modules/patrol/service/impl/PatrolGroupServiceImpl.java            |   32 ++
 src/main/java/org/springblade/modules/nursingCheckIn/service/impl/NursingCheckInServiceImpl.java |   43 +++
 src/main/java/org/springblade/modules/rotation/service/impl/RotationServiceImpl.java             |    3 
 src/main/java/org/springblade/modules/nursingCheckIn/controller/NursingCheckInController.java    |  126 +++++++++
 src/main/java/org/springblade/modules/patrol/service/IPatrolGroupService.java                    |    2 
 src/main/java/org/springblade/modules/nursingCheckIn/dto/NursingCheckInDTO.java                  |   34 ++
 src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.java            |   43 +++
 src/main/java/org/springblade/modules/place/entity/PlaceExtEntity.java                           |   93 ++---
 src/main/java/org/springblade/modules/nursingCheckIn/vo/NursingCheckInVO.java                    |   35 ++
 16 files changed, 668 insertions(+), 114 deletions(-)

diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/controller/NursingCheckInController.java b/src/main/java/org/springblade/modules/nursingCheckIn/controller/NursingCheckInController.java
new file mode 100644
index 0000000..fe5cc82
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/controller/NursingCheckInController.java
@@ -0,0 +1,126 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import org.springblade.modules.nursingCheckIn.vo.NursingCheckInVO;
+import org.springblade.modules.nursingCheckIn.wrapper.NursingCheckInWrapper;
+import org.springblade.modules.nursingCheckIn.service.INursingCheckInService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * 护学打卡 控制器
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("blade-nursingCheckIn/nursingCheckIn")
+@Api(value = "护学打卡", tags = "护学打卡接口")
+public class NursingCheckInController extends BladeController {
+
+	private final INursingCheckInService nursingCheckInService;
+
+	/**
+	 * 护学打卡 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入nursingCheckIn")
+	public R<NursingCheckInVO> detail(NursingCheckInEntity nursingCheckIn) {
+		NursingCheckInEntity detail = nursingCheckInService.getOne(Condition.getQueryWrapper(nursingCheckIn));
+		return R.data(NursingCheckInWrapper.build().entityVO(detail));
+	}
+	/**
+	 * 护学打卡 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入nursingCheckIn")
+	public R<IPage<NursingCheckInVO>> list(NursingCheckInEntity nursingCheckIn, Query query) {
+		IPage<NursingCheckInEntity> pages = nursingCheckInService.page(Condition.getPage(query), Condition.getQueryWrapper(nursingCheckIn));
+		return R.data(NursingCheckInWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 护学打卡 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入nursingCheckIn")
+	public R<IPage<NursingCheckInVO>> page(NursingCheckInVO nursingCheckIn, Query query) {
+		IPage<NursingCheckInVO> pages = nursingCheckInService.selectNursingCheckInPage(Condition.getPage(query), nursingCheckIn);
+		return R.data(pages);
+	}
+
+	/**
+	 * 护学打卡 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入nursingCheckIn")
+	public R save(@Valid @RequestBody NursingCheckInEntity nursingCheckIn) {
+		return R.status(nursingCheckInService.save(nursingCheckIn));
+	}
+
+	/**
+	 * 护学打卡 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入nursingCheckIn")
+	public R update(@Valid @RequestBody NursingCheckInEntity nursingCheckIn) {
+		return R.status(nursingCheckInService.updateById(nursingCheckIn));
+	}
+
+	/**
+	 * 护学打卡 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入nursingCheckIn")
+	public R submit(@Valid @RequestBody NursingCheckInEntity nursingCheckIn) {
+		return R.status(nursingCheckInService.saveOrUpdate(nursingCheckIn));
+	}
+
+	/**
+	 * 护学打卡 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(nursingCheckInService.removeBatchByIds(Func.toLongList(ids)));
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/dto/NursingCheckInDTO.java b/src/main/java/org/springblade/modules/nursingCheckIn/dto/NursingCheckInDTO.java
new file mode 100644
index 0000000..388ae01
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/dto/NursingCheckInDTO.java
@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.dto;
+
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 护学打卡 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class NursingCheckInDTO extends NursingCheckInEntity {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/entity/NursingCheckInEntity.java b/src/main/java/org/springblade/modules/nursingCheckIn/entity/NursingCheckInEntity.java
new file mode 100644
index 0000000..fd50bf9
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/entity/NursingCheckInEntity.java
@@ -0,0 +1,90 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+import java.util.Date;
+
+/**
+ * 护学打卡 实体类
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+@Data
+@TableName("jczz_nursing_check_in")
+@ApiModel(value = "NursingCheckIn对象", description = "护学打卡")
+public class NursingCheckInEntity   {
+
+	/** id */
+	@ApiModelProperty(value = "主键ID", example = "")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/** 创建人 */
+	@ApiModelProperty(value = "创建人", example = "")
+	@TableField("create_user")
+	private Long createUser;
+
+	/** 定位地址 */
+	@ApiModelProperty(value = "定位地址", example = "")
+	@TableField("location")
+	private String location;
+
+	/** 家长名称 */
+	@ApiModelProperty(value = "家长名称", example = "")
+	@TableField("name")
+	private String name;
+
+	/** 家长电话 */
+	@ApiModelProperty(value = "家长电话", example = "")
+	@TableField("phone")
+	private String phone;
+
+	/** 年级与班级 */
+	@ApiModelProperty(value = "年级与班级", example = "")
+	@TableField("grade_and_class")
+	private String gradeAndClass;
+
+	/** 图片 */
+	@ApiModelProperty(value = "图片", example = "")
+	@TableField("images")
+	private String images;
+
+	/** 场所id */
+	@ApiModelProperty(value = "场所id", example = "")
+	@TableField("place_id")
+	private Long placeId;
+
+	/** 1:民警 2:家长 */
+	@ApiModelProperty(value = "1:民警 2:家长", example = "")
+	@TableField("type")
+	private String type;
+
+	/** 创建时间 */
+	@ApiModelProperty(value = "创建时间", example = "")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@TableField(value = "create_time",fill = FieldFill.INSERT)
+	private Date createTime;
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.java b/src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.java
new file mode 100644
index 0000000..6113dcf
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.mapper;
+
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import org.springblade.modules.nursingCheckIn.vo.NursingCheckInVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 护学打卡 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+public interface NursingCheckInMapper extends BaseMapper<NursingCheckInEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param nursingCheckIn
+	 * @return
+	 */
+	List<NursingCheckInVO> selectNursingCheckInPage(IPage page, NursingCheckInVO nursingCheckIn);
+
+
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.xml b/src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.xml
new file mode 100644
index 0000000..2e09646
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/mapper/NursingCheckInMapper.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.nursingCheckIn.mapper.NursingCheckInMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="nursingCheckInResultMap" type="org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity">
+    </resultMap>
+
+
+    <select id="selectNursingCheckInPage" resultMap="nursingCheckInResultMap">
+        select * from jczz_nursing_check_in
+    </select>
+
+
+    <resultMap type="org.springblade.modules.nursingCheckIn.dto.NursingCheckInDTO" id="NursingCheckInDTOResult">
+        <result property="id"    column="id"    />
+        <result property="createUser"    column="create_user"    />
+        <result property="location"    column="location"    />
+        <result property="name"    column="name"    />
+        <result property="phone"    column="phone"    />
+        <result property="gradeAndClass"    column="grade_and_class"    />
+        <result property="images"    column="images"    />
+        <result property="placeId"    column="place_id"    />
+        <result property="type"    column="type"    />
+    </resultMap>
+
+    <sql id="selectNursingCheckIn">
+        select
+            id,
+            create_user,
+            location,
+            name,
+            phone,
+            grade_and_class,
+            images,
+            place_id,
+            type
+        from
+            jczz_nursing_check_in
+    </sql>
+
+<!--    <select id="selectNursingCheckInById" parameterType="long" resultMap="NursingCheckInDTOResult">-->
+<!--        <include refid="selectNursingCheckIn"/>-->
+<!--        where-->
+<!--        id = #{id}-->
+<!--    </select>-->
+
+<!--    <select id="selectNursingCheckInList" parameterType="org.springblade.modules..dto.NursingCheckInDTO" resultMap="NursingCheckInDTOResult">-->
+<!--        <include refid="selectNursingCheckIn"/>-->
+<!--        <where>-->
+<!--            <if test="id != null "> and id = #{id}</if>-->
+<!--            <if test="createUser != null "> and create_user = #{createUser}</if>-->
+<!--            <if test="location != null  and location != ''"> and location = #{location}</if>-->
+<!--            <if test="name != null  and name != ''"> and name = #{name}</if>-->
+<!--            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>-->
+<!--            <if test="gradeAndClass != null  and gradeAndClass != ''"> and grade_and_class = #{gradeAndClass}</if>-->
+<!--            <if test="images != null  and images != ''"> and images = #{images}</if>-->
+<!--            <if test="placeId != null "> and place_id = #{placeId}</if>-->
+<!--            <if test="type != null  and type != ''"> and type = #{type}</if>-->
+<!--        </where>-->
+<!--    </select>-->
+
+</mapper>
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/service/INursingCheckInService.java b/src/main/java/org/springblade/modules/nursingCheckIn/service/INursingCheckInService.java
new file mode 100644
index 0000000..34ef802
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/service/INursingCheckInService.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import org.springblade.modules.nursingCheckIn.vo.NursingCheckInVO;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 护学打卡 服务类
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+public interface INursingCheckInService extends IService<NursingCheckInEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param nursingCheckIn
+	 * @return
+	 */
+	IPage<NursingCheckInVO> selectNursingCheckInPage(IPage<NursingCheckInVO> page, NursingCheckInVO nursingCheckIn);
+
+
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/service/impl/NursingCheckInServiceImpl.java b/src/main/java/org/springblade/modules/nursingCheckIn/service/impl/NursingCheckInServiceImpl.java
new file mode 100644
index 0000000..52254d3
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/service/impl/NursingCheckInServiceImpl.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import org.springblade.modules.nursingCheckIn.vo.NursingCheckInVO;
+import org.springblade.modules.nursingCheckIn.mapper.NursingCheckInMapper;
+import org.springblade.modules.nursingCheckIn.service.INursingCheckInService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 护学打卡 服务实现类
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+@Service
+public class NursingCheckInServiceImpl extends ServiceImpl<NursingCheckInMapper, NursingCheckInEntity> implements INursingCheckInService {
+
+	@Override
+	public IPage<NursingCheckInVO> selectNursingCheckInPage(IPage<NursingCheckInVO> page, NursingCheckInVO nursingCheckIn) {
+		return page.setRecords(baseMapper.selectNursingCheckInPage(page, nursingCheckIn));
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/vo/NursingCheckInVO.java b/src/main/java/org/springblade/modules/nursingCheckIn/vo/NursingCheckInVO.java
new file mode 100644
index 0000000..b11e737
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/vo/NursingCheckInVO.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.vo;
+
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import org.springblade.core.tool.node.INode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 护学打卡 视图实体类
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class NursingCheckInVO extends NursingCheckInEntity {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/modules/nursingCheckIn/wrapper/NursingCheckInWrapper.java b/src/main/java/org/springblade/modules/nursingCheckIn/wrapper/NursingCheckInWrapper.java
new file mode 100644
index 0000000..296d033
--- /dev/null
+++ b/src/main/java/org/springblade/modules/nursingCheckIn/wrapper/NursingCheckInWrapper.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.nursingCheckIn.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.modules.nursingCheckIn.entity.NursingCheckInEntity;
+import org.springblade.modules.nursingCheckIn.vo.NursingCheckInVO;
+import java.util.Objects;
+
+/**
+ * 护学打卡 包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ * @since 2024-04-18
+ */
+public class NursingCheckInWrapper extends BaseEntityWrapper<NursingCheckInEntity, NursingCheckInVO>  {
+
+	public static NursingCheckInWrapper build() {
+		return new NursingCheckInWrapper();
+ 	}
+
+	@Override
+	public NursingCheckInVO entityVO(NursingCheckInEntity nursingCheckIn) {
+		NursingCheckInVO nursingCheckInVO = Objects.requireNonNull(BeanUtil.copy(nursingCheckIn, NursingCheckInVO.class));
+
+		//User createUser = UserCache.getUser(nursingCheckIn.getCreateUser());
+		//User updateUser = UserCache.getUser(nursingCheckIn.getUpdateUser());
+		//nursingCheckInVO.setCreateUserName(createUser.getName());
+		//nursingCheckInVO.setUpdateUserName(updateUser.getName());
+
+		return nursingCheckInVO;
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/patrol/controller/PatrolGroupController.java b/src/main/java/org/springblade/modules/patrol/controller/PatrolGroupController.java
index a3efbc6..e77e3ef 100644
--- a/src/main/java/org/springblade/modules/patrol/controller/PatrolGroupController.java
+++ b/src/main/java/org/springblade/modules/patrol/controller/PatrolGroupController.java
@@ -115,7 +115,7 @@
 	@ApiOperation(value = "巡查指标组-批量删除", notes = "巡查指标组-批量删除")
 	@PostMapping(value = "/deleteBatch")
 	public R deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-		return R.data(patrolGroupService.removeByIds(Arrays.asList(ids.split(","))));
+		return R.data(patrolGroupService.removePatrolGroupByIds(Arrays.asList(ids.split(","))));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/patrol/service/IPatrolGroupService.java b/src/main/java/org/springblade/modules/patrol/service/IPatrolGroupService.java
index 5c788be..c3c2672 100644
--- a/src/main/java/org/springblade/modules/patrol/service/IPatrolGroupService.java
+++ b/src/main/java/org/springblade/modules/patrol/service/IPatrolGroupService.java
@@ -55,4 +55,6 @@
 	List<PatrolGroupDTO> getGroupDTORecord(String taskId);
 
 	boolean addTwo(PatrolGroupVO patrolGroup);
+
+    boolean removePatrolGroupByIds(List<String> asList);
 }
diff --git a/src/main/java/org/springblade/modules/patrol/service/impl/PatrolGroupServiceImpl.java b/src/main/java/org/springblade/modules/patrol/service/impl/PatrolGroupServiceImpl.java
index 5e34fa8..f540b6f 100644
--- a/src/main/java/org/springblade/modules/patrol/service/impl/PatrolGroupServiceImpl.java
+++ b/src/main/java/org/springblade/modules/patrol/service/impl/PatrolGroupServiceImpl.java
@@ -2,8 +2,10 @@
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.utils.NodeTreeUtil;
+import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.tool.node.TreeNode;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.patrol.dto.PatrolGroupDTO;
@@ -97,4 +99,34 @@
 		}
 		return false;
 	}
+
+	@Override
+	public boolean removePatrolGroupByIds(List<String> asList) {
+		if (asList == null || asList.isEmpty()) {
+			return false;
+		}
+		// 将IPatrolGroupItemService实例化提到循环外部以避免重复实例化
+		IPatrolGroupItemService bean = SpringUtils.getBean(IPatrolGroupItemService.class);
+		boolean allSuccess = true; // 记录是否有任何操作失败
+		for (String id : asList) {
+			try {
+				PatrolGroup patrolGroup = baseMapper.selectById(id);
+				if (patrolGroup != null) {
+					patrolGroup.setIsDeleted(1);
+					int update = baseMapper.updateById(patrolGroup);
+					if (update > 0) {
+						allSuccess = bean.update(Wrappers.<PatrolGroupItem>lambdaUpdate()
+							.set(PatrolGroupItem::getIsDeleted, 1)
+							.eq(PatrolGroupItem::getGroupId, id));
+					}
+				}
+			} catch (Exception e) {
+				// 记录或处理异常,例如日志记录
+				// log.error("Failed to remove patrol group by id: " + id, e);
+				allSuccess = false;
+			}
+		}
+		return allSuccess;
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/place/entity/PlaceExtEntity.java b/src/main/java/org/springblade/modules/place/entity/PlaceExtEntity.java
index 8b35b59..7ca0e81 100644
--- a/src/main/java/org/springblade/modules/place/entity/PlaceExtEntity.java
+++ b/src/main/java/org/springblade/modules/place/entity/PlaceExtEntity.java
@@ -122,63 +122,9 @@
 	@ApiModelProperty(value = "是否删除 0:否  1:是", example = "")
 	@TableField("is_deleted")
 	private Integer isDeleted;
-
-//	/** 法人现住地址 */
-//	@ApiModelProperty(value = "法人现住地址", example = "")
-//	@TableField("legal_temp_address")
-//	private String legalTempAddress;
-//
-//	/** 法人年龄 */
-//	@ApiModelProperty(value = "法人年龄", example = "")
-//	@TableField("legal_age")
-//	private Integer legalAge;
-//
-//	/** 法人性别 */
-//	@ApiModelProperty(value = "法人性别", example = "")
-//	@TableField("legal_gender")
-//	private Integer legalGender;
-//
-//	/** 法人身份证 */
 	@ApiModelProperty(value = "法人身份证", example = "")
 	@TableField("legal_id_card")
 	private String legalIdCard;
-//
-//	/** 法人证件类型,业务字典  cardType */
-//	@ApiModelProperty(value = "法人证件类型,业务字典  cardType", example = "")
-//	@TableField("legal_card_type")
-//	private String legalCardType;
-//
-//	/** 法人户籍地址 */
-//	@ApiModelProperty(value = "法人户籍地址", example = "")
-//	@TableField("legal_registered_address")
-//	private String legalRegisteredAddress;
-//
-//	/** 法人岗位性质 */
-//	@ApiModelProperty(value = "法人岗位性质", example = "")
-//	@TableField("legal_job_nature")
-//	private String legalJobNature;
-//
-//	/** 法人微信号 */
-//	@ApiModelProperty(value = "法人微信号", example = "")
-//	@TableField("legal_wx_account")
-//	private String legalWxAccount;
-
-
-//	/** 生日 */
-//	@ApiModelProperty(value = "生日", example = "")
-//	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-//	@TableField("birthday")
-//	private Date birthday;
-//
-//	/** 民族 */
-//	@ApiModelProperty(value = "民族", example = "")
-//	@TableField("ethnicity")
-//	private Integer ethnicity;
-//
-//	/** 工作单位(就职单位) */
-//	@ApiModelProperty(value = "工作单位(就职单位)", example = "")
-//	@TableField("employer")
-//	private String employer;
 
 	/** 房东名字 */
 	@ApiModelProperty(value = "房东名字", example = "")
@@ -201,4 +147,43 @@
 	private String landlordIdCard;
 
 
+	/** 学生人数 */
+	@ApiModelProperty(value = "学生人数", example = "")
+	@TableField("student_number")
+	private Integer studentNumber;
+
+	/** 教职工人数 */
+	@ApiModelProperty(value = "教职工人数", example = "")
+	@TableField("workers_number")
+	private Integer workersNumber;
+
+	/** 专职保安 */
+	@ApiModelProperty(value = "专职保安", example = "")
+	@TableField("security_number")
+	private Integer securityNumber;
+
+	/** 专职门卫 */
+	@ApiModelProperty(value = "专职门卫", example = "")
+	@TableField("guard_number")
+	private Integer guardNumber;
+
+	/** 专兼职保卫人员 */
+	@ApiModelProperty(value = "专兼职保卫人员", example = "")
+	@TableField("temporary_security_number")
+	private Integer temporarySecurityNumber;
+
+	/** 走读/寄宿 */
+	@ApiModelProperty(value = "走读/寄宿", example = "")
+	@TableField("day_students_number")
+	private Integer dayStudentsNumber;
+
+	/** 住校生人员 */
+	@ApiModelProperty(value = "住校生人员", example = "")
+	@TableField("residential_students_number")
+	private Integer residentialStudentsNumber;
+
+	/** 宿舍管理人员 */
+	@ApiModelProperty(value = "宿舍管理人员", example = "")
+	@TableField("housemaster_number")
+	private Integer housemasterNumber;
 }
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
index de53b15..dda83fe 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
@@ -211,17 +211,6 @@
         <result property="updateUser"    column="update_user"    />
         <result property="updateTime"    column="update_time"    />
         <result property="isDeleted"    column="is_deleted"    />
-<!--        <result property="legalTempAddress"    column="legal_temp_address"    />-->
-<!--        <result property="legalAge"    column="legal_age"    />-->
-<!--        <result property="legalGender"    column="legal_gender"    />-->
-<!--        <result property="legalIdCard"    column="legal_id_card"    />-->
-<!--        <result property="legalCardType"    column="legal_card_type"    />-->
-<!--        <result property="legalRegisteredAddress"    column="legal_registered_address"    />-->
-<!--        <result property="legalJobNature"    column="legal_job_nature"    />-->
-<!--        <result property="legalWxAccount"    column="legal_wx_account"    />-->
-<!--        <result property="birthday"    column="birthday"    />-->
-<!--        <result property="ethnicity"    column="ethnicity"    />-->
-<!--        <result property="employer"    column="employer"    />-->
     </resultMap>
 
     <sql id="selectJczzPlaceExt">
@@ -244,41 +233,6 @@
         from
             jczz_place_ext
     </sql>
-
-<!--    <select id="selectJczzPlaceExtById" parameterType="long" resultMap="JczzPlaceExtDTOResult">-->
-<!--        <include refid="selectJczzPlaceExt"/>-->
-<!--        where-->
-<!--        id = #{id}-->
-<!--    </select>-->
-
-<!--    <select id="selectJczzPlaceExtList" parameterType="jczzplaceext.dto.JczzPlaceExtDTO" resultMap="JczzPlaceExtDTOResult">-->
-<!--        <include refid="selectJczzPlaceExt"/>-->
-<!--        <where>-->
-<!--            <if test="id != null "> and id = #{id}</if>-->
-<!--            <if test="placeId != null "> and place_id = #{placeId}</if>-->
-<!--            <if test="imageUrls != null  and imageUrls != ''"> and image_urls = #{imageUrls}</if>-->
-<!--            <if test="legalPerson != null  and legalPerson != ''"> and legal_person = #{legalPerson}</if>-->
-<!--            <if test="legalTel != null  and legalTel != ''"> and legal_tel = #{legalTel}</if>-->
-<!--            <if test="planImageUrls != null  and planImageUrls != ''"> and plan_image_urls = #{planImageUrls}</if>-->
-<!--            <if test="confirmUserId != null "> and confirm_user_id = #{confirmUserId}</if>-->
-<!--            <if test="confirmFlag != null "> and confirm_flag = #{confirmFlag}</if>-->
-<!--            <if test="confirmTime != null "> and confirm_time = #{confirmTime}</if>-->
-<!--            <if test="confirmNotion != null  and confirmNotion != ''"> and confirm_notion = #{confirmNotion}</if>-->
-<!--            <if test="createUser != null "> and create_user = #{createUser}</if>-->
-<!--            <if test="createTime != null "> and create_time = #{createTime}</if>-->
-<!--            <if test="updateUser != null "> and update_user = #{updateUser}</if>-->
-<!--            <if test="updateTime != null "> and update_time = #{updateTime}</if>-->
-<!--            <if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>-->
-<!--            <if test="legalTempAddress != null  and legalTempAddress != ''"> and legal_temp_address = #{legalTempAddress}</if>-->
-<!--            <if test="legalAge != null "> and legal_age = #{legalAge}</if>-->
-<!--            <if test="legalGender != null "> and legal_gender = #{legalGender}</if>-->
-<!--            <if test="legalIdCard != null  and legalIdCard != ''"> and legal_id_card = #{legalIdCard}</if>-->
-<!--            <if test="legalCardType != null  and legalCardType != ''"> and legal_card_type = #{legalCardType}</if>-->
-<!--            <if test="legalRegisteredAddress != null  and legalRegisteredAddress != ''"> and legal_registered_address = #{legalRegisteredAddress}</if>-->
-<!--            <if test="legalJobNature != null  and legalJobNature != ''"> and legal_job_nature = #{legalJobNature}</if>-->
-<!--            <if test="legalWxAccount != null  and legalWxAccount != ''"> and legal_wx_account = #{legalWxAccount}</if>-->
-<!--        </where>-->
-<!--    </select>-->
 
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index 7c30f48..d1cb6cf 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -217,6 +217,11 @@
 		jwGridCodeBind(placeVO);
 		// 保存从业人员
 		savePlacePractitioner(placeVO);
+		// 判断是否校园
+		if (placeVO.getLabel().startsWith("1601")) {
+			// 校园的新增一个主体用户和一个通用用户
+			addSchoolUser(placeVO);
+		}
 		// 返回结果
 		return flag;
 	}
@@ -232,7 +237,7 @@
 			IPlacePractitionerService practitionerService = SpringUtil.getBean(IPlacePractitionerService.class);
 			// 查询对应已存在的租户
 			QueryWrapper<PlacePractitionerEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("place_id", placeVO.getId()).eq("is_deleted",0);
+			wrapper.eq("place_id", placeVO.getId()).eq("is_deleted", 0);
 			List<PlacePractitionerEntity> oldList = practitionerService.list(wrapper);
 			// 取出从业人员信息
 			List<PlacePractitionerEntity> placePractitionerList = placeVO.getPlacePractitioner();
@@ -713,6 +718,48 @@
 	}
 
 	/**
+	 * 新增校方主体账号和通用账号
+	 *
+	 * @param placeVO
+	 * @return
+	 */
+	@Transactional(rollbackFor = Exception.class)
+	public User addSchoolUser(PlaceVO placeVO) {
+		User newUser = new User();
+		if (StringUtils.isNotBlank(placeVO.getPlaceName())) {
+//			placeVO.setPrincipal(placeVO.getPrincipal());
+//			placeVO.setPrincipalPhone(placeVO.getPrincipalPhone());
+			//如果用户不存在,则新增一个用户
+			newUser.setAccount(placeVO.getPlaceName() + "主体");
+			newUser.setName(placeVO.getPlaceName() + "-主体");
+			newUser.setRealName(placeVO.getPlaceName() + "-主体");
+			// 社区群众部门
+			newUser.setDeptId("1727979636479037441");
+			// 校园主体,
+			newUser.setRoleId("1780786647371706370");
+
+			//默认密码为 123456
+			newUser.setPassword("123456");
+			// 设置机构
+			// 用户新增
+			newUser.setId(null);
+			boolean submit = userService.submit(newUser);
+			// 校园通用
+			newUser.setId(null);
+			newUser.setRoleId("1780786746076262402");
+			newUser.setAccount(placeVO.getPlaceName() + "通用");
+			newUser.setName(placeVO.getPlaceName() + "-通用");
+			newUser.setRealName(placeVO.getPlaceName() + "-通用");
+			boolean submit2 = userService.submit(newUser);
+			//绑定id
+//			placeVO.setPrincipalUserId(newUser.getId());
+			//给人员打上场所负责人的标签
+//			baseMapper.saveUserLabel(newUser.getId(), 1002);
+		}
+		return newUser;
+	}
+
+	/**
 	 * 场所负责人和用户绑定
 	 *
 	 * @param placeVO
@@ -725,7 +772,7 @@
 			placeVO.setPrincipalPhone(placeVO.getPrincipalPhone());
 			//根据手机号查询库里的数据
 			List<User> list = userService.getUserListByPhoneOrAccount(placeVO.getPrincipalPhone());
-			if (list.size()>0) {
+			if (list.size() > 0) {
 				User user = list.get(0);
 				//如果用户存在,则该用户id绑定场所
 				placeVO.setPrincipalUserId(user.getId());
@@ -972,7 +1019,7 @@
 				// 来源 1:地址总表  2:国控采集 3:商超
 				if (!Strings.isBlank(placeExcel.getHouseCode())) {
 					placeEntity.setSource(1);
-				}else {
+				} else {
 					placeEntity.setSource(2);
 					// 并生成36位的houseCode
 					placeEntity.setHouseCode(IdUtils.getIdBy36());
@@ -983,7 +1030,7 @@
 					placeEntity.setNineType(Integer.parseInt(placeExcel.getNineType()));
 				}
 				// 网格绑定处理
-				importGridHandle(placeExcel,placeEntity);
+				importGridHandle(placeExcel, placeEntity);
 				// 新增
 				save(placeEntity);
 				// 保存详情
@@ -998,7 +1045,7 @@
 				}
 				// 房屋编号绑定处理
 				houseCodeBindHandle(placeEntity);
-			}else {
+			} else {
 				// 更新
 				Long userId = updateUser(placeExcel);
 				// 插入场所
@@ -1025,7 +1072,7 @@
 					placeEntity.setNineType(Integer.parseInt(placeExcel.getNineType()));
 				}
 				// 网格绑定处理
-				importGridHandle(placeExcel,placeEntity);
+				importGridHandle(placeExcel, placeEntity);
 				// 更新
 				updateById(placeEntity);
 				// 场所标签信息处理
@@ -1042,15 +1089,16 @@
 
 	/**
 	 * 导入是网格数据绑定处理
+	 *
 	 * @param placeExcel
 	 * @param placeEntity
 	 */
 	private void importGridHandle(PlaceExcel placeExcel, PlaceVO placeEntity) {
 		if (!Strings.isBlank(placeExcel.getCommunityName()) &&
-			!Strings.isBlank(placeExcel.getGridName())){
+			!Strings.isBlank(placeExcel.getGridName())) {
 			// 查询对应的网格信息
-			GridEntity gridEntity = gridService.getGridInfoByParam(placeExcel.getCommunityName(),placeExcel.getGridName());
-			if (null!=gridEntity){
+			GridEntity gridEntity = gridService.getGridInfoByParam(placeExcel.getCommunityName(), placeExcel.getGridName());
+			if (null != gridEntity) {
 				// 设置场所范围
 				placeEntity.setGridId(gridEntity.getId());
 				placeEntity.setGridCode(gridEntity.getGridCode());
@@ -1060,8 +1108,8 @@
 				gridRangeEntity.setGridCode(gridEntity.getGridCode());
 				gridRangeEntity.setHouseCode(placeEntity.getHouseCode());
 				UpdateWrapper<GridRangeEntity> updateWrapper = new UpdateWrapper<>();
-				updateWrapper.eq("house_code",placeEntity.getHouseCode());
-				gridRangeService.update(gridRangeEntity,updateWrapper);
+				updateWrapper.eq("house_code", placeEntity.getHouseCode());
+				gridRangeService.update(gridRangeEntity, updateWrapper);
 			}
 		}
 	}
@@ -1666,15 +1714,17 @@
 
 	/**
 	 * 查询所有场所数据
+	 *
 	 * @return
 	 */
 	@Override
-	public List<PlaceVO> getAllList(int i,int size) {
-		return baseMapper.getAllList(i,size);
+	public List<PlaceVO> getAllList(int i, int size) {
+		return baseMapper.getAllList(i, size);
 	}
 
 	/**
 	 * 查询所有场所数据总数
+	 *
 	 * @return
 	 */
 	@Override
@@ -1684,6 +1734,7 @@
 
 	/**
 	 * 查询对应的社区编号
+	 *
 	 * @param id
 	 * @return
 	 */
diff --git a/src/main/java/org/springblade/modules/rotation/service/impl/RotationServiceImpl.java b/src/main/java/org/springblade/modules/rotation/service/impl/RotationServiceImpl.java
index c9ed1c8..5cc5f09 100644
--- a/src/main/java/org/springblade/modules/rotation/service/impl/RotationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/rotation/service/impl/RotationServiceImpl.java
@@ -99,6 +99,9 @@
 		if(AuthUtils.isJd(userRole)){
 			rotation.setType(2);
 		}
+		if(AuthUtils.isAdministratorOrAdmin(userRole)){
+			rotation.setType(null);
+		}
 		if (StringUtils.isNotBlank(rotation.getAoiCode())) {
 			// 查询房屋的小区
 			IDistrictService bean = SpringUtils.getBean(IDistrictService.class);

--
Gitblit v1.9.3