From 87b79ea739ec32bd7d0e493a6ea8525212f6c763 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 10 十月 2026 15:11:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into smartor_ls_261008

---
 smartor/src/main/java/com/smartor/domain/PatChildArchiveDetail.java                                 |  275 +++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveController.java       |   88 +
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java                      |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveController.java           |   88 +
 smartor/src/main/java/com/smartor/service/IPatChildArchiveService.java                              |   26 
 smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java                             |    8 
 smartor/src/main/resources/mapper/smartor/PatChildArchiveMapper.xml                                 |  267 ++++
 smartor/src/main/java/com/smartor/domain/PatChildArchive.java                                       |  179 +++
 smartor/src/main/java/com/smartor/domain/PatMaternityArchive.java                                   |  184 +++
 smartor/src/main/resources/mapper/smartor/PatMaternityArchiveDetailMapper.xml                       |  331 ++++++
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java                         |    7 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java                       |  147 ++
 smartor/src/main/java/com/smartor/domain/PatMaternityArchiveDetail.java                             |  234 ++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveDetailController.java |   88 +
 smartor/src/main/java/com/smartor/service/IPatChildArchiveDetailService.java                        |   26 
 smartor/src/main/resources/mapper/smartor/PatChildArchiveDetailMapper.xml                           |  377 ++++++
 smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveMapper.java                             |   28 
 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java                              |    6 
 smartor/src/main/java/com/smartor/service/IPatMaternityArchiveDetailService.java                    |   26 
 smartor/src/main/java/com/smartor/service/impl/PatChildArchiveDetailServiceImpl.java                |   61 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveDetailController.java     |   88 +
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                                  |   13 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                                        |    1 
 smartor/src/main/java/com/smartor/service/IPatMaternityArchiveService.java                          |   26 
 smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml                             |  129 ++
 smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java                  |   61 +
 smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java                      |   61 +
 smartor/src/main/java/com/smartor/mapper/PatChildArchiveMapper.java                                 |   28 
 smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveDetailServiceImpl.java            |   61 +
 smartor/src/main/java/com/smartor/mapper/PatChildArchiveDetailMapper.java                           |   28 
 smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveDetailMapper.java                       |   28 
 smartor/src/main/resources/mapper/smartor/PatMaternityArchiveMapper.xml                             |  273 ++++
 32 files changed, 3,209 insertions(+), 38 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveController.java
