diff --git a/ruoyi-ui/src/api/benyi/checkindetail.js b/ruoyi-ui/src/api/benyi/checkindetail.js
new file mode 100644
index 000000000..6dd67af89
--- /dev/null
+++ b/ruoyi-ui/src/api/benyi/checkindetail.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询幼儿考勤列表
+export function listDetail(query) {
+ return request({
+ url: '/benyi/checkindetail/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询幼儿考勤详细
+export function getDetail(id) {
+ return request({
+ url: '/benyi/checkindetail/' + id,
+ method: 'get'
+ })
+}
+
+// 新增幼儿考勤
+export function addDetail(data) {
+ return request({
+ url: '/benyi/checkindetail',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改幼儿考勤
+export function updateDetail(data) {
+ return request({
+ url: '/benyi/checkindetail',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除幼儿考勤
+export function delDetail(id) {
+ return request({
+ url: '/benyi/checkindetail/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出幼儿考勤
+export function exportDetail(query) {
+ return request({
+ url: '/benyi/checkindetail/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/benyi/checkindetail/index.vue b/ruoyi-ui/src/views/benyi/checkindetail/index.vue
new file mode 100644
index 000000000..4aa6df04d
--- /dev/null
+++ b/ruoyi-ui/src/views/benyi/checkindetail/index.vue
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByChildCheckinDetailController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByChildCheckinDetailController.java
new file mode 100644
index 000000000..e44f3d86b
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByChildCheckinDetailController.java
@@ -0,0 +1,103 @@
+package com.ruoyi.project.benyi.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.project.benyi.domain.ByChildCheckinDetail;
+import com.ruoyi.project.benyi.service.IByChildCheckinDetailService;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.page.TableDataInfo;
+
+/**
+ * 幼儿考勤Controller
+ *
+ * @author tsbz
+ * @date 2020-07-21
+ */
+@RestController
+@RequestMapping("/benyi/checkindetail")
+public class ByChildCheckinDetailController extends BaseController
+{
+ @Autowired
+ private IByChildCheckinDetailService byChildCheckinDetailService;
+
+/**
+ * 查询幼儿考勤列表
+ */
+@PreAuthorize("@ss.hasPermi('benyi:checkindetail:list')")
+@GetMapping("/list")
+ public TableDataInfo list(ByChildCheckinDetail byChildCheckinDetail)
+ {
+ startPage();
+ List list = byChildCheckinDetailService.selectByChildCheckinDetailList(byChildCheckinDetail);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出幼儿考勤列表
+ */
+ @PreAuthorize("@ss.hasPermi('benyi:checkindetail:export')")
+ @Log(title = "幼儿考勤", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ public AjaxResult export(ByChildCheckinDetail byChildCheckinDetail)
+ {
+ List list = byChildCheckinDetailService.selectByChildCheckinDetailList(byChildCheckinDetail);
+ ExcelUtil util = new ExcelUtil(ByChildCheckinDetail.class);
+ return util.exportExcel(list, "detail");
+ }
+
+ /**
+ * 获取幼儿考勤详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('benyi:checkindetail:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(byChildCheckinDetailService.selectByChildCheckinDetailById(id));
+ }
+
+ /**
+ * 新增幼儿考勤
+ */
+ @PreAuthorize("@ss.hasPermi('benyi:checkindetail:add')")
+ @Log(title = "幼儿考勤", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ByChildCheckinDetail byChildCheckinDetail)
+ {
+ return toAjax(byChildCheckinDetailService.insertByChildCheckinDetail(byChildCheckinDetail));
+ }
+
+ /**
+ * 修改幼儿考勤
+ */
+ @PreAuthorize("@ss.hasPermi('benyi:checkindetail:edit')")
+ @Log(title = "幼儿考勤", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ByChildCheckinDetail byChildCheckinDetail)
+ {
+ return toAjax(byChildCheckinDetailService.updateByChildCheckinDetail(byChildCheckinDetail));
+ }
+
+ /**
+ * 删除幼儿考勤
+ */
+ @PreAuthorize("@ss.hasPermi('benyi:checkindetail:remove')")
+ @Log(title = "幼儿考勤", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(byChildCheckinDetailService.deleteByChildCheckinDetailByIds(ids));
+ }
+}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByChildCheckinDetail.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByChildCheckinDetail.java
new file mode 100644
index 000000000..5bded3ff8
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByChildCheckinDetail.java
@@ -0,0 +1,127 @@
+package com.ruoyi.project.benyi.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+
+/**
+ * 幼儿考勤对象 by_child_checkin_detail
+ *
+ * @author tsbz
+ * @date 2020-07-21
+ */
+public class ByChildCheckinDetail extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ private Long id;
+
+ /**
+ * 学校编码
+ */
+ @Excel(name = "学校编码")
+ private Long schoolid;
+
+ /**
+ * 班级编码
+ */
+ @Excel(name = "班级编码")
+ private String classid;
+
+ /**
+ * 幼儿编码
+ */
+ @Excel(name = "幼儿编码")
+ private Long childid;
+
+ /**
+ * 幼儿姓名
+ */
+ @Excel(name = "幼儿姓名")
+ private String childname;
+
+ /**
+ * 出勤类型
+ */
+ @Excel(name = "出勤类型")
+ private String type;
+
+ /**
+ * 创建人
+ */
+ @Excel(name = "创建人")
+ private Long createuserid;
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setSchoolid(Long schoolid) {
+ this.schoolid = schoolid;
+ }
+
+ public Long getSchoolid() {
+ return schoolid;
+ }
+
+ public void setClassid(String classid) {
+ this.classid = classid;
+ }
+
+ public String getClassid() {
+ return classid;
+ }
+
+ public void setChildid(Long childid) {
+ this.childid = childid;
+ }
+
+ public Long getChildid() {
+ return childid;
+ }
+
+ public void setChildname(String childname) {
+ this.childname = childname;
+ }
+
+ public String getChildname() {
+ return childname;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setCreateuserid(Long createuserid) {
+ this.createuserid = createuserid;
+ }
+
+ public Long getCreateuserid() {
+ return createuserid;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("schoolid", getSchoolid())
+ .append("classid", getClassid())
+ .append("childid", getChildid())
+ .append("childname", getChildname())
+ .append("type", getType())
+ .append("createuserid", getCreateuserid())
+ .append("createTime", getCreateTime())
+ .toString();
+ }
+}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByChildCheckinDetailMapper.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByChildCheckinDetailMapper.java
new file mode 100644
index 000000000..0fe5b83d4
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByChildCheckinDetailMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.project.benyi.mapper;
+
+import java.util.List;
+
+import com.ruoyi.project.benyi.domain.ByChildCheckinDetail;
+
+/**
+ * 幼儿考勤Mapper接口
+ *
+ * @author tsbz
+ * @date 2020-07-21
+ */
+public interface ByChildCheckinDetailMapper {
+ /**
+ * 查询幼儿考勤
+ *
+ * @param id 幼儿考勤ID
+ * @return 幼儿考勤
+ */
+ public ByChildCheckinDetail selectByChildCheckinDetailById(Long id);
+
+ /**
+ * 查询幼儿考勤列表
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 幼儿考勤集合
+ */
+ public List selectByChildCheckinDetailList(ByChildCheckinDetail byChildCheckinDetail);
+
+ /**
+ * 新增幼儿考勤
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 结果
+ */
+ public int insertByChildCheckinDetail(ByChildCheckinDetail byChildCheckinDetail);
+
+ /**
+ * 修改幼儿考勤
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 结果
+ */
+ public int updateByChildCheckinDetail(ByChildCheckinDetail byChildCheckinDetail);
+
+ /**
+ * 删除幼儿考勤
+ *
+ * @param id 幼儿考勤ID
+ * @return 结果
+ */
+ public int deleteByChildCheckinDetailById(Long id);
+
+ /**
+ * 批量删除幼儿考勤
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ public int deleteByChildCheckinDetailByIds(Long[] ids);
+}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByChildCheckinDetailService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByChildCheckinDetailService.java
new file mode 100644
index 000000000..f266b8413
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByChildCheckinDetailService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.project.benyi.service;
+
+import java.util.List;
+import com.ruoyi.project.benyi.domain.ByChildCheckinDetail;
+
+/**
+ * 幼儿考勤Service接口
+ *
+ * @author tsbz
+ * @date 2020-07-21
+ */
+public interface IByChildCheckinDetailService
+{
+ /**
+ * 查询幼儿考勤
+ *
+ * @param id 幼儿考勤ID
+ * @return 幼儿考勤
+ */
+ public ByChildCheckinDetail selectByChildCheckinDetailById(Long id);
+
+ /**
+ * 查询幼儿考勤列表
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 幼儿考勤集合
+ */
+ public List selectByChildCheckinDetailList(ByChildCheckinDetail byChildCheckinDetail);
+
+ /**
+ * 新增幼儿考勤
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 结果
+ */
+ public int insertByChildCheckinDetail(ByChildCheckinDetail byChildCheckinDetail);
+
+ /**
+ * 修改幼儿考勤
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 结果
+ */
+ public int updateByChildCheckinDetail(ByChildCheckinDetail byChildCheckinDetail);
+
+ /**
+ * 批量删除幼儿考勤
+ *
+ * @param ids 需要删除的幼儿考勤ID
+ * @return 结果
+ */
+ public int deleteByChildCheckinDetailByIds(Long[] ids);
+
+ /**
+ * 删除幼儿考勤信息
+ *
+ * @param id 幼儿考勤ID
+ * @return 结果
+ */
+ public int deleteByChildCheckinDetailById(Long id);
+}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByChildCheckinDetailServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByChildCheckinDetailServiceImpl.java
new file mode 100644
index 000000000..b56dcb638
--- /dev/null
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByChildCheckinDetailServiceImpl.java
@@ -0,0 +1,95 @@
+package com.ruoyi.project.benyi.service.impl;
+
+import java.util.List;
+ import com.ruoyi.common.utils.DateUtils;
+ import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.benyi.mapper.ByChildCheckinDetailMapper;
+import com.ruoyi.project.benyi.domain.ByChildCheckinDetail;
+import com.ruoyi.project.benyi.service.IByChildCheckinDetailService;
+
+/**
+ * 幼儿考勤Service业务层处理
+ *
+ * @author tsbz
+ * @date 2020-07-21
+ */
+@Service
+public class ByChildCheckinDetailServiceImpl implements IByChildCheckinDetailService
+{
+ @Autowired
+ private ByChildCheckinDetailMapper byChildCheckinDetailMapper;
+
+ /**
+ * 查询幼儿考勤
+ *
+ * @param id 幼儿考勤ID
+ * @return 幼儿考勤
+ */
+ @Override
+ public ByChildCheckinDetail selectByChildCheckinDetailById(Long id)
+ {
+ return byChildCheckinDetailMapper.selectByChildCheckinDetailById(id);
+ }
+
+ /**
+ * 查询幼儿考勤列表
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 幼儿考勤
+ */
+ @Override
+ public List selectByChildCheckinDetailList(ByChildCheckinDetail byChildCheckinDetail)
+ {
+ return byChildCheckinDetailMapper.selectByChildCheckinDetailList(byChildCheckinDetail);
+ }
+
+ /**
+ * 新增幼儿考勤
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 结果
+ */
+ @Override
+ public int insertByChildCheckinDetail(ByChildCheckinDetail byChildCheckinDetail)
+ {
+ byChildCheckinDetail.setCreateTime(DateUtils.getNowDate());
+ return byChildCheckinDetailMapper.insertByChildCheckinDetail(byChildCheckinDetail);
+ }
+
+ /**
+ * 修改幼儿考勤
+ *
+ * @param byChildCheckinDetail 幼儿考勤
+ * @return 结果
+ */
+ @Override
+ public int updateByChildCheckinDetail(ByChildCheckinDetail byChildCheckinDetail)
+ {
+ return byChildCheckinDetailMapper.updateByChildCheckinDetail(byChildCheckinDetail);
+ }
+
+ /**
+ * 批量删除幼儿考勤
+ *
+ * @param ids 需要删除的幼儿考勤ID
+ * @return 结果
+ */
+ @Override
+ public int deleteByChildCheckinDetailByIds(Long[] ids)
+ {
+ return byChildCheckinDetailMapper.deleteByChildCheckinDetailByIds(ids);
+ }
+
+ /**
+ * 删除幼儿考勤信息
+ *
+ * @param id 幼儿考勤ID
+ * @return 结果
+ */
+ @Override
+ public int deleteByChildCheckinDetailById(Long id)
+ {
+ return byChildCheckinDetailMapper.deleteByChildCheckinDetailById(id);
+ }
+}
diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByChildCheckinDetailMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByChildCheckinDetailMapper.xml
new file mode 100644
index 000000000..cfe6ef643
--- /dev/null
+++ b/ruoyi/src/main/resources/mybatis/benyi/ByChildCheckinDetailMapper.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, schoolid, classid, childid, childname, type, createuserid, create_time from by_child_checkin_detail
+
+
+
+
+
+
+
+ insert into by_child_checkin_detail
+
+ schoolid,
+ classid,
+ childid,
+ childname,
+ type,
+ createuserid,
+ create_time,
+
+
+ #{schoolid},
+ #{classid},
+ #{childid},
+ #{childname},
+ #{type},
+ #{createuserid},
+ #{createTime},
+
+
+
+
+ update by_child_checkin_detail
+
+ schoolid = #{schoolid},
+ classid = #{classid},
+ childid = #{childid},
+ childname = #{childname},
+ type = #{type},
+ createuserid = #{createuserid},
+ create_time = #{createTime},
+
+ where id = #{id}
+
+
+
+ delete from by_child_checkin_detail where id = #{id}
+
+
+
+ delete from by_child_checkin_detail where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file