From d3bf339bd64d7b7efddc0afdd4beb1866b8b5a04 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 21 九月 2024 00:47:55 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java                          |    2 
 smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml                            |   10 
 smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java                                    |   18 +
 smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java                                |    2 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java            |    6 
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java                       |    1 
 smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java                              |   14 
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml                               |   65 +++
 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java                     |   12 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java                    |   22 +
 smartor/src/main/java/com/smartor/domain/PatArchiveVO.java                                     |   37 ++
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml                       |   53 +++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java            |    9 
 smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java                                  |    6 
 smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java                                |    6 
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java                                |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java           |   32 +
 smartor/src/main/java/com/smartor/domain/ServiceTask.java                                      |   14 
 smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml                                 |   17 
 smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml                               |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java                         |    4 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java                                |    2 
 smartor/src/main/java/com/smartor/domain/PatArchiveReq.java                                    |    9 
 smartor/src/main/java/com/smartor/domain/ServiceSubtask.java                                   |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java           |    5 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java                                  |    2 
 smartor/src/main/java/com/smartor/domain/PatArchive.java                                       |   15 
 ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml                                |   19 +
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java                    |   20 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptService.java                   |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java         |   28 
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java                             |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java               |    3 
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java                                 |   12 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java |   18 
 smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java                    |    2 
 smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml                                |   28 +
 smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java                          |    3 
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                             |  106 ++++++
 smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml                             |    7 
 smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java                               |    8 
 smartor/src/main/java/com/smartor/service/IPatMedInhospService.java                            |    3 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                                   |  219 +++++++-----
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java               |   70 +++
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java                             |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java       |    2 
 smartor/src/main/java/com/smartor/domain/PatMedInhosp.java                                     |   24 +
 smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java                                   |   10 
 smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml                                |   17 
 smartor/src/main/java/com/smartor/domain/ServiceSubTaskQueryReq.java                           |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java           |   26 +
 51 files changed, 835 insertions(+), 184 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
index e1aebbd..2c95a25 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -325,7 +325,7 @@
                             if ((Boolean) map.get("succ") == false) {
                                 serviceSubtaskRecord.setResult("error");
                             }
-                            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+                            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                             serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                         } catch (Exception e) {
                             String guid = UUID.randomUUID().toString();
@@ -335,7 +335,7 @@
                             serviceSubtask.setGuid(guid);
                             serviceSubtask.setSendstate(5L);
                             serviceSubtask.setFinishtime(new Date());
-                            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+                            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                         }
                     }
                 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