new file mode 100644
index 0000000..74927de
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveController.java
@@ -0,0 +1,88 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.AddOrgId;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.PatChildArchive;
+import com.smartor.service.IPatChildArchiveService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鍎跨妗fController
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Api(description = "鍎跨妗f")
+@RestController
+@RequestMapping("/smartor/childArchive")
+public class PatChildArchiveController extends BaseController {
+    @Autowired
+    private IPatChildArchiveService patChildArchiveService;
+
+    @ApiOperation("鏌ヨ鍎跨妗f鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:childArchive:list')")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/selectPatChildArchiveList")
+    public TableDataInfo selectPatChildArchiveList(@RequestBody PatChildArchive patChildArchive) {
+        PageUtils.startPageByPost(patChildArchive.getPageNum(), patChildArchive.getPageSize());
+        List<PatChildArchive> list = patChildArchiveService.selectPatChildArchiveList(patChildArchive);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("瀵煎嚭鍎跨妗f鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:childArchive:export')")
+    @Log(title = "鍎跨妗f", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PatChildArchive patChildArchive) {
+        List<PatChildArchive> list = patChildArchiveService.selectPatChildArchiveList(patChildArchive);
+        ExcelUtil<PatChildArchive> util = new ExcelUtil<PatChildArchive>(PatChildArchive.class);
+        util.exportExcel(response, list, "鍎跨妗f鏁版嵁");
+    }
+
+    @ApiOperation("鑾峰彇鍎跨妗f璇︾粏淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:childArchive:query')")
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(patChildArchiveService.selectPatChildArchiveById(id));
+    }
+
+    @ApiOperation("鏂板鍎跨妗f")
+    //@PreAuthorize("@ss.hasPermi('system:childArchive:add')")
+    @Log(title = "鍎跨妗f", businessType = BusinessType.INSERT)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PatChildArchive patChildArchive) {
+        SysUser user = getLoginUser().getUser();
+        patChildArchive.setOrgid(user.getOrgid());
+        return toAjax(patChildArchiveService.insertPatChildArchive(patChildArchive));
+    }
+
+    @ApiOperation("淇敼鍎跨妗f")
+    //@PreAuthorize("@ss.hasPermi('system:childArchive:edit')")
+    @Log(title = "鍎跨妗f", businessType = BusinessType.UPDATE)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody PatChildArchive patChildArchive) {
+        return toAjax(patChildArchiveService.updatePatChildArchive(patChildArchive));
+    }
+
+    @ApiOperation("鍒犻櫎鍎跨妗f")
+    //@PreAuthorize("@ss.hasPermi('system:childArchive:remove')")
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(patChildArchiveService.deletePatChildArchiveByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveDetailController.java
new file mode 100644
index 0000000..cb95eef
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatChildArchiveDetailController.java
@@ -0,0 +1,88 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.AddOrgId;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.PatChildArchiveDetail;
+import com.smartor.service.IPatChildArchiveDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鍎跨妗f璇︽儏Controller
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Api(description = "鍎跨妗f璇︽儏")
+@RestController
+@RequestMapping("/smartor/childArchiveDetail")
+public class PatChildArchiveDetailController extends BaseController {
+    @Autowired
+    private IPatChildArchiveDetailService patChildArchiveDetailService;
+
+    @ApiOperation("鏌ヨ鍎跨妗f璇︽儏鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:childArchiveDetail:list')")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/selectPatChildArchiveDetailList")
+    public TableDataInfo selectPatChildArchiveDetailList(@RequestBody PatChildArchiveDetail patChildArchiveDetail) {
+        PageUtils.startPageByPost(patChildArchiveDetail.getPageNum(), patChildArchiveDetail.getPageSize());
+        List<PatChildArchiveDetail> list = patChildArchiveDetailService.selectPatChildArchiveDetailList(patChildArchiveDetail);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("瀵煎嚭鍎跨妗f璇︽儏鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:childArchiveDetail:export')")
+    @Log(title = "鍎跨妗f璇︽儏", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PatChildArchiveDetail patChildArchiveDetail) {
+        List<PatChildArchiveDetail> list = patChildArchiveDetailService.selectPatChildArchiveDetailList(patChildArchiveDetail);
+        ExcelUtil<PatChildArchiveDetail> util = new ExcelUtil<PatChildArchiveDetail>(PatChildArchiveDetail.class);
+        util.exportExcel(response, list, "鍎跨妗f璇︽儏鏁版嵁");
+    }
+
+    @ApiOperation("鑾峰彇鍎跨妗f璇︽儏璇︾粏淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:childArchiveDetail:query')")
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(patChildArchiveDetailService.selectPatChildArchiveDetailById(id));
+    }
+
+    @ApiOperation("鏂板鍎跨妗f璇︽儏")
+    //@PreAuthorize("@ss.hasPermi('system:childArchiveDetail:add')")
+    @Log(title = "鍎跨妗f璇︽儏", businessType = BusinessType.INSERT)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PatChildArchiveDetail patChildArchiveDetail) {
+        SysUser user = getLoginUser().getUser();
+        patChildArchiveDetail.setOrgid(user.getOrgid());
+        return toAjax(patChildArchiveDetailService.insertPatChildArchiveDetail(patChildArchiveDetail));
+    }
+
+    @ApiOperation("淇敼鍎跨妗f璇︽儏")
+    //@PreAuthorize("@ss.hasPermi('system:childArchiveDetail:edit')")
+    @Log(title = "鍎跨妗f璇︽儏", businessType = BusinessType.UPDATE)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody PatChildArchiveDetail patChildArchiveDetail) {
+        return toAjax(patChildArchiveDetailService.updatePatChildArchiveDetail(patChildArchiveDetail));
+    }
+
+    @ApiOperation("鍒犻櫎鍎跨妗f璇︽儏")
+    //@PreAuthorize("@ss.hasPermi('system:childArchiveDetail:remove')")
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(patChildArchiveDetailService.deletePatChildArchiveDetailByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveController.java
new file mode 100644
index 0000000..8250a36
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveController.java
@@ -0,0 +1,88 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.AddOrgId;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.PatMaternityArchive;
+import com.smartor.service.IPatMaternityArchiveService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 濡囩妗fController
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Api(description = "濡囩妗f")
+@RestController
+@RequestMapping("/smartor/maternityArchive")
+public class PatMaternityArchiveController extends BaseController {
+    @Autowired
+    private IPatMaternityArchiveService patMaternityArchiveService;
+
+    @ApiOperation("鏌ヨ濡囩妗f鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchive:list')")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/selectPatMaternityArchiveList")
+    public TableDataInfo selectPatMaternityArchiveList(@RequestBody PatMaternityArchive patMaternityArchive) {
+        PageUtils.startPageByPost(patMaternityArchive.getPageNum(), patMaternityArchive.getPageSize());
+        List<PatMaternityArchive> list = patMaternityArchiveService.selectPatMaternityArchiveList(patMaternityArchive);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("瀵煎嚭濡囩妗f鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchive:export')")
+    @Log(title = "濡囩妗f", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PatMaternityArchive patMaternityArchive) {
+        List<PatMaternityArchive> list = patMaternityArchiveService.selectPatMaternityArchiveList(patMaternityArchive);
+        ExcelUtil<PatMaternityArchive> util = new ExcelUtil<PatMaternityArchive>(PatMaternityArchive.class);
+        util.exportExcel(response, list, "濡囩妗f鏁版嵁");
+    }
+
+    @ApiOperation("鑾峰彇濡囩妗f璇︾粏淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchive:query')")
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(patMaternityArchiveService.selectPatMaternityArchiveById(id));
+    }
+
+    @ApiOperation("鏂板濡囩妗f")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchive:add')")
+    @Log(title = "濡囩妗f", businessType = BusinessType.INSERT)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PatMaternityArchive patMaternityArchive) {
+        SysUser user = getLoginUser().getUser();
+        patMaternityArchive.setOrgid(user.getOrgid());
+        return toAjax(patMaternityArchiveService.insertPatMaternityArchive(patMaternityArchive));
+    }
+
+    @ApiOperation("淇敼濡囩妗f")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchive:edit')")
+    @Log(title = "濡囩妗f", businessType = BusinessType.UPDATE)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody PatMaternityArchive patMaternityArchive) {
+        return toAjax(patMaternityArchiveService.updatePatMaternityArchive(patMaternityArchive));
+    }
+
+    @ApiOperation("鍒犻櫎濡囩妗f")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchive:remove')")
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(patMaternityArchiveService.deletePatMaternityArchiveByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveDetailController.java
new file mode 100644
index 0000000..0a514a9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMaternityArchiveDetailController.java
@@ -0,0 +1,88 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.AddOrgId;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.PatMaternityArchiveDetail;
+import com.smartor.service.IPatMaternityArchiveDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 濡囩妗f璇︽儏Controller
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Api(description = "濡囩妗f璇︽儏")
+@RestController
+@RequestMapping("/smartor/maternityArchiveDetail")
+public class PatMaternityArchiveDetailController extends BaseController {
+    @Autowired
+    private IPatMaternityArchiveDetailService patMaternityArchiveDetailService;
+
+    @ApiOperation("鏌ヨ濡囩妗f璇︽儏鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchiveDetail:list')")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/selectPatMaternityArchiveDetailList")
+    public TableDataInfo selectPatMaternityArchiveDetailList(@RequestBody PatMaternityArchiveDetail patMaternityArchiveDetail) {
+        PageUtils.startPageByPost(patMaternityArchiveDetail.getPageNum(), patMaternityArchiveDetail.getPageSize());
+        List<PatMaternityArchiveDetail> list = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(patMaternityArchiveDetail);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("瀵煎嚭濡囩妗f璇︽儏鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchiveDetail:export')")
+    @Log(title = "濡囩妗f璇︽儏", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PatMaternityArchiveDetail patMaternityArchiveDetail) {
+        List<PatMaternityArchiveDetail> list = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(patMaternityArchiveDetail);
+        ExcelUtil<PatMaternityArchiveDetail> util = new ExcelUtil<PatMaternityArchiveDetail>(PatMaternityArchiveDetail.class);
+        util.exportExcel(response, list, "濡囩妗f璇︽儏鏁版嵁");
+    }
+
+    @ApiOperation("鑾峰彇濡囩妗f璇︽儏璇︾粏淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchiveDetail:query')")
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(patMaternityArchiveDetailService.selectPatMaternityArchiveDetailById(id));
+    }
+
+    @ApiOperation("鏂板濡囩妗f璇︽儏")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchiveDetail:add')")
+    @Log(title = "濡囩妗f璇︽儏", businessType = BusinessType.INSERT)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PatMaternityArchiveDetail patMaternityArchiveDetail) {
+        SysUser user = getLoginUser().getUser();
+        patMaternityArchiveDetail.setOrgid(user.getOrgid());
+        return toAjax(patMaternityArchiveDetailService.insertPatMaternityArchiveDetail(patMaternityArchiveDetail));
+    }
+
+    @ApiOperation("淇敼濡囩妗f璇︽儏")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchiveDetail:edit')")
+    @Log(title = "濡囩妗f璇︽儏", businessType = BusinessType.UPDATE)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody PatMaternityArchiveDetail patMaternityArchiveDetail) {
+        return toAjax(patMaternityArchiveDetailService.updatePatMaternityArchiveDetail(patMaternityArchiveDetail));
+    }
+
+    @ApiOperation("鍒犻櫎濡囩妗f璇︽儏")
+    //@PreAuthorize("@ss.hasPermi('system:maternityArchiveDetail:remove')")
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(patMaternityArchiveDetailService.deletePatMaternityArchiveDetailByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
index d27c280..3ca316a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
@@ -4,6 +4,7 @@
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import com.ruoyi.common.config.RuoYiConfig;
@@ -28,6 +29,7 @@
  * @author ruoyi
  */
 @Configuration
+@ConditionalOnProperty(name = "swagger.enabled", havingValue = "true")
 public class SwaggerConfig
 {
     /** 绯荤粺鍩虹閰嶇疆 */
@@ -35,11 +37,11 @@
     private RuoYiConfig ruoyiConfig;
 
     /** 鏄惁寮�鍚痵wagger */
-    @Value("${swagger.enabled}")
+    @Value("${swagger.enabled:false}")
     private boolean enabled;
 
     /** 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑 */
-    @Value("${swagger.pathMapping}")
+    @Value("${swagger.pathMapping:/}")
     private String pathMapping;
 
     /**
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 2b0a141..c302ea0 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -2056,6 +2056,7 @@
                 PatMedInhosp patMedInhospVo = new PatMedInhosp();
                 patMedInhospVo.setOrgid(serviceSubtask.getOrgid());
                 patMedInhospVo.setInhospid(serviceSubtask.getInhospid());
+                patMedInhospVo.setCry(1);
                 List<PatMedInhosp> patMedInhospList = iPatMedInhospService.selectPatMedInhospList(patMedInhospVo);
                 PatMedInhosp patMedInhosp = new PatMedInhosp();
                 if (!patMedInhospList.isEmpty()) {
diff --git a/smartor/src/main/java/com/smartor/domain/PatChildArchive.java b/smartor/src/main/java/com/smartor/domain/PatChildArchive.java
new file mode 100644
index 0000000..7822b7b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/PatChildArchive.java
@@ -0,0 +1,179 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 鍎跨妗f瀵硅薄 pat_child_archive
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Data
+@ApiModel(value = "鍎跨妗f瀵硅薄")
+public class PatChildArchive extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 鍎跨妗f涓婚敭ID */
+    @ApiModelProperty(value = "鍎跨妗f涓婚敭ID")
+    private Long id;
+
+    /** 鍎跨妗f绫诲瀷: 1 钀ュ吇鎬х柧鐥�2 瀛︿範鍥伴毦3 楂樺嵄鍎夸笓妗� */
+    @Excel(name = "妗f绫诲瀷")
+    @ApiModelProperty(value = "鍎跨妗f绫诲瀷: 1 钀ュ吇鎬х柧鐥�2 瀛︿範鍥伴毦3 楂樺嵄鍎夸笓妗�")
+    private String archiveType;
+
+    /** 闂ㄨ瘖缂栧彿 */
+    @Excel(name = "闂ㄨ瘖缂栧彿")
+    @ApiModelProperty(value = "闂ㄨ瘖缂栧彿")
+    private String outhospno;
+
+    /** 浣忛櫌缂栧彿 */
+    @Excel(name = "浣忛櫌缂栧彿")
+    @ApiModelProperty(value = "浣忛櫌缂栧彿")
+    private String inhospno;
+
+    /** 娴佹按鍙� */
+    @Excel(name = "娴佹按鍙�")
+    @ApiModelProperty(value = "娴佹按鍙�")
+    private String serialnum;
+
+    /** 鎮h�匢D */
+    @Excel(name = "鎮h�匢D")
+    @ApiModelProperty(value = "鎮h�匢D")
+    private Long patid;
+
+    /** 鎮h�呭鍚� */
+    @Excel(name = "鎮h�呭鍚�")
+    @ApiModelProperty(value = "鎮h�呭鍚�")
+    private String patname;
+
+    /** 瀹堕暱濮撳悕 */
+    @Excel(name = "瀹堕暱濮撳悕")
+    @ApiModelProperty(value = "瀹堕暱濮撳悕")
+    private String parentname;
+
+    /** 鍑虹敓鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍑虹敓鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍑虹敓鏃ユ湡")
+    private Date birthdate;
+
+    /** 璇佷欢鍙风爜 */
+    @Excel(name = "璇佷欢鍙风爜")
+    @ApiModelProperty(value = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 璇婃柇鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璇婃柇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璇婃柇鏃堕棿")
+    private Date diagTime;
+
+    /** 寤烘。鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "寤烘。鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "寤烘。鏃堕棿")
+    private Date archiveTime;
+
+    /** 鎷熼殢璁挎椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎷熼殢璁挎椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鎷熼殢璁挎椂闂�")
+    private Date plannedFollowTime;
+
+    /** 闅忚鍛ㄦ湡(娆℃暟) */
+    @Excel(name = "闅忚鍛ㄦ湡(娆℃暟)")
+    @ApiModelProperty(value = "闅忚鍛ㄦ湡(娆℃暟)")
+    private String followupCycleTimes;
+
+    /** 鎬у埆 1:鐢� 2:濂� */
+    @Excel(name = "鎬у埆")
+    @ApiModelProperty(value = "鎬у埆 1:鐢� 2:濂�")
+    private Long sex;
+
+    /** 涓绘不鍖荤敓 */
+    @Excel(name = "涓绘不鍖荤敓")
+    @ApiModelProperty(value = "涓绘不鍖荤敓")
+    private String doctorCode;
+
+    /** 涓绘不鍖荤敓濮撳悕 */
+    @Excel(name = "涓绘不鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "涓绘不鍖荤敓濮撳悕")
+    private String doctorName;
+
+    /** 缁忕鍖荤敓 */
+    @Excel(name = "缁忕鍖荤敓")
+    @ApiModelProperty(value = "缁忕鍖荤敓")
+    private String managementDoctorCode;
+
+    /** 缁忕鍖荤敓濮撳悕 */
+    @Excel(name = "缁忕鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "缁忕鍖荤敓濮撳悕")
+    private String managementDoctorName;
+
+    /** 绉戝缂栧彿 */
+    @Excel(name = "绉戝缂栧彿")
+    @ApiModelProperty(value = "绉戝缂栧彿")
+    private String deptcode;
+
+    /** 绉戝鍚嶇О */
+    @Excel(name = "绉戝鍚嶇О")
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptname;
+
+    /** 鐥呭尯缂栧彿 */
+    @Excel(name = "鐥呭尯缂栧彿")
+    @ApiModelProperty(value = "鐥呭尯缂栧彿")
+    private String wardcode;
+
+    /** 鐥呭尯鍚嶇О */
+    @Excel(name = "鐥呭尯鍚嶇О")
+    @ApiModelProperty(value = "鐥呭尯鍚嶇О")
+    private String wardname;
+
+    /** 璇婃柇ID */
+    @Excel(name = "璇婃柇ID")
+    @ApiModelProperty(value = "璇婃柇ID")
+    private String icd10code;
+
+    /** 璇婃柇鍚嶇О */
+    @Excel(name = "璇婃柇鍚嶇О")
+    @ApiModelProperty(value = "璇婃柇鍚嶇О")
+    private String diagname;
+
+    /** 缁撴鐘舵�� */
+    @Excel(name = "缁撴鐘舵��")
+    @ApiModelProperty(value = "缁撴鐘舵��")
+    private String closeStatus;
+
+    /** 鐧昏浜哄憳 */
+    @Excel(name = "鐧昏浜哄憳")
+    @ApiModelProperty(value = "鐧昏浜哄憳")
+    private String registerUser;
+
+    /** 鍖婚櫌鏈烘瀯ID */
+    @Excel(name = "鍖婚櫌鏈烘瀯ID")
+    @ApiModelProperty(value = "鍖婚櫌鏈烘瀯ID")
+    private String orgid;
+
+    /** 闄㈠尯ID */
+    @Excel(name = "闄㈠尯ID")
+    @ApiModelProperty(value = "闄㈠尯ID")
+    private String campusid;
+
+    /** 鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛� */
+    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛�")
+    private String delFlag;
+}
diff --git a/smartor/src/main/java/com/smartor/domain/PatChildArchiveDetail.java b/smartor/src/main/java/com/smartor/domain/PatChildArchiveDetail.java
new file mode 100644
index 0000000..99606c2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/PatChildArchiveDetail.java
@@ -0,0 +1,275 @@
+package com.smartor.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 鍎跨妗f璇︽儏瀵硅薄 pat_child_archive_detail
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Data
+@ApiModel(value = "鍎跨妗f璇︽儏瀵硅薄")
+public class PatChildArchiveDetail extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 鍎跨妗f璇︽儏涓婚敭ID */
+    @ApiModelProperty(value = "鍎跨妗f璇︽儏涓婚敭ID")
+    private Long id;
+
+    /** 鍎跨妗f涓婚敭ID 瀵瑰簲 pat_child_archive.id */
+    @Excel(name = "妗fID")
+    @ApiModelProperty(value = "鍎跨妗f涓婚敭ID 瀵瑰簲 pat_child_archive.id")
+    private Long archiveid;
+
+    /** 妗f绫诲瀷: 1 钀ュ吇鎬х柧鐥�2 瀛︿範鍥伴毦3 楂樺嵄鍎夸笓妗� */
+    @Excel(name = "妗f绫诲瀷")
+    @ApiModelProperty(value = "妗f绫诲瀷: 1 钀ュ吇鎬х柧鐥�2 瀛︿範鍥伴毦3 楂樺嵄鍎夸笓妗�")
+    private String archiveType;
+
+    /** 鏉ユ簮绫诲瀷: 1 闂ㄨ瘖璁板綍 */
+    @Excel(name = "鏉ユ簮绫诲瀷")
+    @ApiModelProperty(value = "鏉ユ簮绫诲瀷: 1 闂ㄨ瘖璁板綍")
+    private String sourceType;
+
+    /** 闂ㄨ瘖缂栧彿 */
+    @Excel(name = "闂ㄨ瘖缂栧彿")
+    @ApiModelProperty(value = "闂ㄨ瘖缂栧彿")
+    private String outhospno;
+
+    /** 浣忛櫌缂栧彿 */
+    @Excel(name = "浣忛櫌缂栧彿")
+    @ApiModelProperty(value = "浣忛櫌缂栧彿")
+    private String inhospno;
+
+    /** 娴佹按鍙� */
+    @Excel(name = "娴佹按鍙�")
+    @ApiModelProperty(value = "娴佹按鍙�")
+    private String serialnum;
+
+    /** 鎮h�匢D */
+    @Excel(name = "鎮h�匢D")
+    @ApiModelProperty(value = "鎮h�匢D")
+    private Long patid;
+
+    /** 鎮h�呭鍚� */
+    @Excel(name = "鎮h�呭鍚�")
+    @ApiModelProperty(value = "鎮h�呭鍚�")
+    private String patname;
+
+    /** 瀹堕暱濮撳悕 */
+    @Excel(name = "瀹堕暱濮撳悕")
+    @ApiModelProperty(value = "瀹堕暱濮撳悕")
+    private String parentname;
+
+    /** 瀹堕暱涓庡効绔ュ叧绯� */
+    @Excel(name = "瀹堕暱涓庡効绔ュ叧绯�")
+    @ApiModelProperty(value = "瀹堕暱涓庡効绔ュ叧绯�")
+    private String parentRelation;
+
+    /** 瀹堕暱鑱旂郴鐢佃瘽 */
+    @Excel(name = "瀹堕暱鑱旂郴鐢佃瘽")
+    @ApiModelProperty(value = "瀹堕暱鑱旂郴鐢佃瘽")
+    private String parentPhone;
+
+    /** 瀹堕暱璇佷欢鍙风爜 */
+    @Excel(name = "瀹堕暱璇佷欢鍙风爜")
+    @ApiModelProperty(value = "瀹堕暱璇佷欢鍙风爜")
+    private String parentIdcardno;
+
+    /** 瀹堕暱鑱旂郴鍦板潃 */
+    @Excel(name = "瀹堕暱鑱旂郴鍦板潃")
+    @ApiModelProperty(value = "瀹堕暱鑱旂郴鍦板潃")
+    private String parentAddress;
+
+    /** 鍑虹敓鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍑虹敓鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍑虹敓鏃ユ湡")
+    private Date birthdate;
+
+    /** 璇佷欢鍙风爜 */
+    @Excel(name = "璇佷欢鍙风爜")
+    @ApiModelProperty(value = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 璇婃柇鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璇婃柇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璇婃柇鏃堕棿")
+    private Date diagTime;
+
+    /** 寤烘。鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "寤烘。鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "寤烘。鏃堕棿")
+    private Date archiveTime;
+
+    /** 鎬у埆 1:鐢� 2:濂� */
+    @Excel(name = "鎬у埆")
+    @ApiModelProperty(value = "鎬у埆 1:鐢� 2:濂�")
+    private Long sex;
+
+    /** 涓绘不鍖荤敓 */
+    @Excel(name = "涓绘不鍖荤敓")
+    @ApiModelProperty(value = "涓绘不鍖荤敓")
+    private String doctorCode;
+
+    /** 涓绘不鍖荤敓濮撳悕 */
+    @Excel(name = "涓绘不鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "涓绘不鍖荤敓濮撳悕")
+    private String doctorName;
+
+    /** 缁忕鍖荤敓 */
+    @Excel(name = "缁忕鍖荤敓")
+    @ApiModelProperty(value = "缁忕鍖荤敓")
+    private String managementDoctorCode;
+
+    /** 缁忕鍖荤敓濮撳悕 */
+    @Excel(name = "缁忕鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "缁忕鍖荤敓濮撳悕")
+    private String managementDoctorName;
+
+    /** 绉戝缂栧彿 */
+    @Excel(name = "绉戝缂栧彿")
+    @ApiModelProperty(value = "绉戝缂栧彿")
+    private String deptcode;
+
+    /** 绉戝鍚嶇О */
+    @Excel(name = "绉戝鍚嶇О")
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptname;
+
+    /** 鐥呭尯缂栧彿 */
+    @Excel(name = "鐥呭尯缂栧彿")
+    @ApiModelProperty(value = "鐥呭尯缂栧彿")
+    private String wardcode;
+
+    /** 鐥呭尯鍚嶇О */
+    @Excel(name = "鐥呭尯鍚嶇О")
+    @ApiModelProperty(value = "鐥呭尯鍚嶇О")
+    private String wardname;
+
+    /** 璇婃柇ID */
+    @Excel(name = "璇婃柇ID")
+    @ApiModelProperty(value = "璇婃柇ID")
+    private String icd10code;
+
+    /** 璇婃柇鍚嶇О */
+    @Excel(name = "璇婃柇鍚嶇О")
+    @ApiModelProperty(value = "璇婃柇鍚嶇О")
+    private String diagname;
+
+    /** 钀ュ吇鎬х柧鐥匢D */
+    @Excel(name = "钀ュ吇鎬х柧鐥匢D")
+    @ApiModelProperty(value = "钀ュ吇鎬х柧鐥匢D")
+    private String nutritionIcd10Code;
+
+    /** 钀ュ吇鎬х柧鐥呭悕绉� */
+    @Excel(name = "钀ュ吇鎬х柧鐥呭悕绉�")
+    @ApiModelProperty(value = "钀ュ吇鎬х柧鐥呭悕绉�")
+    private String nutritionDiagName;
+
+    /** 钀ュ吇鎬х柧鐥�-浣撴牸娴嬮噺 */
+    @ApiModelProperty(value = "钀ュ吇鎬х柧鐥�-浣撴牸娴嬮噺")
+    private String ndPhysicalMeasurements;
+
+    /** 钀ュ吇鎬х柧鐥�-鑶抽璇勪及 */
+    @ApiModelProperty(value = "钀ュ吇鎬х柧鐥�-鑶抽璇勪及")
+    private String ndDietaryAssessment;
+
+    /** 钀ュ吇鎬х柧鐥�-骞查鏂规 */
+    @ApiModelProperty(value = "钀ュ吇鎬х柧鐥�-骞查鏂规")
+    private String ndInterventionProgram;
+
+    /** 瀛︿範鍥伴毦-棰勭害鎯呭喌 */
+    @ApiModelProperty(value = "瀛︿範鍥伴毦-棰勭害鎯呭喌")
+    private String appointmentSituation;
+
+    /** 瀛︿範鍥伴毦-瀛︿範鑳藉姏璇勪及 */
+    @ApiModelProperty(value = "瀛︿範鍥伴毦-瀛︿範鑳藉姏璇勪及")
+    private String ldLearningAbilityAssessment;
+
+    /** 瀛︿範鍥伴毦-琛屼负璇勪及 */
+    @ApiModelProperty(value = "瀛︿範鍥伴毦-琛屼负璇勪及")
+    private String ldBehavioralAssessment;
+
+    /** 瀛︿範鍥伴毦-骞查璁粌璁板綍 */
+    @ApiModelProperty(value = "瀛︿範鍥伴毦-骞查璁粌璁板綍")
+    private String ldInterventionTrainingRecord;
+
+    /** 楂樺嵄鍎夸笓妗�-楂樺嵄鍎垮垎绫� */
+    @Excel(name = "楂樺嵄鍎垮垎绫�")
+    @ApiModelProperty(value = "楂樺嵄鍎夸笓妗�-楂樺嵄鍎垮垎绫�")
+    private String highRiskChildType;
+
+    /** 楂樺嵄鍎夸笓妗�-楂樺嵄鍎垮悕绉� */
+    @Excel(name = "楂樺嵄鍎垮悕绉�")
+    @ApiModelProperty(value = "楂樺嵄鍎夸笓妗�-楂樺嵄鍎垮悕绉�")
+    private String highRiskChildName;
+
+    /** 楂樺嵄鍎夸笓妗�-鎷熼殢璁挎椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎷熼殢璁挎椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "楂樺嵄鍎夸笓妗�-鎷熼殢璁挎椂闂�")
+    private Date plannedFollowTime;
+
+    /** 楂樺嵄鍎夸笓妗�-鐢熼暱鍙戣偛妫�娴� */
+    @ApiModelProperty(value = "楂樺嵄鍎夸笓妗�-鐢熼暱鍙戣偛妫�娴�")
+    private String hrcGrowthDevelopmentMonitoring;
+
+    /** 楂樺嵄鍎夸笓妗�-绁炵粡绯荤粺璇勪及 */
+    @ApiModelProperty(value = "楂樺嵄鍎夸笓妗�-绁炵粡绯荤粺璇勪及")
+    private String hrcNeurologicalEvaluation;
+
+    /** 楂樺嵄鍎夸笓妗�-骞查璁板綍 */
+    @ApiModelProperty(value = "楂樺嵄鍎夸笓妗�-骞查璁板綍")
+    private String hrcInterventionRecords;
+
+    /** 缁撴鐘舵�� */
+    @Excel(name = "缁撴鐘舵��")
+    @ApiModelProperty(value = "缁撴鐘舵��")
+    private String closeStatus;
+
+    /** 鍑虹敓瀛曞懆 */
+    @Excel(name = "鍑虹敓瀛曞懆")
+    @ApiModelProperty(value = "鍑虹敓瀛曞懆")
+    private BigDecimal gestationalWeek;
+
+    /** 鍑虹敓浣撻噸(kg) */
+    @Excel(name = "鍑虹敓浣撻噸(kg)")
+    @ApiModelProperty(value = "鍑虹敓浣撻噸(kg)")
+    private BigDecimal birthWeight;
+
+    /** 鐧昏浜哄憳 */
+    @Excel(name = "鐧昏浜哄憳")
+    @ApiModelProperty(value = "鐧昏浜哄憳")
+    private String registerUser;
+
+    /** 鍖婚櫌鏈烘瀯ID */
+    @Excel(name = "鍖婚櫌鏈烘瀯ID")
+    @ApiModelProperty(value = "鍖婚櫌鏈烘瀯ID")
+    private String orgid;
+
+    /** 闄㈠尯ID */
+    @Excel(name = "闄㈠尯ID")
+    @ApiModelProperty(value = "闄㈠尯ID")
+    private String campusid;
+
+    /** 鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛� */
+    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛�")
+    private String delFlag;
+}
diff --git a/smartor/src/main/java/com/smartor/domain/PatMaternityArchive.java b/smartor/src/main/java/com/smartor/domain/PatMaternityArchive.java
new file mode 100644
index 0000000..be9ce5f
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/PatMaternityArchive.java
@@ -0,0 +1,184 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 濡囩妗f瀵硅薄 pat_maternity_archive
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Data
+@ApiModel(value = "濡囩妗f瀵硅薄")
+public class PatMaternityArchive extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 濡囩妗f涓婚敭ID */
+    @ApiModelProperty(value = "濡囩妗f涓婚敭ID")
+    private Long id;
+
+    /** 濡囧辜妗f绫诲瀷: 1 鏃╁瓡鍏崇埍2 鍥寸粷缁忔湡MHI */
+    @Excel(name = "妗f绫诲瀷")
+    @ApiModelProperty(value = "濡囧辜妗f绫诲瀷: 1 鏃╁瓡鍏崇埍2 鍥寸粷缁忔湡MHI")
+    private String archiveType;
+
+    /** 闂ㄨ瘖缂栧彿 */
+    @Excel(name = "闂ㄨ瘖缂栧彿")
+    @ApiModelProperty(value = "闂ㄨ瘖缂栧彿")
+    private String outhospno;
+
+    /** 浣忛櫌缂栧彿 */
+    @Excel(name = "浣忛櫌缂栧彿")
+    @ApiModelProperty(value = "浣忛櫌缂栧彿")
+    private String inhospno;
+
+    /** 娴佹按鍙� */
+    @Excel(name = "娴佹按鍙�")
+    @ApiModelProperty(value = "娴佹按鍙�")
+    private String serialnum;
+
+    /** 鎮h�匢D */
+    @Excel(name = "鎮h�匢D")
+    @ApiModelProperty(value = "鎮h�匢D")
+    private Long patid;
+
+    /** 鎮h�呭鍚� */
+    @Excel(name = "鎮h�呭鍚�")
+    @ApiModelProperty(value = "鎮h�呭鍚�")
+    private String patname;
+
+    /** 瀹堕暱濮撳悕 */
+    @Excel(name = "瀹堕暱濮撳悕")
+    @ApiModelProperty(value = "瀹堕暱濮撳悕")
+    private String parentname;
+
+    /** 鍑虹敓鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍑虹敓鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍑虹敓鏃ユ湡")
+    private Date birthdate;
+
+    /** 璇佷欢鍙风爜 */
+    @Excel(name = "璇佷欢鍙风爜")
+    @ApiModelProperty(value = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 璇婃柇鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璇婃柇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璇婃柇鏃堕棿")
+    private Date diagTime;
+
+    /** 寤烘。鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "寤烘。鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "寤烘。鏃堕棿")
+    private Date archiveTime;
+
+    /** 鎷熼殢璁挎椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎷熼殢璁挎椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鎷熼殢璁挎椂闂�")
+    private Date plannedFollowTime;
+
+    /** 闅忚鍛ㄦ湡(娆℃暟) */
+    @Excel(name = "闅忚鍛ㄦ湡(娆℃暟)")
+    @ApiModelProperty(value = "闅忚鍛ㄦ湡(娆℃暟)")
+    private String followupCycleTimes;
+
+    /** 鎬у埆 1:鐢� 2:濂� */
+    @Excel(name = "鎬у埆")
+    @ApiModelProperty(value = "鎬у埆 1:鐢� 2:濂�")
+    private Long sex;
+
+    /** 涓绘不鍖荤敓 */
+    @Excel(name = "涓绘不鍖荤敓")
+    @ApiModelProperty(value = "涓绘不鍖荤敓")
+    private String doctorCode;
+
+    /** 涓绘不鍖荤敓濮撳悕 */
+    @Excel(name = "涓绘不鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "涓绘不鍖荤敓濮撳悕")
+    private String doctorName;
+
+    /** 缁忕鍖荤敓 */
+    @Excel(name = "缁忕鍖荤敓")
+    @ApiModelProperty(value = "缁忕鍖荤敓")
+    private String managementDoctorCode;
+
+    /** 缁忕鍖荤敓濮撳悕 */
+    @Excel(name = "缁忕鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "缁忕鍖荤敓濮撳悕")
+    private String managementDoctorName;
+
+    /** 绉戝缂栧彿 */
+    @Excel(name = "绉戝缂栧彿")
+    @ApiModelProperty(value = "绉戝缂栧彿")
+    private String deptcode;
+
+    /** 绉戝鍚嶇О */
+    @Excel(name = "绉戝鍚嶇О")
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptname;
+
+    /** 鐥呭尯缂栧彿 */
+    @Excel(name = "鐥呭尯缂栧彿")
+    @ApiModelProperty(value = "鐥呭尯缂栧彿")
+    private String wardcode;
+
+    /** 鐥呭尯鍚嶇О */
+    @Excel(name = "鐥呭尯鍚嶇О")
+    @ApiModelProperty(value = "鐥呭尯鍚嶇О")
+    private String wardname;
+
+    /** 璇婃柇ID */
+    @Excel(name = "璇婃柇ID")
+    @ApiModelProperty(value = "璇婃柇ID")
+    private String icd10code;
+
+    /** 璇婃柇鍚嶇О */
+    @Excel(name = "璇婃柇鍚嶇О")
+    @ApiModelProperty(value = "璇婃柇鍚嶇О")
+    private String diagname;
+
+    /** 濡婂鎯呭喌 */
+    @Excel(name = "濡婂鎯呭喌")
+    @ApiModelProperty(value = "濡婂鎯呭喌")
+    private String pregnancySituation;
+
+    /** 缁撴鐘舵�� */
+    @Excel(name = "缁撴鐘舵��")
+    @ApiModelProperty(value = "缁撴鐘舵��")
+    private String closeStatus;
+
+    /** 鐧昏浜哄憳 */
+    @Excel(name = "鐧昏浜哄憳")
+    @ApiModelProperty(value = "鐧昏浜哄憳")
+    private String registerUser;
+
+    /** 鍖婚櫌鏈烘瀯ID */
+    @Excel(name = "鍖婚櫌鏈烘瀯ID")
+    @ApiModelProperty(value = "鍖婚櫌鏈烘瀯ID")
+    private String orgid;
+
+    /** 闄㈠尯ID */
+    @Excel(name = "闄㈠尯ID")
+    @ApiModelProperty(value = "闄㈠尯ID")
+    private String campusid;
+
+    /** 鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛� */
+    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛�")
+    private String delFlag;
+}
diff --git a/smartor/src/main/java/com/smartor/domain/PatMaternityArchiveDetail.java b/smartor/src/main/java/com/smartor/domain/PatMaternityArchiveDetail.java
new file mode 100644
index 0000000..ce7e64b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/PatMaternityArchiveDetail.java
@@ -0,0 +1,234 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 濡囩妗f璇︽儏瀵硅薄 pat_maternity_archive_detail
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Data
+@ApiModel(value = "濡囩妗f璇︽儏瀵硅薄")
+public class PatMaternityArchiveDetail extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 濡囩妗f璇︽儏涓婚敭ID */
+    @ApiModelProperty(value = "濡囩妗f璇︽儏涓婚敭ID")
+    private Long id;
+
+    /** 濡囩妗f涓婚敭ID 瀵瑰簲 pat_maternity_archive.id */
+    @Excel(name = "妗fID")
+    @ApiModelProperty(value = "濡囩妗f涓婚敭ID 瀵瑰簲 pat_maternity_archive.id")
+    private Long archiveid;
+
+    /** 妗f绫诲瀷: 1 鏃╁瓡鍏崇埍2 鍥寸粷缁忔湡MHI */
+    @Excel(name = "妗f绫诲瀷")
+    @ApiModelProperty(value = "妗f绫诲瀷: 1 鏃╁瓡鍏崇埍2 鍥寸粷缁忔湡MHI")
+    private String archiveType;
+
+    /** 鏉ユ簮绫诲瀷: 1 闂ㄨ瘖璁板綍 */
+    @Excel(name = "鏉ユ簮绫诲瀷")
+    @ApiModelProperty(value = "鏉ユ簮绫诲瀷: 1 闂ㄨ瘖璁板綍")
+    private String sourceType;
+
+    /** 闂ㄨ瘖缂栧彿 */
+    @Excel(name = "闂ㄨ瘖缂栧彿")
+    @ApiModelProperty(value = "闂ㄨ瘖缂栧彿")
+    private String outhospno;
+
+    /** 浣忛櫌缂栧彿 */
+    @Excel(name = "浣忛櫌缂栧彿")
+    @ApiModelProperty(value = "浣忛櫌缂栧彿")
+    private String inhospno;
+
+    /** 娴佹按鍙� */
+    @Excel(name = "娴佹按鍙�")
+    @ApiModelProperty(value = "娴佹按鍙�")
+    private String serialnum;
+
+    /** 鎮h�匢D */
+    @Excel(name = "鎮h�匢D")
+    @ApiModelProperty(value = "鎮h�匢D")
+    private Long patid;
+
+    /** 鎮h�呭鍚� */
+    @Excel(name = "鎮h�呭鍚�")
+    @ApiModelProperty(value = "鎮h�呭鍚�")
+    private String patname;
+
+    /** 鍑虹敓鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍑虹敓鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍑虹敓鏃ユ湡")
+    private Date birthdate;
+
+    /** 璇佷欢鍙风爜 */
+    @Excel(name = "璇佷欢鍙风爜")
+    @ApiModelProperty(value = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 璇婃柇鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璇婃柇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璇婃柇鏃堕棿")
+    private Date diagTime;
+
+    /** 寤烘。鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "寤烘。鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "寤烘。鏃堕棿")
+    private Date archiveTime;
+
+    /** 鎷熼殢璁挎椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎷熼殢璁挎椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鎷熼殢璁挎椂闂�")
+    private Date plannedFollowTime;
+
+    /** 鎬у埆 1:鐢� 2:濂� */
+    @Excel(name = "鎬у埆")
+    @ApiModelProperty(value = "鎬у埆 1:鐢� 2:濂�")
+    private Long sex;
+
+    /** 涓绘不鍖荤敓 */
+    @Excel(name = "涓绘不鍖荤敓")
+    @ApiModelProperty(value = "涓绘不鍖荤敓")
+    private String doctorCode;
+
+    /** 涓绘不鍖荤敓濮撳悕 */
+    @Excel(name = "涓绘不鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "涓绘不鍖荤敓濮撳悕")
+    private String doctorName;
+
+    /** 缁忕鍖荤敓 */
+    @Excel(name = "缁忕鍖荤敓")
+    @ApiModelProperty(value = "缁忕鍖荤敓")
+    private String managementDoctorCode;
+
+    /** 缁忕鍖荤敓濮撳悕 */
+    @Excel(name = "缁忕鍖荤敓濮撳悕")
+    @ApiModelProperty(value = "缁忕鍖荤敓濮撳悕")
+    private String managementDoctorName;
+
+    /** 绉戝缂栧彿 */
+    @Excel(name = "绉戝缂栧彿")
+    @ApiModelProperty(value = "绉戝缂栧彿")
+    private String deptcode;
+
+    /** 绉戝鍚嶇О */
+    @Excel(name = "绉戝鍚嶇О")
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptname;
+
+    /** 鐥呭尯缂栧彿 */
+    @Excel(name = "鐥呭尯缂栧彿")
+    @ApiModelProperty(value = "鐥呭尯缂栧彿")
+    private String wardcode;
+
+    /** 鐥呭尯鍚嶇О */
+    @Excel(name = "鐥呭尯鍚嶇О")
+    @ApiModelProperty(value = "鐥呭尯鍚嶇О")
+    private String wardname;
+
+    /** 璇婃柇ID */
+    @Excel(name = "璇婃柇ID")
+    @ApiModelProperty(value = "璇婃柇ID")
+    private String icd10code;
+
+    /** 璇婃柇鍚嶇О */
+    @Excel(name = "璇婃柇鍚嶇О")
+    @ApiModelProperty(value = "璇婃柇鍚嶇О")
+    private String diagname;
+
+    /** 濡婂鎯呭喌 */
+    @ApiModelProperty(value = "濡婂鎯呭喌")
+    private String pregnancySituation;
+
+    /** 鍏蜂綋鎯呭喌 */
+    @ApiModelProperty(value = "鍏蜂綋鎯呭喌")
+    private String specificSituation;
+
+    /** 澶勭悊寤鸿 */
+    @ApiModelProperty(value = "澶勭悊寤鸿")
+    private String handleSuggestion;
+
+    /** 缁撴鐘舵�� */
+    @Excel(name = "缁撴鐘舵��")
+    @ApiModelProperty(value = "缁撴鐘舵��")
+    private String closeStatus;
+
+    /** 鏄惁寤哄唽 0-鍚� 1-鏄� */
+    @Excel(name = "鏄惁寤哄唽")
+    @ApiModelProperty(value = "鏄惁寤哄唽 0-鍚� 1-鏄�")
+    private String isRecordEstablished;
+
+    /** 棰勪骇鏈� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "棰勪骇鏈�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "棰勪骇鏈�")
+    private Date dueDate;
+
+    /** 鐧昏浜哄憳 */
+    @Excel(name = "鐧昏浜哄憳")
+    @ApiModelProperty(value = "鐧昏浜哄憳")
+    private String registerUser;
+
+    /** 闅忚鍛ㄦ湡 */
+    @ApiModelProperty(value = "闅忚鍛ㄦ湡")
+    private String followupPeriod;
+
+    /** 鏃╁瓡鍏崇埍-鏃╁瓡闅忚琛� */
+    @ApiModelProperty(value = "鏃╁瓡鍏崇埍-鏃╁瓡闅忚琛�")
+    private String epEarlyPregnancyFollowupForm;
+
+    /** 鍥寸粷缁忔湡MHI-鏇村勾鏈熼殢璁跨郴缁熼棶棰樿〃 */
+    @ApiModelProperty(value = "鍥寸粷缁忔湡MHI-鏇村勾鏈熼殢璁跨郴缁熼棶棰樿〃")
+    private String mhiMenopauseFollowupSystemIssuesForm;
+
+    /** 鍥寸粷缁忔湡MHI-MHT棣栬瘖鐥呭巻琛� */
+    @ApiModelProperty(value = "鍥寸粷缁忔湡MHI-MHT棣栬瘖鐥呭巻琛�")
+    private String mhiMhtInitialVisitMedicalRecordForm;
+
+    /** 鍥寸粷缁忔湡MHI-MHT澶嶈瘖鐥呭巻琛� */
+    @ApiModelProperty(value = "鍥寸粷缁忔湡MHI-MHT澶嶈瘖鐥呭巻琛�")
+    private String mhiMhtFollowUpMedicalRecordForm;
+
+    /** 鍥寸粷缁忔湡MHI-鏀硅壇 Kupperman璇勫垎鏍囧噯琛� */
+    @ApiModelProperty(value = "鍥寸粷缁忔湡MHI-鏀硅壇 Kupperman璇勫垎鏍囧噯琛�")
+    private String mhiModifiedKuppermanScoringScaleForm;
+
+    /** 鍥寸粷缁忔湡MHI-鏇村勾鏈熻瘎瀹氶噺琛紙MRS锛� */
+    @ApiModelProperty(value = "鍥寸粷缁忔湡MHI-鏇村勾鏈熻瘎瀹氶噺琛紙MRS锛�")
+    private String mhiMenopauseRatingScaleForm;
+
+    /** 鍥寸粷缁忔湡MHI-鍖瑰吂鍫$潯鐪犺川閲忔寚鏁伴噺琛紙PSQI锛� */
+    @ApiModelProperty(value = "鍥寸粷缁忔湡MHI-鍖瑰吂鍫$潯鐪犺川閲忔寚鏁伴噺琛紙PSQI锛�")
+    private String mhiPittsburghSleepQualityIndexForm;
+
+    /** 鍖婚櫌鏈烘瀯ID */
+    @Excel(name = "鍖婚櫌鏈烘瀯ID")
+    @ApiModelProperty(value = "鍖婚櫌鏈烘瀯ID")
+    private String orgid;
+
+    /** 闄㈠尯ID */
+    @Excel(name = "闄㈠尯ID")
+    @ApiModelProperty(value = "闄㈠尯ID")
+    private String campusid;
+
+    /** 鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛� */
+    @ApiModelProperty(value = "鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛�")
+    private String delFlag;
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/PatChildArchiveDetailMapper.java b/smartor/src/main/java/com/smartor/mapper/PatChildArchiveDetailMapper.java
new file mode 100644
index 0000000..dbf5b1f
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/PatChildArchiveDetailMapper.java
@@ -0,0 +1,28 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.PatChildArchiveDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 鍎跨妗f璇︽儏Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Mapper
+public interface PatChildArchiveDetailMapper
+{
+    public PatChildArchiveDetail selectPatChildArchiveDetailById(Long id);
+
+    public List<PatChildArchiveDetail> selectPatChildArchiveDetailList(PatChildArchiveDetail patChildArchiveDetail);
+
+    public int insertPatChildArchiveDetail(PatChildArchiveDetail patChildArchiveDetail);
+
+    public int updatePatChildArchiveDetail(PatChildArchiveDetail patChildArchiveDetail);
+
+    public int deletePatChildArchiveDetailById(Long id);
+
+    public int deletePatChildArchiveDetailByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/PatChildArchiveMapper.java b/smartor/src/main/java/com/smartor/mapper/PatChildArchiveMapper.java
new file mode 100644
index 0000000..1f55556
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/PatChildArchiveMapper.java
@@ -0,0 +1,28 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.PatChildArchive;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 鍎跨妗fMapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Mapper
+public interface PatChildArchiveMapper
+{
+    public PatChildArchive selectPatChildArchiveById(Long id);
+
+    public List<PatChildArchive> selectPatChildArchiveList(PatChildArchive patChildArchive);
+
+    public int insertPatChildArchive(PatChildArchive patChildArchive);
+
+    public int updatePatChildArchive(PatChildArchive patChildArchive);
+
+    public int deletePatChildArchiveById(Long id);
+
+    public int deletePatChildArchiveByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveDetailMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveDetailMapper.java
new file mode 100644
index 0000000..8a7b74d
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveDetailMapper.java
@@ -0,0 +1,28 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.PatMaternityArchiveDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 濡囩妗f璇︽儏Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Mapper
+public interface PatMaternityArchiveDetailMapper
+{
+    public PatMaternityArchiveDetail selectPatMaternityArchiveDetailById(Long id);
+
+    public List<PatMaternityArchiveDetail> selectPatMaternityArchiveDetailList(PatMaternityArchiveDetail patMaternityArchiveDetail);
+
+    public int insertPatMaternityArchiveDetail(PatMaternityArchiveDetail patMaternityArchiveDetail);
+
+    public int updatePatMaternityArchiveDetail(PatMaternityArchiveDetail patMaternityArchiveDetail);
+
+    public int deletePatMaternityArchiveDetailById(Long id);
+
+    public int deletePatMaternityArchiveDetailByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveMapper.java
new file mode 100644
index 0000000..55721fc
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/PatMaternityArchiveMapper.java
@@ -0,0 +1,28 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.PatMaternityArchive;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 濡囩妗fMapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Mapper
+public interface PatMaternityArchiveMapper
+{
+    public PatMaternityArchive selectPatMaternityArchiveById(Long id);
+
+    public List<PatMaternityArchive> selectPatMaternityArchiveList(PatMaternityArchive patMaternityArchive);
+
+    public int insertPatMaternityArchive(PatMaternityArchive patMaternityArchive);
+
+    public int updatePatMaternityArchive(PatMaternityArchive patMaternityArchive);
+
+    public int deletePatMaternityArchiveById(Long id);
+
+    public int deletePatMaternityArchiveByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
index 440bf66..f4a26b0 100644
--- a/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
@@ -108,4 +108,12 @@
      */
     public List<PatMedOperationItem> selectOperationItemList(PatMedOperationItem patMedOperationItem);
 
+    /**
+     * 鏌ヨ鎮h�呮鏌ユ楠岃褰曞瓙鍒楄〃锛堝悓涓�opid涓嬪彧鍙杘plevelcode鏈�澶х殑璁板綍锛�
+     *
+     * @param patMedOperationItem 鎮h�呮鏌ユ楠岃褰曞瓙
+     * @return 鎮h�呮鏌ユ楠岃褰曞瓙闆嗗悎
+     */
+    public List<PatMedOperationItem> selectOperationItemListMaxLevel(PatMedOperationItem patMedOperationItem);
+
 }
diff --git a/smartor/src/main/java/com/smartor/service/IPatChildArchiveDetailService.java b/smartor/src/main/java/com/smartor/service/IPatChildArchiveDetailService.java
new file mode 100644
index 0000000..2d8f399
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IPatChildArchiveDetailService.java
@@ -0,0 +1,26 @@
+package com.smartor.service;
+
+import com.smartor.domain.PatChildArchiveDetail;
+
+import java.util.List;
+
+/**
+ * 鍎跨妗f璇︽儏Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+public interface IPatChildArchiveDetailService
+{
+    public PatChildArchiveDetail selectPatChildArchiveDetailById(Long id);
+
+    public List<PatChildArchiveDetail> selectPatChildArchiveDetailList(PatChildArchiveDetail patChildArchiveDetail);
+
+    public int insertPatChildArchiveDetail(PatChildArchiveDetail patChildArchiveDetail);
+
+    public int updatePatChildArchiveDetail(PatChildArchiveDetail patChildArchiveDetail);
+
+    public int deletePatChildArchiveDetailByIds(Long[] ids);
+
+    public int deletePatChildArchiveDetailById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IPatChildArchiveService.java b/smartor/src/main/java/com/smartor/service/IPatChildArchiveService.java
new file mode 100644
index 0000000..c32bf24
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IPatChildArchiveService.java
@@ -0,0 +1,26 @@
+package com.smartor.service;
+
+import com.smartor.domain.PatChildArchive;
+
+import java.util.List;
+
+/**
+ * 鍎跨妗fService鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+public interface IPatChildArchiveService
+{
+    public PatChildArchive selectPatChildArchiveById(Long id);
+
+    public List<PatChildArchive> selectPatChildArchiveList(PatChildArchive patChildArchive);
+
+    public int insertPatChildArchive(PatChildArchive patChildArchive);
+
+    public int updatePatChildArchive(PatChildArchive patChildArchive);
+
+    public int deletePatChildArchiveByIds(Long[] ids);
+
+    public int deletePatChildArchiveById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IPatMaternityArchiveDetailService.java b/smartor/src/main/java/com/smartor/service/IPatMaternityArchiveDetailService.java
new file mode 100644
index 0000000..e5e03b2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IPatMaternityArchiveDetailService.java
@@ -0,0 +1,26 @@
+package com.smartor.service;
+
+import com.smartor.domain.PatMaternityArchiveDetail;
+
+import java.util.List;
+
+/**
+ * 濡囩妗f璇︽儏Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+public interface IPatMaternityArchiveDetailService
+{
+    public PatMaternityArchiveDetail selectPatMaternityArchiveDetailById(Long id);
+
+    public List<PatMaternityArchiveDetail> selectPatMaternityArchiveDetailList(PatMaternityArchiveDetail patMaternityArchiveDetail);
+
+    public int insertPatMaternityArchiveDetail(PatMaternityArchiveDetail patMaternityArchiveDetail);
+
+    public int updatePatMaternityArchiveDetail(PatMaternityArchiveDetail patMaternityArchiveDetail);
+
+    public int deletePatMaternityArchiveDetailByIds(Long[] ids);
+
+    public int deletePatMaternityArchiveDetailById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IPatMaternityArchiveService.java b/smartor/src/main/java/com/smartor/service/IPatMaternityArchiveService.java
new file mode 100644
index 0000000..61c7145
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IPatMaternityArchiveService.java
@@ -0,0 +1,26 @@
+package com.smartor.service;
+
+import com.smartor.domain.PatMaternityArchive;
+
+import java.util.List;
+
+/**
+ * 濡囩妗fService鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+public interface IPatMaternityArchiveService
+{
+    public PatMaternityArchive selectPatMaternityArchiveById(Long id);
+
+    public List<PatMaternityArchive> selectPatMaternityArchiveList(PatMaternityArchive patMaternityArchive);
+
+    public int insertPatMaternityArchive(PatMaternityArchive patMaternityArchive);
+
+    public int updatePatMaternityArchive(PatMaternityArchive patMaternityArchive);
+
+    public int deletePatMaternityArchiveByIds(Long[] ids);
+
+    public int deletePatMaternityArchiveById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveDetailServiceImpl.java
new file mode 100644
index 0000000..f3eb204
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveDetailServiceImpl.java
@@ -0,0 +1,61 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.PatChildArchiveDetail;
+import com.smartor.mapper.PatChildArchiveDetailMapper;
+import com.smartor.service.IPatChildArchiveDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鍎跨妗f璇︽儏Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Service
+public class PatChildArchiveDetailServiceImpl implements IPatChildArchiveDetailService
+{
+    @Autowired
+    private PatChildArchiveDetailMapper patChildArchiveDetailMapper;
+
+    @Override
+    public PatChildArchiveDetail selectPatChildArchiveDetailById(Long id)
+    {
+        return patChildArchiveDetailMapper.selectPatChildArchiveDetailById(id);
+    }
+
+    @Override
+    public List<PatChildArchiveDetail> selectPatChildArchiveDetailList(PatChildArchiveDetail patChildArchiveDetail)
+    {
+        return patChildArchiveDetailMapper.selectPatChildArchiveDetailList(patChildArchiveDetail);
+    }
+
+    @Override
+    public int insertPatChildArchiveDetail(PatChildArchiveDetail patChildArchiveDetail)
+    {
+        patChildArchiveDetail.setCreateTime(DateUtils.getNowDate());
+        return patChildArchiveDetailMapper.insertPatChildArchiveDetail(patChildArchiveDetail);
+    }
+
+    @Override
+    public int updatePatChildArchiveDetail(PatChildArchiveDetail patChildArchiveDetail)
+    {
+        patChildArchiveDetail.setUpdateTime(DateUtils.getNowDate());
+        return patChildArchiveDetailMapper.updatePatChildArchiveDetail(patChildArchiveDetail);
+    }
+
+    @Override
+    public int deletePatChildArchiveDetailByIds(Long[] ids)
+    {
+        return patChildArchiveDetailMapper.deletePatChildArchiveDetailByIds(ids);
+    }
+
+    @Override
+    public int deletePatChildArchiveDetailById(Long id)
+    {
+        return patChildArchiveDetailMapper.deletePatChildArchiveDetailById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
new file mode 100644
index 0000000..c7f4390
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
@@ -0,0 +1,61 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.PatChildArchive;
+import com.smartor.mapper.PatChildArchiveMapper;
+import com.smartor.service.IPatChildArchiveService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鍎跨妗fService涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Service
+public class PatChildArchiveServiceImpl implements IPatChildArchiveService
+{
+    @Autowired
+    private PatChildArchiveMapper patChildArchiveMapper;
+
+    @Override
+    public PatChildArchive selectPatChildArchiveById(Long id)
+    {
+        return patChildArchiveMapper.selectPatChildArchiveById(id);
+    }
+
+    @Override
+    public List<PatChildArchive> selectPatChildArchiveList(PatChildArchive patChildArchive)
+    {
+        return patChildArchiveMapper.selectPatChildArchiveList(patChildArchive);
+    }
+
+    @Override
+    public int insertPatChildArchive(PatChildArchive patChildArchive)
+    {
+        patChildArchive.setCreateTime(DateUtils.getNowDate());
+        return patChildArchiveMapper.insertPatChildArchive(patChildArchive);
+    }
+
+    @Override
+    public int updatePatChildArchive(PatChildArchive patChildArchive)
+    {
+        patChildArchive.setUpdateTime(DateUtils.getNowDate());
+        return patChildArchiveMapper.updatePatChildArchive(patChildArchive);
+    }
+
+    @Override
+    public int deletePatChildArchiveByIds(Long[] ids)
+    {
+        return patChildArchiveMapper.deletePatChildArchiveByIds(ids);
+    }
+
+    @Override
+    public int deletePatChildArchiveById(Long id)
+    {
+        return patChildArchiveMapper.deletePatChildArchiveById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveDetailServiceImpl.java
new file mode 100644
index 0000000..6f5c742
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveDetailServiceImpl.java
@@ -0,0 +1,61 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.PatMaternityArchiveDetail;
+import com.smartor.mapper.PatMaternityArchiveDetailMapper;
+import com.smartor.service.IPatMaternityArchiveDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 濡囩妗f璇︽儏Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Service
+public class PatMaternityArchiveDetailServiceImpl implements IPatMaternityArchiveDetailService
+{
+    @Autowired
+    private PatMaternityArchiveDetailMapper patMaternityArchiveDetailMapper;
+
+    @Override
+    public PatMaternityArchiveDetail selectPatMaternityArchiveDetailById(Long id)
+    {
+        return patMaternityArchiveDetailMapper.selectPatMaternityArchiveDetailById(id);
+    }
+
+    @Override
+    public List<PatMaternityArchiveDetail> selectPatMaternityArchiveDetailList(PatMaternityArchiveDetail patMaternityArchiveDetail)
+    {
+        return patMaternityArchiveDetailMapper.selectPatMaternityArchiveDetailList(patMaternityArchiveDetail);
+    }
+
+    @Override
+    public int insertPatMaternityArchiveDetail(PatMaternityArchiveDetail patMaternityArchiveDetail)
+    {
+        patMaternityArchiveDetail.setCreateTime(DateUtils.getNowDate());
+        return patMaternityArchiveDetailMapper.insertPatMaternityArchiveDetail(patMaternityArchiveDetail);
+    }
+
+    @Override
+    public int updatePatMaternityArchiveDetail(PatMaternityArchiveDetail patMaternityArchiveDetail)
+    {
+        patMaternityArchiveDetail.setUpdateTime(DateUtils.getNowDate());
+        return patMaternityArchiveDetailMapper.updatePatMaternityArchiveDetail(patMaternityArchiveDetail);
+    }
+
+    @Override
+    public int deletePatMaternityArchiveDetailByIds(Long[] ids)
+    {
+        return patMaternityArchiveDetailMapper.deletePatMaternityArchiveDetailByIds(ids);
+    }
+
+    @Override
+    public int deletePatMaternityArchiveDetailById(Long id)
+    {
+        return patMaternityArchiveDetailMapper.deletePatMaternityArchiveDetailById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
new file mode 100644
index 0000000..49b170a
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
@@ -0,0 +1,61 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.PatMaternityArchive;
+import com.smartor.mapper.PatMaternityArchiveMapper;
+import com.smartor.service.IPatMaternityArchiveService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 濡囩妗fService涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2026-10-09
+ */
+@Service
+public class PatMaternityArchiveServiceImpl implements IPatMaternityArchiveService
+{
+    @Autowired
+    private PatMaternityArchiveMapper patMaternityArchiveMapper;
+
+    @Override
+    public PatMaternityArchive selectPatMaternityArchiveById(Long id)
+    {
+        return patMaternityArchiveMapper.selectPatMaternityArchiveById(id);
+    }
+
+    @Override
+    public List<PatMaternityArchive> selectPatMaternityArchiveList(PatMaternityArchive patMaternityArchive)
+    {
+        return patMaternityArchiveMapper.selectPatMaternityArchiveList(patMaternityArchive);
+    }
+
+    @Override
+    public int insertPatMaternityArchive(PatMaternityArchive patMaternityArchive)
+    {
+        patMaternityArchive.setCreateTime(DateUtils.getNowDate());
+        return patMaternityArchiveMapper.insertPatMaternityArchive(patMaternityArchive);
+    }
+
+    @Override
+    public int updatePatMaternityArchive(PatMaternityArchive patMaternityArchive)
+    {
+        patMaternityArchive.setUpdateTime(DateUtils.getNowDate());
+        return patMaternityArchiveMapper.updatePatMaternityArchive(patMaternityArchive);
+    }
+
+    @Override
+    public int deletePatMaternityArchiveByIds(Long[] ids)
+    {
+        return patMaternityArchiveMapper.deletePatMaternityArchiveByIds(ids);
+    }
+
+    @Override
+    public int deletePatMaternityArchiveById(Long id)
+    {
+        return patMaternityArchiveMapper.deletePatMaternityArchiveById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index 0fa8172..f8a7be4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -566,7 +566,9 @@
                                 pmoi.setDeptCodes(deptCodeList);
                                 pmoi.setWardCodes(wardCodeList);
                                 pmoi.setOpLevelCodes(opLevelCodeList);
-                                List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
+
+                                //姣忔鏌ヨ鍙煡鏈�澶х殑鎵嬫湳绛夌骇璁板綍
+                                List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemListMaxLevel(pmoi);
                                 for (PatMedOperationItem patMedOperationItem : patMedOperationItems) {
                                     PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
                                     if (Objects.isNull(patArchive)) {
@@ -1367,7 +1369,8 @@
         pmoi.setOpercheckFlag("0");
         pmoi.setMainFlag("1");
 
-        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
+        //姣忔鏌ヨ鍙煡鏈�澶х殑鎵嬫湳绛夌骇璁板綍
+        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemListMaxLevel(pmoi);
         log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鎵嬫湳鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
 
         for (PatMedOperationItem opItem : patMedOperationItems) {
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 1bb31fa..31a679c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1842,6 +1842,7 @@
         Map yeWuXX = (Map) dataMap.get("YeWuXX");
         Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
         Map<String, Object> JianChaSQ = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JianChaSQ") : null;
+        Map<String, Object> JianChaBG = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JianChaBG") : null;
         List<HashMap<String, Object>> JianChaBWList = ObjectUtils.isNotEmpty(JianChaSQ) ? (List<HashMap<String, Object>>) JianChaSQ.get("JianChaBWList") : null;
         List<HashMap<String, Object>> ZhenDuanList = ObjectUtils.isNotEmpty(JianChaSQ) ? (List<HashMap<String, Object>>) JianChaSQ.get("ZhenDuanList") : null;
         List<HashMap<String, Object>> epai = ObjectUtils.isNotEmpty(BingRenXX) ? (List<HashMap<String, Object>>) BingRenXX.get("DiZhiXXList") : null;
@@ -1936,6 +1937,9 @@
                 }
             }
         }
+        if (ObjectUtils.isNotEmpty(JianChaBG)) {
+            patMedInspection.setAppliyid(ObjectUtils.isNotEmpty(JianChaBG.get("ShenQingDID")) ? JianChaBG.get("ShenQingDID").toString() : null);
+        }
         if (CollectionUtils.isNotEmpty(JianChaBWList)) {
             List<ExternalInspectionJC> externalInspectionJC = JianChaBWList.stream().map(map -> {
                 ExternalInspectionJC info = new ExternalInspectionJC();
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 7462cd2..90c007a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2941,7 +2941,7 @@
      * @return
      */
     @Override
-    @Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+//    @Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
     public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
         log.info("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
         String drcode = "drcode";
@@ -3063,6 +3063,8 @@
         ssRate.setOrgid(serviceSubtaskCountReq.getOrgid());
         ssRate.setStarttime(serviceSubtaskCountReq.getStartTime());
         ssRate.setEndtime(serviceSubtaskCountReq.getEndTime());
+        ssRate.setStartOutHospTime(serviceSubtaskCountReq.getHospitalStartTime());
+        ssRate.setEndOutHospTime(serviceSubtaskCountReq.getHospitalEndTime());
         ssRate.setVisitCount(serviceSubtaskCountReq.getVisitCount());
         ssRate.setServiceTypeList(serviceSubtaskCountReq.getServiceType());
         if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
@@ -3154,6 +3156,8 @@
             if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
                 ss.setEndtime(new Date());
             }
+            ss.setStartOutHospTime(serviceSubtaskCountReq.getHospitalStartTime());
+            ss.setEndOutHospTime(serviceSubtaskCountReq.getHospitalEndTime());
             Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
             statistic.setRate(jsRate);
             if (ObjectUtils.isNotEmpty(statistic)) {
@@ -6218,6 +6222,8 @@
         String voiceText = phoneCallReqYQVO.getAsrtext();
         String questionText = StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent();
         Integer matched = -1;
+        log.info("AI鍖归厤:url = {},questionText = {},voiceText = {},options = {},uuid ={}",
+                url,questionText,voiceText,options,uuid);
         matched = matchOptionIndex(url, questionText, voiceText, options, uuid);
         //璇存槑鍖归厤姝g‘浜�
         if (matched != null && matched >= 0) {
@@ -6311,7 +6317,8 @@
                 phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
                 //璁板綍鐘舵��
                 setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9");
-                return phoneCallBackYQVO;
+                back = phoneCallBackYQVO;
+                return back;
             }
 
             flag = 1;
@@ -6319,9 +6326,10 @@
             redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
 //                        //鑾峰彇涓嬩竴棰�
             log.error("鑾峰彇涓嬩竴棰樼殑淇℃伅锛歿}", ivrTaskTemplateScriptVO);
-            if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1") || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) {
+            //branchFlag涓簄ull鏃舵寜鍒嗘敮0澶勭悊锛岄伩鍏峃PE
+            if ("1".equals(ivrTaskTemplateScriptVO.getBranchFlag()) || "0".equals(ivrTaskTemplateScriptVO.getBranchFlag()) && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) {
                 Long nextQuestion = null;
-                if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1")) {
+                if ("1".equals(ivrTaskTemplateScriptVO.getBranchFlag())) {
                     nextQuestion = chosenOption.getNextQuestion();
                     //鏇存柊鍒嗘暟
                     double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
@@ -6354,15 +6362,9 @@
                     redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
                     phoneCallBackYQVO.setType("text");
                     phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
-                    //灏嗙粨鏋滃啓杩沝etail琛�
-                    ServiceSubTaskDetailReq ssdReq = new ServiceSubTaskDetailReq();
-                    List<ServiceSubtaskDetail> serviceSubtaskDetailList2 = new ArrayList<>();
-                    serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
-                    serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList2);
-                    ssdReq.setGuid(phoneCallReqYQVO.getGuid());
-                    ssdReq.setOrgid(phoneCallReqYQVO.getOrgid());
-                    saveQuestionAnswerPhone(ssdReq);
-                    return phoneCallBackYQVO;
+                    //鏄庣粏鍦ㄦ湰棰樺尮閰嶆垚鍔熸椂宸茶惤搴擄紙瑙佷笂鏂� saveQuestionAnswerPhone锛夛紝杩欓噷涓嶅啀閲嶅淇濆瓨
+                    back = phoneCallBackYQVO;
+                    return back;
                 }
 
                 for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
@@ -6379,6 +6381,15 @@
                         redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
                     }
                 }
+                //涓嬩竴棰樿剼鏈病鎵惧埌鏃讹紝鍏滃簳閲嶉棶褰撳墠棰橈紝閬垮厤璋冪敤鏂硅鍒や负鏈鐞嗚�岄��鍥炴鍒欒瘑鍒�
+                if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) {
+                    log.error("涓嬩竴棰樿剼鏈湭鎵惧埌锛岄噸闂綋鍓嶉锛宯extQuestion锛歿}", nextQuestion);
+                    phoneCallBackYQVO.setType("text");
+                    phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                    phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, questionText));
+                }
+                back = phoneCallBackYQVO;
+                return back;
             } else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
                 ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
                 phoneCallBackYQVO.setType("text");
@@ -6407,33 +6418,101 @@
                 //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
                 ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
                 redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
-//                                return phoneCallBackYQVO;
+                //缁撴潫璇凡鎷艰繘杩斿洖鍊硷紝鎸傛満鐢卞钩鍙版寜杩斿洖鍊兼墽琛�
+                back = phoneCallBackYQVO;
+                return back;
 
             }
         } else {
-            log.info("娌℃湁鍖归厤涓�----------------------------");
-            //flag=0,璇存槑娌� 鍖归厤涓婏紝涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵
-            if (matched == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) {
-                ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
-                List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
-                ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
-                //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
-                if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
-                    String questionvoice = serviceSubtaskDetail.getQuestionvoice();
-                    String[] split = questionvoice.split("\\\\");
-                    if (split.length > 0) {
-                        String lastPart = split[split.length - 1];
-                        serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+            //AI娌℃湁鍖归厤涓婏細鐢盇I鍒嗘敮鑷繁鎸�"娌¢棶娓呭氨閲嶉棶"鐨勬鏁板鐞嗭紝涓嶅啀閫�鍥炴鍒欒瘑鍒�
+            log.info("ai娌℃湁鍖归厤涓�----------------------------");
+            //娌″尮閰嶄笂涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵锛坢atchedtext缃┖锛屼笌姝e垯璺緞鍙e緞涓�鑷达級
+            ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+            List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+            ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
+            //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
+            if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
+                String questionvoice = serviceSubtaskDetail.getQuestionvoice();
+                String[] split = questionvoice.split("\\\\");
+                if (split.length > 0) {
+                    String lastPart = split[split.length - 1];
+                    serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+                }
+            }
+            serviceSubtaskDetailList.add(serviceSubtaskDetail);
+            //濡傛灉娌℃湁 鍖归厤涓婏紝杩欎釜蹇呴』涓簄ull
+            serviceSubtaskDetailList.get(0).setMatchedtext("");
+            serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+            serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid());
+            serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid());
+            saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+
+            String mateKey = phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid();
+            Integer count = null;
+            Object countObj = redisCache.getCacheObject(mateKey);
+            if (ObjectUtils.isNotEmpty(countObj)) count = (Integer) countObj;
+            if (count != null && count >= ivrTaskTemplate.getMateNum()) {
+                //娌″尮閰嶆鏁板凡缁忕敤婊★紝涓嶈兘鍐嶉噸闂簡
+                boolean noNextQuestion = ("0".equals(ivrTaskTemplateScriptVO.getBranchFlag()) || "1".equals(ivrTaskTemplateScriptVO.getBranchFlag()))
+                        && (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0);
+                if (noNextQuestion) {
+                    //宸茬粡鏄渶鍚庝竴棰橈紝鐩存帴鎸傛満
+                    ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                    phoneCallBackYQVO.setType("text");
+                    phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                    phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
+                    //鏇存柊涓�涓嬪垎鏁�
+                    Double score = null;
+                    Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                    if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
+                    serviceSubtask.setScore(String.valueOf(score));
+                    serviceSubtask.setFinishtime(new Date());
+                    serviceSubtask.setSendstate(6L);
+                    serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�");
+                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                    //璁板綍鐘舵��
+                    setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9");
+                    //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                    ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
+                    //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
+                    Long id = serviceSubtask.getId();
+                    Map<String, String> map = delRedisValue(null, id.toString());
+                    if (ObjectUtils.isNotEmpty(map)) {
+                        redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                        redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                        redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                    }
+                } else {
+                    //杩樻湁涓嬩竴棰橈紝鎸塶extScriptno缁х画鎻愰棶
+                    for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
+                        if (script.getSort() == ivrTaskTemplateScriptVO.getNextScriptno().intValue()) {
+                            phoneCallBackYQVO.setType("text");
+                            phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                            String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent();
+                            phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
+                            //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
+                            redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
+                            //鏇存柊涓�涓嬪垎鏁�
+                            Double score = null;
+                            Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
+                            score = BigDecimal.valueOf(score).add(new BigDecimal(script.getScore())).doubleValue();
+                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
+                            //鎹㈤鎴愬姛锛屾病鍖归厤娆℃暟娓呴浂
+                            redisCache.deleteObject(mateKey);
+                        }
                     }
                 }
-                serviceSubtaskDetailList.add(serviceSubtaskDetail);
-                //濡傛灉娌℃湁 鍖归厤涓婏紝杩欎釜蹇呴』涓簄ull
-                serviceSubtaskDetailList.get(0).setMatchedtext("");
-                serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
-                serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid());
-                serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid());
-                saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+            } else {
+                //杩樻病闂弧娆℃暟锛岀敤noMatchText寮曞鎮h�呴噸绛�
+                redisCache.setCacheObject(mateKey, count == null ? 1 : count + 1, 120, TimeUnit.MINUTES);
+                phoneCallBackYQVO.setType("text");
+                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent()));
             }
+            back = phoneCallBackYQVO;
+            return back;
         }
         return back;
     }
diff --git a/smartor/src/main/resources/mapper/smartor/PatChildArchiveDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/PatChildArchiveDetailMapper.xml
new file mode 100644
index 0000000..591f495
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/PatChildArchiveDetailMapper.xml
@@ -0,0 +1,377 @@
+<?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="com.smartor.mapper.PatChildArchiveDetailMapper">
+
+    <resultMap type="com.smartor.domain.PatChildArchiveDetail" id="PatChildArchiveDetailResult">
+        <result property="id" column="id"/>
+        <result property="archiveid" column="archiveid"/>
+        <result property="archiveType" column="archive_type"/>
+        <result property="sourceType" column="source_type"/>
+        <result property="outhospno" column="outhospno"/>
+        <result property="inhospno" column="inhospno"/>
+        <result property="serialnum" column="serialnum"/>
+        <result property="patid" column="patid"/>
+        <result property="patname" column="patname"/>
+        <result property="parentname" column="parentname"/>
+        <result property="parentRelation" column="parent_relation"/>
+        <result property="parentPhone" column="parent_phone"/>
+        <result property="parentIdcardno" column="parent_idcardno"/>
+        <result property="parentAddress" column="parent_address"/>
+        <result property="birthdate" column="birthdate"/>
+        <result property="idcardno" column="idcardno"/>
+        <result property="phone" column="phone"/>
+        <result property="diagTime" column="diag_time"/>
+        <result property="archiveTime" column="archive_time"/>
+        <result property="sex" column="sex"/>
+        <result property="doctorCode" column="doctor_code"/>
+        <result property="doctorName" column="doctor_name"/>
+        <result property="managementDoctorCode" column="management_doctor_code"/>
+        <result property="managementDoctorName" column="management_doctor_name"/>
+        <result property="deptcode" column="deptcode"/>
+        <result property="deptname" column="deptname"/>
+        <result property="wardcode" column="wardcode"/>
+        <result property="wardname" column="wardname"/>
+        <result property="icd10code" column="icd10code"/>
+        <result property="diagname" column="diagname"/>
+        <result property="nutritionIcd10Code" column="nutrition_icd10_code"/>
+        <result property="nutritionDiagName" column="nutrition_diag_name"/>
+        <result property="ndPhysicalMeasurements" column="nd_physical_measurements"/>
+        <result property="ndDietaryAssessment" column="nd_dietary_assessment"/>
+        <result property="ndInterventionProgram" column="nd_intervention_program"/>
+        <result property="appointmentSituation" column="appointment_situation"/>
+        <result property="ldLearningAbilityAssessment" column="ld_learning_ability_assessment"/>
+        <result property="ldBehavioralAssessment" column="ld_behavioral_assessment"/>
+        <result property="ldInterventionTrainingRecord" column="ld_intervention_training_record"/>
+        <result property="highRiskChildType" column="high_risk_child_type"/>
+        <result property="highRiskChildName" column="high_risk_child_name"/>
+        <result property="plannedFollowTime" column="planned_follow_time"/>
+        <result property="hrcGrowthDevelopmentMonitoring" column="hrc_growth_development_monitoring"/>
+        <result property="hrcNeurologicalEvaluation" column="hrc_neurological_evaluation"/>
+        <result property="hrcInterventionRecords" column="hrc_intervention_records"/>
+        <result property="closeStatus" column="close_status"/>
+        <result property="gestationalWeek" column="gestational_week"/>
+        <result property="birthWeight" column="birth_weight"/>
+        <result property="registerUser" column="register_user"/>
+        <result property="remark" column="remark"/>
+        <result property="orgid" column="orgid"/>
+        <result property="campusid" column="campusid"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+
+    <sql id="selectPatChildArchiveDetailVo">
+        select id,
+               archiveid,
+               archive_type,
+               source_type,
+               outhospno,
+               inhospno,
+               serialnum,
+               patid,
+               patname,
+               parentname,
+               parent_relation,
+               parent_phone,
+               parent_idcardno,
+               parent_address,
+               birthdate,
+               idcardno,
+               phone,
+               diag_time,
+               archive_time,
+               sex,
+               doctor_code,
+               doctor_name,
+               management_doctor_code,
+               management_doctor_name,
+               deptcode,
+               deptname,
+               wardcode,
+               wardname,
+               icd10code,
+               diagname,
+               nutrition_icd10_code,
+               nutrition_diag_name,
+               nd_physical_measurements,
+               nd_dietary_assessment,
+               nd_intervention_program,
+               appointment_situation,
+               ld_learning_ability_assessment,
+               ld_behavioral_assessment,
+               ld_intervention_training_record,
+               high_risk_child_type,
+               high_risk_child_name,
+               planned_follow_time,
+               hrc_growth_development_monitoring,
+               hrc_neurological_evaluation,
+               hrc_intervention_records,
+               close_status,
+               gestational_week,
+               birth_weight,
+               register_user,
+               remark,
+               orgid,
+               campusid,
+               update_by,
+               update_time,
+               create_by,
+               create_time,
+               del_flag
+        from pat_child_archive_detail
+    </sql>
+
+    <select id="selectPatChildArchiveDetailList" parameterType="com.smartor.domain.PatChildArchiveDetail"
+            resultMap="PatChildArchiveDetailResult">
+        <include refid="selectPatChildArchiveDetailVo"/>
+        where 1=1
+            and del_flag = '0'
+            <if test="archiveid != null">and archiveid = #{archiveid}</if>
+            <if test="archiveType != null and archiveType != ''">and archive_type = #{archiveType}</if>
+            <if test="sourceType != null and sourceType != ''">and source_type = #{sourceType}</if>
+            <if test="outhospno != null and outhospno != ''">and outhospno = #{outhospno}</if>
+            <if test="inhospno != null and inhospno != ''">and inhospno = #{inhospno}</if>
+            <if test="serialnum != null and serialnum != ''">and serialnum = #{serialnum}</if>
+            <if test="patid != null">and patid = #{patid}</if>
+            <if test="patname != null and patname != ''">and patname like concat('%', #{patname}, '%')</if>
+            <if test="parentname != null and parentname != ''">and parentname like concat('%', #{parentname}, '%')</if>
+            <if test="idcardno != null and idcardno != ''">and idcardno = #{idcardno}</if>
+            <if test="phone != null and phone != ''">and phone = #{phone}</if>
+            <if test="diagTime != null">and diag_time = #{diagTime}</if>
+            <if test="sex != null">and sex = #{sex}</if>
+            <if test="doctorCode != null and doctorCode != ''">and doctor_code = #{doctorCode}</if>
+            <if test="doctorName != null and doctorName != ''">and doctor_name like concat('%', #{doctorName}, '%')</if>
+            <if test="managementDoctorCode != null and managementDoctorCode != ''">and management_doctor_code = #{managementDoctorCode}</if>
+            <if test="managementDoctorName != null and managementDoctorName != ''">and management_doctor_name like concat('%', #{managementDoctorName}, '%')</if>
+            <if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if>
+            <if test="deptname != null and deptname != ''">and deptname like concat('%', #{deptname}, '%')</if>
+            <if test="wardcode != null and wardcode != ''">and wardcode = #{wardcode}</if>
+            <if test="wardname != null and wardname != ''">and wardname like concat('%', #{wardname}, '%')</if>
+            <if test="icd10code != null and icd10code != ''">and icd10code = #{icd10code}</if>
+            <if test="diagname != null and diagname != ''">and diagname like concat('%', #{diagname}, '%')</if>
+            <if test="nutritionIcd10Code != null and nutritionIcd10Code != ''">and nutrition_icd10_code = #{nutritionIcd10Code}</if>
+            <if test="nutritionDiagName != null and nutritionDiagName != ''">and nutrition_diag_name like concat('%', #{nutritionDiagName}, '%')</if>
+            <if test="highRiskChildType != null and highRiskChildType != ''">and high_risk_child_type = #{highRiskChildType}</if>
+            <if test="highRiskChildName != null and highRiskChildName != ''">and high_risk_child_name like concat('%', #{highRiskChildName}, '%')</if>
+            <if test="closeStatus != null and closeStatus != ''">and close_status = #{closeStatus}</if>
+            <if test="gestationalWeek != null">and gestational_week = #{gestationalWeek}</if>
+            <if test="birthWeight != null">and birth_weight = #{birthWeight}</if>
+            <if test="registerUser != null and registerUser != ''">and register_user = #{registerUser}</if>
+            <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+            <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
+            <if test="params.beginTime != null and params.beginTime != ''">
+                and date_format(archive_time, '%y%m%d') &gt;= date_format(#{params.beginTime}, '%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''">
+                and date_format(archive_time, '%y%m%d') &lt;= date_format(#{params.endTime}, '%y%m%d')
+            </if>
+    </select>
+
+    <select id="selectPatChildArchiveDetailById" parameterType="Long" resultMap="PatChildArchiveDetailResult">
+        <include refid="selectPatChildArchiveDetailVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertPatChildArchiveDetail" parameterType="com.smartor.domain.PatChildArchiveDetail"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into pat_child_archive_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="archiveid != null">archiveid,</if>
+            <if test="archiveType != null">archive_type,</if>
+            <if test="sourceType != null">source_type,</if>
+            <if test="outhospno != null">outhospno,</if>
+            <if test="inhospno != null">inhospno,</if>
+            <if test="serialnum != null">serialnum,</if>
+            <if test="patid != null">patid,</if>
+            <if test="patname != null">patname,</if>
+            <if test="parentname != null">parentname,</if>
+            <if test="parentRelation != null">parent_relation,</if>
+            <if test="parentPhone != null">parent_phone,</if>
+            <if test="parentIdcardno != null">parent_idcardno,</if>
+            <if test="parentAddress != null">parent_address,</if>
+            <if test="birthdate != null">birthdate,</if>
+            <if test="idcardno != null">idcardno,</if>
+            <if test="phone != null">phone,</if>
+            <if test="diagTime != null">diag_time,</if>
+            <if test="archiveTime != null">archive_time,</if>
+            <if test="sex != null">sex,</if>
+            <if test="doctorCode != null">doctor_code,</if>
+            <if test="doctorName != null">doctor_name,</if>
+            <if test="managementDoctorCode != null">management_doctor_code,</if>
+            <if test="managementDoctorName != null">management_doctor_name,</if>
+            <if test="deptcode != null">deptcode,</if>
+            <if test="deptname != null">deptname,</if>
+            <if test="wardcode != null">wardcode,</if>
+            <if test="wardname != null">wardname,</if>
+            <if test="icd10code != null">icd10code,</if>
+            <if test="diagname != null">diagname,</if>
+            <if test="nutritionIcd10Code != null">nutrition_icd10_code,</if>
+            <if test="nutritionDiagName != null">nutrition_diag_name,</if>
+            <if test="ndPhysicalMeasurements != null">nd_physical_measurements,</if>
+            <if test="ndDietaryAssessment != null">nd_dietary_assessment,</if>
+            <if test="ndInterventionProgram != null">nd_intervention_program,</if>
+            <if test="appointmentSituation != null">appointment_situation,</if>
+            <if test="ldLearningAbilityAssessment != null">ld_learning_ability_assessment,</if>
+            <if test="ldBehavioralAssessment != null">ld_behavioral_assessment,</if>
+            <if test="ldInterventionTrainingRecord != null">ld_intervention_training_record,</if>
+            <if test="highRiskChildType != null">high_risk_child_type,</if>
+            <if test="highRiskChildName != null">high_risk_child_name,</if>
+            <if test="plannedFollowTime != null">planned_follow_time,</if>
+            <if test="hrcGrowthDevelopmentMonitoring != null">hrc_growth_development_monitoring,</if>
+            <if test="hrcNeurologicalEvaluation != null">hrc_neurological_evaluation,</if>
+            <if test="hrcInterventionRecords != null">hrc_intervention_records,</if>
+            <if test="closeStatus != null">close_status,</if>
+            <if test="gestationalWeek != null">gestational_week,</if>
+            <if test="birthWeight != null">birth_weight,</if>
+            <if test="registerUser != null">register_user,</if>
+            <if test="remark != null">remark,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="campusid != null">campusid,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="archiveid != null">#{archiveid},</if>
+            <if test="archiveType != null">#{archiveType},</if>
+            <if test="sourceType != null">#{sourceType},</if>
+            <if test="outhospno != null">#{outhospno},</if>
+            <if test="inhospno != null">#{inhospno},</if>
+            <if test="serialnum != null">#{serialnum},</if>
+            <if test="patid != null">#{patid},</if>
+            <if test="patname != null">#{patname},</if>
+            <if test="parentname != null">#{parentname},</if>
+            <if test="parentRelation != null">#{parentRelation},</if>
+            <if test="parentPhone != null">#{parentPhone},</if>
+            <if test="parentIdcardno != null">#{parentIdcardno},</if>
+            <if test="parentAddress != null">#{parentAddress},</if>
+            <if test="birthdate != null">#{birthdate},</if>
+            <if test="idcardno != null">#{idcardno},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="diagTime != null">#{diagTime},</if>
+            <if test="archiveTime != null">#{archiveTime},</if>
+            <if test="sex != null">#{sex},</if>
+            <if test="doctorCode != null">#{doctorCode},</if>
+            <if test="doctorName != null">#{doctorName},</if>
+            <if test="managementDoctorCode != null">#{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">#{managementDoctorName},</if>
+            <if test="deptcode != null">#{deptcode},</if>
+            <if test="deptname != null">#{deptname},</if>
+            <if test="wardcode != null">#{wardcode},</if>
+            <if test="wardname != null">#{wardname},</if>
+            <if test="icd10code != null">#{icd10code},</if>
+            <if test="diagname != null">#{diagname},</if>
+            <if test="nutritionIcd10Code != null">#{nutritionIcd10Code},</if>
+            <if test="nutritionDiagName != null">#{nutritionDiagName},</if>
+            <if test="ndPhysicalMeasurements != null">#{ndPhysicalMeasurements},</if>
+            <if test="ndDietaryAssessment != null">#{ndDietaryAssessment},</if>
+            <if test="ndInterventionProgram != null">#{ndInterventionProgram},</if>
+            <if test="appointmentSituation != null">#{appointmentSituation},</if>
+            <if test="ldLearningAbilityAssessment != null">#{ldLearningAbilityAssessment},</if>
+            <if test="ldBehavioralAssessment != null">#{ldBehavioralAssessment},</if>
+            <if test="ldInterventionTrainingRecord != null">#{ldInterventionTrainingRecord},</if>
+            <if test="highRiskChildType != null">#{highRiskChildType},</if>
+            <if test="highRiskChildName != null">#{highRiskChildName},</if>
+            <if test="plannedFollowTime != null">#{plannedFollowTime},</if>
+            <if test="hrcGrowthDevelopmentMonitoring != null">#{hrcGrowthDevelopmentMonitoring},</if>
+            <if test="hrcNeurologicalEvaluation != null">#{hrcNeurologicalEvaluation},</if>
+            <if test="hrcInterventionRecords != null">#{hrcInterventionRecords},</if>
+            <if test="closeStatus != null">#{closeStatus},</if>
+            <if test="gestationalWeek != null">#{gestationalWeek},</if>
+            <if test="birthWeight != null">#{birthWeight},</if>
+            <if test="registerUser != null">#{registerUser},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="campusid != null">#{campusid},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+        </trim>
+    </insert>
+
+    <update id="updatePatChildArchiveDetail" parameterType="com.smartor.domain.PatChildArchiveDetail">
+        update pat_child_archive_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="archiveid != null">archiveid = #{archiveid},</if>
+            <if test="archiveType != null">archive_type = #{archiveType},</if>
+            <if test="sourceType != null">source_type = #{sourceType},</if>
+            <if test="outhospno != null">outhospno = #{outhospno},</if>
+            <if test="inhospno != null">inhospno = #{inhospno},</if>
+            <if test="serialnum != null">serialnum = #{serialnum},</if>
+            <if test="patid != null">patid = #{patid},</if>
+            <if test="patname != null">patname = #{patname},</if>
+            <if test="parentname != null">parentname = #{parentname},</if>
+            <if test="parentRelation != null">parent_relation = #{parentRelation},</if>
+            <if test="parentPhone != null">parent_phone = #{parentPhone},</if>
+            <if test="parentIdcardno != null">parent_idcardno = #{parentIdcardno},</if>
+            <if test="parentAddress != null">parent_address = #{parentAddress},</if>
+            <if test="birthdate != null">birthdate = #{birthdate},</if>
+            <if test="idcardno != null">idcardno = #{idcardno},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="diagTime != null">diag_time = #{diagTime},</if>
+            <if test="archiveTime != null">archive_time = #{archiveTime},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="doctorCode != null">doctor_code = #{doctorCode},</if>
+            <if test="doctorName != null">doctor_name = #{doctorName},</if>
+            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">management_doctor_name = #{managementDoctorName},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="deptname != null">deptname = #{deptname},</if>
+            <if test="wardcode != null">wardcode = #{wardcode},</if>
+            <if test="wardname != null">wardname = #{wardname},</if>
+            <if test="icd10code != null">icd10code = #{icd10code},</if>
+            <if test="diagname != null">diagname = #{diagname},</if>
+            <if test="nutritionIcd10Code != null">nutrition_icd10_code = #{nutritionIcd10Code},</if>
+            <if test="nutritionDiagName != null">nutrition_diag_name = #{nutritionDiagName},</if>
+            <if test="ndPhysicalMeasurements != null">nd_physical_measurements = #{ndPhysicalMeasurements},</if>
+            <if test="ndDietaryAssessment != null">nd_dietary_assessment = #{ndDietaryAssessment},</if>
+            <if test="ndInterventionProgram != null">nd_intervention_program = #{ndInterventionProgram},</if>
+            <if test="appointmentSituation != null">appointment_situation = #{appointmentSituation},</if>
+            <if test="ldLearningAbilityAssessment != null">ld_learning_ability_assessment = #{ldLearningAbilityAssessment},</if>
+            <if test="ldBehavioralAssessment != null">ld_behavioral_assessment = #{ldBehavioralAssessment},</if>
+            <if test="ldInterventionTrainingRecord != null">ld_intervention_training_record = #{ldInterventionTrainingRecord},</if>
+            <if test="highRiskChildType != null">high_risk_child_type = #{highRiskChildType},</if>
+            <if test="highRiskChildName != null">high_risk_child_name = #{highRiskChildName},</if>
+            <if test="plannedFollowTime != null">planned_follow_time = #{plannedFollowTime},</if>
+            <if test="hrcGrowthDevelopmentMonitoring != null">hrc_growth_development_monitoring = #{hrcGrowthDevelopmentMonitoring},</if>
+            <if test="hrcNeurologicalEvaluation != null">hrc_neurological_evaluation = #{hrcNeurologicalEvaluation},</if>
+            <if test="hrcInterventionRecords != null">hrc_intervention_records = #{hrcInterventionRecords},</if>
+            <if test="closeStatus != null">close_status = #{closeStatus},</if>
+            <if test="gestationalWeek != null">gestational_week = #{gestationalWeek},</if>
+            <if test="birthWeight != null">birth_weight = #{birthWeight},</if>
+            <if test="registerUser != null">register_user = #{registerUser},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="campusid != null">campusid = #{campusid},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatChildArchiveDetailById" parameterType="Long">
+        update pat_child_archive_detail
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag = '1'
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatChildArchiveDetailByIds" parameterType="String">
+        update pat_child_archive_detail set del_flag = '1' where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/PatChildArchiveMapper.xml b/smartor/src/main/resources/mapper/smartor/PatChildArchiveMapper.xml
new file mode 100644
index 0000000..4092c18
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/PatChildArchiveMapper.xml
@@ -0,0 +1,267 @@
+<?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="com.smartor.mapper.PatChildArchiveMapper">
+
+    <resultMap type="com.smartor.domain.PatChildArchive" id="PatChildArchiveResult">
+        <result property="id" column="id"/>
+        <result property="archiveType" column="archive_type"/>
+        <result property="outhospno" column="outhospno"/>
+        <result property="inhospno" column="inhospno"/>
+        <result property="serialnum" column="serialnum"/>
+        <result property="patid" column="patid"/>
+        <result property="patname" column="patname"/>
+        <result property="parentname" column="parentname"/>
+        <result property="birthdate" column="birthdate"/>
+        <result property="idcardno" column="idcardno"/>
+        <result property="phone" column="phone"/>
+        <result property="diagTime" column="diag_time"/>
+        <result property="archiveTime" column="archive_time"/>
+        <result property="plannedFollowTime" column="planned_follow_time"/>
+        <result property="followupCycleTimes" column="followup_cycle_times"/>
+        <result property="sex" column="sex"/>
+        <result property="doctorCode" column="doctor_code"/>
+        <result property="doctorName" column="doctor_name"/>
+        <result property="managementDoctorCode" column="management_doctor_code"/>
+        <result property="managementDoctorName" column="management_doctor_name"/>
+        <result property="deptcode" column="deptcode"/>
+        <result property="deptname" column="deptname"/>
+        <result property="wardcode" column="wardcode"/>
+        <result property="wardname" column="wardname"/>
+        <result property="icd10code" column="icd10code"/>
+        <result property="diagname" column="diagname"/>
+        <result property="closeStatus" column="close_status"/>
+        <result property="registerUser" column="register_user"/>
+        <result property="remark" column="remark"/>
+        <result property="orgid" column="orgid"/>
+        <result property="campusid" column="campusid"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+
+    <sql id="selectPatChildArchiveVo">
+        select id,
+               archive_type,
+               outhospno,
+               inhospno,
+               serialnum,
+               patid,
+               patname,
+               parentname,
+               birthdate,
+               idcardno,
+               phone,
+               diag_time,
+               archive_time,
+               planned_follow_time,
+               followup_cycle_times,
+               sex,
+               doctor_code,
+               doctor_name,
+               management_doctor_code,
+               management_doctor_name,
+               deptcode,
+               deptname,
+               wardcode,
+               wardname,
+               icd10code,
+               diagname,
+               close_status,
+               register_user,
+               remark,
+               orgid,
+               campusid,
+               update_by,
+               update_time,
+               create_by,
+               create_time,
+               del_flag
+        from pat_child_archive
+    </sql>
+
+    <select id="selectPatChildArchiveList" parameterType="com.smartor.domain.PatChildArchive"
+            resultMap="PatChildArchiveResult">
+        <include refid="selectPatChildArchiveVo"/>
+        where 1=1
+            and del_flag = '0'
+            <if test="archiveType != null and archiveType != ''">and archive_type = #{archiveType}</if>
+            <if test="outhospno != null and outhospno != ''">and outhospno = #{outhospno}</if>
+            <if test="inhospno != null and inhospno != ''">and inhospno = #{inhospno}</if>
+            <if test="serialnum != null and serialnum != ''">and serialnum = #{serialnum}</if>
+            <if test="patid != null">and patid = #{patid}</if>
+            <if test="patname != null and patname != ''">and patname like concat('%', #{patname}, '%')</if>
+            <if test="parentname != null and parentname != ''">and parentname like concat('%', #{parentname}, '%')</if>
+            <if test="birthdate != null">and birthdate = #{birthdate}</if>
+            <if test="idcardno != null and idcardno != ''">and idcardno = #{idcardno}</if>
+            <if test="phone != null and phone != ''">and phone = #{phone}</if>
+            <if test="diagTime != null">and diag_time = #{diagTime}</if>
+            <if test="plannedFollowTime != null">and planned_follow_time = #{plannedFollowTime}</if>
+            <if test="followupCycleTimes != null and followupCycleTimes != ''">and followup_cycle_times = #{followupCycleTimes}</if>
+            <if test="sex != null">and sex = #{sex}</if>
+            <if test="doctorCode != null and doctorCode != ''">and doctor_code = #{doctorCode}</if>
+            <if test="doctorName != null and doctorName != ''">and doctor_name like concat('%', #{doctorName}, '%')</if>
+            <if test="managementDoctorCode != null and managementDoctorCode != ''">and management_doctor_code = #{managementDoctorCode}</if>
+            <if test="managementDoctorName != null and managementDoctorName != ''">and management_doctor_name like concat('%', #{managementDoctorName}, '%')</if>
+            <if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if>
+            <if test="deptname != null and deptname != ''">and deptname like concat('%', #{deptname}, '%')</if>
+            <if test="wardcode != null and wardcode != ''">and wardcode = #{wardcode}</if>
+            <if test="wardname != null and wardname != ''">and wardname like concat('%', #{wardname}, '%')</if>
+            <if test="icd10code != null and icd10code != ''">and icd10code = #{icd10code}</if>
+            <if test="diagname != null and diagname != ''">and diagname like concat('%', #{diagname}, '%')</if>
+            <if test="closeStatus != null and closeStatus != ''">and close_status = #{closeStatus}</if>
+            <if test="registerUser != null and registerUser != ''">and register_user = #{registerUser}</if>
+            <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+            <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
+            <if test="params.beginTime != null and params.beginTime != ''">
+                and date_format(archive_time, '%y%m%d') &gt;= date_format(#{params.beginTime}, '%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''">
+                and date_format(archive_time, '%y%m%d') &lt;= date_format(#{params.endTime}, '%y%m%d')
+            </if>
+    </select>
+
+    <select id="selectPatChildArchiveById" parameterType="Long" resultMap="PatChildArchiveResult">
+        <include refid="selectPatChildArchiveVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertPatChildArchive" parameterType="com.smartor.domain.PatChildArchive"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into pat_child_archive
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="archiveType != null">archive_type,</if>
+            <if test="outhospno != null">outhospno,</if>
+            <if test="inhospno != null">inhospno,</if>
+            <if test="serialnum != null">serialnum,</if>
+            <if test="patid != null">patid,</if>
+            <if test="patname != null">patname,</if>
+            <if test="parentname != null">parentname,</if>
+            <if test="birthdate != null">birthdate,</if>
+            <if test="idcardno != null">idcardno,</if>
+            <if test="phone != null">phone,</if>
+            <if test="diagTime != null">diag_time,</if>
+            <if test="archiveTime != null">archive_time,</if>
+            <if test="plannedFollowTime != null">planned_follow_time,</if>
+            <if test="followupCycleTimes != null">followup_cycle_times,</if>
+            <if test="sex != null">sex,</if>
+            <if test="doctorCode != null">doctor_code,</if>
+            <if test="doctorName != null">doctor_name,</if>
+            <if test="managementDoctorCode != null">management_doctor_code,</if>
+            <if test="managementDoctorName != null">management_doctor_name,</if>
+            <if test="deptcode != null">deptcode,</if>
+            <if test="deptname != null">deptname,</if>
+            <if test="wardcode != null">wardcode,</if>
+            <if test="wardname != null">wardname,</if>
+            <if test="icd10code != null">icd10code,</if>
+            <if test="diagname != null">diagname,</if>
+            <if test="closeStatus != null">close_status,</if>
+            <if test="registerUser != null">register_user,</if>
+            <if test="remark != null">remark,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="campusid != null">campusid,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="archiveType != null">#{archiveType},</if>
+            <if test="outhospno != null">#{outhospno},</if>
+            <if test="inhospno != null">#{inhospno},</if>
+            <if test="serialnum != null">#{serialnum},</if>
+            <if test="patid != null">#{patid},</if>
+            <if test="patname != null">#{patname},</if>
+            <if test="parentname != null">#{parentname},</if>
+            <if test="birthdate != null">#{birthdate},</if>
+            <if test="idcardno != null">#{idcardno},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="diagTime != null">#{diagTime},</if>
+            <if test="archiveTime != null">#{archiveTime},</if>
+            <if test="plannedFollowTime != null">#{plannedFollowTime},</if>
+            <if test="followupCycleTimes != null">#{followupCycleTimes},</if>
+            <if test="sex != null">#{sex},</if>
+            <if test="doctorCode != null">#{doctorCode},</if>
+            <if test="doctorName != null">#{doctorName},</if>
+            <if test="managementDoctorCode != null">#{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">#{managementDoctorName},</if>
+            <if test="deptcode != null">#{deptcode},</if>
+            <if test="deptname != null">#{deptname},</if>
+            <if test="wardcode != null">#{wardcode},</if>
+            <if test="wardname != null">#{wardname},</if>
+            <if test="icd10code != null">#{icd10code},</if>
+            <if test="diagname != null">#{diagname},</if>
+            <if test="closeStatus != null">#{closeStatus},</if>
+            <if test="registerUser != null">#{registerUser},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="campusid != null">#{campusid},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+        </trim>
+    </insert>
+
+    <update id="updatePatChildArchive" parameterType="com.smartor.domain.PatChildArchive">
+        update pat_child_archive
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="archiveType != null">archive_type = #{archiveType},</if>
+            <if test="outhospno != null">outhospno = #{outhospno},</if>
+            <if test="inhospno != null">inhospno = #{inhospno},</if>
+            <if test="serialnum != null">serialnum = #{serialnum},</if>
+            <if test="patid != null">patid = #{patid},</if>
+            <if test="patname != null">patname = #{patname},</if>
+            <if test="parentname != null">parentname = #{parentname},</if>
+            <if test="birthdate != null">birthdate = #{birthdate},</if>
+            <if test="idcardno != null">idcardno = #{idcardno},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="diagTime != null">diag_time = #{diagTime},</if>
+            <if test="archiveTime != null">archive_time = #{archiveTime},</if>
+            <if test="plannedFollowTime != null">planned_follow_time = #{plannedFollowTime},</if>
+            <if test="followupCycleTimes != null">followup_cycle_times = #{followupCycleTimes},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="doctorCode != null">doctor_code = #{doctorCode},</if>
+            <if test="doctorName != null">doctor_name = #{doctorName},</if>
+            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">management_doctor_name = #{managementDoctorName},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="deptname != null">deptname = #{deptname},</if>
+            <if test="wardcode != null">wardcode = #{wardcode},</if>
+            <if test="wardname != null">wardname = #{wardname},</if>
+            <if test="icd10code != null">icd10code = #{icd10code},</if>
+            <if test="diagname != null">diagname = #{diagname},</if>
+            <if test="closeStatus != null">close_status = #{closeStatus},</if>
+            <if test="registerUser != null">register_user = #{registerUser},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="campusid != null">campusid = #{campusid},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatChildArchiveById" parameterType="Long">
+        update pat_child_archive
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag = '1'
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatChildArchiveByIds" parameterType="String">
+        update pat_child_archive set del_flag = '1' where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/PatMaternityArchiveDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMaternityArchiveDetailMapper.xml
new file mode 100644
index 0000000..731cdac
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/PatMaternityArchiveDetailMapper.xml
@@ -0,0 +1,331 @@
+<?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="com.smartor.mapper.PatMaternityArchiveDetailMapper">
+
+    <resultMap type="com.smartor.domain.PatMaternityArchiveDetail" id="PatMaternityArchiveDetailResult">
+        <result property="id" column="id"/>
+        <result property="archiveid" column="archiveid"/>
+        <result property="archiveType" column="archive_type"/>
+        <result property="sourceType" column="source_type"/>
+        <result property="outhospno" column="outhospno"/>
+        <result property="inhospno" column="inhospno"/>
+        <result property="serialnum" column="serialnum"/>
+        <result property="patid" column="patid"/>
+        <result property="patname" column="patname"/>
+        <result property="birthdate" column="birthdate"/>
+        <result property="idcardno" column="idcardno"/>
+        <result property="phone" column="phone"/>
+        <result property="diagTime" column="diag_time"/>
+        <result property="archiveTime" column="archive_time"/>
+        <result property="plannedFollowTime" column="planned_follow_time"/>
+        <result property="sex" column="sex"/>
+        <result property="doctorCode" column="doctor_code"/>
+        <result property="doctorName" column="doctor_name"/>
+        <result property="managementDoctorCode" column="management_doctor_code"/>
+        <result property="managementDoctorName" column="management_doctor_name"/>
+        <result property="deptcode" column="deptcode"/>
+        <result property="deptname" column="deptname"/>
+        <result property="wardcode" column="wardcode"/>
+        <result property="wardname" column="wardname"/>
+        <result property="icd10code" column="icd10code"/>
+        <result property="diagname" column="diagname"/>
+        <result property="pregnancySituation" column="pregnancy_situation"/>
+        <result property="specificSituation" column="specific_situation"/>
+        <result property="handleSuggestion" column="handle_suggestion"/>
+        <result property="closeStatus" column="close_status"/>
+        <result property="isRecordEstablished" column="is_record_established"/>
+        <result property="dueDate" column="due_date"/>
+        <result property="registerUser" column="register_user"/>
+        <result property="followupPeriod" column="followup_period"/>
+        <result property="epEarlyPregnancyFollowupForm" column="ep_early_pregnancy_followup_form"/>
+        <result property="mhiMenopauseFollowupSystemIssuesForm" column="mhi_menopause_followup_system_issues_form"/>
+        <result property="mhiMhtInitialVisitMedicalRecordForm" column="mhi_mht_initial_visit_medical_record_form"/>
+        <result property="mhiMhtFollowUpMedicalRecordForm" column="mhi_mht_follow_up_medical_record_form"/>
+        <result property="mhiModifiedKuppermanScoringScaleForm" column="mhi_modified_kupperman_scoring_scale_form"/>
+        <result property="mhiMenopauseRatingScaleForm" column="mhi_menopause_rating_scale_form"/>
+        <result property="mhiPittsburghSleepQualityIndexForm" column="mhi_pittsburgh_sleep_quality_index_form"/>
+        <result property="remark" column="remark"/>
+        <result property="orgid" column="orgid"/>
+        <result property="campusid" column="campusid"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+
+    <sql id="selectPatMaternityArchiveDetailVo">
+        select id,
+               archiveid,
+               archive_type,
+               source_type,
+               outhospno,
+               inhospno,
+               serialnum,
+               patid,
+               patname,
+               birthdate,
+               idcardno,
+               phone,
+               diag_time,
+               archive_time,
+               planned_follow_time,
+               sex,
+               doctor_code,
+               doctor_name,
+               management_doctor_code,
+               management_doctor_name,
+               deptcode,
+               deptname,
+               wardcode,
+               wardname,
+               icd10code,
+               diagname,
+               pregnancy_situation,
+               specific_situation,
+               handle_suggestion,
+               close_status,
+               is_record_established,
+               due_date,
+               register_user,
+               followup_period,
+               ep_early_pregnancy_followup_form,
+               mhi_menopause_followup_system_issues_form,
+               mhi_mht_initial_visit_medical_record_form,
+               mhi_mht_follow_up_medical_record_form,
+               mhi_modified_kupperman_scoring_scale_form,
+               mhi_menopause_rating_scale_form,
+               mhi_pittsburgh_sleep_quality_index_form,
+               remark,
+               orgid,
+               campusid,
+               update_by,
+               update_time,
+               create_by,
+               create_time,
+               del_flag
+        from pat_maternity_archive_detail
+    </sql>
+
+    <select id="selectPatMaternityArchiveDetailList" parameterType="com.smartor.domain.PatMaternityArchiveDetail"
+            resultMap="PatMaternityArchiveDetailResult">
+        <include refid="selectPatMaternityArchiveDetailVo"/>
+        where 1=1
+            and del_flag = '0'
+            <if test="archiveid != null">and archiveid = #{archiveid}</if>
+            <if test="archiveType != null and archiveType != ''">and archive_type = #{archiveType}</if>
+            <if test="sourceType != null and sourceType != ''">and source_type = #{sourceType}</if>
+            <if test="outhospno != null and outhospno != ''">and outhospno = #{outhospno}</if>
+            <if test="inhospno != null and inhospno != ''">and inhospno = #{inhospno}</if>
+            <if test="serialnum != null and serialnum != ''">and serialnum = #{serialnum}</if>
+            <if test="patid != null">and patid = #{patid}</if>
+            <if test="patname != null and patname != ''">and patname like concat('%', #{patname}, '%')</if>
+            <if test="idcardno != null and idcardno != ''">and idcardno = #{idcardno}</if>
+            <if test="phone != null and phone != ''">and phone = #{phone}</if>
+            <if test="diagTime != null">and diag_time = #{diagTime}</if>
+            <if test="sex != null">and sex = #{sex}</if>
+            <if test="doctorCode != null and doctorCode != ''">and doctor_code = #{doctorCode}</if>
+            <if test="doctorName != null and doctorName != ''">and doctor_name like concat('%', #{doctorName}, '%')</if>
+            <if test="managementDoctorCode != null and managementDoctorCode != ''">and management_doctor_code = #{managementDoctorCode}</if>
+            <if test="managementDoctorName != null and managementDoctorName != ''">and management_doctor_name like concat('%', #{managementDoctorName}, '%')</if>
+            <if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if>
+            <if test="deptname != null and deptname != ''">and deptname like concat('%', #{deptname}, '%')</if>
+            <if test="wardcode != null and wardcode != ''">and wardcode = #{wardcode}</if>
+            <if test="wardname != null and wardname != ''">and wardname like concat('%', #{wardname}, '%')</if>
+            <if test="icd10code != null and icd10code != ''">and icd10code = #{icd10code}</if>
+            <if test="diagname != null and diagname != ''">and diagname like concat('%', #{diagname}, '%')</if>
+            <if test="closeStatus != null and closeStatus != ''">and close_status = #{closeStatus}</if>
+            <if test="isRecordEstablished != null and isRecordEstablished != ''">and is_record_established = #{isRecordEstablished}</if>
+            <if test="registerUser != null and registerUser != ''">and register_user = #{registerUser}</if>
+            <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+            <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
+            <if test="params.beginTime != null and params.beginTime != ''">
+                and date_format(archive_time, '%y%m%d') &gt;= date_format(#{params.beginTime}, '%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''">
+                and date_format(archive_time, '%y%m%d') &lt;= date_format(#{params.endTime}, '%y%m%d')
+            </if>
+    </select>
+
+    <select id="selectPatMaternityArchiveDetailById" parameterType="Long" resultMap="PatMaternityArchiveDetailResult">
+        <include refid="selectPatMaternityArchiveDetailVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertPatMaternityArchiveDetail" parameterType="com.smartor.domain.PatMaternityArchiveDetail"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into pat_maternity_archive_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="archiveid != null">archiveid,</if>
+            <if test="archiveType != null">archive_type,</if>
+            <if test="sourceType != null">source_type,</if>
+            <if test="outhospno != null">outhospno,</if>
+            <if test="inhospno != null">inhospno,</if>
+            <if test="serialnum != null">serialnum,</if>
+            <if test="patid != null">patid,</if>
+            <if test="patname != null">patname,</if>
+            <if test="birthdate != null">birthdate,</if>
+            <if test="idcardno != null">idcardno,</if>
+            <if test="phone != null">phone,</if>
+            <if test="diagTime != null">diag_time,</if>
+            <if test="archiveTime != null">archive_time,</if>
+            <if test="plannedFollowTime != null">planned_follow_time,</if>
+            <if test="sex != null">sex,</if>
+            <if test="doctorCode != null">doctor_code,</if>
+            <if test="doctorName != null">doctor_name,</if>
+            <if test="managementDoctorCode != null">management_doctor_code,</if>
+            <if test="managementDoctorName != null">management_doctor_name,</if>
+            <if test="deptcode != null">deptcode,</if>
+            <if test="deptname != null">deptname,</if>
+            <if test="wardcode != null">wardcode,</if>
+            <if test="wardname != null">wardname,</if>
+            <if test="icd10code != null">icd10code,</if>
+            <if test="diagname != null">diagname,</if>
+            <if test="pregnancySituation != null">pregnancy_situation,</if>
+            <if test="specificSituation != null">specific_situation,</if>
+            <if test="handleSuggestion != null">handle_suggestion,</if>
+            <if test="closeStatus != null">close_status,</if>
+            <if test="isRecordEstablished != null">is_record_established,</if>
+            <if test="dueDate != null">due_date,</if>
+            <if test="registerUser != null">register_user,</if>
+            <if test="followupPeriod != null">followup_period,</if>
+            <if test="epEarlyPregnancyFollowupForm != null">ep_early_pregnancy_followup_form,</if>
+            <if test="mhiMenopauseFollowupSystemIssuesForm != null">mhi_menopause_followup_system_issues_form,</if>
+            <if test="mhiMhtInitialVisitMedicalRecordForm != null">mhi_mht_initial_visit_medical_record_form,</if>
+            <if test="mhiMhtFollowUpMedicalRecordForm != null">mhi_mht_follow_up_medical_record_form,</if>
+            <if test="mhiModifiedKuppermanScoringScaleForm != null">mhi_modified_kupperman_scoring_scale_form,</if>
+            <if test="mhiMenopauseRatingScaleForm != null">mhi_menopause_rating_scale_form,</if>
+            <if test="mhiPittsburghSleepQualityIndexForm != null">mhi_pittsburgh_sleep_quality_index_form,</if>
+            <if test="remark != null">remark,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="campusid != null">campusid,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="archiveid != null">#{archiveid},</if>
+            <if test="archiveType != null">#{archiveType},</if>
+            <if test="sourceType != null">#{sourceType},</if>
+            <if test="outhospno != null">#{outhospno},</if>
+            <if test="inhospno != null">#{inhospno},</if>
+            <if test="serialnum != null">#{serialnum},</if>
+            <if test="patid != null">#{patid},</if>
+            <if test="patname != null">#{patname},</if>
+            <if test="birthdate != null">#{birthdate},</if>
+            <if test="idcardno != null">#{idcardno},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="diagTime != null">#{diagTime},</if>
+            <if test="archiveTime != null">#{archiveTime},</if>
+            <if test="plannedFollowTime != null">#{plannedFollowTime},</if>
+            <if test="sex != null">#{sex},</if>
+            <if test="doctorCode != null">#{doctorCode},</if>
+            <if test="doctorName != null">#{doctorName},</if>
+            <if test="managementDoctorCode != null">#{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">#{managementDoctorName},</if>
+            <if test="deptcode != null">#{deptcode},</if>
+            <if test="deptname != null">#{deptname},</if>
+            <if test="wardcode != null">#{wardcode},</if>
+            <if test="wardname != null">#{wardname},</if>
+            <if test="icd10code != null">#{icd10code},</if>
+            <if test="diagname != null">#{diagname},</if>
+            <if test="pregnancySituation != null">#{pregnancySituation},</if>
+            <if test="specificSituation != null">#{specificSituation},</if>
+            <if test="handleSuggestion != null">#{handleSuggestion},</if>
+            <if test="closeStatus != null">#{closeStatus},</if>
+            <if test="isRecordEstablished != null">#{isRecordEstablished},</if>
+            <if test="dueDate != null">#{dueDate},</if>
+            <if test="registerUser != null">#{registerUser},</if>
+            <if test="followupPeriod != null">#{followupPeriod},</if>
+            <if test="epEarlyPregnancyFollowupForm != null">#{epEarlyPregnancyFollowupForm},</if>
+            <if test="mhiMenopauseFollowupSystemIssuesForm != null">#{mhiMenopauseFollowupSystemIssuesForm},</if>
+            <if test="mhiMhtInitialVisitMedicalRecordForm != null">#{mhiMhtInitialVisitMedicalRecordForm},</if>
+            <if test="mhiMhtFollowUpMedicalRecordForm != null">#{mhiMhtFollowUpMedicalRecordForm},</if>
+            <if test="mhiModifiedKuppermanScoringScaleForm != null">#{mhiModifiedKuppermanScoringScaleForm},</if>
+            <if test="mhiMenopauseRatingScaleForm != null">#{mhiMenopauseRatingScaleForm},</if>
+            <if test="mhiPittsburghSleepQualityIndexForm != null">#{mhiPittsburghSleepQualityIndexForm},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="campusid != null">#{campusid},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+        </trim>
+    </insert>
+
+    <update id="updatePatMaternityArchiveDetail" parameterType="com.smartor.domain.PatMaternityArchiveDetail">
+        update pat_maternity_archive_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="archiveid != null">archiveid = #{archiveid},</if>
+            <if test="archiveType != null">archive_type = #{archiveType},</if>
+            <if test="sourceType != null">source_type = #{sourceType},</if>
+            <if test="outhospno != null">outhospno = #{outhospno},</if>
+            <if test="inhospno != null">inhospno = #{inhospno},</if>
+            <if test="serialnum != null">serialnum = #{serialnum},</if>
+            <if test="patid != null">patid = #{patid},</if>
+            <if test="patname != null">patname = #{patname},</if>
+            <if test="birthdate != null">birthdate = #{birthdate},</if>
+            <if test="idcardno != null">idcardno = #{idcardno},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="diagTime != null">diag_time = #{diagTime},</if>
+            <if test="archiveTime != null">archive_time = #{archiveTime},</if>
+            <if test="plannedFollowTime != null">planned_follow_time = #{plannedFollowTime},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="doctorCode != null">doctor_code = #{doctorCode},</if>
+            <if test="doctorName != null">doctor_name = #{doctorName},</if>
+            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">management_doctor_name = #{managementDoctorName},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="deptname != null">deptname = #{deptname},</if>
+            <if test="wardcode != null">wardcode = #{wardcode},</if>
+            <if test="wardname != null">wardname = #{wardname},</if>
+            <if test="icd10code != null">icd10code = #{icd10code},</if>
+            <if test="diagname != null">diagname = #{diagname},</if>
+            <if test="pregnancySituation != null">pregnancy_situation = #{pregnancySituation},</if>
+            <if test="specificSituation != null">specific_situation = #{specificSituation},</if>
+            <if test="handleSuggestion != null">handle_suggestion = #{handleSuggestion},</if>
+            <if test="closeStatus != null">close_status = #{closeStatus},</if>
+            <if test="isRecordEstablished != null">is_record_established = #{isRecordEstablished},</if>
+            <if test="dueDate != null">due_date = #{dueDate},</if>
+            <if test="registerUser != null">register_user = #{registerUser},</if>
+            <if test="followupPeriod != null">followup_period = #{followupPeriod},</if>
+            <if test="epEarlyPregnancyFollowupForm != null">ep_early_pregnancy_followup_form = #{epEarlyPregnancyFollowupForm},</if>
+            <if test="mhiMenopauseFollowupSystemIssuesForm != null">mhi_menopause_followup_system_issues_form = #{mhiMenopauseFollowupSystemIssuesForm},</if>
+            <if test="mhiMhtInitialVisitMedicalRecordForm != null">mhi_mht_initial_visit_medical_record_form = #{mhiMhtInitialVisitMedicalRecordForm},</if>
+            <if test="mhiMhtFollowUpMedicalRecordForm != null">mhi_mht_follow_up_medical_record_form = #{mhiMhtFollowUpMedicalRecordForm},</if>
+            <if test="mhiModifiedKuppermanScoringScaleForm != null">mhi_modified_kupperman_scoring_scale_form = #{mhiModifiedKuppermanScoringScaleForm},</if>
+            <if test="mhiMenopauseRatingScaleForm != null">mhi_menopause_rating_scale_form = #{mhiMenopauseRatingScaleForm},</if>
+            <if test="mhiPittsburghSleepQualityIndexForm != null">mhi_pittsburgh_sleep_quality_index_form = #{mhiPittsburghSleepQualityIndexForm},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="campusid != null">campusid = #{campusid},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatMaternityArchiveDetailById" parameterType="Long">
+        update pat_maternity_archive_detail
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag = '1'
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatMaternityArchiveDetailByIds" parameterType="String">
+        update pat_maternity_archive_detail set del_flag = '1' where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/PatMaternityArchiveMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMaternityArchiveMapper.xml
new file mode 100644
index 0000000..dac32bf
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/PatMaternityArchiveMapper.xml
@@ -0,0 +1,273 @@
+<?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="com.smartor.mapper.PatMaternityArchiveMapper">
+
+    <resultMap type="com.smartor.domain.PatMaternityArchive" id="PatMaternityArchiveResult">
+        <result property="id" column="id"/>
+        <result property="archiveType" column="archive_type"/>
+        <result property="outhospno" column="outhospno"/>
+        <result property="inhospno" column="inhospno"/>
+        <result property="serialnum" column="serialnum"/>
+        <result property="patid" column="patid"/>
+        <result property="patname" column="patname"/>
+        <result property="parentname" column="parentname"/>
+        <result property="birthdate" column="birthdate"/>
+        <result property="idcardno" column="idcardno"/>
+        <result property="phone" column="phone"/>
+        <result property="diagTime" column="diag_time"/>
+        <result property="archiveTime" column="archive_time"/>
+        <result property="plannedFollowTime" column="planned_follow_time"/>
+        <result property="followupCycleTimes" column="followup_cycle_times"/>
+        <result property="sex" column="sex"/>
+        <result property="doctorCode" column="doctor_code"/>
+        <result property="doctorName" column="doctor_name"/>
+        <result property="managementDoctorCode" column="management_doctor_code"/>
+        <result property="managementDoctorName" column="management_doctor_name"/>
+        <result property="deptcode" column="deptcode"/>
+        <result property="deptname" column="deptname"/>
+        <result property="wardcode" column="wardcode"/>
+        <result property="wardname" column="wardname"/>
+        <result property="icd10code" column="icd10code"/>
+        <result property="diagname" column="diagname"/>
+        <result property="pregnancySituation" column="pregnancy_situation"/>
+        <result property="closeStatus" column="close_status"/>
+        <result property="registerUser" column="register_user"/>
+        <result property="remark" column="remark"/>
+        <result property="orgid" column="orgid"/>
+        <result property="campusid" column="campusid"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+
+    <sql id="selectPatMaternityArchiveVo">
+        select id,
+               archive_type,
+               outhospno,
+               inhospno,
+               serialnum,
+               patid,
+               patname,
+               parentname,
+               birthdate,
+               idcardno,
+               phone,
+               diag_time,
+               archive_time,
+               planned_follow_time,
+               followup_cycle_times,
+               sex,
+               doctor_code,
+               doctor_name,
+               management_doctor_code,
+               management_doctor_name,
+               deptcode,
+               deptname,
+               wardcode,
+               wardname,
+               icd10code,
+               diagname,
+               pregnancy_situation,
+               close_status,
+               register_user,
+               remark,
+               orgid,
+               campusid,
+               update_by,
+               update_time,
+               create_by,
+               create_time,
+               del_flag
+        from pat_maternity_archive
+    </sql>
+
+    <select id="selectPatMaternityArchiveList" parameterType="com.smartor.domain.PatMaternityArchive"
+            resultMap="PatMaternityArchiveResult">
+        <include refid="selectPatMaternityArchiveVo"/>
+        where 1=1
+            and del_flag = '0'
+            <if test="archiveType != null and archiveType != ''">and archive_type = #{archiveType}</if>
+            <if test="outhospno != null and outhospno != ''">and outhospno = #{outhospno}</if>
+            <if test="inhospno != null and inhospno != ''">and inhospno = #{inhospno}</if>
+            <if test="serialnum != null and serialnum != ''">and serialnum = #{serialnum}</if>
+            <if test="patid != null">and patid = #{patid}</if>
+            <if test="patname != null and patname != ''">and patname like concat('%', #{patname}, '%')</if>
+            <if test="parentname != null and parentname != ''">and parentname like concat('%', #{parentname}, '%')</if>
+            <if test="birthdate != null">and birthdate = #{birthdate}</if>
+            <if test="idcardno != null and idcardno != ''">and idcardno = #{idcardno}</if>
+            <if test="phone != null and phone != ''">and phone = #{phone}</if>
+            <if test="diagTime != null">and diag_time = #{diagTime}</if>
+            <if test="plannedFollowTime != null">and planned_follow_time = #{plannedFollowTime}</if>
+            <if test="followupCycleTimes != null and followupCycleTimes != ''">and followup_cycle_times = #{followupCycleTimes}</if>
+            <if test="sex != null">and sex = #{sex}</if>
+            <if test="doctorCode != null and doctorCode != ''">and doctor_code = #{doctorCode}</if>
+            <if test="doctorName != null and doctorName != ''">and doctor_name like concat('%', #{doctorName}, '%')</if>
+            <if test="managementDoctorCode != null and managementDoctorCode != ''">and management_doctor_code = #{managementDoctorCode}</if>
+            <if test="managementDoctorName != null and managementDoctorName != ''">and management_doctor_name like concat('%', #{managementDoctorName}, '%')</if>
+            <if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if>
+            <if test="deptname != null and deptname != ''">and deptname like concat('%', #{deptname}, '%')</if>
+            <if test="wardcode != null and wardcode != ''">and wardcode = #{wardcode}</if>
+            <if test="wardname != null and wardname != ''">and wardname like concat('%', #{wardname}, '%')</if>
+            <if test="icd10code != null and icd10code != ''">and icd10code = #{icd10code}</if>
+            <if test="diagname != null and diagname != ''">and diagname like concat('%', #{diagname}, '%')</if>
+            <if test="pregnancySituation != null and pregnancySituation != ''">and pregnancy_situation = #{pregnancySituation}</if>
+            <if test="closeStatus != null and closeStatus != ''">and close_status = #{closeStatus}</if>
+            <if test="registerUser != null and registerUser != ''">and register_user = #{registerUser}</if>
+            <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+            <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
+            <if test="params.beginTime != null and params.beginTime != ''">
+                and date_format(archive_time, '%y%m%d') &gt;= date_format(#{params.beginTime}, '%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''">
+                and date_format(archive_time, '%y%m%d') &lt;= date_format(#{params.endTime}, '%y%m%d')
+            </if>
+    </select>
+
+    <select id="selectPatMaternityArchiveById" parameterType="Long" resultMap="PatMaternityArchiveResult">
+        <include refid="selectPatMaternityArchiveVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertPatMaternityArchive" parameterType="com.smartor.domain.PatMaternityArchive"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into pat_maternity_archive
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="archiveType != null">archive_type,</if>
+            <if test="outhospno != null">outhospno,</if>
+            <if test="inhospno != null">inhospno,</if>
+            <if test="serialnum != null">serialnum,</if>
+            <if test="patid != null">patid,</if>
+            <if test="patname != null">patname,</if>
+            <if test="parentname != null">parentname,</if>
+            <if test="birthdate != null">birthdate,</if>
+            <if test="idcardno != null">idcardno,</if>
+            <if test="phone != null">phone,</if>
+            <if test="diagTime != null">diag_time,</if>
+            <if test="archiveTime != null">archive_time,</if>
+            <if test="plannedFollowTime != null">planned_follow_time,</if>
+            <if test="followupCycleTimes != null">followup_cycle_times,</if>
+            <if test="sex != null">sex,</if>
+            <if test="doctorCode != null">doctor_code,</if>
+            <if test="doctorName != null">doctor_name,</if>
+            <if test="managementDoctorCode != null">management_doctor_code,</if>
+            <if test="managementDoctorName != null">management_doctor_name,</if>
+            <if test="deptcode != null">deptcode,</if>
+            <if test="deptname != null">deptname,</if>
+            <if test="wardcode != null">wardcode,</if>
+            <if test="wardname != null">wardname,</if>
+            <if test="icd10code != null">icd10code,</if>
+            <if test="diagname != null">diagname,</if>
+            <if test="pregnancySituation != null">pregnancy_situation,</if>
+            <if test="closeStatus != null">close_status,</if>
+            <if test="registerUser != null">register_user,</if>
+            <if test="remark != null">remark,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="campusid != null">campusid,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="archiveType != null">#{archiveType},</if>
+            <if test="outhospno != null">#{outhospno},</if>
+            <if test="inhospno != null">#{inhospno},</if>
+            <if test="serialnum != null">#{serialnum},</if>
+            <if test="patid != null">#{patid},</if>
+            <if test="patname != null">#{patname},</if>
+            <if test="parentname != null">#{parentname},</if>
+            <if test="birthdate != null">#{birthdate},</if>
+            <if test="idcardno != null">#{idcardno},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="diagTime != null">#{diagTime},</if>
+            <if test="archiveTime != null">#{archiveTime},</if>
+            <if test="plannedFollowTime != null">#{plannedFollowTime},</if>
+            <if test="followupCycleTimes != null">#{followupCycleTimes},</if>
+            <if test="sex != null">#{sex},</if>
+            <if test="doctorCode != null">#{doctorCode},</if>
+            <if test="doctorName != null">#{doctorName},</if>
+            <if test="managementDoctorCode != null">#{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">#{managementDoctorName},</if>
+            <if test="deptcode != null">#{deptcode},</if>
+            <if test="deptname != null">#{deptname},</if>
+            <if test="wardcode != null">#{wardcode},</if>
+            <if test="wardname != null">#{wardname},</if>
+            <if test="icd10code != null">#{icd10code},</if>
+            <if test="diagname != null">#{diagname},</if>
+            <if test="pregnancySituation != null">#{pregnancySituation},</if>
+            <if test="closeStatus != null">#{closeStatus},</if>
+            <if test="registerUser != null">#{registerUser},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="campusid != null">#{campusid},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+        </trim>
+    </insert>
+
+    <update id="updatePatMaternityArchive" parameterType="com.smartor.domain.PatMaternityArchive">
+        update pat_maternity_archive
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="archiveType != null">archive_type = #{archiveType},</if>
+            <if test="outhospno != null">outhospno = #{outhospno},</if>
+            <if test="inhospno != null">inhospno = #{inhospno},</if>
+            <if test="serialnum != null">serialnum = #{serialnum},</if>
+            <if test="patid != null">patid = #{patid},</if>
+            <if test="patname != null">patname = #{patname},</if>
+            <if test="parentname != null">parentname = #{parentname},</if>
+            <if test="birthdate != null">birthdate = #{birthdate},</if>
+            <if test="idcardno != null">idcardno = #{idcardno},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="diagTime != null">diag_time = #{diagTime},</if>
+            <if test="archiveTime != null">archive_time = #{archiveTime},</if>
+            <if test="plannedFollowTime != null">planned_follow_time = #{plannedFollowTime},</if>
+            <if test="followupCycleTimes != null">followup_cycle_times = #{followupCycleTimes},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="doctorCode != null">doctor_code = #{doctorCode},</if>
+            <if test="doctorName != null">doctor_name = #{doctorName},</if>
+            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
+            <if test="managementDoctorName != null">management_doctor_name = #{managementDoctorName},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="deptname != null">deptname = #{deptname},</if>
+            <if test="wardcode != null">wardcode = #{wardcode},</if>
+            <if test="wardname != null">wardname = #{wardname},</if>
+            <if test="icd10code != null">icd10code = #{icd10code},</if>
+            <if test="diagname != null">diagname = #{diagname},</if>
+            <if test="pregnancySituation != null">pregnancy_situation = #{pregnancySituation},</if>
+            <if test="closeStatus != null">close_status = #{closeStatus},</if>
+            <if test="registerUser != null">register_user = #{registerUser},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="campusid != null">campusid = #{campusid},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatMaternityArchiveById" parameterType="Long">
+        update pat_maternity_archive
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag = '1'
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deletePatMaternityArchiveByIds" parameterType="String">
+        update pat_maternity_archive set del_flag = '1' where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
index f654970..5f213b6 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
@@ -660,4 +660,133 @@
         </if>
     </select>
 
+    <select id="selectOperationItemListMaxLevel" parameterType="com.smartor.domain.PatMedOperationItem"
+            resultMap="PatMedOperationItemResult">
+        select pmoi.id, pmoi.operationid, pmoi.opid, pmoi.opcode, pmoi.opdesc, pmoi.main_flag, pmoi.incitypecode,
+        pmoi.incitypedesc, pmoi.oplevelcode, pmoi.opleveldesc, pmoi.opposition, pmoi.del_flag, pmoi.update_by,
+        pmoi.update_time, pmoi.create_by, pmoi.create_time, pmoi.isupload, pmoi.upload_time, pmoi.orgid,
+        pmoi.pguid, pmoi.guid, pmoi.pid, pmoi.opercheck_flag, pmoi.long_task_reason,
+        pmo.deptcode, pmo.deptname, pmo.hospitaldistrictcode, pmo.hospitaldistrictname,
+        pmo.leaveldeptcode, pmo.leaveldeptname, pmo.leavehospitaldistrictcode, pmo.leavehospitaldistrictname, pmo.patid,
+        pmo.drcode, pmo.drname, pmo.nurse_id, pmo.nurse_name,
+        pmo.serialnum, pmi.inhospstate
+        from pat_med_operation pmo
+        join pat_med_operation_item pmoi
+        on pmoi.opid = pmo.opid
+        join (
+            select opid, max(oplevelcode) as max_oplevelcode
+            from pat_med_operation_item
+            where del_flag = '0'
+              and opid is not null
+              and oplevelcode is not null
+            group by opid
+        ) pmoi_max
+        on pmoi_max.opid = pmoi.opid
+        and (pmoi.oplevelcode = pmoi_max.max_oplevelcode
+             or (pmoi.oplevelcode is null and pmoi_max.max_oplevelcode is null))
+        join pat_med_inhosp pmi
+        on pmo.serialnum = pmi.serialnum
+        where
+        pmo.del_flag = '0'
+        and pmoi.del_flag = '0'
+        and pmo.opid is not null
+        and pmoi.opid is not null
+        <if test="operationid != null ">
+            and pmoi.operationid = #{operationid}
+        </if>
+        <if test="opid != null ">
+            and pmoi.opid = #{opid}
+        </if>
+        <if test="opcode != null  and opcode != ''">
+            and pmoi.opcode = #{opcode}
+        </if>
+        <if test="opdesc != null  and opdesc != ''">
+            and pmoi.opdesc = #{opdesc}
+        </if>
+        <if test="mainFlag != null  and mainFlag != ''">
+            and pmoi.main_flag = #{mainFlag}
+        </if>
+        <if test="incitypecode != null  and incitypecode != ''">
+            and pmoi.incitypecode = #{incitypecode}
+        </if>
+        <if test="incitypedesc != null  and incitypedesc != ''">
+            and pmoi.incitypedesc = #{incitypedesc}
+        </if>
+        <if test="oplevelcode != null  and oplevelcode != ''">
+            and pmoi.oplevelcode = #{oplevelcode}
+        </if>
+        <if test="opleveldesc != null  and opleveldesc != ''">
+            and pmoi.opleveldesc = #{opleveldesc}
+        </if>
+        <if test="opposition != null  and opposition != ''">
+            and pmoi.opposition = #{opposition}
+        </if>
+        <if test="isupload != null ">
+            and pmoi.isupload = #{isupload}
+        </if>
+        <if test="uploadTime != null ">
+            and pmoi.upload_time = #{uploadTime}
+        </if>
+        <if test="orgid != null  and orgid != ''">
+            and pmoi.orgid = #{orgid}
+        </if>
+        <if test="pguid != null  and pguid != ''">
+            and pmoi.pguid = #{pguid}
+        </if>
+        <if test="guid != null  and guid != ''">
+            and pmoi.guid = #{guid}
+        </if>
+        <if test="pid != null ">
+            and pmoi.pid = #{pid}
+        </if>
+        <if test="inhospstate != null and inhospstate != ''">
+            and pmi.inhospstate = #{inhospstate}
+            <if test="inhospstate == '1'">
+                and pmi.endtime is not null
+            </if>
+        </if>
+        <if test="serialnum != null and serialnum != ''">
+            and pmo.serialnum = #{serialnum}
+        </if>
+        <if test="deptcode != null and deptcode != ''">
+            and pmo.deptcode = #{deptcode}
+        </if>
+        <if test="deptname != null and deptname != ''">
+            and pmo.deptname = #{deptname}
+        </if>
+        <if test="hospitaldistrictcode != null and hospitaldistrictcode != ''">
+            and pmo.hospitaldistrictcode = #{hospitaldistrictcode}
+        </if>
+        <if test="hospitaldistrictname != null and hospitaldistrictname != ''">
+            and pmo.hospitaldistrictname = #{hospitaldistrictname}
+        </if>
+        <if test="patid != null">
+            and pmo.patid = #{patid}
+        </if>
+        <if test="deptCodes != null and deptCodes.size()>0">
+            AND pmo.deptcode IN
+            <foreach collection="deptCodes" item="deptcode" open="(" separator=","
+                     close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        <if test="wardCodes != null and wardCodes.size()>0">
+            AND pmo.hospitaldistrictcode IN
+            <foreach collection="wardCodes" item="wardCode" open="(" separator=","
+                     close=")">
+                #{wardCode}
+            </foreach>
+        </if>
+        <if test="opLevelCodes != null and opLevelCodes.size()>0">
+            AND pmoi.oplevelcode IN
+            <foreach collection="opLevelCodes" item="levelCode" open="(" separator=","
+                     close=")">
+                #{levelCode}
+            </foreach>
+        </if>
+        <if test="opercheckFlag != null">
+            and pmoi.opercheck_flag = #{opercheckFlag}
+        </if>
+    </select>
+
 </mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index fc3e5da..8724894 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -775,6 +775,12 @@
         </if>
         <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
         <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
+        <if test="startOutHospTime != null">
+            AND date_format(endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
+        </if>
+        <if test="endOutHospTime != null">
+            AND date_format(endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
+        </if>
         ) a
     </select>
 
@@ -807,6 +813,7 @@
         </if>
         WHERE ss.del_flag = 0
         AND ss.visit_time IS NOT NULL
+        AND ss.sendstate != 4
         <if test="starttime == null and endtime==null">
             AND DATE(ss.visit_time) &lt; DATE(NOW())
         </if>
@@ -840,6 +847,12 @@
                 #{serviceType}
             </foreach>
         </if>
+        <if test="startOutHospTime != null">
+            AND date_format(ss.endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
+        </if>
+        <if test="endOutHospTime != null">
+            AND date_format(ss.endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
+        </if>
         <if test="groupKey != null and groupKey != ''">
             AND ss.${groupKey} IN
             <foreach collection="groupKeyList" item="key" open="(" separator=","

--
Gitblit v1.9.3