index 2ac7b55..8609d79 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -57,7 +57,7 @@
      */
     @ApiOperation("瀵煎嚭鎮h�呮。妗堝垪琛�")
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:export')")
-    @Log(title = "鎮h�呮。妗�" , businessType = BusinessType.EXPORT)
+    @Log(title = "鎮h�呮。妗�", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, PatArchive patArchive) {
         List<PatArchive> list = patArchiveService.selectPatArchiveList(patArchive);
@@ -71,7 +71,7 @@
     @ApiOperation("鑾峰彇鎮h�呮。妗堣缁嗕俊鎭�")
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:query')")
     @GetMapping(value = "/getInfo/{patid}")
-    @ApiImplicitParam(name = "patid" , value = "鎮h�卛d")
+    @ApiImplicitParam(name = "patid", value = "鎮h�卛d")
     public AjaxResult getInfo(@PathVariable(name = "patid") Long patid) {
         return success(patArchiveService.selectPatArchiveByPatid(patid));
     }
@@ -92,7 +92,7 @@
      */
     @ApiOperation("淇敼鎮h�呮。妗�")
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:update')")
-    @Log(title = "鎮h�呮。妗�" , businessType = BusinessType.UPDATE)
+    @Log(title = "鎮h�呮。妗�", businessType = BusinessType.UPDATE)
     @PostMapping("/update")
     public AjaxResult update(@RequestBody PatArchive patArchive) {
         return toAjax(patArchiveService.update(patArchive));
@@ -103,7 +103,7 @@
      */
     @ApiOperation("鏂板鎴栦慨鏀规偅鑰呮。淇℃伅")
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:edit')")
-    @Log(title = "鎮h�呮。妗�" , businessType = BusinessType.UPDATE)
+    @Log(title = "鎮h�呮。妗�", businessType = BusinessType.UPDATE)
     @PostMapping("/saveOrUpdatePatInfo")
     public AjaxResult saveOrUpdatePatInfo(@RequestBody PatArchiveVO patArchiveVO) {
         return toAjax(patArchiveService.saveOrUpdatePatInfo(patArchiveVO));
@@ -114,9 +114,9 @@
      */
     @ApiOperation("鍒犻櫎鎮h�呮。妗�")
     //@PreAuthorize("@ss.hasPermi('smartor:patarchive:remove')")
-    @Log(title = "鎮h�呮。妗�" , businessType = BusinessType.DELETE)
+    @Log(title = "鎮h�呮。妗�", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{patids}")
-    @ApiImplicitParam(name = "patids" , value = "鎮h�卛d闆嗗悎" , dataType = "long" , dataTypeClass = Long.class)
+    @ApiImplicitParam(name = "patids", value = "鎮h�卛d闆嗗悎", dataType = "long", dataTypeClass = Long.class)
     public AjaxResult remove(@PathVariable Long[] patids) {
         return toAjax(patArchiveService.deletePatArchiveByPatids(patids));
     }
@@ -129,7 +129,7 @@
      */
     @ApiOperation("瀵煎叆鎮h�呮枃浠跺鐞�")
     @PostMapping("/importFilehandle")
-    @ApiImplicitParams({@ApiImplicitParam(name = "tags" , value = "鏍囩"), @ApiImplicitParam(name = "multipartFile" , value = "涓婁紶鏂囦欢")})
+    @ApiImplicitParams({@ApiImplicitParam(name = "tags", value = "鏍囩"), @ApiImplicitParam(name = "multipartFile", value = "涓婁紶鏂囦欢")})
     public AjaxResult importFilehandle(@RequestParam("tags") String tags, @RequestParam("multipartFile") MultipartFile multipartFile) {
         Executor executor = Executors.newFixedThreadPool(3);
         //鑾峰彇褰撳墠鐧婚檰浜�
@@ -172,6 +172,12 @@
     @PostMapping("/patInfoByContion")
     public TableDataInfo patInfoByCondition(@RequestBody PatArchiveReq patArchive) {
         PageUtils.startPageByPost(patArchive.getPageNum(), patArchive.getPageSize());
+        if (CollectionUtils.isEmpty(patArchive.getLeavehospitaldistrictcodes()) || patArchive.getLeavehospitaldistrictcodes().size() == 0) {
+            patArchive.setLeavehospitaldistrictcodes(null);
+        }
+        if (CollectionUtils.isEmpty(patArchive.getLeaveldeptcodes()) || patArchive.getLeaveldeptcodes().size() == 0) {
+            patArchive.setLeaveldeptcodes(null);
+        }
         List<PatArchive> patArchives = patArchiveService.patInfoByContion(patArchive);
         long count = PageUtils.count(new ISelect() {
             @Override
@@ -207,6 +213,12 @@
     @PostMapping("/getPatientInfo")
     public TableDataInfo getPatientInfo(@RequestBody PatArchiveReq patArchiveReq) {
         PageUtils.startPageByPost(patArchiveReq.getPageNum(), patArchiveReq.getPageSize());
+        if (CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) || patArchiveReq.getLeavehospitaldistrictcodes().size() == 0) {
+            patArchiveReq.setLeavehospitaldistrictcodes(null);
+        }
+        if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) {
+            patArchiveReq.setLeaveldeptcodes(null);
+        }
         List<PatArchiveOthreInfo> patientInfo = patArchiveService.getPatientInfo(patArchiveReq);
         long count = PageUtils.count(new ISelect() {
             @Override
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index f1384a3..6070661 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -84,7 +84,7 @@
         LoginUser loginUser = getLoginUser();
         SysUser user = loginUser.getUser();
         ivrTaskVO.setCreateBy(user.getNickName());
-        return toAjax(serviceSubtaskService.insertOrUpdateTask(ivrTaskVO));
+        return success(serviceSubtaskService.insertOrUpdateTask(ivrTaskVO));
     }
 
     @ApiOperation("淇敼瀛愪换鍔�")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
index a690aa4..e2f2dd1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
@@ -8,6 +8,7 @@
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.smartor.domain.ServiceSubtaskDetail;
 import com.smartor.service.IServiceSubtaskDetailService;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -16,7 +17,7 @@
 import java.util.List;
 
 /**
- * 璇煶浠诲姟鍛煎彨鏄庣粏Controller
+ * 璇煶浠诲姟缁撴灉鏄庣粏Controller
  *
  * @author smartor
  * @date 2023-03-24
@@ -31,6 +32,7 @@
      * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
      */
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:list')")
+    @ApiOperation("鏌ヨ浠诲姟缁撴灉鏄庣粏鍒楄〃")
     @PostMapping("/list")
     public TableDataInfo list(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
         startPage();
@@ -43,6 +45,7 @@
      */
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:export')")
     @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.EXPORT)
+    @ApiOperation("瀵煎嚭浠诲姟缁撴灉鏄庣粏鍒楄〃")
     @PostMapping("/export")
     public void export(HttpServletResponse response, ServiceSubtaskDetail serviceSubtaskDetail) {
         List<ServiceSubtaskDetail> list = ServiceSubtaskDetailService.selectServiceSubtaskDetailList(serviceSubtaskDetail);
@@ -54,15 +57,17 @@
      * 鑾峰彇璇煶浠诲姟鍛煎彨鏄庣粏璇︾粏淇℃伅
      */
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:query')")
-    @GetMapping(value = "/{calldetailid}")
+    @ApiOperation("鑾峰彇浠诲姟缁撴灉鏄庣粏璇︾粏淇℃伅")
+    @GetMapping(value = "/getInfo/{calldetailid}")
     public AjaxResult getInfo(@PathVariable("calldetailid") String calldetailid) {
         return success(ServiceSubtaskDetailService.selectServiceSubtaskDetailByCalldetailid(calldetailid));
     }
 
     /**
-     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
+     * 鏂板浠诲姟缁撴灉鏄庣粏
      */
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:add')")
+    @ApiOperation("鏂板浠诲姟缁撴灉鏄庣粏")
     @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
@@ -74,11 +79,18 @@
      */
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:edit')")
     @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.UPDATE)
+    @ApiOperation("淇敼浠诲姟缁撴灉鏄庣粏")
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
         return toAjax(ServiceSubtaskDetailService.updateServiceSubtaskDetail(serviceSubtaskDetail));
     }
 
+    @ApiOperation("淇敼浠诲姟缁撴灉鏄庣粏閫氳繃鏉′欢")
+    @PostMapping("/editByCondition")
+    public AjaxResult updateSSDByCondition(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
+            return toAjax(ServiceSubtaskDetailService.updateSSDByCondition(serviceSubtaskDetail));
+    }
+
     /**
      * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
      */
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java
index d58c81e..42e3bb7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java
@@ -10,6 +10,7 @@
 import com.smartor.service.ITemplateDeptService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -22,11 +23,11 @@
  * @author lihu
  * @date 2024-09-18
  */
+@Slf4j
 @Api("妯℃澘绉戝鍏宠仈")
 @RestController
 @RequestMapping("/smartor/td")
-public class TemplateDeptController extends BaseController
-{
+public class TemplateDeptController extends BaseController {
     @Autowired
     private ITemplateDeptService templateDeptService;
 
@@ -36,8 +37,7 @@
     @ApiOperation("鏌ヨ妯℃澘绉戝鍏宠仈鍒楄〃")
     //@PreAuthorize("@ss.hasPermi('smartor:dept:list')")
     @GetMapping("/list")
-    public TableDataInfo list(TemplateDept templateDept)
-    {
+    public TableDataInfo list(TemplateDept templateDept) {
         startPage();
         List<TemplateDept> list = templateDeptService.selectTemplateDeptList(templateDept);
         return getDataTable(list);
@@ -50,8 +50,7 @@
     //@PreAuthorize("@ss.hasPermi('smartor:dept:export')")
     @Log(title = "妯℃澘绉戝鍏宠仈", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, TemplateDept templateDept)
-    {
+    public void export(HttpServletResponse response, TemplateDept templateDept) {
         List<TemplateDept> list = templateDeptService.selectTemplateDeptList(templateDept);
         ExcelUtil<TemplateDept> util = new ExcelUtil<TemplateDept>(TemplateDept.class);
         util.exportExcel(response, list, "妯℃澘绉戝鍏宠仈鏁版嵁");
@@ -63,8 +62,7 @@
     @ApiOperation("鑾峰彇妯℃澘绉戝鍏宠仈璇︾粏淇℃伅")
     //@PreAuthorize("@ss.hasPermi('smartor:dept:query')")
     @GetMapping(value = "/getInfo/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(templateDeptService.selectTemplateDeptById(id));
     }
 
@@ -75,8 +73,7 @@
     @ApiOperation("鏂板妯℃澘绉戝鍏宠仈")
     @Log(title = "妯℃澘绉戝鍏宠仈", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody List<TemplateDept> templateDepts)
-    {
+    public AjaxResult add(@RequestBody List<TemplateDept> templateDepts) {
         return toAjax(templateDeptService.insertTemplateDept(templateDepts));
     }
 
@@ -87,8 +84,7 @@
     //@PreAuthorize("@ss.hasPermi('smartor:dept:edit')")
     @Log(title = "妯℃澘绉戝鍏宠仈", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody TemplateDept templateDept)
-    {
+    public AjaxResult edit(@RequestBody TemplateDept templateDept) {
         return toAjax(templateDeptService.updateTemplateDept(templateDept));
     }
 
@@ -98,9 +94,9 @@
     @ApiOperation("鍒犻櫎妯℃澘绉戝鍏宠仈")
     //@PreAuthorize("@ss.hasPermi('smartor:dept:remove')")
     @Log(title = "妯℃澘绉戝鍏宠仈", businessType = BusinessType.DELETE)
-	@GetMapping("/remove/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(templateDeptService.deleteTemplateDeptByIds(ids));
+    @GetMapping("/remove/{id}")
+    public AjaxResult remove(@PathVariable("id") Long id) {
+        log.error("鍒犻櫎鐨処D涓猴細{}",id);
+        return toAjax(templateDeptService.deleteTemplateDeptById(id));
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 72eebba..d1bc59b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -137,7 +137,8 @@
         }
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        return toAjax(userService.insertUser(user));
+        int i = userService.insertUser(user);
+        return success(user.getUserId().intValue());
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java
index df60b12..b5c0309 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java
@@ -26,8 +26,7 @@
 @Api("銆愯濉啓鍔熻兘鍚嶇О銆�")
 @RestController
 @RequestMapping("/smartor/userdept")
-public class SysUserDeptController extends BaseController
-{
+public class SysUserDeptController extends BaseController {
     @Autowired
     private ISysUserDeptService sysUserDeptService;
 
@@ -37,8 +36,7 @@
     @ApiOperation("鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�")
     //@PreAuthorize("@ss.hasPermi('smartor:dept:list')")
     @GetMapping("/list")
-    public TableDataInfo list(SysUserDept sysUserDept)
-    {
+    public TableDataInfo list(SysUserDept sysUserDept) {
         startPage();
         List<SysUserDept> list = sysUserDeptService.selectSysUserDeptList(sysUserDept);
         return getDataTable(list);
@@ -51,8 +49,7 @@
     //@PreAuthorize("@ss.hasPermi('smartor:dept:export')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, SysUserDept sysUserDept)
-    {
+    public void export(HttpServletResponse response, SysUserDept sysUserDept) {
         List<SysUserDept> list = sysUserDeptService.selectSysUserDeptList(sysUserDept);
         ExcelUtil<SysUserDept> util = new ExcelUtil<SysUserDept>(SysUserDept.class);
         util.exportExcel(response, list, "銆愯濉啓鍔熻兘鍚嶇О銆戞暟鎹�");
@@ -64,8 +61,7 @@
     @ApiOperation("鑾峰彇銆愯濉啓鍔熻兘鍚嶇О銆戣缁嗕俊鎭�")
     //@PreAuthorize("@ss.hasPermi('smartor:dept:query')")
     @GetMapping(value = "/getInfo/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(sysUserDeptService.selectSysUserDeptById(id));
     }
 
@@ -76,8 +72,7 @@
     @ApiOperation("瀵煎嚭銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody SysUserDept sysUserDept)
-    {
+    public AjaxResult add(@RequestBody SysUserDept sysUserDept) {
 
         return toAjax(sysUserDeptService.insertSysUserDept(sysUserDept));
     }
@@ -89,8 +84,7 @@
     //@PreAuthorize("@ss.hasPermi('smartor:dept:edit')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody SysUserDept sysUserDept)
-    {
+    public AjaxResult edit(@RequestBody SysUserDept sysUserDept) {
         return toAjax(sysUserDeptService.updateSysUserDept(sysUserDept));
     }
 
@@ -100,9 +94,17 @@
     @ApiOperation("鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆�")
     //@PreAuthorize("@ss.hasPermi('smartor:dept:remove')")
     @Log(title = "銆愯濉啓鍔熻兘鍚嶇О銆�", businessType = BusinessType.DELETE)
-	@GetMapping("/remove/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(sysUserDeptService.deleteSysUserDeptByIds(ids));
     }
+
+    @ApiOperation("鍒犻櫎鏍规嵁鏉′欢")
+    @GetMapping("/removeByCode/{userId}/{deptCode}")
+    public AjaxResult deleteSysUserDeptByCode(@PathVariable("userId") Long userId, @PathVariable("deptCode") String deptCode) {
+        SysUserDept sysUserDept = new SysUserDept();
+        sysUserDept.setUserId(userId);
+        sysUserDept.setDeptCode(deptCode);
+        return toAjax(sysUserDeptService.deleteSysUserDeptByCode(sysUserDept));
+    }
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 5f7228c..8b9b693 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -150,6 +150,12 @@
     @ApiModelProperty(value = "閮ㄩ棬闆嗗悎")
     private List<Long> depts;
 
+    @ApiModelProperty(value = "鐥呭尯缂栫爜闆嗗悎")
+    private List<String> wardCodes;
+
+    @ApiModelProperty(value = "閮ㄩ棬缂栫爜闆嗗悎")
+    private List<String> deptCodes;
+
     /**
      * 瑙掕壊瀵硅薄
      */
@@ -204,6 +210,22 @@
         return belongDepts;
     }
 
+    public List<String> getWardCodes() {
+        return wardCodes;
+    }
+
+    public void setWardCodes(List<String> wardCodes) {
+        this.wardCodes = wardCodes;
+    }
+
+    public List<String> getDeptCodes() {
+        return deptCodes;
+    }
+
+    public void setDeptCodes(List<String> deptCodes) {
+        this.deptCodes = deptCodes;
+    }
+
     public void setBelongDepts(List<Map<String, Object>> belongDepts) {
         this.belongDepts = belongDepts;
     }
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 89d4236..dfe47ea 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
@@ -2,6 +2,8 @@
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import com.google.gson.JsonArray;
@@ -24,14 +26,18 @@
 import org.springframework.transaction.PlatformTransactionManager;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Type;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 
@@ -112,6 +118,40 @@
         System.out.println("鎵ц鏃犲弬鏂规硶");
     }
 
+    public void importData() {
+//        String filePath = "path/to/your/file.txt"; // 鏇挎崲涓轰綘鐨勬枃浠惰矾寰�
+//
+//        try {
+//            // 璇诲彇鏂囦欢鍐呭
+//            String jsonContent = new String(Files.readAllBytes(Paths.get(filePath)));
+//
+//            // 鍒涘缓ObjectMapper瀵硅薄
+//            ObjectMapper objectMapper = new ObjectMapper();
+//
+//            // 瑙f瀽JSON涓篔sonNode
+//            JsonNode rootNode = objectMapper.readTree(jsonContent);
+//            // 鑾峰彇resultList
+//            JsonNode resultListNode = rootNode.path("results").path("resultList");
+//            // 閬嶅巻resultList涓殑姣忎釜瀵硅薄
+//            for (JsonNode item : resultListNode) {
+//                String userName = item.path("staffNum").asText();
+//                String idCard = item.path("idCard").asText();
+//                String personnelStampNum = item.path("defaultWardId").asText();
+//                String personnelStampNum = item.path("defaultWardName").asText();
+//                String deptName = item.path("defaultDeptName").asText();
+//                String deptCode = item.path("defaultDeptId").asText();
+//                String phonenumber = item.path("telphone").asText();
+//                String nickName = item.path("staffName").asText();
+//                String sex = item.path("staffSex").asText();
+//
+//            }
+//
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+
+    }
+
     public void analysisData() {
         System.out.println("---------------------------");
         //鏁版嵁瑙f瀽
@@ -186,60 +226,11 @@
         List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
         log.error("serviceTasks杩涙潵浜嗗悧锛焮}", serviceTasks);
         for (ServiceTask serviceTask : serviceTasks) {
-
-            //閫氳繃taskId,鑾峰彇鏈墽琛岀殑瀛愪换鍔′俊鎭�
-            ServiceSubtaskVO serviceSubtask = new ServiceSubtaskVO();
-            serviceSubtask.setTaskid(serviceTask.getTaskid());
-            serviceSubtask.setSendstate(2L);
-            List<ServiceSubtask> selectServiceSubtaskList = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask);
-            log.error("selectServiceSubtaskList杩涙潵浜嗗悧锛焮}", selectServiceSubtaskList);
-            if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
-                for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
-                    //濡傛灉鎮h�呯殑鍙戦�佹棩鏈熸槸浠婂ぉ锛屽垯杩涜鍙戦��
-                    try {
-                        boolean dateToday = isDateToday(serviceSubtask1.getLongSendTime());
-                        if (dateToday) {
-                            //鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦��
-                            PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask1.getPatid());
-                            if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
-                                //涓嶉渶瑕佸彂閫�
-                                serviceSubtask1.setResult("error");
-                                serviceSubtask1.setRemark(patArchive.getNotrequiredreason());
-                                serviceSubtask1.setSendstate(4L);
-                                serviceSubtask1.setFinishtime(new Date());
-                                iServiceSubtaskService.insertServiceSubtask(serviceSubtask1);
-                                continue;
-                            }
-
-                            log.error("dateToday杩涙潵浜嗗悧锛焮}", dateToday);
-                            CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
-                            commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
-                            commonTaskcallMQ.setPreachform(serviceSubtask1.getServiceform());
-                            commonTaskcallMQ.setSendType("2");
-                            Map<String, Object> map = sfHandlle(commonTaskcallMQ, localIP);
-                            //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
-                            serviceSubtask1.setSendstate(3L);
-                            if ((Boolean) map.get("succ") == false) {
-                                serviceSubtask1.setResult("success");
-                            } else {
-                                serviceSubtask1.setResult("error");
-                                serviceSubtask1.setRemark(map.get("msg").toString());
-                            }
-                            iServiceSubtaskService.updateServiceSubtask(serviceSubtask1);
-                        }
-                    } catch (Exception e) {
-                        String guid = UUID.randomUUID().toString();
-                        log.error("闀挎湡浠诲姟锛屽彂閫佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid);
-                        serviceSubtask1.setResult("error");
-                        serviceSubtask1.setRemark("绯荤粺閿欒");
-                        serviceSubtask1.setSendstate(5L);
-                        serviceSubtask1.setFinishtime(new Date());
-                        serviceSubtask1.setGuid(guid);
-                        iServiceSubtaskService.insertServiceSubtask(serviceSubtask1);
-                    }
-                }
-            }
-
+            CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
+            commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
+            commonTaskcallMQ.setPreachform(serviceTask.getPreachform());
+            commonTaskcallMQ.setSendType("2");
+            sfHandlle(commonTaskcallMQ, localIP);
         }
     }
 
@@ -250,6 +241,11 @@
      * @return
      */
     public boolean isDateToday(Date date) {
+        //濡傛灉缁欑殑鏃ユ湡灏忎簬褰撳墠鏃ユ湡锛屼篃鐩存帴鍙戦��
+        LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+        if (localDateTime.isBefore(LocalDateTime.now())) {
+            return true;
+        }
         // 鑾峰彇褰撳墠鏃ユ湡
         Calendar calendarNow = Calendar.getInstance();
         int todayYear = calendarNow.get(Calendar.YEAR);
@@ -264,7 +260,7 @@
         return (calendarToCheck.get(Calendar.YEAR) == todayYear && calendarToCheck.get(Calendar.MONTH) == todayMonth && calendarToCheck.get(Calendar.DAY_OF_MONTH) == todayDay);
     }
 
-    public Map<String, Object> sfHandlle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
+    public void sfHandlle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
         log.error("sfHandlle杩涙潵浜嗗悧锛焮}", commonTaskcallMQ);
         //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜�
         ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
@@ -279,6 +275,7 @@
                 //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭�
                 ServiceSubtaskVO ivrTaskcall = new ServiceSubtaskVO();
                 ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid());
+                ivrTaskcall.setSendstate(2L);
                 List<ServiceSubtask> selectServiceSubtaskList = iServiceSubtaskService.selectServiceSubtaskList(ivrTaskcall);
                 if (descByCode.equals("鐢佃瘽")) {
                     for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
@@ -333,10 +330,8 @@
                     }
                 } else if (descByCode.equals("澶氬獟浣�")) {
                     //澶氬獟浣�
-                    return null;
                 } else if (descByCode.equals("绾歌川")) {
                     //绾歌川
-                    return null;
                 } else if (descByCode.equals("鐭俊")) {
                     //鐭俊
 //                        http://localhost:8099/followvisit/particty?param1=3&param2=348
@@ -361,7 +356,7 @@
                         serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                         serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触");
                         serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
-                        return null;
+
                     }
                 } else if (descByCode.equals("鍏紬鍙�")) {
                     log.error("鍏紬鍙疯繘鏉ヤ簡鍚楋紵{}", descByCode);
@@ -370,34 +365,63 @@
                     String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
                     for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
                         log.error("serviceSubtask---------杩涙潵浜嗗悧锛焮}", serviceSubtask);
-                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
-                        String url = null;
-                        try {
-                            url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
-                        } catch (UnsupportedEncodingException e) {
-                            e.printStackTrace();
-                        }
-                        String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "鏃�");
-                        Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
+                        boolean dateToday = isDateToday(serviceSubtask.getLongSendTime());
+                        if (dateToday) {
+                            try {
+                                //鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦��
+                                PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid());
+                                if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
+                                    //涓嶉渶瑕佸彂閫�
+                                    serviceSubtask.setResult("error");
+                                    serviceSubtask.setRemark(patArchive.getNotrequiredreason());
+                                    serviceSubtask.setSendstate(4L);
+                                    serviceSubtask.setFinishtime(new Date());
+                                    iServiceSubtaskService.insertServiceSubtask(serviceSubtask);
+                                    continue;
+                                }
+                                String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                                String url = null;
+                                url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
+                                String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "鏃�");
+                                Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
 
-                        //浠诲姟鍙戦�佽褰�
-                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
-                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
-                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
-                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
-                        serviceSubtaskRecord.setPreachform("4");
-                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
-                        serviceSubtaskRecord.setResult("success");
-                        if (!map.isEmpty() && (Boolean) map.get("succ") == false)
-                            serviceSubtaskRecord.setResult("error");
-                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
-                        return map;
+                                //浠诲姟鍙戦�佽褰�
+                                ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
+                                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                                serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
+                                serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
+                                serviceSubtaskRecord.setPreachform("4");
+                                serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
+                                serviceSubtaskRecord.setResult("success");
+                                if (!map.isEmpty() && (Boolean) map.get("succ") == false)
+                                    serviceSubtaskRecord.setResult("error");
+                                serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
+
+                                //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
+                                serviceSubtask.setSendstate(3L);
+                                if ((Boolean) map.get("succ") == true) {
+                                    serviceSubtask.setResult("success");
+                                } else {
+                                    serviceSubtask.setResult("error");
+                                    serviceSubtask.setRemark(map.get("msg").toString());
+                                }
+                                iServiceSubtaskService.updateServiceSubtask(serviceSubtask);
+                            } catch (Exception e) {
+                                String guid = UUID.randomUUID().toString();
+                                log.error("闀挎湡浠诲姟锛屽彂閫佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid);
+                                serviceSubtask.setResult("error");
+                                serviceSubtask.setRemark("绯荤粺閿欒");
+                                serviceSubtask.setSendstate(5L);
+                                serviceSubtask.setFinishtime(new Date());
+                                serviceSubtask.setGuid(guid);
+                                iServiceSubtaskService.updateServiceSubtask(serviceSubtask);
+                            }
+                        }
                     }
                 }
                 //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
             }
         }
-        return null;
     }
 
 
@@ -407,10 +431,6 @@
      */
     @Transactional
     public void getInHospInfo(String cry, LocalDateTime startTime, LocalDateTime endTime) {
-        // 鑾峰彇褰撳墠鏃ユ湡鍜屾椂闂�
-        LocalDateTime currentDateTime = LocalDateTime.now();
-        // 鑾峰彇鍓嶄竴澶╃殑鏃ユ湡鍜屾椂闂�
-        LocalDateTime previousDateTime = currentDateTime.minusDays(1);
         // 瀹氫箟鏃ユ湡鏃堕棿鏍煎紡
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
         Map<String, String> req = new HashMap<>();
@@ -428,7 +448,7 @@
         header.put("x-hcsb-version", "2.0");
         header.put("x-hcsb-sourcesyscode", "14");
         header.put("x-hcsb-token", "ArGE2JnHtxG/Zx5nrnGY4eOfMUJGGJokAJHigG1BrCY=");
-        header.put("x-hcsb-msgdate", currentDateTime.format(formatter));
+        header.put("x-hcsb-msgdate", startTime.format(formatter));
         String result = HttpUtils.sendPostByHeader(hospInfoUrl, new Gson().toJson(req), header);
         //鏁版嵁瑙f瀽
         Gson gson = new Gson();
@@ -453,10 +473,15 @@
                     patArchive.setPatientno(thiedInhospInfo.getPatiMediaNo());
                     patArchive.setSourcefrom(2);
                     patArchive.setPattype("2");
-                    if (thiedInhospInfo.getOutWayId().equals("4")) {
+                    if (StringUtils.isNotEmpty(thiedInhospInfo.getOutWayId()) && thiedInhospInfo.getOutWayId().equals("4")) {
                         //濡傛灉涓�4灏辨槸姝讳骸
                         patArchive.setNotrequiredFlag("1");
                         patArchive.setNotrequiredreason(thiedInhospInfo.getOutWayName());
+                    }
+                    if (cry.equals("1") && StringUtils.isEmpty(thiedInhospInfo.getOutWayId())) {
+                        //濡傛灉涓�4灏辨槸姝讳骸
+                        patArchive.setNotrequiredFlag("1");
+                        patArchive.setNotrequiredreason("鍑洪櫌鏂瑰紡涓虹┖");
                     }
                     patArchive.setSex(thiedInhospInfo.getPatiRecordGender().equals("鐢�") ? 1L : 2L);
                     patArchive.setNation(thiedInhospInfo.getPatiNation());
@@ -468,7 +493,11 @@
                     } catch (ParseException e) {
                         e.printStackTrace();
                     }
-                    patArchive.setAge(Long.valueOf(thiedInhospInfo.getTreateAge()));
+                    if (thiedInhospInfo.getTreateAge() != null) {
+                        patArchive.setAge(Long.valueOf(thiedInhospInfo.getTreateAge()));
+                    } else {
+                        patArchive.setAge(null);
+                    }
                     patArchive.setAgeUnit(thiedInhospInfo.getTreatAgeunit());
                     patArchive.setTelcode(thiedInhospInfo.getCompanyTelNum());
                     patArchive.setRelativetelcode(thiedInhospInfo.getContactPersonPhone());
@@ -480,6 +509,7 @@
                 } else {
                     patArchive = patArchives.get(0);
                 }
+
                 log.error("鍏ュ弬鐨刾atArchive锛歿}", patArchive);
                 PatMedInhosp patMedInhosp = new PatMedInhosp();
                 patMedInhosp.setPatid(patArchive.getId());
@@ -531,7 +561,16 @@
                 patMedInhosp.setLeavehospitaldistrictcode(thiedInhospInfo.getCurrWardId());
                 patMedInhosp.setLeavehospitaldistrictname(thiedInhospInfo.getCurrWardName());
                 patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptCode());
-                patMedInhospService.insertPatMedInhosp(patMedInhosp);
+                //濡傛灉鏄嚭闄紝鍏堥�氳繃鎮h�呯紪鍙峰拰娴佹按鍙峰幓鏌ヤ竴涓嬶紝鎮h�呮槸鍚﹀瓨鍦紝濡傛灉瀛樺湪锛屽垯杩涜淇敼
+                PatMedInhosp inhosp = new PatMedInhosp();
+                inhosp.setInhospno(patArchive.getPatientno());
+                inhosp.setSerialnum(patMedInhosp.getSerialnum());
+                List<PatMedInhosp> patMedInhosps = patMedInhospService.selectPatMedInhospList(inhosp);
+                if (CollectionUtils.isNotEmpty(patMedInhosps)) {
+                    patMedInhospService.updatePatMedInhosp(patMedInhosp);
+                } else {
+                    patMedInhospService.insertPatMedInhosp(patMedInhosp);
+                }
 
             }
         }
@@ -577,7 +616,7 @@
 
         String result = HttpUtils.sendPost(thirdWXUrl, new Gson().toJson(xinHuaWXReq));
         JSONObject jsonObject = JSONObject.parseObject(result);
-        String code = (String) jsonObject.get("code");
-        return code;
+//        String code = (String) jsonObject.get("code");
+        return jsonObject.toString();
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index 8db2353..f2b254a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -39,6 +39,8 @@
      */
     public SysDept selectDeptById(Long deptId);
 
+    public SysDept selectDeptByCode(String deptCode);
+
     /**
      * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬
      *
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptService.java
index e8802d9..c000804 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserDeptService.java
@@ -52,6 +52,8 @@
      */
     public int deleteSysUserDeptByIds(Long[] ids);
 
+    public int deleteSysUserDeptByCode(SysUserDept sysUserDept);
+
     /**
      * 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆戜俊鎭�
      *
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java
index 7860f97..f3019b9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java
@@ -90,6 +90,11 @@
         return sysUserDeptMapper.deleteSysUserDeptByIds(ids);
     }
 
+    @Override
+    public int deleteSysUserDeptByCode(SysUserDept sysUserDept) {
+        return sysUserDeptMapper.deleteSysUserDeptByCode(sysUserDept);
+    }
+
     /**
      * 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆戜俊鎭�
      *
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 6df0f76..19080a2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -40,6 +40,10 @@
 
     @Autowired
     private SysUserMapper userMapper;
+
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+
     @Autowired
     private SysUserDeptMapper sysUserDeptMapper;
 
@@ -343,26 +347,64 @@
         //鍒犻櫎鐢ㄦ埛涓庨儴闂ㄧ殑鍏宠仈
         Long[] ids = {user.getUserId()};
         //鏂板鐢ㄦ埛涓庨儴闂ㄥ叧鑱�
-        sysUserDeptMapper.deleteSysUserDeptByIds(ids);
-        if (!CollectionUtils.isEmpty(user.getDepts())) {
-            for (Long deptId : user.getDepts()) {
-                SysUserDept sysUserDep = new SysUserDept();
-                sysUserDep.setUserId(user.getUserId());
-                sysUserDep.setDeptId(deptId);
-                //鏌ヨ鏄惁 宸茬粡鍏宠仈璇ラ儴闂�
-                List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDep);
+//        sysUserDeptMapper.deleteSysUserDeptByIds(ids);
+//        if (!CollectionUtils.isEmpty(user.getDepts())) {
+//            for (Long deptId : user.getDepts()) {
+//                SysUserDept sysUserDep = new SysUserDept();
+//                sysUserDep.setUserId(user.getUserId());
+//                sysUserDep.setDeptId(deptId);
+//                //鏌ヨ鏄惁 宸茬粡鍏宠仈璇ラ儴闂�
+//                List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDep);
+//                if (!CollectionUtils.isEmpty(sysUserDepts)) {
+//                    SysUserDept sysUserDept = sysUserDepts.get(0);
+//                    sysUserDept.setDelFlag(0L);
+//                    sysUserDeptMapper.updateSysUserDept(sysUserDept);
+//                    continue;
+//                }
+//                sysUserDep.setCreateTime(new Date());
+//                sysUserDep.setUpdateTime(new Date());
+//                sysUserDeptMapper.insertSysUserDept(sysUserDep);
+//            }
+//        }
+        if (!CollectionUtils.isEmpty(user.getDeptCodes())) {
+            for (String deptCode : user.getDeptCodes()) {
+                SysDept sysDept = sysDeptMapper.selectDeptByCode(deptCode);
+
+                SysUserDept sysUserDept = new SysUserDept();
+                sysUserDept.setUserId(user.getUserId());
+                sysUserDept.setDeptCode(deptCode);
+                List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+                sysUserDept.setDelFlag(0L);
+                sysUserDept.setDeptType("1");
+                sysUserDept.setDeptName(sysDept.getDeptName());
+                sysUserDept.setUpdateTime(new Date());
                 if (!CollectionUtils.isEmpty(sysUserDepts)) {
-                    SysUserDept sysUserDept = sysUserDepts.get(0);
-                    sysUserDept.setDelFlag(0L);
                     sysUserDeptMapper.updateSysUserDept(sysUserDept);
                     continue;
                 }
-                sysUserDep.setCreateTime(new Date());
-                sysUserDep.setUpdateTime(new Date());
-                sysUserDeptMapper.insertSysUserDept(sysUserDep);
+                sysUserDept.setCreateTime(new Date());
+                sysUserDeptMapper.insertSysUserDept(sysUserDept);
             }
-        } else {
+        }
+        if (!CollectionUtils.isEmpty(user.getWardCodes())) {
+            for (String wardCode : user.getWardCodes()) {
+                SysDept sysDept = sysDeptMapper.selectDeptByCode(wardCode);
 
+                SysUserDept sysUserDept = new SysUserDept();
+                sysUserDept.setUserId(user.getUserId());
+                sysUserDept.setDeptCode(wardCode);
+                List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+                sysUserDept.setDelFlag(0L);
+                sysUserDept.setDeptType("2");
+                sysUserDept.setDeptName(sysDept.getDeptName());
+                sysUserDept.setUpdateTime(new Date());
+                if (!CollectionUtils.isEmpty(sysUserDepts)) {
+                    sysUserDeptMapper.updateSysUserDept(sysUserDept);
+                    continue;
+                }
+                sysUserDept.setCreateTime(new Date());
+                sysUserDeptMapper.insertSysUserDept(sysUserDept);
+            }
         }
         return userMapper.updateUser(user);
     }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 1e44efb..875215c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -60,7 +60,7 @@
         <if test="deptCode != null and deptCode != ''">
             AND dept_code = #{deptCode}
         </if>
-          <if test="deptType != null and deptType != ''">
+        <if test="deptType != null and deptType != ''">
             AND dept_type = #{deptType}
         </if>
         <!-- 鏁版嵁鑼冨洿杩囨护 -->
@@ -97,6 +97,23 @@
         where d.dept_id = #{deptId}
     </select>
 
+    <select id="selectDeptByCode" parameterType="string" resultMap="SysDeptResult">
+        select d.dept_id,
+               d.parent_id,
+               d.dept_code,
+               d.dept_type,
+               d.ancestors,
+               d.dept_name,
+               d.order_num,
+               d.leader,
+               d.phone,
+               d.email,
+               d.status
+        from sys_dept d
+        where del_flag = 0
+          and d.dept_code = #{deptCode}
+    </select>
+
     <select id="checkDeptExistUser" parameterType="Long" resultType="int">
         select count(1)
         from sys_user
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
index 0715d3f..574bd8a 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
@@ -297,7 +297,7 @@
      */
     @Excel(name = "鍙敤鐘舵��")
     @ApiModelProperty(value = "鍙敤鐘舵��")
-    private String usestate;
+    private String isenable;
 
     /**
      * 鍙敤鐘舵��
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java
index 514c89b..520c14b 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java
@@ -285,7 +285,7 @@
      */
     @Excel(name = "鍙敤鐘舵��")
     @ApiModelProperty(value = "鍙敤鐘舵��")
-    private String usestate;
+    private String isenable;
 
     /**
      * 鍖婚櫌闄㈠尯
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchive.java b/smartor/src/main/java/com/smartor/domain/PatArchive.java
index 20725ab..ffbfaa9 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchive.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchive.java
@@ -316,4 +316,19 @@
     @ApiModelProperty("鍑洪櫌鐥呭尯缂栧彿")
     private String leavehospitaldistrictcode;
 
+
+    /**
+     * 鍑洪櫌鏂瑰紡搴忓彿
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡搴忓彿")
+    @Excel(name = " 鍑洪櫌鏂瑰紡搴忓彿 ")
+    private String outWayId;
+
+    /**
+     * 鍑洪櫌鏂瑰紡鍚嶇О
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡鍚嶇О")
+    @Excel(name = " 鍑洪櫌鏂瑰紡鍚嶇О ")
+    private String outWayName;
+
 }
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java b/smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java
index 3a11ebe..26ef9e9 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java
@@ -335,6 +335,20 @@
     private String bedNo;
 
     /**
+     * 鍑洪櫌鏂瑰紡搴忓彿
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡搴忓彿")
+    @Excel(name = " 鍑洪櫌鏂瑰紡搴忓彿 ")
+    private String outWayId;
+
+    /**
+     * 鍑洪櫌鏂瑰紡鍚嶇О
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡鍚嶇О")
+    @Excel(name = " 鍑洪櫌鏂瑰紡鍚嶇О ")
+    private String outWayName;
+
+    /**
      * 浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳
      */
     @ApiModelProperty("浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳")
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java b/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
index 86846e6..82bf80d 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
@@ -49,6 +49,15 @@
     @Excel(name = " 鐤剧梾鍚嶇О ")
     private String diagname;
 
+
+    /**
+     * 鏈嶅姟鏍囪瘑锛�0锛岄渶瑕侊紝1锛屼笉闇�瑕�
+     */
+    @ApiModelProperty("鏈嶅姟鏍囪瘑锛�0锛岄渶瑕侊紝1锛屼笉闇�瑕�")
+    @Excel(name = " 鏈嶅姟鏍囪瘑锛�0锛岄渶瑕侊紝1锛屼笉闇�瑕� ")
+    private String notrequiredFlag;
+
+
     /**
      * 璇佷欢鍙风爜
      */
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchiveVO.java b/smartor/src/main/java/com/smartor/domain/PatArchiveVO.java
index 657c7ab..acc4209 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchiveVO.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchiveVO.java
@@ -221,6 +221,20 @@
 
 
     /**
+     * 鏈嶅姟鏍囪瘑锛�0锛岄渶瑕侊紝1锛屼笉闇�瑕�
+     */
+    @ApiModelProperty("鏈嶅姟鏍囪瘑锛�0锛岄渶瑕侊紝1锛屼笉闇�瑕�")
+    @Excel(name = " 鏈嶅姟鏍囪瘑锛�0锛岄渶瑕侊紝1锛屼笉闇�瑕� ")
+    private String notrequiredFlag;
+
+    /**
+     * 涓嶈鏈嶅姟鐨勫師鍥�
+     */
+    @ApiModelProperty("涓嶈鏈嶅姟鐨勫師鍥�")
+    @Excel(name = " 涓嶈鏈嶅姟鐨勫師鍥� ")
+    private String notrequiredreason;
+
+    /**
      * 閽夐拤鍙�
      */
     @ApiModelProperty("绉戝")
@@ -237,4 +251,27 @@
     @ApiModelProperty(value = "鏄惁瀛樺湪鎿嶄綔锛�1 鏂板 2淇敼 3鍒犻櫎")
     private Integer isoperation;
 
+
+    @ApiModelProperty("鍑洪櫌鐥呭尯鍚嶇О")
+    private String leavehospitaldistrictname;
+
+    @ApiModelProperty("鍑洪櫌鐥呭尯缂栧彿")
+    private String leavehospitaldistrictcode;
+
+
+    /**
+     * 鍑洪櫌鏂瑰紡搴忓彿
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡搴忓彿")
+    @Excel(name = " 鍑洪櫌鏂瑰紡搴忓彿 ")
+    private String outWayId;
+
+    /**
+     * 鍑洪櫌鏂瑰紡鍚嶇О
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡鍚嶇О")
+    @Excel(name = " 鍑洪櫌鏂瑰紡鍚嶇О ")
+    private String outWayName;
+
+
 }
diff --git a/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java b/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
index 660766a..b3c036c 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
@@ -1,6 +1,7 @@
 package com.smartor.domain;
 
 import java.util.Date;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -27,6 +28,12 @@
      */
     @ApiModelProperty(value = "鑷ID")
     private Long inhospid;
+
+    /**
+     * 鎬у埆
+     */
+    @ApiModelProperty(value = "鎬у埆 1鐢�  2濂�")
+    private Long sex;
 
     /**
      * 浣忛櫌鍙�
@@ -322,4 +329,21 @@
     @ApiModelProperty("鍑洪櫌鏂瑰紡鍚嶇О")
     @Excel(name = "鍑洪櫌鏂瑰紡鍚嶇О")
     private String outWayName;
+    /**
+     * 鍑哄叆闄㈡爣璇�
+     */
+    @ApiModelProperty("鍑哄叆闄㈡爣璇嗭細0鍏ラ櫌  1鍑洪櫌  ")
+    private Integer cry;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿闆嗗悎")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
+     * 鍑洪櫌绉戝浠g爜闆嗗悎
+     */
+    @ApiModelProperty(value = "鍑洪櫌绉戝浠g爜闆嗗悎")
+    private List<String> leaveldeptcodes;
 }
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskQueryReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskQueryReq.java
index 3970f37..9ea4942 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskQueryReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskQueryReq.java
@@ -34,6 +34,12 @@
     private Long patid;
 
     /**
+     * 瀛愪换鍔D
+     */
+    @ApiModelProperty(value = "瀛愪换鍔D")
+    private Long subId;
+
+    /**
      * 棰樼洰ID
      */
     @ApiModelProperty(value = "棰樼洰ID")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
index 1646337..50cc485 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -2,6 +2,7 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -215,7 +216,7 @@
      * 鍙戦�佺姸鎬�
      */
     @Excel(name = " 鍙戦�佺姸鎬� ")
-    @ApiModelProperty(value = "鍙戦�佺姸鎬� 1 琚鍙�  2 寰呭彂閫�  3 宸插彂閫�  4 涓嶆墽琛�  5 鍙戦�佸け璐�")
+    @ApiModelProperty(value = "鍙戦�佺姸鎬� 1 琚鍙�  2 寰呭彂閫�  3 宸插彂閫�  4 涓嶆墽琛�  5 鍙戦�佸け璐� 6 宸插畬鎴�")
     private Long sendstate;
 
     /**
@@ -508,4 +509,16 @@
     @Excel(name = " 鍑洪櫌鐥呭尯鍚嶇О ")
     private String leavehospitaldistrictname;
 
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿闆嗗悎")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌閮ㄩ棬缂栧彿闆嗗悎")
+    private List<String> leaveldeptcodes;
+
 }
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java
index d000c1a..f7c1fdf 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java
@@ -28,7 +28,7 @@
     @ApiModelProperty(value = "瀛愪换鍔D")
     private Long subId;
 
-    @ApiModelProperty(value = "瀛愪换鍔D")
+    @ApiModelProperty(value = "浠诲姟ID")
     private Long taskid;
 
     @ApiModelProperty(value = "鎷ㄥ彿uuid")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
index 8029215..41a9cc7 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
@@ -284,6 +284,12 @@
     @Excel(name = "  閮ㄩ棬code")
     @ApiModelProperty(value = "閮ㄩ棬code")
     private String deptcode;
+    /**
+     * 閮ㄩ棬code
+     */
+    @Excel(name = "  閮ㄩ棬code")
+    @ApiModelProperty(value = "閮ㄩ棬code闆嗗悎")
+    private List<String> leaveldeptcodes;
 
     /**
      * 鏍囩鐘舵��
@@ -506,6 +512,12 @@
     private String leavehospitaldistrictcode;
 
     /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯闆嗗悎")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
      * 鍑洪櫌鐥呭尯鍚嶇О
      */
     @ApiModelProperty(value = "鍑洪櫌鐥呭尯鍚嶇О")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTask.java b/smartor/src/main/java/com/smartor/domain/ServiceTask.java
index 4fdb5fd..02e15b8 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTask.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTask.java
@@ -357,10 +357,22 @@
     /**
      * 鍑洪櫌鐥呭尯缂栧彿
      */
-    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿闆嗗悎")
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿")
     private String leavehospitaldistrictcode;
 
     /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿闆嗗悎")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌閮ㄩ棬缂栧彿闆嗗悎")
+    private List<String> leaveldeptcodes;
+
+    /**
      * 鍑洪櫌鐥呭尯鍚嶇О
      */
     @ApiModelProperty(value = "鍑洪櫌鐥呭尯鍚嶇О")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
index 855b737..a578951 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -29,6 +29,12 @@
     private String taskDesc;
 
     /**
+     * pageSize
+     */
+    @ApiModelProperty("鏄惁鏄暱鏈熶换鍔� 0锛氫笉鏄�    1锛氭槸")
+    private Integer longTask;
+
+    /**
      *
      */
     private Long taskid;
@@ -40,6 +46,18 @@
     private String taskName;
 
     /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿闆嗗悎")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌閮ㄩ棬缂栧彿闆嗗悎")
+    private List<String> leaveldeptcodes;
+
+    /**
      *
      */
     @Excel(name = "  ")
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
index d4cb3a0..a16bee3 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
@@ -28,6 +28,10 @@
     @ApiModelProperty(value = "鑷ID")
     private Long svyid;
 
+
+    @ApiModelProperty(value = "鏄惁鏄暱鏈熸ā鏉匡細  0锛氫笉鏄�    1锛氭槸")
+    private Integer longTemp;
+
     /**
      * 闂嵎鍒嗙被ID
      */
@@ -106,10 +110,10 @@
     private Long islocal;
 
     /**
-     * 鏄惁鍚敤
+     * 鏄惁鍚敤:  0 鍙敤   1 鍋滅敤
      */
-    @ApiModelProperty(value = "鏄惁鍚敤")
-    @Excel(name = " 鏄惁鍚敤 ")
+    @ApiModelProperty(value = "鏄惁鍚敤:  0 鍙敤   1 鍋滅敤")
+    @Excel(name = " 鏄惁鍚敤:  0 鍙敤   1 鍋滅敤 ")
     private String isenable = "0";
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
index eef63b5..8108e21 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
@@ -28,6 +28,9 @@
     @ApiModelProperty(value = "闂嵎鍒嗙被ID")
     private Long categoryid;
 
+    @ApiModelProperty(value = "鏄惁鏄暱鏈熸ā鏉匡細  0锛氫笉鏄�    1锛氭槸")
+    private Integer longTemp;
+
     /**
      * 闂嵎ID
      */
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
index f605944..c0b0550 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
@@ -112,10 +112,10 @@
     private Long islocal;
 
     /**
-     * 鏄惁鍚敤
+     * 鏄惁鍚敤:  0 鍙敤   1 鍋滅敤
      */
-    @Excel(name = " 鏄惁鍚敤 ")
-    @ApiModelProperty(value = "鏄惁鍚敤")
+    @Excel(name = " 鏄惁鍚敤:  0 鍙敤   1 鍋滅敤 ")
+    @ApiModelProperty(value = "鏄惁鍚敤:  0 鍙敤   1 鍋滅敤")
     private String isenable;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java
index ab92c22..10d0a75 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java
@@ -29,6 +29,9 @@
     @ApiModelProperty(value = "涓婚敭")
     private Long id;
 
+    @ApiModelProperty(value = "鏄惁鏄暱鏈熸ā鏉匡細  0锛氫笉鏄�    1锛氭槸")
+    private Integer longTemp;
+
     /**
      * 妯℃澘闂嵎ID
      */
@@ -113,6 +116,9 @@
     @ApiModelProperty(value = "鏄惁鏈湴")
     private Long islocal;
 
+    @ApiModelProperty(value = "鍑洪櫌澶╂暟锛堥暱鏈熶换鍔★紝鍑哄畨闄㈠悗锛岀鍑犲ぉ鍙戦�佷俊鎭級")
+    private Integer sendDay;
+
     /**
      * 鏄惁鍚敤
      */
diff --git a/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
index e41221d..cf4f822 100644
--- a/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
@@ -59,6 +59,14 @@
     public int deletePatMedInhospByInhospid(Long inhospid);
 
     /**
+     * 鍒犻櫎鎮h�呬綇闄㈣褰�
+     *
+     * @param inhospno 鎮h�呬綇闄㈢紪鐮�
+     * @return 缁撴灉
+     */
+    public int deletePatMedInhospByInhospno(String inhospno);
+
+    /**
      * 鎵归噺鍒犻櫎鎮h�呬綇闄㈣褰�
      *
      * @param inhospids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
index f54d400..905c1ef 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
@@ -45,6 +45,7 @@
      * @return 缁撴灉
      */
     public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
+    public int updateSSDByCondition(ServiceSubtaskDetail serviceSubtaskDetail);
 
     /**
      * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 79555b3..0a56930 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -48,6 +48,8 @@
      */
     public Boolean updateServiceSubtask(ServiceSubtask ServiceSubtask);
 
+    public Boolean updateServiceSubtaskByPatId(ServiceSubtask ServiceSubtask);
+
     public Boolean updateServiceSubtaskByCondition(ServiceSubtask ServiceSubtask);
 
     /**
diff --git a/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java b/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
index 39b5ec2..b104da1 100644
--- a/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
@@ -69,4 +69,6 @@
      * @return 缁撴灉
      */
     public int deleteSysUserDeptByIds(Long[] ids);
+
+    public int deleteSysUserDeptByCode(SysUserDept sysUserDept);
 }
diff --git a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
index 6486d78..d4df031 100644
--- a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
+++ b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -34,6 +34,7 @@
 
     /**
      * 鏌ヨ褰撳墠鐧婚檰浜鸿嚜宸憋紙鐥呭尯銆侀儴闂級鐨勬偅鑰呬綇闄㈣褰曞垪琛�
+     *
      * @param patMedInhospVO
      * @return
      */
@@ -75,6 +76,8 @@
      */
     public int deletePatMedInhospByInhospid(Long inhospid);
 
+    public int deletePatMedInhospByInhospno(String inhospno);
+
     /**
      * 澶勭悊浠巋is鍙栨潵鐨勫嚭闄㈡暟鎹�
      *
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
index afc0e19..365c09b 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
@@ -43,6 +43,8 @@
      */
     public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
 
+    public int updateSSDByCondition(ServiceSubtaskDetail serviceSubtaskDetail);
+
     /**
      * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
      *
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index a432fc5..d3bc43c 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -4,6 +4,7 @@
 import com.smartor.domain.ServiceSubtask;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 鍗曚竴浠诲姟锛堥殢璁匡級Service鎺ュ彛
@@ -71,7 +72,7 @@
      * @param ivrTaskVO 鍗曚竴浠诲姟
      * @return 缁撴灉
      */
-    public int insertOrUpdateTask(ServiceTaskVO ivrTaskVO);
+    public Map<String, Integer> insertOrUpdateTask(ServiceTaskVO ivrTaskVO);
 
 
     /**
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 41db978..b9522e6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -183,6 +183,16 @@
     public int deletePatMedInhospByInhospid(Long inhospid) {
         return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid);
     }
+    /**
+     * 鍒犻櫎鎮h�呬綇闄㈣褰曚俊鎭�
+     *
+     * @param inhospno 鎮h�呬綇闄㈢紪鐮�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePatMedInhospByInhospno(String inhospno) {
+        return patMedInhospMapper.deletePatMedInhospByInhospno(inhospno);
+    }
 
 
     @Override
@@ -296,17 +306,27 @@
             ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
             serviceSubtask.setTaskid(serviceTask.getTaskid());
             serviceSubtask.setLibtemplateid(stt.getTemplateid());
+            serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
+            serviceSubtask.setNurseName(patMedInhosp1.getNurseName());
+            serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
+            serviceSubtask.setDrname(patMedInhosp1.getDrname());
+            serviceSubtask.setDeptname(patMedInhosp1.getLeaveldeptname());
             serviceSubtask.setTemplateid(stt.getId());
             serviceSubtask.setTemplatename(stt.getSvyname());
             serviceSubtask.setPatid(patArchive.getId());
             serviceSubtask.setSendname(patArchive.getName());
+            serviceSubtask.setSfzh(patArchive.getIdcardno());
             serviceSubtask.setPhone(patArchive.getTelcode());
             serviceSubtask.setSex(patArchive.getSex());
             serviceSubtask.setAge(patArchive.getAge());
             serviceSubtask.setSendstate(2L);
+            serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
+            serviceSubtask.setEndtime(patMedInhosp1.getEndtime());
             serviceSubtask.setServiceType("2");
             serviceSubtask.setServiceform(serviceTask.getPreachform());
             serviceSubtask.setHospType("2");
+            serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
+            serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
             //璁剧疆鍙戦�佹椂闂�
             Date newDate = addDays(patMedInhosp1.getEndtime(), stt.getSendDay());
             serviceSubtask.setLongSendTime(newDate);
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index 08cec1f..a6832fe 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -189,6 +189,7 @@
             serviceSubtask.setTaskid(tid);
             serviceSubtask.setPatid(pid);
             serviceSubtask.setSubmit(1L);
+            serviceSubtask.setSendstate(6L);
             serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep());
             serviceSubtask.setFinishtime(new Date());
             if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score));
@@ -250,7 +251,7 @@
         if (scriptInfoByCondition.get("type").equals("1")) {
             List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
             for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
-                String scriptResult = getScriptResult(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId());
+                String scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId());
                 ivrLibaTemplateScriptVO.setScriptResult(scriptResult);
             }
             map.put("scriptResult", ivrLibaTemplateScriptVOList);
@@ -259,7 +260,7 @@
         } else if (scriptInfoByCondition.get("type").equals("2")) {
             List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
             for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) {
-                String scriptResult = getScriptResult(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId());
+                String scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId());
                 svyLibTemplateScriptVO.setScriptResult(scriptResult);
             }
             map.put("scriptResult", scriptInfoByCondition);
@@ -276,9 +277,9 @@
         return null;
     }
 
-    private String getScriptResult(Long tid, Long pid, Long sid) {
+    private String getScriptResult(Long subid, Long pid, Long sid) {
         ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
-        serviceSubtaskDetail.setTaskid(tid);
+        serviceSubtaskDetail.setSubId(subid);
         serviceSubtaskDetail.setPatid(pid);
         serviceSubtaskDetail.setScriptid(sid);
         List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
index 6ed1229..7a2de80 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -75,6 +75,12 @@
         return ServiceSubtaskDetailMapper.updateServiceSubtaskDetail(serviceSubtaskDetail);
     }
 
+    @Override
+    public int updateSSDByCondition(ServiceSubtaskDetail serviceSubtaskDetail) {
+        serviceSubtaskDetail.setUpdateTime(DateUtils.getNowDate());
+        return ServiceSubtaskDetailMapper.updateSSDByCondition(serviceSubtaskDetail);
+    }
+
     /**
      * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
      *
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
index baf4338..a318547 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -81,6 +81,11 @@
     @Override
 
     public List<ServiceTask> selectServiceTaskList(ServiceTask serviceTask) {
+        //濡傛灉涓�0涓嶇疆绌猴紝浼氬奖鍝嶅埌鎴戠殑鏌ヨ
+        if (CollectionUtils.isEmpty(serviceTask.getLeaveldeptcodes()) || serviceTask.getLeaveldeptcodes().size() == 0)
+            serviceTask.setLeaveldeptcodes(null);
+        if (CollectionUtils.isEmpty(serviceTask.getLeavehospitaldistrictcodes()) || serviceTask.getLeavehospitaldistrictcodes().size() == 0)
+            serviceTask.setLeavehospitaldistrictcodes(null);
         return serviceTaskMapper.selectServiceTaskList(serviceTask);
     }
 
@@ -258,6 +263,13 @@
      * @return
      */
     private List wjInfo(ServiceTask serviceTask, Long patid) {
+        //鐢ㄦ埛鐐瑰嚮浜嗗閾撅紝灏辩畻浠栭鍙栦簡
+        ServiceSubtask serviceSubtask = new ServiceSubtask();
+        serviceSubtask.setSendstate(1L);
+        serviceSubtask.setPatid(patid);
+        serviceSubtask.setTaskid(serviceTask.getTaskid());
+        serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
+
         //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
         SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
         svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid()));
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml
index 1f82054..ed7b034 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml
@@ -32,7 +32,7 @@
         <result property="assortid" column="assortid"/>
         <result property="parameter" column="parameter"/>
         <result property="version" column="version"/>
-        <result property="usestate" column="usestate"/>
+        <result property="isenable" column="isenable"/>
         <result property="campus" column="campus"/>
         <result property="tag" column="tag"/>
         <result property="suitway" column="suitway"/>
@@ -57,7 +57,7 @@
                firstQuestionNum,
                version,
                silencetime,
-               usestate,
+               isenable,
                campus,
                tag,
                suitway,
@@ -127,7 +127,7 @@
             <if test="templateName != null and templateName != ''">templateName,</if>
             <if test="version != null and version != ''">version,</if>
             <if test="campus != null and campus != ''">campus,</if>
-            <if test="usestate != null and usestate != ''">usestate,</if>
+            <if test="isenable != null and isenable != ''">isenable,</if>
             <if test="firstQuestionNum != null">firstQuestionNum,</if>
             <if test="submodule != null">submodule,</if>
             <if test="language != null and language != ''">language,</if>
@@ -167,7 +167,7 @@
             <if test="templateName != null and templateName != ''">#{templateName},</if>
             <if test="version != null and version != ''">#{version},</if>
             <if test="campus != null and campus != ''">#{campus},</if>
-            <if test="usestate != null and usestate != ''">#{usestate},</if>
+            <if test="isenable != null and isenable != ''">#{isenable},</if>
             <if test="firstQuestionNum != null">#{firstQuestionNum},</if>
             <if test="submodule != null">#{submodule},</if>
             <if test="language != null and language != ''">#{language},</if>
@@ -211,7 +211,7 @@
             <if test="templateName != null and templateName != ''">templateName = #{templateName},</if>
             <if test="version != null and version != ''">version = #{version},</if>
             <if test="campus != null and campus != ''">campus = #{campus},</if>
-            <if test="usestate != null and usestate != ''">usestate = #{usestate},</if>
+            <if test="isenable != null and isenable != ''">isenable = #{isenable},</if>
             <if test="firstQuestionNum != null">firstQuestionNum = #{firstQuestionNum},</if>
             <if test="submodule != null">submodule = #{submodule},</if>
             <if test="language != null and language != ''">language = #{language},</if>
diff --git a/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml b/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
index d305d95..766679f 100644
--- a/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
@@ -99,6 +99,8 @@
         <result property="inhospno" column="inhospno"/>
         <result property="nurseId" column="nurse_id"/>
         <result property="nurseName" column="nurse_name"/>
+        <result property="outWayName" column="out_way_name"/>
+        <result property="outWayId" column="out_way_id"/>
         <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
         <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
     </resultMap>
@@ -292,7 +294,6 @@
             (#{item.name},#{item.viptype},#{item.sex},#{item.idcardno},#{item.birthdate},#{item.placeOfResidence},#{item.age},#{item.sourcefrom},#{item.archivetime},#{item.archiveby}
             ,#{item.telcode},#{item.archiveby},#{item.idcardtype},#{item.orgid},#{item.openid},#{item.dduserid},#{item.updateBy},
             #{item.updateTime},#{item.createBy},#{item.createTime},#{item.isupload},#{item.uploadTime},#{item.pattype},#{item.nation},#{item.birthplace},#{item.nativePlace},#{item.patientno},#{item.patidHis},#{item.sdFlag},#{item.ageUnit},#{item.notrequiredFlag},#{item.notrequiredreason}
-            )
         </foreach>
     </insert>
 
@@ -391,6 +392,8 @@
             a.del_flag = 0
             <if test="name != null  and name != ''">and a.name like concat('%', #{name}, '%')</if>
             <if test="idcardno != null  and idcardno != ''">and a.idcardno = #{idcardno}</if>
+            <if test="notrequiredFlag != null  and notrequiredFlag != ''">and a.notrequired_flag = #{notrequiredFlag}
+            </if>
             <if test="pid != null  and pid != ''">and a.id = #{pid}</if>
             <if test="telcode != null  and telcode != ''">and a.telcode = #{telcode}</if>
             <if test="tagIds != null  and tagIds != ''">and b.tagid in
@@ -452,6 +455,7 @@
         d.nurse_name,
         d.nurse_id,
         d.endtime,
+        d.out_way_id,
         d.leavehospitaldistrictname AS leavehospitaldistrictname,
         d.leavehospitaldistrictcode AS leavehospitaldistrictcode,
         t.tagname
@@ -467,7 +471,8 @@
             <if test="idcardno != null  and idcardno != ''">and a.idcardno = #{idcardno}</if>
             <if test="pid != null  and pid != ''">and a.id = #{id}</if>
             <if test="telcode != null  and telcode != ''">and a.telcode = #{telcode}</if>
-
+            <if test="notrequiredFlag != null  and notrequiredFlag != ''">and a.notrequired_flag = #{notrequiredFlag}
+            </if>
             <if test="hospitalname != null and hospitalname != ''">
                 AND d.hospitalname = #{hospitalname}
             </if>
@@ -496,14 +501,14 @@
                 AND d.deptname LIKE concat('%',#{deptname}, '%')
             </if>
             <if test="leavehospitaldistrictcodes != null and leaveldeptcodes != null">
-                AND d.leavehospitaldistrictcode IN
+                AND (d.leavehospitaldistrictcode IN
                 <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                          close=")">
                     #{leavehospitaldistrictcode}
                 </foreach>
                 OR d.leaveldeptcode IN
                 <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                         close=")">
+                         close="))">
                     #{leaveldeptcode}
                 </foreach>
             </if>
@@ -589,6 +594,8 @@
             <if test="telcode != null  and telcode != ''">and a.telcode = #{telcode}</if>
             <if test="hospitaldistrictname != null and hospitaldistrictname != ''">
                 AND d.hospitaldistrictname LIKE concat('%',#{hospitaldistrictname}, '%')
+            </if>
+            <if test="notrequiredFlag != null  and notrequiredFlag != ''">and a.notrequired_flag = #{notrequiredFlag}
             </if>
             <if test="diagname != null and diagname != ''">
                 AND d.diagname LIKE concat('%',#{diagname}, '%')
@@ -678,6 +685,8 @@
             <if test="diagname != null and diagname != ''">
                 AND d.diagname LIKE concat('%',#{diagname}, '%')
             </if>
+            <if test="notrequiredFlag != null  and notrequiredFlag != ''">and a.notrequired_flag = #{notrequiredFlag}
+            </if>
             <if test="hospitalname != null and hospitalname != ''">
                 AND d.hospitalname = #{hospitalname}
             </if>
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 079bde5..854773c 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -49,6 +49,7 @@
         <result property="inhospstate" column="inhospstate"/>
         <result property="checkFlag" column="check_flag"/>
         <result property="age" column="age"/>
+        <result property="sex" column="sex"/>
         <result property="telcode" column="telcode"/>
         <result property="longTaskReason" column="long_task_reason"/>
         <result property="nurseId" column="nurse_id"/>
@@ -112,6 +113,7 @@
     <select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult">
         select CONCAT( a.age, a.age_unit ) AS age,
         a.telcode as telcode,
+        a.sex,
         b.inhospid,
         b.nurse_id,
         b.nurse_name,
@@ -176,10 +178,15 @@
                 concat('%', #{hospitaldistrictname}, '%')
             </if>
             <if test="endtime != null ">and b.endtime = #{endtime}</if>
+            <if test="inhospno != null ">and b.inhospno = #{inhospno}</if>
+            <if test="serialnum != null ">and b.serialnum = #{serialnum}</if>
+            <if test="endtime != null ">and b.endtime = #{endtime}</if>
             <if test="patno != null ">and b.patno = #{patno}</if>
             <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if>
             <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if>
             <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if>
+            <if test="cry != null and cry == 0 ">and b.endtime is null</if>
+            <if test="cry != null and cry == 1 ">and b.endtime is not null</if>
             <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
             <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if>
             <if test="outWayId != null ">and b.out_way_id = #{outWayId}</if>
@@ -191,8 +198,36 @@
             <if test="leaveldeptname != null  and leaveldeptname != ''">and b.leaveldeptname like concat('%',
                 #{leaveldeptname}, '%')
             </if>
+               <if test="patid != null  and patid != ''">and a.id =#{patid}
+            </if>
             <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
                 b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
+            </if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes != null">
+                AND (b.leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+                OR b.leaveldeptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close="))">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes == null">
+                AND b.leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes == null and leaveldeptcodes != null">
+                AND b.leaveldeptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close=")">
+                    #{leaveldeptcode}
+                </foreach>
             </if>
         </where>
         order by b.inhospid desc
@@ -276,14 +311,26 @@
                 #{leavediagname}, '%')
             </if>
             <if test="drname != null  and drname != ''">and b.drname like concat('%', #{drname}, '%')</if>
-            <if test="leavehospitaldistrictcodes != null">
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes != null">
+                AND (b.leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+                OR b.leaveldeptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close="))">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes == null">
                 AND b.leavehospitaldistrictcode IN
                 <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                          close=")">
                     #{leavehospitaldistrictcode}
                 </foreach>
             </if>
-            <if test="leaveldeptcodes != null">
+            <if test="leavehospitaldistrictcodes == null and leaveldeptcodes != null">
                 AND b.leaveldeptcode IN
                 <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                          close=")">
@@ -455,11 +502,21 @@
     </update>
 
     <delete id="deletePatMedInhospByInhospid" parameterType="Long">
-        delete
-        from pat_med_inhosp
+        update pat_med_inhosp
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag =1
+        </trim>
         where inhospid = #{inhospid}
     </delete>
 
+    <delete id="deletePatMedInhospByInhospno" parameterType="String">
+        update pat_med_inhosp
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag =1
+        </trim>
+        where inhospno = #{inhospno}
+    </delete>
+
     <delete id="deletePatMedInhospByInhospids" parameterType="String">
         delete from pat_med_inhosp where inhospid in
         <foreach item="inhospid" collection="array" open="(" separator="," close=")">
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
index 62c313b..8f43028 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -309,6 +309,59 @@
         where id = #{id}
     </update>
 
+
+    <update id="updateSSDByCondition" parameterType="com.smartor.domain.ServiceSubtaskDetail">
+        update service_subtask_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="subId != null">sub_id = #{subId},</if>
+            <if test="taskid != null">taskid = #{taskid},</if>
+            <if test="uuid != null">uuid = #{uuid},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="operate != null">operate = #{operate},</if>
+            <if test="displayno != null">displayno = #{displayno},</if>
+            <if test="inbound != null">inbound = #{inbound},</if>
+            <if test="incoming != null">incoming = #{incoming},</if>
+            <if test="assigntime != null">assigntime = #{assigntime},</if>
+            <if test="starttime != null">starttime = #{starttime},</if>
+            <if test="answertime != null">answertime = #{answertime},</if>
+            <if test="silent != null">silent = #{silent},</if>
+            <if test="dtmfKey != null">dtmf_key = #{dtmfKey},</if>
+            <if test="musicpath != null">musicpath = #{musicpath},</if>
+            <if test="sentIndex != null">sent_index = #{sentIndex},</if>
+            <if test="sentBegin != null">sent_begin = #{sentBegin},</if>
+            <if test="asrtext != null">asrtext = #{asrtext},</if>
+            <if test="beginTime != null">begin_time = #{beginTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="sentEnd != null">sent_end = #{sentEnd},</if>
+            <if test="recordpath != null">recordpath = #{recordpath},</if>
+            <if test="recordurl != null">recordurl = #{recordurl},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="templatequestionnum != null">templatequestionnum = #{templatequestionnum},</if>
+            <if test="switchid != null">switchid = #{switchid},</if>
+            <if test="questiontext != null">questiontext = #{questiontext},</if>
+            <if test="questionvoice != null">questionvoice = #{questionvoice},</if>
+            <if test="categoryname != null">categoryname = #{categoryname},</if>
+            <if test="targetoptions != null">targetoptions = #{targetoptions},</if>
+            <if test="targetvalue != null">targetvalue = #{targetvalue},</if>
+            <if test="matchedtext != null">matchedtext = #{matchedtext},</if>
+            <if test="addtime != null">addtime = #{addtime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</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="valueType != null">value_type = #{valueType},</if>
+            <if test="answerps != null  and answerps != ''">answerps = #{answerps},</if>
+            <if test="comment != null  and comment != ''">comment = #{comment},</if>
+            <if test="scriptid != null ">scriptid = #{scriptid},</if>
+            <if test=" patid != null">patid = #{patid},</if>
+        </trim>
+        where patid = #{patid} and scriptid = #{scriptid} and sub_id = #{subId}
+    </update>
+
     <delete id="deleteServiceSubtaskDetailByCalldetailid" parameterType="String">
         delete
         from service_subtask_detail
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 3c0d5cf..5775111 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -178,6 +178,33 @@
             <if test="templatename != null  and templatename != ''">and templatename like concat('%', #{templatename},
                 '%')
             </if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes != null">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+                OR deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close=")">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes == null">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes == null and leaveldeptcodes != null">
+                AND deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close=")">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+
             <if test="senddate != null ">and senddate = #{senddate}</if>
             <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
             <if test="result != null  and result != ''">and result = #{result}</if>
@@ -213,10 +240,6 @@
             <if test="excep != null ">and excep = #{excep}</if>
             <if test="nurseId != null ">and nurse_id = #{nurseId}</if>
             <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
-            <if test="leavehospitaldistrictcode != null ">and leavehospitaldistrictcode = #{leavehospitaldistrictcode}
-            </if>
-            <if test="leavehospitaldistrictname != null ">and leavehospitaldistrictname = #{leavehospitaldistrictname}
-            </if>
             <if test="score != null">and score = #{score}</if>
             <if test="remark != null">and remark = #{remark}</if>
             <if test="suggest != null">and suggest = #{suggest}</if>
@@ -449,6 +472,81 @@
         where id = #{id}
     </update>
 
+    <update id="updateServiceSubtaskByPatId" parameterType="com.smartor.domain.ServiceSubtask">
+        update service_subtask
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sendname != null">sendname = #{sendname},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="age != null">age = #{age},</if>
+            <if test="sfzh != null">sfzh = #{sfzh},</if>
+            <if test="addr != null">addr = #{addr},</if>
+            <if test="senderdetail != null">senderdetail = #{senderdetail},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="taskid != null">taskid = #{taskid},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="templatename != null">templatename = #{templatename},</if>
+            <if test="senddate != null">senddate = #{senddate},</if>
+            <if test="senduuid != null">senduuid = #{senduuid},</if>
+            <if test="result != null">result = #{result},</if>
+            <if test="finishtime != null">finishtime = #{finishtime},</if>
+            <if test="recordid != null">recordid = #{recordid},</if>
+            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if>
+            <if test="pulltime != null">pulltime = #{pulltime},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="labelstatus != null">labelstatus = #{labelstatus},</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="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="guid != null">guid = #{guid},</if>
+            <if test="textParam != null">text_param = #{textParam},</if>
+            <if test="serviceform != null">serviceform = #{serviceform},</if>
+            <if test="bedNo != null">bed_no = #{bedNo},</if>
+            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if>
+            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if>
+            <if test="taskDesc != null  and taskDesc != ''">task_desc = #{taskDesc},</if>
+            <if test="operatorNo != null  and operatorNo != ''">operator_no = #{operatorNo},</if>
+            <if test="operator != null  and operator != ''">operator = #{operator},</if>
+            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if>
+            <if test="hospno != null  and hospno != ''">hospno = #{hospno},</if>
+            <if test="wechat != null  and wechat != ''">wechat = #{wechat},</if>
+            <if test="roomno != null  and roomno != ''">roomno = #{roomno},</if>
+            <if test="admindate != null  and admindate != ''">admindate = #{admindate},</if>
+            <if test="deptname != null  and deptname != ''">deptname = #{deptname},</if>
+            <if test="diagname != null  and diagname != ''">diagname = #{diagname},</if>
+            <if test="libtemplateid != null ">libtemplateid = #{libtemplateid},</if>
+            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if>
+            <if test="patid != null ">patid = #{patid},</if>
+            <if test="openid != null ">openid = #{openid},</if>
+            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if>
+            <if test="sendstate != null ">sendstate = #{sendstate},</if>
+            <if test="serviceType != null ">service_type = #{serviceType},</if>
+            <if test="score != null ">score = #{score},</if>
+            <if test="submit != null ">submit = #{submit},</if>
+            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode
+                = #{leavehospitaldistrictcode},
+            </if>
+            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname
+                = #{leavehospitaldistrictname},
+            </if>
+            <if test="drname != null ">drname = #{drname},</if>
+            <if test="drcode != null ">drcode = #{drcode},</if>
+            <if test="starttime != null ">starttime = #{starttime},</if>
+            <if test="endtime != null ">endtime = #{endtime},</if>
+            <if test="excep != null ">excep = #{excep},</if>
+            <if test="nurseName != null ">nurse_name=#{nurseName},</if>
+            <if test="nurseId != null ">nurse_id=#{nurseId},</if>
+            <if test="remark != null ">remark=#{remark},</if>
+            <if test="suggest != null ">suggest=#{suggest},</if>
+        </trim>
+        where patid = #{patid} and taskid = #{taskid}
+    </update>
+
     <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
         update service_subtask
         <trim prefix="SET" suffixOverrides=",">
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
index 6b01e6b..65a6411 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
@@ -146,6 +146,34 @@
             <if test="sendState != null  ">and send_state = #{sendState}</if>
             <if test="leavehospitaldistrictname != null  ">and leavehospitaldistrictname = #{leavehospitaldistrictname}</if>
             <if test="leavehospitaldistrictcode != null  ">and leavehospitaldistrictcode = #{leavehospitaldistrictcode}</if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes != null">
+                AND (leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+                OR deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close="))">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes != null and leaveldeptcodes == null">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test="leavehospitaldistrictcodes == null and leaveldeptcodes != null">
+                AND deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close=")">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+
+
         </where>
         order by update_time desc,taskid desc
     </select>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
index e348d2d..4264cc7 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
@@ -37,11 +37,13 @@
         <result property="prologue" column="prologue"/>
         <result property="instruction" column="instruction"/>
         <result property="conclusion" column="conclusion"/>
+        <result property="longTemp" column="long_temp"/>
     </resultMap>
 
     <sql id="selectSvyLibTemplateVo">
         select svyid,
                categoryid,
+               long_temp,
                instruction,
                prologue,
                conclusion,
@@ -79,6 +81,7 @@
             resultMap="SvyLibTemplateResult">
         SELECT
         a.svyid,
+        a.long_temp,
         a.conclusion,
         a.instruction,
         a.prologue,
@@ -121,6 +124,7 @@
             a.del_flag=0
             <if test="categoryid != null ">and a.categoryid = #{categoryid}</if>
             <if test="svyid != null ">and a.svyid = #{svyid}</if>
+            <if test="longTemp != null ">and a.long_temp = #{longTemp}</if>
             <if test="svyname != null  and svyname != ''">and a.svyname like concat('%', #{svyname}, '%')</if>
             <if test="description != null  and description != ''">and b.icd10name like concat('%', #{description}, '%')
             </if>
@@ -168,6 +172,7 @@
             <if test="conclusion != null">conclusion,</if>
             <if test="instruction != null">instruction,</if>
             <if test="prologue != null">prologue,</if>
+            <if test="longTemp != null ">long_temp,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="categoryid != null">#{categoryid},</if>
@@ -201,6 +206,7 @@
             <if test="conclusion != null">#{conclusion},</if>
             <if test="instruction != null">#{instruction},</if>
             <if test="prologue != null">#{prologue},</if>
+            <if test="longTemp != null ">#{longTemp},</if>
         </trim>
     </insert>
 
@@ -238,6 +244,7 @@
             <if test="conclusion != null">conclusion=#{conclusion},</if>
             <if test="instruction != null">instruction=#{instruction},</if>
             <if test="prologue != null">prologue=#{prologue},</if>
+            <if test="longTemp != null ">long_temp = #{longTemp},</if>
         </trim>
         where svyid = #{svyid}
     </update>
diff --git a/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml b/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
index ab2a740..6ed52c9 100644
--- a/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
@@ -43,6 +43,7 @@
             resultMap="SysUserDeptResult">
         <include refid="selectSysUserDeptVo"/>
         <where>
+            del_flag=0
             <if test="userId != null ">
                 and user_id = #{userId}
             </if>
@@ -57,8 +58,12 @@
             </if>
             <if test="updateTime != null ">
                 and update_time = #{updateTime}
-            </if> <if test="deptType != null ">
+            </if>
+            <if test="deptType != null ">
                 and dept_type = #{deptType}
+            </if>
+            <if test="deptCode != null ">
+                and dept_code = #{deptCode}
             </if>
         </where>
     </select>
@@ -189,4 +194,14 @@
     </update>
 
 
+    <update id="deleteSysUserDeptByCode" parameterType="String">
+        update sys_user_dept
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag =1,
+            update_time = sysdate()
+        </trim>
+        where user_id =#{userId} and dept_code=#{deptCode}
+    </update>
+
+
 </mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml b/smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml
index c9ecc7b..7658118 100644
--- a/smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml
@@ -37,6 +37,7 @@
             resultMap="TemplateDeptResult">
         <include refid="selectTemplateDeptVo"/>
         <where>
+            del_flag=0
             <if test="type != null ">
                 and type = #{type}
             </if>

--
Gitblit v1.9.3